SQL基础

SQL基础

简单介绍

SQL语言,是结构化查询语言(Structured Query Language)的简称。

SQL的功能包括:数据定义语言(DDL)、数据操纵语言(DML)、数据查询语言(DQL)、数据控制语言(DCL)。

SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

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

结构化查询语言SQLSTRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。

 

支持标准

SQL 198610 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。19894月,ISO提出了具有完整性特征的SQL89标准,199211月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集标准集完全集

 

其他版本

各种不同的数据库对SQL语言的支持与标准存在着细微的不同,这是因为,有的产品的开发先于标准的公布,另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。已有100多种遍布在从微机到大型机上的数据库产品SQL,其中包括DB2SQL/DSORACLEINGRESSYBASESQLSERVERDBASEⅣ、PARADOXMICROSOFTACCESS等。

SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQLDBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。可以看出标准化的工作是很有意义的。早在1987年就有些有识之士预测SQL的标准化是“一场革命”,是“关系数据库管理系统的转折点”。数据库和各种产品都使用SQL作为共同的数据存取语言和标准的接口,使不同数据库系统之间的互操作有了共同的基础,进而实现异构机、各种操作环境的共享与移植。

1974年,在IBM公司圣约瑟研究实验室研制的大型关系数据库管理系统SYSTEM R 中,使用SEQUEL语言(由BOYCE CHAMBERLIN 提出),后来在SEQUEL 的基础上发展了SQL 语言。 SQL语言是一种交互式查询语言,允许用户直接查询存储数据,但它不是完整的程序语言,如它没有DOFOR 类似的循环语句,但它可以嵌入到另一种语言中,也可以借用VBCJAVA等语言,通过调用级接口(CALL LEVEL INTERFACE)直接发送到数据库管理系统。SQL基本上是域关系演算,但可以实现关系代数操作。

 

语言特点

  1. 一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。
  2. 使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到CC++FORTRANCOBOLJAVA等主语言中使用。
  3. 非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。
  4. 语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。

 

数据定义语言(DDL)

数据定义语言 (Data Definition Language, DDL) SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATEALTERDROP三个语法所组成,最早是由 Codasyl (Conference on Data Systems Languages) 数据模型开始,现在被纳入 SQL 指令中作为其中一个子集。目前大多数的DBMS都支持对数据库对象的DDL操作,部份数据库 ( PostgreSQL) 可把DDL放在交易指令中,也就是它可以被撤回 (Rollback)。较新版本的DBMS会加入DDL专用的触发程序,让数据库管理员可以追踪来自DDL的修改。

CREATE

CREATE是负责数据库对象的建立,举凡数据库、数据表、数据库索引、预存程序、用户函数、触发程序或是用户自定型别等对象,都可以使用 CREATE 指令来建立,而为了各式数据库对象的不同,CREATE也有很多的参数。下述是常用建立不同数据库对象的指令:

  1. CREATE DATABASE:建立数据库;
  2. CREATE INDEX:建立数据表索引;
  3. CREATE PROCEDURE:建立预存程序;
  4. CREATE FUNCTION:建立用户函数;
  5. CREATE VIEW:建立查看表;
  6. CREATE TRIGGER:建立触发程序。

 

ALTER

ALTER 是负责数据库对象修改的指令,相较于 CREATE 需要定义完整的数据对象参数,ALTER 则是可依照要修改的幅度来决定使用的参数,因此使用上并不会太困难。

 

DROP

DROP则是删除数据库对象的指令,并且只需要指定要删除的数据库对象名称即可,在 DDL 语法中算是最简单的。

 

数据操纵语言(DML)

数据操纵语言(Data Manipulation Language, DML):用户通过它可以实现对数据库的基本操作。

插操作

把数据插入到数据库中指定的位置上去,如Append是在数据库文件的末尾添加记录,而INSERT是在指定记录前添加记录。

删操作

删除数据库中不必再继续保留的一组记录,如DELETE对数据库中记录作删除标志。PACK是将标有删除标志的记录彻底清除掉。ZAP是去掉数据库文件的所有记录。

改操作

修改记录或数据库模式,或在原有数据的基础上,产生新的关系模式和记录,如连接Join操作和投影操作Projection

排序操作

改变物理存储的排列方式。如SORT命令按指定关键字串把DBF文件中记录排序。从物理存储的观点看,数据库发生了变化,但从逻辑的观点(或集合论观点看),新的关系与排序前是等价的。

检索操作

从数据库中检索出满足条件的数据,它可以是一个数据项, 一个记录或一组记录。如BROWSE单元实现对数据的浏览操作。SELECT选出满足一定条件和范围的记录。

 

数据控制语言(DCL)

数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANTDENYREVOKE等语句,在默认状态下,只有sysadmindbcreatordb_ownerdb_securityadmin等角色的成员才有权利执行数据控制语言。

GRANT

GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。

DENY

DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。

REVOKE

REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。

发布了858 篇原创文章 · 获赞 667 · 访问量 161万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章