文档详情

第03章 关系数据库标准语言SQL-3.ppt

发布:2017-06-26约7.64千字共55页下载文档
文本预览下载声明
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号同学的生
显示全部
相似文档