SQL包括了所有对数据库的操作,主要是由4个部分组成分别是:
1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
一、数据定义
SQL数据定义功能包括定义数据库、基本表、索引和视图。
1.数据库的建立与删除
(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:
CREATE DATABASE <数据库名> 〔其它参数〕
其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。
(2)数据库的删除:将数据库及其全部内容从系统中删除。
其语句格式为:DROP DATABASE <数据库名>
2.基本表的定义及变更
本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。
二、数据查询
SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。
1.无条件查询 2.条件查询 3.排序查询 4.嵌套查询 5.计算查询
三、数据更新
数据更新包括数据插入、删除和修改操作。它们分别由INSERT语句,DELETE语句及UPDATE语句完成。这些操作都可在任何基本表上进行,但在视图上有所限制。其中,当视图是由单个基本表导出时,可进行插入和修改操作,但不能进行删除操作;当视图是从多个基本表中导出时,一下三种操作都不能进行。
1.数据插入SQL的基本表有两种方式
l 单元组的插入:向基本表score中插入一个成绩元组(100002,c02,95),
l 多元组的插入:这是一种把SELECT语句查询结果插入到某个已知的基本表中的方法。
2.数据删除
SQL的删除操作是指从基本表中删除满足WHERE<条件表达式>的记录。
l 单元组的删除:把学号为100002的学生从表student中删除
l 多元组的删除:学号为100002的成绩从表score中删除,
3.数据修改
修改语句是按SET子句中的表达式,在指定表中修改满足条件表达式的记录的相应列值。
SQL的删除语句和修改语句中的WHERE子句用法与SELECT中WHERE子句用法相同。数据的删除和修改操作,实际上要先做SELECT查询操作,然后再把找到的元组删除或修改。
四、数据控制
由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能有3种。
1.安全性控制
数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据。即限定不同用户操作不同的数据对象的权限。
存取权控制包括权力的授予、检查和撤消。权力授予和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库操作前,先核实相应用户是否有权在相应数据上进行所要求的操作。
2.完整性控制
数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过CREATE TABLE语句中的〔CHECK〕子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。
3.事务控制
事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个操作序列(集合),这些操作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
SQL提供了事务提交和事务撤消两种命令:
(1)事务提交:事务提交标志着对数据库的某种应用操作成功地完成,所有对数据库的操作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。
(2)事务撤消:事务撤消标志着相应事务对数据库操作失败,因而要撤消对数据库的改变,即要“回滚”到相应事务开始时的状态。