数据库语言

2017/1/22 8:28:13 来源:生活奇事网
    SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。
中文名数据库语言使    用SQL语言操作对象记录集合国际标准SQL标准

目录

  1. 1 简介
  2. 2 国际标准
  3. 3 起源
  4. 4 标准语句
  5. 5 类型

简介

编辑
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。[1] 
结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。[2] 

国际标准

编辑
美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical 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年,IBM公司开始研制实验型关系数据库管理系统SYSTEM R,为其配制的查询语言称为SQUARE(Specifying Queries As Relational Expression)语言,在该语言中使用了较多的数学符号。1974年,Boyce和Chamberlin把SQUARE修改为SEQUEL(Structured English QUEry Language)语言。这两个语言在本质上是相同的,但后者去掉了数学符号,采用英语单词表示和结构式的语法规则,看起来很像英语句子,用户比较欢迎这种形式的语言。后来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/IEC 9075:1992《数据库语言SQL》”,我们称其为SQL92或SQL2标准。1999年ISO又颁布了“ISO/IEC 9075:1999《数据库语言SQL》”标准化文件,我们称其为SQL99或SQL3标准。

标准语句

编辑
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEMA --从数据库中删除一个模式
CREATE DOMAIN --创建一个数据值域
ALTER DOMAIN --改变域定义
DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限
--事务控制
COMMIT --结束当前事务
ROLLBACK --回滚当前事务
SET TRANSACTION --定义当前事务数据访问特征
--程序化SQL
DECLARE --为查询设定游标
EXPLAN --为查询描述数据访问计划
OPEN --检索查询结果打开一个游标
FETCH --检索一行查询结果
CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询
---局部变量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---全局变量[1] 
---必须以@@开头
--IF ELSE
declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @y
print 'x > y' --打印字符串'x > y' else if @y > @z print 'y > z' else print 'z > y'
--CASE use pangu
update employee set e_wage = case
when job_level = ‟1‟ then e_wage*1.08 when job_level = ‟2‟ then e_wage*1.07 when job_level = ‟3‟ then e_wage*1.06 else e_wage*1.05 end
--WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1while @x < 3 begin
print @x --打印变量x 的值 while @y < 3 begin
select @c = 100*@x + @y print @c --打印变量c 的值 select @y = @y + 1 end
select @x = @x + 1 select @y = 1 end
--WAITFOR
--例 等待1 小时2 分零3 秒后才执行SELECT 语句 waitfor delay ‟01:02:03‟ select * from employee
--例 等到晚上11 点零8 分后才执行SELECT 语句 waitfor time ‟23:08:00‟ select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value ex:(宿主)
select * from stock_information where stockid = str(nid) stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的范围) stockname like '[^F-M]%' --------- (^排除指定范围)
--------- 只能在使用like关键字的where子句中使用通配符) or stockpath = 'stock_path' or stocknumber < 1000 and stockindex = 24 not stock*** = 'man'
stocknumber between 20 and 100 stocknumber in(10,20,30)

类型

编辑
※数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
※数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
※ 数据查询语言(DQL),例如:SELECT语句。(一般不会单独归于一类,因为只有一个语句)。
※数据控制语言(DCL),例如:GRANT、REVOKE等语句。
※事务控制语言(TCL),例如:COMMIT、ROLLBACK等语句。
SQL语言包括四类种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)还有事务控制语言(TCL)
3,352 ° 来自:PC 广东省深圳市
上一篇: 手机APP三年内将彻底消失,以后全靠HTML5了
下一篇: 计算机语言

亲,沙发正空着,还不快来抢?

Back to Top