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语句不支持事务的回滚,并且不会触发触发器程序的运行。

posted @ 2025-04-10 11:41  icui4cu  阅读(26)  评论(0)    收藏  举报