DML(DataMainpulationLanguage数据操作语言)

Posted 坤坤就爱露露

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DML(DataMainpulationLanguage数据操作语言)相关的知识,希望对你有一定的参考价值。

说明 :表中数据的增删改

insert 往表中添加数据

update 更新表中数据

delete 删除表中数据
对表中数据的增删改

一、数据的插入(insert)

1、语法: 分为单行插入和多行插入(value与values)

单行和多行就是关键字的使用value与values,建议都是用values

插入单行:
insert into 表名(字段名1,字段名2,字段3…)value(值1,指2,指3.。。。。)

也可以不写字段名,只写value(按照表字段名顺序写下全部添加数据),自动按照字段名顺序添加数据

插入多行:
insert into 表名(字段名1,字段名2,字段3…)values
(值1,指2,指3.。。。。),(值1,指2,指3.。。。。),(值1,指2,指3.。。。。)…
特点:

2、要求:

①字段和值列表一一对应
包含类型、约束等必须匹配

②数值型的值,不用单引号
非数值型的值,必须使用单引号

③字段顺序无要求

3、案例:

案例1:按照约束插入全部字段数据

INSERT INTO stuinfo(stuid,stuname,stugender,email,age,majorid)
VALUES(1,‘五千’,‘女’,‘wuqian@qq.com’,12,1);

INSERT INTO stuinfo(stuid,stuname,stugender,email,age,majorid)
VALUES(2,‘五千1’,‘女’,‘wuqian@qq.com’,12,1);

案例2:可以为空字段如何插入

#方案1:字段名和值都不写
INSERT INTO stuinfo(stuid,stuname,email,majorid)
VALUES(5,‘齐鱼’,‘qiqin@qq.com’,2);

#方案1:字段名写上,值使用null

INSERT INTO stuinfo(stuid,stuname,email,age,majorid)
VALUES(5,‘齐鱼’,‘qiqin@qq.com’,NULL,2);

SELECT * FROM stuinfo;

案例3:默认地段如何插入

可以直接不写,也可以写上,值对应值写上即可
INSERT INTO stuinfo(stuid,stuname,email,majorid)
VALUES(6,‘齐小鱼’,‘qiqin@qq.com’,2);

SELECT * FROM stuinfo;

案例4:可以省略字段列表只写values(…),默认所有字段添加

要求:VALUE需要按照字段顺序依次写入数据即可。
INSERT INTO stuinfo VALUE(12,‘林忆莲’,‘女’,‘wuqian@qq.com’,12,1);

4.设置自增长列

1.要求:

1.自增长列要求设置在一个键上,比如主键或唯一键
2.自增长列要求数据类型为数值型
3.一个表至多有一个自增长列
4.当我们设置此字段为自增长列时,我们需要在添加数据在该字段对应位置上写null,让数据库自动增长列

设置列自增,需要写入数据的地方使用null,代替,因为他会自增

2.案例:设置stuid为自增长列

INSERT INTO stuinfo VALUE(NULL,‘仓拉屎’,‘女’,‘wuqian@qq.com’,12,1);

二、数据的修改(update)

语法:

我们需要对满足条件的语法进行筛选

update 表名 set 字段名=新值,字段名=新值,。。。。。。。
where筛选条件

案例;修改年龄小于20的专业编号为2号,并把邮箱更改为xxx.@qq.com

UPDATE stuinfo SET majorid=2,email=‘xxx.@qq.com’
WHERE age<20;

三、数据的删除(delete)

方式一:delete

delete语句 删除满足条件的数据(一删就是删除一行)
语法:delete from 表名 where 筛选条件;

方式二:truncate

truncate语句 不支持where ,是删除全部表的数据
语法:truncate table 表名;

案例1:删除所有姓仓的数据,(delete where筛选满足条件)

DELETE FROM stuinfo WHERE stuname LIKE ‘仓%’;

案例2:删除表中所有的数据(truncate )

TRUNCATE TABLE stuinfo;

四、【面试题】delete和truncate的区别

1.delete可以添加WHERE条件,TRUNCATE 不能添加WHERE条件,一次性清除所有数据

2.truncate的效率高,因为不需要进行筛选数据

3.如果删除带自增长列的表,两种删除的效果导致的影响是不一样的

DELETE删除后,重新插入数据,记录从断点处开始
TRUNCATE删除后,重新插入数据,记录从1开始

4.delete 删除数据,会返回受影响的行数
TRUNCATE删除数据,不返回受影响的行数

5.delete删除数据,可以支持事务回滚
TRUNCATE删除数据,不支持事务回滚

6.truncate其实就是把原来的表删除,重新再给我们建一张空表,delete只是删除满足条件的数据

以上是关于DML(DataMainpulationLanguage数据操作语言)的主要内容,如果未能解决你的问题,请参考以下文章

什么是ddl dml和dcl?怎样用才最好?

DML,DDL,DCL,DQL的区别

什么是DQL,DML,DDL,DCL

数据操作语言 - DML

术语:DML“修改事物”

DDL与DML问题