种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

资料库语言

(2019-12-31 18:57:33) 百科综合
资料库语言

资料库语言

SQL是高级的非过程化程式语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同资料库系统可以使用相同的SQL语言作为数据输入与管理的接口。

基本介绍

  • 中文名:资料库语言
  • 外文名:database language
  • 使用:SQL语言
  • 操作对象:记录集合
  • 国际标準:SQL标準

简介

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标準。
资料库语言以记录集合作为操作对象,所有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)与国际标準化组织(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标準。

标準语句

--数据操作
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'
---全局变数
---必须以@@开头
--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)。

标 签

搜索
随机推荐

Powered By 种豆资源网||