SQL语言
#编程语言# 0 0
Structured Query Language(结构化查询语言,简称SQL),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
  • 中文名称: 结构化查询语言
  • 外文名称: Structured Query Language
  • 发布时间: 1986年10月
详细介绍 PROFILE +

基本介绍

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

简介

SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。由于它具有功能丰富、使用方便灵活、语言简洁易学等突出的优点,深受计算机工业界和计算机用户的欢迎。1980年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL,此后不久,国际标准化组织(ISO)也作出了同样的决定。

SQL从功能上可以分为3部分:数据定义、数据操纵和数据控制。

SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。其特点是:

1、数据描述、操纵、控制等功能一体化。

2、两种使用方式,统一的语法结构。SQL有两种使用方式。一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。另一种方式是嵌入到某种高级程序设计语言(如C语言等)中去使用。前一种方式适合于非计算机专业人员使用,后一种方式适合于专业计算机人员使用。尽管使用方式不向,但所用语言的语法结构基本上是一致的。

3、高度非过程化。SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无须具体指明“怎么干”,像存取路径选择和具体处理操作等均由系统自动完成。

4、语言简洁,易学易用。尽管SQL的功能很强,但语言十分简洁,核心功能只用了9个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用。

历史起源

在1970年代初,由IBM公司San Jose,California研究实验室的埃德加·科德发表将数据组成表格的应用原则(Codd's Relational Algebra)。1974年,同一实验室的D.D.Chamberlin和R.F. Boyce对Codd's Relational Algebra在研制关系数据库管理系统System R中,研制出一套规范语言-SEQUEL(Structured English QUEry Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(叫SEQUEL/2)。1980年改名为SQL。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2和SQL/DS数据库系统中也实现了SQL。

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89,该标准替代ANSI X3.135-1986版本。

产品设计

语句结构

结构化查询语言包含6个部分:

1、数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。

2、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。

3、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。

4、数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

5、数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE或DROP TABLE);为表加入索引等。

6、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

语言特点

SQL风格统一

SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。

高度非过程化

非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

面向集合的操作方式

SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

以同一种语法结构提供两种使用方式

SQL既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(如C、C#、JAVA)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的操作方式,为用户提供了极大的灵活性与方便性。

语言简洁,易学易用

SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。

SQL语句

数据定义

在关系数据库实现过程中,第一步是建立关系模式,定义基本表的结构,即该关系模式是哪些属性组成的,每一属性的数据类型及数据可能的长度、是否允许为空值以及其它完整性约束条件。

定义基本表:

CREATE TABLE([列级完整性约束条件]

[,[列级完整性约束条件]]…

[,[列级完整性约束条件]]

[,表列级完整性约束条件]);

说明:

①中是SQL语句必须定义的部分,[]中是SQL语句可选择的部分,可以省略的。

②CREATE TABLE表示是SQL的关键字,指示本SQL语句的功能。

③是所要定义的基本表的名称,一个表可以由一个或若干个属性(列)组成,但至少有一个属性,不允许一个属性都没有的表,这样不是空表的含义。多个属性定义由圆括号指示其边界,通过逗号把各个属性定义分隔开,各个属性名称互不相同,可以采用任意顺序排列,一般按照实体或联系定义属性的顺序排列,关键字属性组在最前面,这样容易区分,也防止遗漏定义的属性。

④每个属性由列名、数据类型、该列的多个完整性约束条件组成。其中列名一般为属性的英文名缩写,在Microsoft Access 2010中也可以采用中文,建议不要这样做,编程开发时不方便。

⑤完整性约束条件,分为列级的完整性约束和表级的完整性约束,如果完整性约束条件涉及该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由RDBMS自动检查该操作是否违背这些完整性约束,如果违背则RDBMS拒绝本次操作,这样保持了数据库状态的正确性和完整性,不需要用户提供检查,提高了编程的效率,降低了编程难度。列级的完整性通常为主关键字的定义、是否允许为空。表级的完整性约束条件一般为外码定义。

数据操纵

数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵。

①数据检索(常称为查询):寻找所需的具体数据。

②数据修改:插入、删除和更新数据。

数据操纵语言一般由INSERT(插入)、DELETE(删除)、UPDATE(更新)、SELECT(检索,又称查询)等组成。由于 SELECT经常使用,所以一般将它称为查询(检索)语言并单独出现。

数据管理

数据管理(又称数据控制)语言是用来管理(或控制)用户访问权限的。由GRANT(授权)、REVOKE(回收)命令组成。而Visual Foxpro6不支持这种权限管理。

SQL中的数据查询语句

数据库中的数据很多时候是为了查询,因此,数据查询是数据库的核心操作。而在SQL中,查询语言只有一条,即 SELECT语句。

特色功能

SQL具有数据定义、数据操纵、和数据控制的功能。

1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式(Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。

2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。

3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。

本百科词条由网站注册用户【 知识小玲 】编辑上传提供,当前页面所展示的词条介绍涉及宣传内容属于注册用户个人编辑行为,网站不完全保证内容信息的准确性、真实性,也不代表本站立场。 版权声明 反馈 我要认领
词条所在榜单
您还未登录,依《网络安全法》相关要求,请您登录账户后再提交发布信息。点击登录>>如您还未注册,可点击注册>>,感谢您的理解及支持!
最新评论
暂无评论
相关知识文章
十大热门编程语言排名 编程语言排行榜2023 编程语言哪个前景好
全世界有数种编程语言,但最常用的还是那几种。如今随着时代的发展,一些编程语言的受欢迎程度也发生着微妙的变化。本文中maiGoo小编就带大家看...
十大免费视频网站 在线视频网站盘点 免费看视频网站有哪些
中国互联网络信息中心发布的《中国互联网络发展状况统计报告》显示,我国网络视频用户已超过8.5亿,其中短视频用户规模超过7.73亿。除了抖音、...
1065万+
十大免费b2b网站 b2b电子商务平台排名 b2b免费商务平台有哪些
B2B是电子商务最成熟的商业模式之一。Maigoo网编辑从百度发布的《B2B行业洞察报告》获悉,机械工业、建材家装、水暖电工等等,是需求量最...
十大二手书交易网站 旧书网站推荐 卖二手书去哪个网站好
伴随90后、00后新消费主力人群的形成,各大二手交易平台逐渐年轻化,出售闲置物品也更加多元,除了交易数量较多的汽车、数码、服装等商品外,图书...
十大游戏交易平台排行榜 正规游戏账号交易平台 热门游戏交易平台
游戏交易平台有官方的,也有第三方的,无论选择哪一种,“安全交易”都是至关重要的,下面CNPP小编带大家了解下游戏交易平台有哪些、游戏交易平台...
国内十大电影下载网站 电影下载网站哪个最好 电影下载网站排行
随着国内版权意识的苏醒,以及各种“严打”,各个电影下载网站岌岌可危,那至今存活的电影下载网站哪个最好呢?Maigoo小编就为大家带来了国内十...
十大日本动漫网站 动漫追番网站盘点 看日本动漫什么网站好
追番人数、评分和播放量一直是评价一部动漫是否优秀的三个重要指标。在大批动漫网站平台中,你常用哪个网站来看优质日漫?最适合追番的网站有哪些?本...
124万+
十大欧美网站 国外网站排名 知名海外网站有哪些
互联网起源于20世纪60年代末的美国阿帕网,发展至21世纪,它已与各行各业息息相关,影响着全世界的发展和社会格局。Maigoo小编在本文中盘...
103万+
十大炒股软件 炒股软件排行榜前十名 股票软件哪个最好用
炒股软件哪个最好?市面上的股票软件众多,而对于分析行情走势,了解市场的动态,选择一款好的炒股软件很重要,那么最好的股票app有哪些?下面Ma...
十大手游交易平台排行榜 靠谱的手游交易平台 正规手游交易平台推荐
近些年手机游戏市场规模逐年增长,游戏装备交易、账号交易,已是屡见不鲜。那么手游交易平台有哪些呢,手游交易平台哪个好?下面maigoo小编就和...
十大可以赚钱的软件 十大赚钱软件排名 有什么能赚钱的软件
你在手机上消磨时间,而有人已经在手机上赚到了生活费。下面就跟随Maigoo小编来看看挣钱的软件有哪些、适合学生赚钱的软件有哪几个。热门且合法...
十大电影网站排名 免费看电影网站推荐 在线电影网站有哪些
近年,我国网络视频用户量稳步增长,已超出8.5亿,占网民整体的94.1%。在线电影网站行业中,爱奇艺、腾讯视频、优酷三大电影网站市场份额最高...
330万+
十大最好玩小程序游戏 微信小程序游戏排行 最火微信小游戏推荐
微信小程序游戏是时下最主流的休闲方式之一。要说最火小程序游戏,如羊了个羊、肥鹅健身房、动物餐厅、成语小秀才、旅行串串、腾讯桌球等,均名列其中...
十大图片网站排行榜 图片素材网站推荐 免费高清图片网站有哪些
图片素材通常没有突出的主题,但经过设计师的加工后,就成为了一件完整的作品。一个好的图片素材能让设计作品的完工起到事半功倍的效果。本文中mai...
最受男士喜爱的十大网站 男人上网常用的网站
全世界的男人喜欢什么网站?这其实没有标准答案,毕竟多数人的爱好,以及对事物的关注点都是不同的。不过话又说回来了,男人之间更容易相互了解,也存...
64万+
十大录屏软件 录屏软件哪个好 屏幕录制软件哪个好用
随着电脑录屏需求的急剧增长,win10系统的基本普及,电脑基于xbox自带的录屏功能,解决了越来越多人的需求;然而除了这项自带应用外,第三方...
十大最好用的输入法盘点 最受欢迎的输入法排行 十大输入法品牌
输入法是指为将各种符号输入计算机或其他设备(如手机)而采用的编码方法,同时是书写工具克服墨水限制的最终结果,是一种拥有无限墨水的书写工具,是...
十大编程软件排行榜 编程开发工具大全 c语言编程软件有哪些
世界上主流的编程语言有C、Java、Python、C++、C#、Visual Basic、PHP等,针对这些编程语言,又有相对应的Visua...
十大天气预报APP软件 好用的天气app排行 天气预报软件哪个最准确
比达咨询(BDR)研究数据显示,我国移动天气软件以2009-2013年为萌芽期,各类天气预报app相继衍生,到2016年得益于大数据、物联网...
十大壁纸软件排名 电脑壁纸软件哪个好用 动态壁纸软件有哪些
无论是早年的Win7,还是逐渐普及开来的Win10,许多用户仍然对原生桌面的美观性有着一成不变的追求,进而使用起了第三方美化工具,如各类动态...