二、DML语句—数据操作语言—data manipulation language
insert into增---插入数据
show 查---显示
update改-- 更新/修正
delete (from) 删---从....上删除
truncate删---被删节---缩短
1.插入记录
1.1 插入全部字段
- 所有的字段名都写出来
INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3); - 不写字段名
INSERT INTO 表名 VALUES (值1, 值2, 值3…);
1.2 插入部分数据
INSERT INTO 表名 (字段名1, 字段名2, …) VALUES (值1, 值2, …);
没有添加数据的字段会使用NULL
关键字说明
INSERT INTO 表名 – 表示往哪张表中添加数据
(字段名1, 字段名2, …) – 要给哪些字段设置值
VALUES (值1, 值2, …); – 设置具体的值
注意- 值与字段必须对应,个数相同,类型相同
- 值的数据大小必须在字段的长度范围内
- 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
- 如果要插入空值,可以不写字段,或者插入null
2.DOS命令窗口操作数据乱码问题的解决
当我们使用DOS命令行进行SQL语句操作如有有中文会出现乱码,导致SQL执行失败
错误原因:因为MySQL的客户端设置编码是utf8,而系统的DOS命令行编码是gbk,编码不一致导致的乱码
查看 MySQL 内部设置的编码
show variables like ‘character%’;
解决方案:
修改client、connection、results的编码为GBK,保证和DOS命令行编码保持一致
1. 单独设置
set character_set_client=gbk;
set character_set_connection=gbk;
set character_set_results=gbk;
2. 快捷设置
set names gbk;
注意:以上2种方式为临时方案,退出DOS命令行就失效了,需要每次都配置
3. 修改MySQL安装目录下的my.ini文件,重启服务所有地方生效。此方案将所有编码都修改了[不建议]
3.蠕虫复制
什么是蠕虫复制:在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中
语法格式:
INSERT INTO 表名1 SELECT * FROM 表名2;----两张表都必须存在才能使用
作用:将表名2中的数据复制到表名1中
4.更新表记录
1. 不带条件修改数据---将所有字段都修改为同一个值
UPDATE 表名 SET 字段名=值;
2. 带条件修改数据
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
关键字说明
UPDATE: 修改数据
SET: 修改哪些字段
WHERE: 指定条件
5.删除表记录
1. 不带条件删除数据
DELETE FROM 表名;
2. 带条件删除数据
DELETE FROM 表名 WHERE 字段名=值;
3. truncate删除表记录
TRUNCATE TABLE 表名;
truncate和delete的区别:
- delete是将表中的数据一条一条删除
- truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样