结构化查询语言详细资料大全
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的程式语言,是一种资料库查询和程式设计语言,用于存取数据以及查询、更新和管理关系资料库系统;同时也是资料库脚本档案的扩展名。
结构化查询语言是高级的非过程化程式语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同资料库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式资料库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的资料库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同资料库系统之间的SQL不能完全相互通用。
基本介绍 中文名 : 结构化查询语言 外文名 : Structured Query Language 通过时间 :1986年10月 所属领域 :资料库 持续时间 :28年经久不衰 语言简介,套用,支持标准,其他版本,语句结构,发展历史,数据类型,字元型,文本型,数值型,逻辑型,日期型,语言特点,使用简要,选择列表,FROM子句,WHERE子句,查询结果排序,相关函式, 语言简介 套用 结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系资料库操作语言,并且它的影响已经超出资料库领域,得到其他领域的重视和采用,如人工智慧领域的数据检索,第四代软体开发工具中嵌入SQL的语言等。 支持标准 SQL 是1986年10 月由美国国家标准局(ANSI)通过的资料库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把资料库分为三个级别:基本集、标准集和完全集。 其他版本 各种不同的资料库对SQL语言的支持与标准存在着细微的不同,这是因为,有的产品的开发先于标准的公布,另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。已有100多种遍布在从微机到大型机上的资料库产品SQL,其中包括DB2、SQL/DS、ORACLE、INGRES、SYBASE、SQLSERVER、DBASEⅣ、PARADOX、MICROSOFTACCESS等。 SQL语言基本上独立于资料库本身、使用的机器、网路、作业系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于区域网路、小型机和大型机的各种计算机系统上,具有良好的可移植性。可以看出标准化的工作是很有意义的。早在1987年就有些有识之士预测SQL的标准化是“一场革命”,是“关系资料库管理系统的转折点”。资料库和各种产品都使用SQL作为共同的数据存取语言和标准的接口,使不同资料库系统之间的互操作有了共同的基础,进而实现异构机、各种操作环境的共享与移植。 1974年,在IBM公司圣约瑟研究实验室研制的大型关系资料库管理系统SYSTEM R 中,使用SEQUEL语言(由BOYCE 和CHAMBERLIN 提出),后来在SEQUEL 的基础上发展了SQL 语言。 SQL语言是一种互动式查询语言,允许用户直接查询存储数据,但它不是完整的程式语言,如它没有DO或FOR 类似的循环语句,但它可以嵌入到另一种语言中,也可以借用VB、C、JAVA等语言,通过调用级接口(CALL LEVEL INTERFACE)直接传送到资料库管理系统。SQL基本上是域关系演算,但可以实现关系代数操作。 语句结构 结构化查询语言包含 6 个部分 : 一:数据查询语言(DQL:Data Query Language): 其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程式给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。 二:数据操作语言(DML:Data Manipulation Language): 其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。 三:事务处理语言(TPL): 它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。 四:数据控制语言(DCL): 它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对资料库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。 五:数据定义语言(DDL): 其语句包括动词CREATE和DROP。在资料库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人资料库目录中获得数据有关的保留字。它也是动作查询的一部分。 六:指针控制语言(CCL): 它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。 发展历史 在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版本。该标准为下列组织所采纳: 国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement” 美国联邦 *** ,发布在The Federal Information Processing Standard Publication(FIPS PUB)127 目前(21世纪初期)主要的关系资料库管理系统支持某些形式的SQL,大部分资料库打算遵守ANSI SQL89标准。 数据类型 简要描述一下结构化查询语言中的五种数据类型: 字元型,文本型,数值型,逻辑型和日期型。 字元型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字元串长度小于255的字元。 假如你向一个长度为四十个字元的VARCHAR型栏位中输入数据Bill Gates。当你以后从这个栏位中取出此数据时,你取出的数据其长度为十个字元——字元串Bill Gates的长度。假如你把字元串输入一个长度为四十个字元的CHAR型栏位中,那么当你取出数据时,所取出的数据长度将是四十个字元。字元串的后面会被附加多余的空格。 当你建立自己的站点时,你会发现使用VARCHAR型栏位要比CHAR型栏位方便的多。使用VARCHAR型栏位时,你不需要为剪掉你数据中多余的空格而操心。 VARCHAR型栏位的另一个突出的好处是它可以比CHAR型栏位占用更少的记忆体和硬碟空间。当你的资料库很大时,这种记忆体和磁碟空间的节省会变得非常重要。 文本型 TEXT 使用文本型数据,你可以存放超过二十亿个字元的字元串。当你需要存储大串的字元时,应该使用文本型数据。 注意文本型数据没有长度,而上一节中所讲的字元型数据是有长度的。一个文本型栏位中的数据通常要么为空,要么很大。 当你从HTML FORM的多行文本编辑框(TEXTAREA)中收集数据时,你应该把收集的信息存储于文本型栏位中。但是,无论何时,只要你能避免使用文本型栏位,你就应该不使用它。文本型栏位既大且慢,滥用文本型栏位会使伺服器速度变慢。文本型栏位还会吃掉大量的磁碟空间。 一旦你向文本型栏位中输入了任何数据(甚至是空值),就会有2K的空间被自动分配给该数据。除非删除该记录,否则你无法收回这部分存储空间。 数值型 整数 INT 、小数NUMERIC、钱数MONEY INT VS SMALLINT VS TINYINT 通常,为了节省空间,应该尽可能的使用最小的整型数据。一个TINYINT型数据只占用一个位元组;一个INT型数据占用四个位元组。这看起来似乎差别不大,但是在比较大的表中,位元组数的增长是很快的。另一方面,一旦你已经创建了一个栏位,要修改它是很困难的。因此,为安全起见,你应该预测一下,一个栏位所需要存储的数值最大有可能是多大,然后选择适当的数据类型。 NUMERIC 为了能对栏位所存放的数据有更多的控制,你可以使用NUMERIC型数据来同时表示一个数的整数部分和小数部分。NUMERIC型数据使你能表示非常大的数——比INT型数据要大得多。一个NUMERIC型栏位可以存储从-10^38到10^38范围内的数。NUMERIC型数据还使你能表示有小数部分的数。例如,你可以在NUMERIC型栏位中存储小数3.14。 MONEY VS SMALLMONEY 你可以使用 INT型或NUMERIC型数据来存储钱数。但是,专门有另外两种数据类型用于此目的。如果你希望你的网点能挣很多钱,你可以使用MONEY型数据。如果你的野心不大,你可以使用SMALLMONEY型数据。MONEY型数据可以存储从-922,337,203,685,477.5808到922,337,203,685,477.5807的钱数。如果你需要存储比这还大的金额,你可以使用NUMERIC型数据。 SMALLMONEY型数据只能存储从-214,748.3648到214,748.3647 的钱数。同样,如果可以的话,你应该用SMALLMONEY型来代替MONEY型数据,以节省空间。 逻辑型 BIT 如果你使用复选框(CHECKBOX)从网页中蒐集信息,你可以把此信息存储在BIT型栏位中。BIT型栏位只能取两个值:0或1。 当心,在你创建好一个表之后,你不能向表中添加 BIT型栏位。如果你打算在一个表中包含BIT型栏位,你必须在创建表时完成。 日期型 DATETIME VS SMALLDATETIME 一个 DATETIME型的栏位可以存储的日期范围是从1753年1月1日第一毫秒到9999年12月31日最后一毫秒。 如果你不需要覆盖这么大范围的日期和时间,你可以使用SMALLDATETIME型数据。它与DATETIME型数据同样使用,只不过它能表示的日期和时间范围比DATETIME型数据小,而且不如DATETIME型数据精确。一个SMALLDATETIME型的栏位能够存储从1900年1月1日到2079年6月6日的日期,它只能精确到秒。 DATETIME型栏位在你输入日期和时间之前并不包含实际的数据,认识这一点是重要的。 语言特点 1.一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成资料库中的全部工作。 2.使用方式灵活:它具有两种使用方式,即可以直接以命令方式互动使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。 3.非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。 4.语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。 软道语录 结构化查询语言 SQL(Structured Query Language,结构化查询语言)是一种用于资料库操作的语言。 使用简要 简单的Transact-结构化查询语言查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜寻条件等。 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变数(包括局部变数和全局变数)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名 列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT 暱称=nickname,电子邮件=email FROM testtable。 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。TOP命令仅针对SQL Server系列资料库,并不支持Oracle资料库。 FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: SELECTusername,citytable.cityid FROMusertable,citytable WHEREusertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名
表名 别名 WHERE子句 WHERE子句设定查询条件,过滤掉不需要的数据行。 WHERE子句可包括各种条件运算符: 比较运算符(大小比较):>;、>=、=、<;、<=、<>;、!>;、!< 范围运算符(表达式值是否在指定的范围):BETWEEN…AND… NOT BETWEEN…AND… 列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……) NOT IN (项1,项2……) 模式匹配符(判断值是否与指定的字元通配格式相符):LIKE、NOT LIKE 空值判断符(判断表达式是否为空):IS NULL、IS NOT NULL 逻辑运算符(用于多条件的逻辑连线):NOT、AND、OR 1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30 2、列表运算符例:country IN ('Germany','China') 3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字元串格式相匹配。可用于char、varchar、text、ntext、datetime和 *** alldatetime等类型查询。 可使用以下通配字元: 百分号%:可匹配任意类型和长度的字元,如果是中文,请使用两个百分号即%%。 下划线_:匹配单个任意字元,它常用来限制表达式的字元长度。 方括弧[]:指定一个字元、字元串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字元以外的任一个字元。 查询结果排序 使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为: ORDER BY {column_name [ASC|DESC]} [,…n] 其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按ntext、text和image数据类型进行排序。 相关函式 SQL Aggregate 函式 SQL Aggregate 函式计算从列中取得的值,返回一个单一的值。 有用的 Aggregate 函式: AVG() - 返回平均值 COUNT() - 返回行数 FIRST() - 返回第一个记录的值 LAST() - 返回最后一个记录的值 MAX() - 返回最大值 MIN() - 返回最小值 SUM() - 返回总和 SQL Scalar 函式 SQL Scalar 函式基于输入值,返回一个单一的值。 有用的 Scalar 函式: UCASE() - 将某个栏位转换为大写 LCASE() - 将某个栏位转换为小写 MID() - 从某个文本栏位提取字元 LEN() - 返回某个文本栏位的长度 ROUND() - 对某个数值栏位进行指定小数位数的四舍五入 NOW() - 返回当前的系统日期和时间 FORMAT() - 格式化某个栏位的显示方式
请问SQL语句都包含哪几类?
1、SQL语句:SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的...
SQL的功能是什么?
SQL(结构化查询语言)用于存取数据以及查询、更新和管理关系数据库系统。SQL基于关系代数和元组关系演算,包括一个数据定义语言和数据操纵语言。SQL的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。尽管很大程度上是一种声明式编程(4GL),但是其也含有过程式编程的元素。SQL...
资料库语言有哪些
资料库语言有哪些 资料库语言最常用的是SQL (结构化查询语言)。 t-sql 是微软SQL SERVER的SQL语句,相容SQL,并具有SQL SERVER本身独有的函式、关键字; pl\/sql是针对Oracle资料库的第三方工具; k-sql是国内最领先ERP厂商金蝶软体自主使用的sql语言。都是基于sql的,相容sql,也有符合自己资料库的特色。可以这么理...
SQL查询语句
结构化查询语言包含6个部分:1、数据查询语言(DQL: Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
Sql语言是一个什么语言
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和...
insertinto的用法
Insert Into是用于向数据库表中插入新记录的基本SQL命令。详细解释:1. 基本定义:Insert Into是结构化查询语言中的一种命令,用于将新记录插入到数据库表中。这个命令的基本语法结构包括指定表名、列名和要插入的值。2. 语法说明:语法形式为 "INSERT INTO 表名称 VALUES "。其中,"表名称" 是要插...
什么是SQL
SQL是structured query language结构化查询语言的缩写,它是目前使用最为广泛的数据库语言,SQL是有IBM发展起来的,后来被许多数据库软件公司接受而成为业内的一个标准 就像SQL的名字一样,用户可以通过容易理解的查询语言来和数据库打交道。从数据库中得到想要的数据,SQL语言有以下两个组成部分 DML(data...
怎样用SQL语句查询一个数据库中的所有表
查询数据库里所有表名和字段名的语句 SQL 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'SELECT * FROM INFORMATION_SCHEMA.TABLES 结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;sql 语...
sql具有数据哪几个四种主要功能
sql具有数据的定义、查询、更新 、控制四种主要功能。sql是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体...
请问SQL语句必须用大写,是不是规范
SQL推荐使用大写,但是使用小写也可以,没有硬性要求。1、SQL语言简介:结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。2、功能:SQL具有数据定义、数据操纵和数据控制的功能。SQL数据定义功...
乐正桑甘氨: 结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ S-Q-L),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩...
阿图什市17815634369: 结构化查询语言的介绍是什么? ?
乐正桑甘氨: [1]结构化查询语言(StructuredQueryLanguage)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言 这是我的回答,希望对你有帮助.
阿图什市17815634369: sql语言(结构化查询语言)简介 - ?
乐正桑甘氨: SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执...
阿图什市17815634369: 结构化查询语言有什么特点? ?
乐正桑甘氨: 结构化查询语言语言特点编辑1.一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作
阿图什市17815634369: SQL是什么? - ?
乐正桑甘氨: SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言.SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用.如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言.
阿图什市17815634369: 在结构化查询语言中,根据对数据库不同的操作,结构化查询语言分为哪几种?分别执行哪些操作?举例说明.?
乐正桑甘氨: SQL可分为5类:l 查询语句 用于检索数据库表中存储的行.可以使用SQL的SELECT语句编写查询语句.l 数据操纵语言(Data Manipulation Language, DML)语句 用于修改表的内容.DML语句有三种,分别为Insert,Update,Delete.l 数据定义...
阿图什市17815634369: 结构化查询语言的语句结构 - ?
乐正桑甘氨: 结构化查询语言包含6个部分:一:数据查询语言(DQL:Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出.保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL...
阿图什市17815634369: sql 语言 - ?
乐正桑甘氨: SQL:结构化查询语言(Structured Query Language)的简称.最早是IBM的圣约瑟研究实验室开发的一种查询语言,它的前身是SQUARE语言.美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定的工业标准语言,...
阿图什市17815634369: SQL 语言介绍 - ?
乐正桑甘氨: SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.见参考资料