3.1 SQL概述

SQL(Structured Query Language) 结构化查询语言,是关系数据库的标准语言

SQL是一个通用的、功能极强的关系数据库语言

功能:查询,数据库模式创建,数据库数据的插入与修改,数据库完整性、安全性定义等

应用发展:数据库厂家推出各种SQL软件及其接口软件,使得大多数数据库均使用SQL作为共同的数据存取语言和标准接口

3.1.1 SQL 的产生与发展

SQL的历史

1970年,codd提出关系模型,由于关系代数或者关系太数学了,难以被普通用户接收,于是1973年IBM开展System R的研制工作。

System R以关系模型为基础,但是摒弃了数学语言,以自然语言为方向,诞生了结构化的英语查询语言(Structured English query language, SEQUEL), 更名为SQL。

1986年,美国国家标准局ANSI数据库委员会批准了SQL作为关系 数据库语言的美国标准,并公布SQL的标准文本(SQL-86)。

1987年,国际标准化组织ISO也通过这一标准。

1988年, System R获得ACM“软件系统奖”

SQL标准的进展过程

目前,没有一个数据库系统能够支持SQL标准的所有概念和特性

3.1.2 SQL的特点:

综合统一 、 高度非过程化 、 面向集合的操作方式 、 以同一种语法结构提供多种使用方式 、 语言简洁,易学易用

1、综合统一

 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言 (DCL)功能于一体。

 可以独立完成数据库生命周期中的全部活动:  定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库;  对数据库中的数据进行查询和更新;  数据库重构和维护 , 数据库安全性、完整性控制,以及事务控制

嵌入式SQL和动态SQL定义

用户数据库投入运行后,可根据需要随时、逐步修改模式,不影响数据库的运行,具有良好的可扩展性。

数据操作符统一:增删改查等每种操作都只需一种操作符

2、高度非过程化  

非关系数据模型的数据操纵语言“面向过程”,必须指定存取路径。 SQL只要提出“做什么”,无须了解存取路径。

存取路径的选择以及SQL的操作过程由系统自动完成。

优点:大大减轻用户负担,有利于提高数据独立性。

3、面向集合的操作方式

非关系数据模型采用面向记录的操作方式,操作对象是 一条记录 如,查询所有平均成绩在80分以上的学生姓名,用户必须逐条 把满足条件的学生记录找出(要说明具体处理过程,包含哪条路径, 如何循环等)

SQL采用集合操作方式

 操作对象、查找结果可以是元组的集合  

一次插入、删除、更新操作的对象可以是元组的集合

4、以同一种语法结构提供多种使用方式

SQL是独立的语言,能够独立地用于联机交互的使用方式,用户可以在终端键盘直接 输入SQL命令对数据库进行操作

SQL是嵌入式语言 SQL能够嵌入到高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用

优点:两种情况下,SQL语法结构基本一致,提供了极大的灵活性和 方便性

5、语言简洁,易学易用

SQL功能极强,完成核心功能只用了9个动词,易于学习

3.1.3 SQL的基本概念

SQL支持关系数据库三级模式结构

外模式包括若干视图和部分基本表,模式包括若干基本表; 内模式包括若干存储文件。

基本表

 本身独立存在的表 ,一个关系就对应一个基本表 ,一个(或多个)基本表对应一个存储文件, 一个表可以带若干索引。

存储文件

逻辑结构组成了关系数据库的内模式,物理结构对最终用户是隐蔽的。

视图

从一个或几个基本表导出的表,视图是一个虚表,数据库中只存放视图的定义而不存放视图对应的数据,用户可以在视图上再定义视图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/287909.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytest之fixture结合conftest.py文件使用+断言实战

pytest之fixture结合conftest.py文件使用 conftest.py--存放固件固件的优先级pytest执行流程pytest之断言实战pytest结合allure-pytest插件生成美观的报告 conftest.py–存放固件 在一个项目的测试中,大多数情况下会有多个类、模块、或者包要使用相同的测试夹具。这…

如何使用PHP和RabbitMQ实现延迟队列(方式一)?

前言 今天我们来做个小试验,用PHP和RabbitMQ实现消息队列的延迟功能。 前期准备,需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列?-CSDN博客 一、安装RabbitM…

哪个品牌男裤子版型好看?男士春夏季裤子推荐!

最近逐渐开始天气变热,很多朋友都开始挑选换季的衣服了。不过不少朋友都表示现在的男生裤子实在太难选,不仅款式品牌多如牛毛,而且市面上还有不少质量不好的衣裤。 所以我这段时间特别购买了一批衣服回来测评并且上身试穿,今天就…

Vscode循环弹出窗口输入密码的窗口 ‘s password:

今天使用Vscode,连接远程服务器一直不断的弹出窗口,要求输入密码,导致无法显示远程文件。误以为是产品id没有上传成功,导致服务器内没有commid id对应的文件。参考vscode通过ssh链接服务器卡在downloading with wget,但是处理完仍…

