mysql 数据操作语言(增删改) (DML --- Data
2023-02-26 本文已影响0人
暴躁程序员
测试数据表
user表: id username password
user_info表: id uid age height
一、插入数据 insert into
INSERT INTO 表名 (列1, 列2,...) VALUES (值1, 值2,....)
- 插入单条
INSERT INTO `user`(username,`password`) VALUES ('alias','123456');
- 插入多条
INSERT INTO `user`(username,`password`) VALUES ('alias','123456'),('bob','666666');
- 将查询的结果插入到表中
-- 将id小于5的用户信息再次插入到用户表中(注意:此操作不使用 values)
INSERT INTO `user`(username,`password`) SELECT username,`password` FROM `user` WHERE id < 5;
二、修改数据 update set
UPDATE 表名 SET 列名 = 新值 WHERE ...
注意:必须加where条件,否则修改全表数据
- 单表修改
UPDATE `user` SET username = '白虎',`password` = 'abcefg' WHERE id = 1;
- 跨表修改
-- 修改所有用户名为青龙的用户信息的身高和年龄,子查询方式
UPDATE user_info SET height=100,age=20 WHERE uid in (SELECT id FROM `user` WHERE username = '青龙');
-- 修改所有用户名为青龙的用户信息的身高和年龄,连接查询方式
UPDATE user_info ui INNER JOIN `user` u ON ui.uid = u.id SET ui.height=300,ui.age=100 WHERE u.username = '青龙';
三、删除数据 delete from
DELETE FROM 表名 WHERE ...
注意:必须加where条件,否则删除全表数据
- 单表删除
DELETE FROM `user` WHERE id = 26;
- 跨表删除
-- 删除所有用户名为青龙的用户信息的身高和年龄,子查询方式
DELETE FROM user_info WHERE uid in (SELECT id FROM `user` WHERE username = '青龙');
-- 删除所有用户名为青龙的用户信息的身高和年龄,连接查询方式
DELETE ui FROM user_info ui INNER JOIN `user` u ON ui.uid = u.id AND u.username = '青龙';
- 清空表数据
-- DELETE FROM 表名 (删除数据,主键不重置)
DELETE FROM user_info;
-- TRUNCATE TABLE 表名 (先删除表,再重写创建表,主键重置)
TRUNCATE TABLE user_info;