MySQL中的DML操作

        DML语言即数据操作语言,作用是更新,添加,删除数据表中的的行,也就是给每个字段添加新的数据。

目录

一,DML是干什么的?

二,添加数据(INSERT)

1,选择插入

2,完全插入

3,默认值处理

3.1 创建表的时候给指定列添加默认值

3.2 给表添加新字段时指定默认值

3.3 插入数据时的默认值处理

三,增添数据update

四,删除数据delete

1,delete语句

2,TRUNCATE语句清空表

3,清空表时DELETE与 TRUNCATE 区别


一,DML是干什么的?

        如下图,DML语言就是对表中箭头的地方进行添加,更新,删除数据的。

        DML语言的分类。 insert:在新行中添加数据。update:对已经存在数据的行进行修改。delete:删除某行中的数据。

二,添加数据(INSERT)

1,选择插入

        选择插入是指:向指定的字段添加数据,未被选择的字段不会添加。

INSERT INTO 表名(列名1 ,列名2 ,列名3.....) VALUES(值1,值2 ,值3......);
insert into departments
(department_name,location_id)
values
("market", 1);

2,完全插入

        完全插入是指:默认一行中所有字段都要添加数据。使用了主键增长的字段由于数据库管理系统自动维护,我们不需要给他主动加数据,对其使用null,0,default占位即可。

INSERT INTO 表名 VALUES(值 1 ,值 2 ,值3......);
//如果主键是自动增长,需要使用 default 或者 null 或者 0 占位。
insert into departments values(default,"development",2);
insert into departments values(null,"human",3);
insert into departments values(0,"teaching",4);

3,默认值处理

        默认值处理是指:初始化的时候或者给未被选择的字段添加默认值,一般的默认值有:null,unknown,0,未知,NaN,undefined,default等。而且这个默认值的数据类型要与这个字段的数据类型保存一致。

3.1 创建表的时候给指定列添加默认值

CREATE TABLE 表名(列名 类型 default 默认值,...... );
//创建emp3表,该表包含emp_id主键且自动增长,包含name,包含address,该列默认值为”未知”。
create table emp3(emp_id int primary key
auto_increment,name varchar(10),address
varchar(50) default 'Unknown');

3.2 给表添加新字段时指定默认值

ALTER TABLE 表名 ADD COLUMN 列名 类型 DEFAULT 默认值;
alter table emp3 add column job_id int default 0;

3.3 插入数据时的默认值处理

        如果在插入数据时并未指定该列的值,那么MySQL会将默认值添加到该列中(通常是null)。如果是完全项插入需要使用default来占位。

//向emp3表中添加数据,要求address列与job_id列使用默认值作为该列的值。
insert into emp3(name) values("admin");//选择插入
insert into emp3 values(default,"xiaoming",default,default);//完全插入

三,增添数据update

        update对已经存在数据的行进行数据内容修改。更新语句中一定要给定更新条件,否则表中的所有数据都会被更新成新的值。

        一般更新条件(也就是准确定位到需要修改数据的单元格)很好做,作为一张二维表,只需要x和y两个坐标即可确定,通常使用一个字段+主键的形式来确定单元格,如:address = "BeiJing" where emp_id = 1。

        常见操作有:1,修改某一个单元格;2,修改一行中多个字段。

UPDATE 表名 SET 列名=值,列名=值…… WHERE 条件;
//更新emp3表中的id为1的数据,添加address为 BeiJing。
update emp3 set address = "BeiJing" where emp_id = 1;//修改单元格
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson';//修改一行中多个列

四,删除数据delete

1,delete语句

        在DELETE语句中,如果没有给定删除条件则会删除表中的所有数据。

DELETE FROM 表名 WHERE 条件;
delete from emp3 where emp_id = 1;//删除emp_id为1的一整行。

2,TRUNCATE语句清空表

TRUNCATE TABLE 表名;
truncate table emp3;

3,清空表时DELETE TRUNCATE 区别

        truncate是整体删除(速度较快)delete 是逐条删除(速度较慢)

        truncate不写服务器log日志delete写服务器log,也就是truncate效率比delete高的原因

        truncate是会重置自增值,相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的值。而delete删除以后,自增值仍然会继续累加。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值