四、数据更新
1.数据插入
语法:1)单元组的插入:
INSERT INTO <基本表名> [(<列名序列>)] VALUES(<元组值>)
2)多元组的插入
INSERT INTO <基本表名> [(<列名序列>)] VALUES(<元组值>),
(<元组值>),…, (<元组值>)
3)查询结果的插入
INSERT INTO <基本表名> [(<列名序列>)] <SELECCT查询语句>
4)表的插入
INSERT INTO <基本表名1> [(<列名序列>)] TABLE <基本表名2>
说明:在上述各种插入语句中,如果插入的值在属性个数、顺序与基本表的结构完全一致,那么基本表后的(<列名序列>)可省略,否则必须详细列出。
2.数据删除
语法:DELETE FROM <基本表名>
[WHERE <条件表达式>]
说明:如果省略WHERE子句,表示删除基本表中所有元组。
例:把课程名为MATHS的成绩从基本表SC中删除。
DELETE FROM SC
WHERE C# IN(SELECT C# FROM C WHERE CNAME=‘MATHS’)
3.数据修改
语法:UPDATE <基本表名>
SET <列名>=<值表达式>[,<列名>=<值表达式>…]
| ROW=(<元组>) [WHERE <条件表达式>]
例1:把C5课程的课程名改为DB。
UPDATE C
SET CNAME=‘DB’
WHERE C#=‘C5’
例2:把课程号为C5的元组修改为(C5,DB,T3)
UPDATE C
SET ROW=(‘C5’,‘DB’,‘T3’)
WHERE C#=‘C5’
五、视图
1.在SQL中,外模式一级数据结构的基本单位是视图。
2.视图的定义:视图是从若干基本表和(或)其他视图构造出来的表。这种构造方法采用SELECT语句实现。在我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,在用户使用视图时才去求对应的数据。因此,视图被称为“虚表”。
3.视图的创建
语法:CREATE VIEW <视图名>(<列表序列>)
AS <SELECT查询语句>
4.视图的撤销
语法:DROP VIEW <视图名>
5.对视图的操作
1)视图的查询操作,与基本表一样。
2)视图的更新操作,一般仅限于“行列子集视图”。
行列子集视图:如果视图是从单个基本表中只使用选择、投影操作导出的,并且包含了基本表的主键,那么这样的视图称为“行列子集视图”。
六、嵌入式SQL
1.SQL语言有两种使用方式:一种是在终端交互方式下使用,称为交互式SQL;另一种是在主语言的程序中使用,称为嵌入式SQL。
2.嵌入式SQL的实现,有两种处理方式:一种是扩充主语言的编译程序,使之能处理SQL语句;另一种是采用预处理方式。目前多数系统采用后一种方式。
预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成主语言的函数调用形式;然后再用主语言的编译程序编译成目标程序。
3.嵌入式SQL的使用规定:
1)在程序中要区分SQL语句与主语言语句。
2)允许嵌入的SQL语句引用主语言的程序变量(成为共享变量)。
3)通过游标协调SQL的集合处理方式和主语言的单记录处理方式
七、存储过程
1.存储过程是使用SQL语句和流程控制语句编写的模块,存储过程经编译和优化后存储在数据库服务器端的数据库中,使用时调用即可。
2.使用存储过程的优点:
1)提高运行速度;
2)增强了SQL的功能和灵活性。
3)可以降低网络的通信量;
4)减轻了程序编写的工作量;
5)间接实现安全控制功能。