3.数据操作
本章目标
- 数据操作
本章内容
官网:https://dev.mysql.com/doc/refman/8.0/en/insert.html
一、数据操作
1、 插入操作
1. 1 、语法
INSERT [INTO] <表名> [列名] VALUES <值列表>
如果表名后面没写字段名,则默认是向所有的字段添加值,另外字符串值应该用‘ ’或“ ”引号括起来
向people表中添加一条记录:
insert into person(username,age) values(“zhangsan”,20);
1.2、 插入注意事项
- 每次插入的数据时;values中的值要和column_list中的列的个数相匹配
- 每个数据值的数据类型、精度和小数位数必须与相应的列匹配;
- 如果在设计表的时候就指定了某列不允许为空,则必须插入数据;
- 具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值
- 在8.0.29环境中,插入多条数据时values速度更快,单条数据时value更快
1.3、 插入多行数据
INSERT INTO <表名>(列名) VALUES(<列名值>), (<列名值>), (<列名值>)
INSERT students (stu_name,grade,sex,address,email)
VALUES('测试女生1',75,0,'朝阳区','yyy@qq.com'),
('测试女生2',77,0,'朝阳区','yyy@qq.com'),
('测试女生3',83,0,'朝阳区','yyy@qq.com'),
('测试男生1',81,1,'朝阳区','yyy@qq.com'),
('测试女生4',90,0,'朝阳区','yyy@qq.com'),
('测试男生2',94,1,'朝阳区','yyy@qq.com'),
('测试女生5',51,0,'朝阳区','yyy@qq.com'),
('测试男生3',53,1,'朝阳区','yyy@qq.com');
1.4、插入多行数据(了解)
INSERT INTO <表名>(列名) SELECT <列名> FROM <源表名>
INSERT INTO address_book (stu_name,address,email)
SELECT stu_name,address,email
FROM Students
注意:字段列表1与字段列表2的字段个数必须相同,且对应字段的数据类型尽量保持一致
2、更改记录操作
UPDATE <表名> SET <列名 = 更新值>
[WHERE <更新条件>]
where 子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据
将student表中的所有学生名称为”Alex”的改为”Tom”:
update student set stu_name="Tom" where stu_name="Alex";
3、删除记录操作
DELETE FROM <表名> [WHERE <删除条件>]
此语句删除表中的行,如果不带where子句,则删除整个表中的记录,但是表不被删除
删除student表中的所有年龄小于18岁的记录:
delete from student where age<18;
4、清空表
truncate table用于完全清空一个表,语法格式如下。
truncate [table] 表名
从逻辑上说,truncate语句与“delete from 表名”语句作用相同,但是在某些情况下,两者在使用上有所区别。
例如:清空记录的表如果是父表,那么truncate命令将永远执行失败。如果使用truncate table成功清空表记录,那么会重新设置自增型字段的计数器。truncate table语句不支持事务的回滚,并且不会触发触发器程序的运行。
本文来自博客园,作者:icui4cu,转载请注明原文链接:https://www.cnblogs.com/icui4cu/p/18818199