java算法第32天 | 贪心算法 part02 ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机II 本题中理解利润拆分是关键点! 不要整块的去看,而是把整体利润拆为每天的利润。假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。 相当于(prices[3] - prices[2]) (prices[…

STM32不使用中断实现定时器微秒级精确延时

我们在写代码的时候避免不了要使用延时函数,很多延时函数都是使用中断或者tick来实现的,tick的方式最大到毫秒ms级别,通过中断方式的通用定时器来实现,如果实现1us的延时那么每1us就来一次中断,很影响cpu的效率。 本文…

elementary OS7 Ubuntu 22.04中硬盘挂载报错

elementary OS7 Ubuntu 22.04中硬盘挂载报错 背景目标思路解决方法 背景 上周末安装elementaryos7的过程中将windows10的引导文件搞丢了,这两天准备修复一下,保险期间将固态硬盘上的文件备份到移动硬盘上,备份过程中出现报错的问题&#xff…

Halcon与C#联合开发——1.读取图片、图像二值化

在vs中引入halcon控件 修改目标平台为 x64 拖出三个控件 代码展示 using System; using System.Windows.Forms; //引用支持halcon的命名空间 using HalconDotNet;namespace _1.HalconDisplay {public partial class Form1 : Form {// HObject 是Halcon库中表示图像和其他图形…

基于springboot+vue+Mysql的超市进销存系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

深度学习:基于PyTorch的模型解释工具Captum

深度学习:基于PyTorch的模型解释工具Captum 引言简介示例安装解释模型的预测解释文本模型情绪分析问答 解释视觉模型特征分析特征消融鲁棒性 解释多模态模型 引言 当我们训练神经网络模型时,我们通常只关注模型的整体性能,例如准确率或损失函…

AWS EC2设置root登录

在使用亚马逊的服务器时,官方默认是使用密钥登录,跟国内的云服务器差别较大,本文记录下,如何开放AWS EC2的root登录。 一、通过网页版或者XShell登录服务器 这里略过 二、设置root账户密码 # 切换 root sudo -i # 设置或修改密…

考研数学|《1800》《1000》《880》《660》最佳搭配使用方法

直接说结论:基础不好先做1800、强化之前660,强化可选880/1000题。 首先,传统习题册存在的一个问题是题量较大,但难度波动较大。《汤家凤1800》和《张宇1000》题量庞大,但有些题目难度不够平衡,有些过于简单…

【开发篇】六、查询大量数据导致内存溢出

文章目录 1、溢出场景2、快照文件分析3、本地环境复现4、结论5、解决思路 记录一个问题,工作中有个数据处理服务OOM,查了下镜像的dockerfile,发现JVM参数如下。很明显,一个数据服务,里面经手大量的数据对象&#xff0c…

ArcGIS二次开发(一)——搭建开发环境以及第一个简单的ArcGIS Engine 程序

Arcgis10.2、Arcgis Engine10.2与Microsoft Visual Studio 2012的版本进行安装 1、推荐教程与安装包2、安装顺序3、安装成功测试VS新建项目可以创建ArcGIS项目,并且在VS中拖拽ArcGIS工具 4、搭建第一个简单的ArcGIS Engine 程序 ArcEngine和VS版本是有对应的&#x…

【SpringBoot整合系列】SpringBoot3.x整合Swagger

目录 产生背景官方解释:作用SpringBoot3整合Swagger注意事项swagger3 常用注解SpringBoot3.x整合Swagger1.创建工程(jdk:17,boot:3.2.4)2.引入pom依赖3.application.yml添加配置4.添加swagger3.0配置5.控制器层(Controller)6.模型层(Model)7.启动并测试【Get请求接口…

一口气搞懂分库分表 12 种分片算法,大厂都在用

前言 本文是《ShardingSphere5.x分库分表原理与实战》系列的第五篇文章,我们一起梳理下ShardingSphere框架中的核心部分分片策略和分片算法,其内部针为我们提供了多种分片策略和分片算法,来应对不同的业务场景,本着拿来即用的原则…

大学教材《C语言程序设计》(浙大版)课后习题解析 | 第三、四章

概述 本文主要提供《C语言程序设计》(浙大版) 第三、四章的课后习题解析,以方便同学们完成题目后作为参考对照。后续将更新第五、六章节课后习题解析,如想了解更多,请持续关注该专栏。 专栏直达链接:《C语言程序设计》(浙大版)_孟…

文件IO的方式读取jpeg图片的分辨率

1、读取jpeg图片分辨率的两种方式 1.1 使用libjpeg库 可以使用libjpeg库读取JPEG图像文件&#xff0c;并获取图像的分辨率&#xff08;宽度和高度&#xff09;&#xff0c;简单demo示例如下&#xff1a; #include <stdio.h> #include <jpeglib.h>int main() {st…

接口测试、postman、测试点提取【主】

接口测试是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点 测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系 文章目录 HTTP接口 & Web Service接口RESTful接口…

sentinel热点参数流控

1、概念 热点参数限流会统计传入参数中的热点参数&#xff0c;并根据配置的限流阈值与模式&#xff0c;对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制&#xff0c;仅对包含热点参数的资源调用生效。 2、示例 2.1、目的 对于如下的/get接口的参…