DML 操作数据库: 用于对表中的记录进行增删改操作
文章源自亦枫博客-https://yflad.cn/2167.html
1、插入数据:insert
insert into 表名(列名1,列名2,...)values(值1,值2);
insert into:表名,表示往哪张表中添加数据文章源自亦枫博客-https://yflad.cn/2167.html
(列名 1, 列名 2, …): 要给哪些字段设置值文章源自亦枫博客-https://yflad.cn/2167.html
values(值 1, 值 2, …): 设置具体的值文章源自亦枫博客-https://yflad.cn/2167.html
注意:文章源自亦枫博客-https://yflad.cn/2167.html
- 列名与列值的类型、个数、顺序要一一对应。
- 值不要超出列定义的长度。
- 如果插入空值,请使用null
- 插入的日期和字符一样,都使用引号括起来。
- 备注:所有的字符串都要单引号和Java不一样
insert into stu(id,name) values('001','张三');
文章源自亦枫博客-https://yflad.cn/2167.html
因为没有指定要插入的列,表示按创建表时列的顺序插入所有列的值:文章源自亦枫博客-https://yflad.cn/2167.html
insert into stu values(001,'王五',18);
备注:没有添加数据的字段会使用 NULL文章源自亦枫博客-https://yflad.cn/2167.html
文章源自亦枫博客-https://yflad.cn/2167.html
文章源自亦枫博客-https://yflad.cn/2167.html
2-1、乱码解决方法
根本原因是编码问题,统一编码格式即可文章源自亦枫博客-https://yflad.cn/2167.html
1)查看包含 character 开头的全局变量文章源自亦枫博客-https://yflad.cn/2167.html
show variables like 'character%';
文章源自亦枫博客-https://yflad.cn/2167.html
文章源自亦枫博客-https://yflad.cn/2167.html
2)修改除filesystem之外的编码格式,设置命令如下:文章源自亦枫博客-https://yflad.cn/2167.html
set names utf8;
文章源自亦枫博客-https://yflad.cn/2167.html
3)单独设置编码格式:文章源自亦枫博客-https://yflad.cn/2167.html
# 修改客户端的字符集为 utf8 set character_set_client=utf8; # 修改连接的字符集为 utf8 set character_set_connection=utf8; # 修改查询的结果字符集为 utf8 set character_set_results=utf8;
文章源自亦枫博客-https://yflad.cn/2167.html
2-2、insert 的注意事项:
1) 插入的数据应与字段的数据类型相同文章源自亦枫博客-https://yflad.cn/2167.html
2) 数据的大小应在列的规定范围内,例如:不能将一个长度为 80 的字符串加入到长度为 40 的列中。文章源自亦枫博客-https://yflad.cn/2167.html
3) 在 values 中列出的数据位置必须与被加入的列的排列位置相对应。在 mysql 中可以使用 value, 但不建议使用, 功能与 values 相同。
4) 字符和日期型数据应包含在单引号中。 MySQL 中也可以使用双引号做为分隔符。
5) 不指定列或使用 null,表示插入空值。
3、修改操作:update
语法:
UPDATE 表名 SET 列名=值 [WHERE 条件表达式];
UPDATE: 需要更新的表名
SET: 修改的列值
WHERE: 符合条件的记录才更新
# 不带条件修改数据,将所有的名字改成小三 update stu set name = '小三'; # 带条件修改数据,将 id 号为 2 的学生年龄改成16 update stu set age=16 where id = 2; # 一次修改多个列,把 id 为 2 的学生,名字改成小三,年龄改成 16 update stu set name='小三', age=16 where id = 2;
4、删除操作:delete
语法:
DELETE FROM 表名 [WHERE 条件表达式];
如果没有指定 WHERE 子句, MySQL 表中的所有记录将被删除。
可以在 WHERE 子句中指定任何条件
1) 不带条件删除数据
DELETE FROM 表名;
2)带条件删除数据
DELETE FROM 表名 WHERE 字段名=值;
3)使用 truncate 删除表中所有记录
TRUNCATE TABLE 表名;
例如:
# 带条件删除数据,删除 id 为 1 的记录 delete from stu where id=1; # 不带条件删除数据,删除表中的所有数据 delete from stu;
5、truncate 和 delete 的区别:
delete 删除表中的数据,表结构还在。删除后的数据可以找回
truncate 相当于删除表的结构,再创建一张表。删除的数据不能找回。执行速度比 delete 快。