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的值都更新为30update students set age = 30;-- 将students表字段名为name,且满足id=2的值更新为JuneUPDATE 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;