- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 使用DML语句更改数据
1
回顾
什么是数据的完整性
怎么实现数据的完整性
对已经存在的表实施数据完整性
2
目标
使用INSERT语句添加数据
使用UPDATE语句修改数据
使用DELETE语句删除数据
3
添加新数据
插入单行记录
向表中添加数据的SQL语句是INSERT
基本语法:
举例
向学生表添加记录
表 结构
4
INSERT INTO 表名 (列名列表)
VALUES (值列表)
CREATE TABLE t_student(
学号 INT PRIMARY KEY,
姓名 VARCHAR(50) NOT NULL,
年龄 INT,
性别 CHAR(2))
添加新数据
插入单行记录
插入一条数据
也可以省略列名
省略掉列名后,要求插入的值必须和表中的列一一对应。
5
INSERT INTO t_student(学号,姓名,年龄,性别) VALUES(1,张三,25,男)
INSERT INTO t_student VALUES(1,张三,25,男)
添加新数据
插入单行记录
也可以使增加的数据列与表中列不匹配,但是必须要在增加语句中指定插入列。比如增加一条记录,只包含学号和姓名:
在下面几种情况下可以省略某些列:
列值由RDBMS自动创建,如自增长。
创建列时设定了默认值,如果不提供值,则由RDBMS自动创建。
如果列被设置为允许空值,那么不输入值不影响数据库的完整性。
6
INSERT INTO t_student(学号,姓名) VALUES(1,张三)
添加新数据
插入多行记录
插入多行记录是指一条SQL语句实现多条记录的插入,实现方式有两种:
1.SELECT方式
这种方式利用SELECT语句(查询)代替values。通过查询语句将查询的结果插入到表中。要求查询语句的选择列要和插入语句指定列对应。
7
INSERT INTO 表名 (列名列表)
SELECT Select语句;
添加新数据
插入多行记录
2.多行VALUES插入
此方法可以在VALUES后跟多条记录,但是此方法仅限于在MYSQL数据库中使用。
8
INSERT INTO t_student VALUES
(1,张三,20,男),
(2,李四,25,男),
(3,王五,19,女)
添加新数据
表数据的复制
在测试数据时,我们经常会为了避免误操作数据而采取一些保护措施,如数据备份。数据备份的一种常见的操作就是从一张表复制数据到备份表中。在MySQL中可以通过以下几种方式实现赋值表数据:
1.INSERT INTO的方式复制
2.建表的方式复制
9
INSERT INTO t_student_bak SELECT * FROM t_student
CREATE TABLE t_student_bak SELECT * FROM t_student
更改已有数据
标准结构
SET语句就是指定修改的列,修改多个列时用逗号分开。
如果要将某列值删除,只需要将该列的数据设置为NULL即可。下面分别介绍几种更新方式。
10
UPDATE 表名 SET 列1=新值1,列2=新值2 WHERE 过滤条件
更改已有数据
更新单列数据
举例
更新张三同学的性别为女
将所有年龄小于18岁的同学增加3岁
11
UPDATE t_student SET 性别=‘女’ WHERE 姓名=‘张三’
UPDATE t_student SET 年龄=年龄+3 WHERE 年龄18
注意:忽略WHERE子句将会改变表中所有行!
更改已有数据
更新多列数据
举例
更新张三同学的年龄为100岁,并将其姓名改为张三丰
12
UPDATE t_student SET 姓名=张三丰,年龄=100 WHERE 姓名=张三
更改已有数据
通过更新删除列中的数据
如果要删除某列的值,只需要将该列设置为NULL即可。当然,这样做的前提是该列允许为空,即没有非空约束。
举例
将李四的性别删除
注意删除列值只是将该列的值置为空,而不是将该列从表中去掉。如果要去掉该列应该使用DDL语句。
13
UPDATE t_student SET 性别=NULL WHERE 姓名=李四
删除数据
使用DELETE删除行
标准结构
删除语句可以删除一行或多行,根据过滤条件来确定。
举例
删除姓名为张三的学生信息
删除年龄18-20岁之间的学生信息
14
DELETE FROM 表名 WHERE 过滤条件
DELETE FROM t_student WHERE 姓名=‘张三’
DELETE FROM t_student WHERE 年龄 BETWEEN 18 AND 20
删除数据
删除所有数据
使用DELETE删除
不加WHERE条件的DELETE语句就能删除所有数据
使用TRUNCATE语句
直
文档评论(0)