折叠 编辑本段 简360百科介
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。
结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为乐管改持清司回其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简功下斯兰述跑理菜缺未早单易学,所以自从IBM公司1981年推出以来,SQL则会林总管损审否差流须语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL Server利板这些大型的数据库管理系统,还乎是像Visual Foxpro最率者除计是态条费夜苏、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。
折叠 编辑本段 国际标准
美国国家标准局(ANSI)施呼曾今与国际标准化组织(IS际O)已经制定了SQ指形二条含班岩守L标准。ANSI是一个美国工业和商业集团组织,负责开发美国的检剂些顾步额耐包才商务和通讯标准。ANSI同时准景顶队须经照径生早妒也是ISO和International Electr油调蒸马远规阻划代otechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL拉脸着聚补办苗扩训静含版本有一些差异,但大多富手目海争质额吃最掉面数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。
折叠 编策原英击求辑本段 起源
1970年,美国IBM研究中心的E.F.Codd连续发表多篇论文,提出关系模型。1972年,I象乡画哥初队每吃老BM公司开始研制实验型关系数据库管理系统SYSTEM R,为其配制的查询语言称为SQUARE(Specifying Queries As Relational Expression)语言,在该语言中使用了较多的数学符号。1974年,Boyce和Chambe逐投财基双政镇创汉rlin把SQUARE修改为SEQUEL(Structured English Q存该奏她动既硫UEry Langu政担世不川做被age)语言。这两个语言在本质上是相同的,但后者去掉了数学符号,采用英语单词表示和结构式的语法规则,看起来很像英语句子,用尔话斗的此户比较欢迎这种形式的语言。后来SEQUEL革老己金简称为SQL(Structured Query Language)语言,即"结构化查询语言"。
在认识到关系模型的诸多优越性后,许多厂商纷纷研制关系数据库管理系统(例如:Oracle、DB2、Sybase等),这些数据库管理系统的操纵语言也以SQL参照。1986年10月美国国家标准化协会(ANSI)发布了X3.135-1986《数据库转措握语言SQL》,1987年6月讨诉装春称并胡机国际标准化组织(ISO)采纳步读众让距映阻为罪好其为国际标准。我临们称其为"SQL-86"标准。1989年10月,ANSI又颁布了增强完整性特征的"SQL-89"标准。随后,ISO对该标准进行了大量四的修改和扩充,在1992年8月发布了标准化文件"ISO/I标林裂EC 9075:1992《数据库语言SQL》",我们称其为SQL92或SQL2标准。1999年ISO又颁布了"ISO/IEC 9075:1999《数据库语言SQL》"标准化文件,我们称其为SQL99或SQL3标准。
依需觉折叠 编辑本段 标准语句
--推了际帮入司数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据春乡劳集河办你库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE 季书括TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABL湖领指成编E --修改数据库表结构
CREATE VIEW --创建一个视图
D结令整ROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建要二菜愿合一个存储过程
DROP 于挥百增PROCEDURE --从数据库中删除存储里期评拉刘套团宗端过程
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEM接代A --从数据库中删除一个模式
C排树业输该爱亚属帮REATE DOMAIN --击创建一个数据值域
ALTER DOMAIN --改变域定义
DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限
--事务控制
COMMIT --结束当前事务
ROLLBACK 证值谓够调严--中止当前事务
S地度胜ET TRANSAC煤程务东哪TION --定义当前事务数据访问特征
--程序化SQL
DECLARE --为查询设定游标
EXPL城称者乱热金AN --为查询描述数据访问计划
OPEN --检索查越分爱第何询结果打开一个游标
FETCH -内逐和朝-检索一行查询结果
CL方溶治四输改止OSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描属述准备好的查询
---局部变量
d很测教度云杨英种家eclare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---全局变量