title: MySQL-DML 语句
date: 2020-11-18 19:22:41
tags:
- MySQL
- 数据库
categories:
- MySQL
- 温习
cover:
https://gitee.com/jasonM4A1/pictureHost/raw/master/20201117194600.jpg
MySQL-DML 语句
DML 操作表中的数据
插入字段
-
形式一:(这种键值对的形式,适宜给所有字段赋值,也适宜给局部字段赋值)
INSERT INTO 表名 (字段名 1, 字段名 2, 字段名 3...) VALUES (值 1, 值 2, 值 3...);
-
形式二:(这种匿名间接赋值的形式,只能齐全给所有的字段进行赋值)
INSERT INTO 表名 VALUES (值 1, 值 2, 值 3...);
注意事项:
- 插入的数据应与字段的数据类型雷同
- 数据的大小应在列的规定范畴内,例如:不能将一个长度为 80 的字符串退出到长度为 40 的列中。
- 在 values 中列出的数据地位必须与被退出的列的排列地位绝对应。在 mysql 中能够应用 value,但不倡议使 用,性能与 values 雷同。
- 字符和日期型数据应蕴含在单引号中。MySQL 中也能够应用双引号做为分隔符。
- 不指定列或应用 null,示意插入空值。
代码演示
-- 给所有的字段都赋值
insert into students (id, name, age, gender) values (1, 'Jason', 21, '男');
-- 给所有的字段匿名间接赋值
insert into students values (2, 'Charlie', 22, '男');
-- 给局部字段赋值
insert into students (id, gender) values (3, '女');
蠕虫复制
概述
将一张曾经存在的表中的数据复制到另一张表中,即为蠕虫复制。
格局
-
将【表名 1】中的所有的列复制到【表名 2】中
INSERT INTO 表名 2 SELECT * FROM 表名 1;
-
将【表名 1】中的局部的列复制到【表名 2】中
INSERT INTO 表名 2 (字段名 1, 字段名 2) SELECT 字段名 1, 字段名 2 FROM 表名 1;
代码演示
-- 将 students 表中所有的数据都增加到 human 表中(human 表构造与 students 表构造雷同)insert into human select * from students;
更新表记录
-
间接批改同一字段名下的所有值
UPDATE 表名 SET 字段名 = 字段值;
-
满足条件时,批改字段值
UPDATE 表名 SET 字段名 = 字段值 where 字段名 = 字段值;
代码演示
-- 将 students 表字段名为 age 的值都更新为 30
update students set age = 30;
-- 将 students 表字段名为 name,且满足 id= 2 的值更新为 June
UPDATE students set name = 'June' where id = 2;
删除表记录
-
间接删除表中的所有记录
DELETE FROM 表名;
-
删除表中满足条件的记录
DELETE FROME 表名 WHERE 字段名 = 字段值;
-
应用 truncate 删除表中所有的记录(当须要删除所有的数据时,举荐应用)
TRUNCATE TABLE 表名;
注:truncate 相当于删除表的构造,再创立一张表。
代码演示
-- 间接删除表 students 中的所有记录
delete from students;
-- 删除表中 id= 3 的记录
delete from students where id = 3;
-- 应用 truncate 删除表中所有的记录
truncate table students;