首先对表格数据的编码格式做个理清
插入中文数据直接报错,是编码格式
的问题
四、DML语句:data monipulate language 数据操作语言,直接对表中数据增删改
|-- 插入中文错误,数据库的编码格式错误,首先介绍一下编码格式的修改
MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 ,字段级
前三种均为默认设置,并不代表字段最终会使用这个字符集设置。
|-- 查询编码格式 SHOW CREATE TABLE <表名>;
/*
CREATE TABLE `infor` (
`subjects` varchar(30) CHARACTER SET latin1 DEFAULT NULL,
`total` int(11) DEFAULT NULL,
`name_new` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
*/
|-- 修改全表的编码格式
ALTER TABLE infor CHARACTER SET utf8mb4;
|-- 修改列(字段)的编码格式
ALTER TABLE <表名> MODIFY COLUMN <字段名> <字段类型> CHARACTER SET utf8mb4 【COLLATE utf8mb4_unicode_ci】;
ALTER TABLE infor MODIFY COLUMN subjects VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|-- 增:单个增、多个增
insert into 表名(列名,...) value (值1,...);
INSERT INTO infor VALUE ('小米',67,1);
INSERT INTO infor VALUES ('桨板',120,3),('舟艇',130,4),('皮划艇',140,5);
|-- 删
1、单表的删除【★】
delete from 表名 where 筛选条件
DELETE FROM infor WHERE subjects = 's';
2、多表的删除【补充】
sql92语法:
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法:
delete 表1的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;
|-- 改
1.修改单表的记录★
update <表名> set 列=新值,列=新值,... where 筛选条件;
UPDATE infor SET name_new = 111 WHERE total = 67;
2.修改多表的记录【补充】
sql92语法:
update 表1 别名,表2 别名
set 列=值,...
where 连接条件
and 筛选条件;
sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,...
where 筛选条件;