内容正文:
第6章 MySQL表数据管理
主要内容
6.1 插入数据
6.2 更新数据
6.3 删除数据
6.4 约束对数据操作的限制
6.5 本章小结
6.1 插入数据
6.1.1 使用INSERT…VALUES语句插入一行数据
语法格式:
INSERT [INTO] tbl_name[(col_name [, col_name] ...)]
VALUES (value_list)
说明:
tbl_name:要插入数据的表的名称;
col_name:表中的列的名称;
value_list:要插入的数据对应各列的值,用逗号分隔
6.1 插入数据
6.1.1 使用INSERT…VALUES语句插入一行数据
不指定列名
语法格式:
INSERT [INTO] tbl_name VALUES (value_list)
【例6.1】向student表插入一行数据('20190101001','刘丽','女','2001-03-02','汉族','0101')。
在MySQL命令行客户端输入命令:
INSERT INTO student VALUES('20190101001','刘丽','女','2001-03-02','汉族','0101');
6.1 插入数据
6.1.1 使用INSERT…VALUES语句插入一行数据
指定列名
语法格式:
INSERT [INTO] tbl_name(col_name1, col_name2,……) VALUES (value_list)
【【例6.2】向student表插入一行数据,学号为'20190101002',姓名为'张林',出生日期为'2000-09-12'。
在MySQL命令行客户端输入命令:
INSERT INTO student(sno,sname,sbirthday)
VALUES('20190101002','张林','2000-09-12');
6.1 插入数据
6.1.2使用INSERT…VALUES语句插入多行数据
语法格式:
INSERT [INTO] tbl_name[(col_name [, col_name] ...)]
VALUES (value_list), (value_list)……
【例6.3】向student表插入3行数据。
在MySQL命令行客户端输入命令:
INSERT INTO student
VALUES('20190102001','李宏','男','2001-08-29','回族','0102'),
('20200102001','孙明','男','2001-10-18','汉族','0102'),
('20200102002','赵均','男','2000-12-19','汉族','0102');
6.1 插入数据
6.1.3 使用INSERT…SET语句插入数据
语法格式:
INSERT [INTO] tbl_name
SET col_name1=value1, col_name2=value2……
【例6.4】向student表插入一行数据,学号为'20200101001',姓名为'张莉',性别为'女'民族为'汉族',专业为'0101'。
在MySQL命令行客户端输入命令:
INSERT INTO student
SET sno='20200101001', sname='张莉', ssex='女', snation='汉族', mno='0101';
6.1 插入数据
6.1.4 使用INSERT…SELECT语句插入数据
语法格式:
INSERT [INTO] tbl_name [(col_name [, col_name] ...)]
SELECT ...
【例6.5】向student_computer表插入student表中专业为'0101'的学生数据。
在MySQL命令行客户端输入命令:
INSERT INTO student_computer
SELECT * FROM student WHERE mno='0101';
6.1 插入数据
6.1.5使用REPLACE语句插入数据
语法格式:
REPLACE [INTO] tbl_name[(col_name [, col_name] ...)]
VALUES (value_list)[, (value_list)…]
|SET col_name1=value1, col_name2=value2……
|SELECT…
说明:
REPLACE语句是MySQL对SQL标准的扩展,或者插入数据,或者删除再插入数据;
REPLACE语句的语法格式和工作原理与INSERT完全相同,只是如果表中的一个旧行与新行在主键或唯一索引上具有相同的值,则在插入新行之前会删除旧行。
只有当表具有主键或唯