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数据操作语言)的主要内容,如果未能解决你的问题,请参考以下文章