数据库系统原理课件:数据操纵功能
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
)
18
CREATE TABLE 出演( 工号 char ( 10 ), 片名 char ( 60 ), 年代 datetime, 片酬 int NULL,
PRIMARY KEY (工号,片名,年代 ),
FOREIGN KEY (工号) REFERENCES 演员 (工号),
FOREIGN KEY (片名,年代) REFERENCES 电影 (片名,年代) )
15
DELETE的使用 2
删除1998年拍摄红河谷的所有出演记录
DELETE FROM 出演
WHERE 出演.片名=‘红河谷’ AND
出演.年代=‘1998’
16
外码约束对数据操纵的影响
插入异常 更新异常 删除异常
17
CREATE TABLE 演员( 姓名 char ( 20 ) , 工号 char ( 10 ), 性别 char (2), PRIMARY KEY (工号 )
年代 1994 1998 1998 2000 2000
出演
A430 不见不散
工号 A120 A231 A751
片名 红河谷 花样年华 不见不散
年代 1998 2000 1998
1998
Байду номын сангаас
NULL
片酬 NULL 100k 120k
21
删除异常的例子
在演员表中删除工号A751的演员记录
22
演员
工号
A010 A120 A231 A751?A751
9
更新数据
UPDATE <表名>
SET <列名=表达式> [,… n]
[WHERE <更新条件>]
SET子句指定要修改的列,表达式指定修
改后的新值
WHERE子句用于指定需要修改表中的哪
些记录。如果省略WHERE子句,则是无
条件更新,表示要修改SET中指定的列的
全部值
10
演员
电影
姓名 王菲 宁静 梁朝伟 葛优
19
插入异常的例子
在出演表中添加工号A430的演员在1998-1-1出 演电影‘不见不散’的记录,片酬暂缺
20
演员
工号
A010 A430?A120
A231 A751
姓名 王菲 宁静 梁朝伟 葛优
性别 女 女 男 男
电影
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
导演 王家卫 冯小宁 冯小刚 王家卫 管虎
2
插入数据 1
INSERT [INTO] <表名> [(<列名表>)] VALUES (值列表)
<列名表>中的列名必须是表定义中有的 列名
值列表中的值可以是常量也可以是空值, 各值之间用逗号分隔
3
插入数据 2
值列表中的值与列名表中的列按位置顺 序对应,它们的数据类型必须一致
如果<表名>后边没有指明列名,则新插 入记录的值的顺序必须与表中列的定义 顺序一致,且每一个列均有值(可以为 空)
姓名 王菲 宁静 梁朝伟 葛优
性别 女 女 男 男
电影
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
导演 王家卫 冯小宁 冯小刚 王家卫 管虎
年代 1994 1998 1998 2000 2000
出演
工号
片名
年代
片酬
A120 红河谷
1998
NULL
A231 花样年华 2000
100k
A751 不见不散 1998
120k
23
更新异常的例子
将演员表中的工号A751修改为B751
24
演员
工号
A010 A120 A231 A751?BA775511
姓名 王菲 宁静 梁朝伟 葛优
性别 女 女 男 男
电影
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
第4章 SQL语言
4.1 SQL语言概述 4.2 数据定义功能与约束 4.3 数据操纵功能 4.4 数据查询功能与视图
1
SQL的功能与命令简介
SQL功能 数据定义 数据查询 数据操纵 数据控制
命令动词 CREATE, DROP, ALTER SELECT INSERT, UPDATE, DELETE GRANT, REVOKE
4
CREATE TABLE 演员( 姓名 char ( 20 ) , 工号 char ( 10 ), 性别 char (2), PRIMARY KEY (工号 )
)
5
CREATE TABLE 出演( 工号 char ( 10 ), 片名 char ( 60 ), 年代 datetime, 片酬 int,
INSERT 出演 (工号,年代, 片名,) VALUES (‘A031’, ‘1998-1-1’,‘滚滚红尘’) 在创建表时需要声明片酬允许为空!
8
INSERT的使用 3
在出演表中添加工号A031的演员在1998-1-1出 演电影‘滚滚红尘’的记录,片酬暂缺
INSERT 出演 VALUES ('A031', '滚滚红尘', '1998-1-1',NULL)
PRIMARY KEY (工号,片名,年代 ), )
6
INSERT的使用 1
INSERT INTO 演员 (工号, 姓名, 性别) VALUES (‘A031’, ‘林青霞’, ‘女’)
7
INSERT的使用 2
在出演表中添加工号A031的演员在1998-1-1出 演电影‘滚滚红尘’的记录,片酬暂缺
年代=‘1998’
13
删除数据
DELETE [ FROM ] <表名> [WHERE <删除条件>]
<表名>说明了要删除哪个表中的数据 WHERE子句说明要删除表中的哪些记
录。如果省略WHERE子句,则是无条 件删除,表示要删除表中的全部记录。
14
DELETE的使用 1
删除所有的出演记录 DELETE FROM 出演 置为空表
120k
11
UPDATE的使用 1
将出演表中的片酬设为50k UPDATE 出演 SET 片酬=50000
12
UPDATE的使用 2
将‘A120’在1998年出演‘红河谷’的片酬设 为50k
UPDATE 出演
SET 片酬=50000
WHERE 工号= ‘A120’ AND
片名=‘红河谷’ AND
工号 A010 A120 A231 A751
性别 女 女 男 男
出演
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
导演 王家卫 冯小宁 冯小刚 王家卫 管虎
年代 1994 1998 1998 2000 2000
工号
片名
年代
片酬
A120 红河谷
1998
NULL
A231 花样年华 2000
100k
A751 不见不散 1998
18
CREATE TABLE 出演( 工号 char ( 10 ), 片名 char ( 60 ), 年代 datetime, 片酬 int NULL,
PRIMARY KEY (工号,片名,年代 ),
FOREIGN KEY (工号) REFERENCES 演员 (工号),
FOREIGN KEY (片名,年代) REFERENCES 电影 (片名,年代) )
15
DELETE的使用 2
删除1998年拍摄红河谷的所有出演记录
DELETE FROM 出演
WHERE 出演.片名=‘红河谷’ AND
出演.年代=‘1998’
16
外码约束对数据操纵的影响
插入异常 更新异常 删除异常
17
CREATE TABLE 演员( 姓名 char ( 20 ) , 工号 char ( 10 ), 性别 char (2), PRIMARY KEY (工号 )
年代 1994 1998 1998 2000 2000
出演
A430 不见不散
工号 A120 A231 A751
片名 红河谷 花样年华 不见不散
年代 1998 2000 1998
1998
Байду номын сангаас
NULL
片酬 NULL 100k 120k
21
删除异常的例子
在演员表中删除工号A751的演员记录
22
演员
工号
A010 A120 A231 A751?A751
9
更新数据
UPDATE <表名>
SET <列名=表达式> [,… n]
[WHERE <更新条件>]
SET子句指定要修改的列,表达式指定修
改后的新值
WHERE子句用于指定需要修改表中的哪
些记录。如果省略WHERE子句,则是无
条件更新,表示要修改SET中指定的列的
全部值
10
演员
电影
姓名 王菲 宁静 梁朝伟 葛优
19
插入异常的例子
在出演表中添加工号A430的演员在1998-1-1出 演电影‘不见不散’的记录,片酬暂缺
20
演员
工号
A010 A430?A120
A231 A751
姓名 王菲 宁静 梁朝伟 葛优
性别 女 女 男 男
电影
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
导演 王家卫 冯小宁 冯小刚 王家卫 管虎
2
插入数据 1
INSERT [INTO] <表名> [(<列名表>)] VALUES (值列表)
<列名表>中的列名必须是表定义中有的 列名
值列表中的值可以是常量也可以是空值, 各值之间用逗号分隔
3
插入数据 2
值列表中的值与列名表中的列按位置顺 序对应,它们的数据类型必须一致
如果<表名>后边没有指明列名,则新插 入记录的值的顺序必须与表中列的定义 顺序一致,且每一个列均有值(可以为 空)
姓名 王菲 宁静 梁朝伟 葛优
性别 女 女 男 男
电影
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
导演 王家卫 冯小宁 冯小刚 王家卫 管虎
年代 1994 1998 1998 2000 2000
出演
工号
片名
年代
片酬
A120 红河谷
1998
NULL
A231 花样年华 2000
100k
A751 不见不散 1998
120k
23
更新异常的例子
将演员表中的工号A751修改为B751
24
演员
工号
A010 A120 A231 A751?BA775511
姓名 王菲 宁静 梁朝伟 葛优
性别 女 女 男 男
电影
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
第4章 SQL语言
4.1 SQL语言概述 4.2 数据定义功能与约束 4.3 数据操纵功能 4.4 数据查询功能与视图
1
SQL的功能与命令简介
SQL功能 数据定义 数据查询 数据操纵 数据控制
命令动词 CREATE, DROP, ALTER SELECT INSERT, UPDATE, DELETE GRANT, REVOKE
4
CREATE TABLE 演员( 姓名 char ( 20 ) , 工号 char ( 10 ), 性别 char (2), PRIMARY KEY (工号 )
)
5
CREATE TABLE 出演( 工号 char ( 10 ), 片名 char ( 60 ), 年代 datetime, 片酬 int,
INSERT 出演 (工号,年代, 片名,) VALUES (‘A031’, ‘1998-1-1’,‘滚滚红尘’) 在创建表时需要声明片酬允许为空!
8
INSERT的使用 3
在出演表中添加工号A031的演员在1998-1-1出 演电影‘滚滚红尘’的记录,片酬暂缺
INSERT 出演 VALUES ('A031', '滚滚红尘', '1998-1-1',NULL)
PRIMARY KEY (工号,片名,年代 ), )
6
INSERT的使用 1
INSERT INTO 演员 (工号, 姓名, 性别) VALUES (‘A031’, ‘林青霞’, ‘女’)
7
INSERT的使用 2
在出演表中添加工号A031的演员在1998-1-1出 演电影‘滚滚红尘’的记录,片酬暂缺
年代=‘1998’
13
删除数据
DELETE [ FROM ] <表名> [WHERE <删除条件>]
<表名>说明了要删除哪个表中的数据 WHERE子句说明要删除表中的哪些记
录。如果省略WHERE子句,则是无条 件删除,表示要删除表中的全部记录。
14
DELETE的使用 1
删除所有的出演记录 DELETE FROM 出演 置为空表
120k
11
UPDATE的使用 1
将出演表中的片酬设为50k UPDATE 出演 SET 片酬=50000
12
UPDATE的使用 2
将‘A120’在1998年出演‘红河谷’的片酬设 为50k
UPDATE 出演
SET 片酬=50000
WHERE 工号= ‘A120’ AND
片名=‘红河谷’ AND
工号 A010 A120 A231 A751
性别 女 女 男 男
出演
片名 重庆森林
红河谷 不见不散 花样年华
黑骏马
导演 王家卫 冯小宁 冯小刚 王家卫 管虎
年代 1994 1998 1998 2000 2000
工号
片名
年代
片酬
A120 红河谷
1998
NULL
A231 花样年华 2000
100k
A751 不见不散 1998