数据库基础操作:DML 操作数据库

数据语言评论13.5K1字数 1458阅读4分51秒阅读模式

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

  1. 列名与列值的类型、个数、顺序要一一对应。
  2. 值不要超出列定义的长度。
  3. 如果插入空值,请使用null
  4. 插入的日期和字符一样,都使用引号括起来。
  • 备注:所有的字符串都要单引号和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

数据库基础操作:DML 操作数据库文章源自亦枫博客-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%';

数据库基础操作:DML 操作数据库文章源自亦枫博客-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 快。

 

继续阅读
扫扫关注公众号
weinxin
我的微信
扫扫体验小程序
weinxin
我的公众号
亦枫
  • 本文由 发表于 2019年3月5日 19:50:50
评论  0  访客  0
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定