DML操作表中的数据
用于对表中的记录进行增删改操作
插入记录
INSERT [INTO] 表名 [字段名] VALUES (字段值)
-- 释义:
INSERT INTO 表名:表示往哪张表中添加数据
(字段名1, 字段名2, …):要给哪些字段设置值
VALUES (值1, 值2, …):设置具体的值
插入全部字段
- 所有的字段名都写出来(列名和值要一一对应)
INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3);
- 不写字段名
INSERT INTO 表名 VALUES (值1, 值2, 值3…);
- 插入部分数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
-- 注:没有添加数据的字段会使用NULL
示例:
--插入所有的列,向学生表中
insert into student (id,name,age,sex) values (1, '孙悟空', 20, '男');
insert into student (id,name,age,sex) values (2, '孙悟天', 16, '男');
--向表中插入所有字段
insert into student values (3, '孙悟饭', 18, '男', '龟仙人洞中');
-- 如果只插入部分列,必须写列名
insert into student(id,name,age,sex) values (3, '孙悟饭', 18, '男');
更新表记录
语法:UPDATE 表名 SET 列名=值 [WHERE 条件表达式]
UPDATE: 需要更新的表名
SET: 修改的列值
WHERE: 符合条件的记录才更新
可以同时更新一个或多个字段。
可以在 WHERE 子句中指定任何条件
- 不带条件修改数据(修改所有的行)
-- 修改所有的行
UPDATE 表名 SET 字段名=值;
- 带条件修改数据(修改指定的行)
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
demo:
-- 不带条件修改数据,将所有的性别改成女
update student set sex = '女';
-- 带条件修改数据,将id号为2的学生性别改成男
update student set sex='男' where id=2;
-- 一次修改多个列,把id为3的学生,年龄改成26岁,address改成北京
update student set age=26, address='北京' where id=3;
删除表记录
DELETE FROM 表名 [WHERE 条件表达式]
如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除(慎用)。
可以在 WHERE 子句中指定任何条件
- 不带条件删除数据(不推荐)
-- 一般不用,效率比较低,有多少条记录就会执行多少次删除操作
DELETE FROM 表名;
- 带条件删除数据
DELETE FROM 表名 WHERE 字段名=值;
- 使用truncate删除表中所有记录(推荐使用),truncate相当于删除表的结构,再创建一张表。
-- 推荐使用,效率更高 先删除表,然后再创建一张一样的
TRUNCATE TABLE 表名;
demo:
-- 带条件删除数据,删除id为1的记录
delete from student where id=1;
-- 不带条件删除数据,删除表中的所有数据 (不推荐)
delete from student;
--删除表中的所有数据,(推荐使用,效率更高)
TRUNCATE TABLE student;