第03章 关系数据库标准语言SQL-3.ppt
文本预览下载声明
3.1 概述
3.2 数据定义
3.3 查询
3.4 数据更新
3.5 视图
3.6 数据控制
3.7 嵌入式SQL
3.8 小结;3.3.1 概述
3.3.2 单表查询
3.3.3 连接查询
3.3.4 嵌套查询
3.3.5 集合查询
3.3.6 小结 ;3.3 查询;3.3 查询;3.3 查询;3.3 查询;3.1 概述
3.2 数据定义
3.3 查询
3.4 数据更新
3.5 视图
3.6 数据控制
3.7 嵌入式SQL
3.8 小结;3.4.1 插入数据
3.4.2 修改数据
3.4.3 删除数据
;两种插入数据方式
插入单个元组
插入子查询结果
;1. 插入单个元组
INSERT INTO 表名 [(属性列1[,
属性列2 …)]
VALUES (常量1 [,常量2] … )
在插入数据时,DBMS会自动检查完整性,破坏完整性的数据将会被警告,插入失败。;INTO子句
指定要插入数据的表名及属性列
属性列的顺序可与表定义中的顺序不一致
没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致
指定部分属性列:插入的元组在其余属性列上取空值
VALUES子句
提供的值必须与INTO子句匹配
值的个数
值的类型;[例58] 将一个新的系插入到系别表(dept)中,系
代码为‘PH’,名称为‘物理系’。
insert into dept(deptid, deptname)
values (‘PH’,’物理系’)
由于插入的数据包括了全部的列,并按列的定义顺序排列,可以省略列的名字,写成:
insert into dept
values (‘PH’,’物理系’);[例59] 将一名物理系的新生信息插入到学生信
息表(student)中。该学生的信息如下:
陈冬,男,87.3.20出生,学号:05020
insert into student
values ( 05020 , 陈冬, 1 , 87-3-20 , PH) ;[例60] 刚插入的05020学生选修了‘1’号课程,将
这个选课记录插入到选课登记表。
insert into SC(sno,cno)
values (‘ 05020 ’, ‘ 1 ’)
注:成绩(grade)栏将为空。
思考:
例58-60三条插入操作可以随意变动次序吗?;2. 插入子查询的结果
INSERT INTO 表名
[(属性列1 [,属性列2… )]
子查询
功能:将子查询的结果批量插入到指定的表中。;[例61] 假定有表excellent(year,sno,sname,grade),记
录每年度优秀学生,现将平均成绩大于90(含)
的学生记入该表,作为2005年度的优秀学生。
insert into excellent(year,sno,sname,grade)
select 2005 as [year], sno, sname, avg(grade)
from sc, student where sc.sno = student.sno group by sno,sname having avg(grade) = 90;[练习] 表:状元榜(年度,姓名,总分)记录着各年的
高考状元的姓名及其高考总分,2004年
度考生总分记载在表T2004(考号,姓名,总
分) 中。试将2004年度的高考状元记入到
状元榜中。;3.4.1 插入数据
3.4.2 修改数据
3.4.3 删除数据
; UPDATE 表名
SET 列名=表达式|子查询
[,列名=表达式|子查询 ]…
[WHERE 条件]
不指定Where条件子句时,所有行的数据都将被修改。同样,修改数据时也会检查完整性。;[例62] 05020号同学的生
显示全部