当前位置:文档之家› 数据操纵语言

数据操纵语言

VARCHAR2(2)
你需要将理科教师的工资上浮8%,理科教师的 SUBJECT_ID是011,你需用哪一句实现( )。
A、UPDATE teacher SET salary = salary * 1.08 WHERE subject_description LIKE SCIENCE'
B、UPDATE teacher SET salary = salary * .08 WHERE subject_description LIKE 'SCIENCE' AND subject_id = 011
FROM tb_bookshort JOIN tb_bookinfo ON
tb_bookshort.bookID=tb_bookinfo.bookID
4.2.4 DELETE语句 DELETE语句用来删除表中的数据,一次可以 删除一行或多行。 1. DELETE语句的格式 DELETE [FROM] table_name
如何防止插入带有空值的元组?
插入操作
将平均成绩大于90的学生加入到 EXCELLENT中
insert into EXCELLENT ( SNO, GRADE) select SNO , avg(SCORE) from SC group by (SNO) having avg(SCORE) > 90
WHERE authorID='A02 '
②由SELECT语句的INTO选项来创建新表并添 加数据。例如,如下语句将形成一个新表 tb_book3,其内容与表tb_book2完全相同:
SELECT bookID,bookname,price INTO tb_book3
from tb_book2 WHERE authorID='A002'
例:向图书信息表中添加一行数据:
INSERT INTO tb_bookinfo (bookID,bookname, price) VALUES(‘000010’,‘ 计 算 机 辅 助 设 计’,23)
如果在VALUES选项中给出了所有列的值,则 可以省略column_list部分,例如:
INSERT INTO tb_bookinfo VALUES('000010',' 计算机辅助设计',23,'A001','P101')
TRUNCATE TABLE table_name 例如,如下语句将删除表tb_booktemp中的所 有行:
TRUNCATE TABLE tb_booktemp 在执行结果上等价于如下语句:
DELETE FROM tb_booktemp 但在运行速度上,使用TRUNCATE TABLE语
句要快一些,因为该语句一次删除所有行, 而DELETE语句是每次删除一行。
数据操纵语言
数据操纵语言(Data Manipulation Language, 简写DML)是指用来查询、添加、修改和删除 数据库中数据的语句,这些语句包括SELECT、 INSERT、UPDATE、DELETE等。
4.2.1 SELECT语句
SELECT语句用来从数据库中检索满足特定条 件的记录。一个SELECT语句主要包含如下 几部分:
从哪个或哪些表或视图中提取数据 选取表中的哪些列 选择满足什么条件的数据 查询结果以什么顺序显示
4.2.2 INSERT语句 INSERT语句用来向表中添加数据,基本格式 如下:
INSERT [INTO] table_name [colunm_list]
VALUES(data_values)
如果某个系里面有多个系主任,则采用集合操作In的判断操 作符号。
更新操作
当C1课程的成绩小于该课程的平均成绩时, 将该成绩提高5%
update SC set GRADE = GRADE * 1.05 where C# = C1 and GRADE < (select avg(GRADE)
from SC where C# = C1)
更新操作
工资超过200①0的缴纳10%所得税,其余②的缴纳5%所得税
update PROF
update PROF
set SAL = SAL * 0.9
set SAL = SAL * 0.95
where SAL > 2000
where SAL <= 2000
执行顺序是①,②,还是②,①?
如果一个教师的工资是2001,则会出现什么情况
4.2.3 UPDATE语句
UPDATE 语 句 用 来 修 改 表 中 的 数 据 。 每 个 UPDATE语句可以修改一行或多行数据,但每 次仅能对一个表进行操作。
1. UPDATE语句的格式
UPDATE
table_name
SET
column_name=expression
[FROM
table_source] [WHERE search_conditions]
一倍
插入操作
示例
insert into PROF
values ( P123, “王明”, 35, D08, 498 ) 必须是按照表定义的顺序查询全部的列数;
insert into PROF (PNO, PNAME, DNO)
values ( P123, “王明”, D08 )
思考:SAL取何值?
null]] ……
[,primary key(列名 [,列名] …)] [,foreign key (列名 [,列名] …)
references 表名 (列名 [,列
表TEACHER包含如下字段: 列名可为空否? 数据类型 TEACHER_ID NOT NULL NUMBER(9) NAME VARCHAR2(25) SALARY NUMBER(7,2) SUBJECT_ID NOT NULL NUMBER(3) SUBJECT_DESCRIPTION
将D01系系主任的工资改为该系的平均工资
update PROF set SAL = (select avg(SAL)
from PROF where DNO = D01) where PNO = (select DEAN
from DEPT where DNO = D01)
PNO=(select …)编译成功,但是运行可能会出错,如果 select运行过程中返回的值不只一个。
(select PNO from PROF
where PNAME = “王明”)
如果我们知道只有一个老师是王明,则in可 以被=所替代;
删除操作
删除低于平均工资的老师记录
delete from PROF where SAL <
(select avg(SAL) from PROF)
思考:是先找到所有符合条件的元组,一并 删除,还是找到一个删除一个?
SQL的数据修改功能:删除操作
命令
delete from 表名 [where 条件表达式]
从表中删除符合条件的元组,如果没有 where语句,则删除所有元组
示例
清除所有选课记录 delete from SC
删除操作
删除王明老师所有的任课记录
delete from PC where PNO in
SQL的数据修改功能:插入操作
命令 insert into 表名 [(列名[,列名]…] values (值 [,值]…) 插入一条指定好值的元组 insert into 表名 [(列名[,列名]…] (子查询) 插入子查询结果中的若干条元组
示例
Insert into A (select * from A) 如果表A中包含一行数据,则每次执行数据增加
DELETE [FROM] table_name
[WHERE search_conditions]
2. 格式说明 ①[FROM]是任选项,用来增加可读性。 ②table_name指出将要从哪个表中删除数据。 例如,如下语句将删除表tb_bookshort中的所
有行:
DELETE FROM tb_bookshort
C、UPDATE teacher SET salary = salary * 1.08 WHERE subject_id = 011
Price(Decimal,18,2) 假 定 该 表 中 bookID 列 和 bookname 列 的 数 据 与 表
tb_bookinfo中的相应列数据相同,而price列的值 需按tb_bookinfo中的price列修改,则可以使用如 下语句:
UPDATE tb_bookshort SET price=tb_bookinfo.price
UPDATE tb_bookinfo SET price=price*0.8 WHERE AuthorID='A002'
④FROM选项用来从其他表中取数据来修改某 表中的数据。
假定有一个表tb_bookshort,其中包含三个字段,定 义如下:
BookID(Char,6), Bookname(Char,30),
[WHERE search_conditions]
2. DELETE语句使用举例 例1:如下语句将删除表tb_bookshort中的所 有行:
DELETE FROM tb_bookshort
4.2.4 DELETE语句 DELETE语句用来删除表中的数据,一次可以 删除一行或多行。 1. DELETE语句的格式
DELETE tb_bookinfo FROM tb_pubinfo JOIN tb_bookinfo ON tb_bookinfo.publishID= tb_pubinfo.publishID WHERE tb_pubinfo.pubaddress='沈阳'
相关主题