网站建设的中期报告,如何在wordpress底部添加一个留言,世界搜索引擎大全,平面设计培训班哪里有DML数据操纵语言 目录概述一、插入语句(一)方式一(二)方式二#xff1a;(三)两种方式的比较二、修改语句三、删除语句概述方式一#xff1a;delete方式二#xff1a;truncate语句 【清空语句】delete VS truncate 【面试题#xff01;#xff01;#xff01;】概述
数据…DML数据操纵语言
目录概述一、插入语句(一)方式一(二)方式二(三)两种方式的比较二、修改语句三、删除语句概述方式一delete方式二truncate语句 【清空语句】delete VS truncate 【面试题】概述
数据操作语言 插入insert 修改update 删除delete
一、插入语句
(一)方式一
语法 insert into 表名(列名,……) value(值1,……)特点 要求值的类型和字段的类型必须一致或兼容字段的个数和顺序不一定与原始表中的字段个数和顺序一致但必须保证值和字段一一对应假如表中有可以为null的字段注意可以通过以下两种方式插入null值 ①字段和值都省略 ②字段不省略值对应写null字段和值的个数必须一致字段名可以省略此时默认所有列
use girls;插入的值得类型要与列的类型一致或者兼容insert into beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
value(13,唐艺昕,女,1990-4-23,13853884820,null,2);
select * from beauty;可以为null的列应该如何插入值注不能为null的值必须插入值 方式一对应列名写nullinsert into beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
value(14,金星,女,1980-7-23,13853584826,null,9);方式二列名和null均省略insert into beauty(id,name,sex,phone) value(15,娜扎,女,13356789987);列的顺序可以调换 【一一对应即可】 insert into beauty(name,sex,id,phone) value(蒋欣,女,16,13978894567);select *from beauty;列数和值的个数必须一致insert into beauty(id,name,sex,phone) value(17,关晓彤,女,13853586857);可以省略列名默认所有列而且列的顺序和表中列的顺序是一致的insert into beauty values(18,LYH,男,null,13009991313,null,null);(二)方式二
语法
insert into 表名
set 列名值,列名值,……;
insert into beauty set id19,name刘涛,phone18830475643;(三)两种方式的比较 方式一支持插入多行方式二不支持 insert into beauty value(23,唐艺昕1,女,1990-4-23,13853884820,null,2),(24,唐艺昕2,女,1990-4-23,13853884820,null,2),(25,唐艺昕3,女,1990-4-23,13853884820,null,2);select *from beauty;方式一支持子查询方式二不支持 insert into beauty(id,name,phone) select 20,李一桐,13456243455;二、修改语句
修改单表的记录 语法 update 表名 set 列新值,列新值,…… where 筛选条件;修改多表的记录 【补充】 语法 sql92语法: update 表1 别名1,表2,别名2 set 列值,…… where 连接条件 and 筛选条件;sql99语法: update 表1 别名1 inner|left|right| join 表2 别名2 on 连接条件 set 列值,…… where 筛选条件;
修改单表的记录#案例1修改beauty表中姓唐的女神的电话为13899888899
set sql_safe_updates0;
update beauty set phone13899888899 where name like 唐%;
select * from beauty;
#案例2修改boys表中的id2的名称为张飞userCP10
select * from boys;
update boys set boyName张飞,userCP10 where id2;修改多表的记录#案例1修改张无忌的女朋友的手机号为114
update boys bo inner join beauty b on b.boyfriend_id bo.idset b.phone114 where bo.boyName张无忌;
update boys bo,beauty b set b.phone114 where b.boyfriend_idbo.id and bo.boyName张无忌;
select * from beauty;
#案例2修改没有男朋友的女神的的男朋友编号都改为2
update beauty b left join boys bo on b.boyfriend_idbo.id set boyfriend_id2 where bo.id is null;三、删除语句
以行为单位删除
概述
方式一delete 语法 1、单表的删除 delete from 表名 where 筛选条件 2、多表的删除(级联删除) sql92语法 delete 别名1 【,别名2 】from 表1 别名1表2 别名2 where 连接条件 and 筛选条件 sql99语法 delete 别名1 【,别名2 】from 表1 别名1 inner|left|right join 表2 别名2 on 连接条件 where 筛选条件 方式二truncate 语法 truncate table 表名;
方式一delete
1、单表的删除
#案例1删除手机号以9结尾的女神的信息
use girls;
delete from beauty where phone like %9;
select * from beauty;2、多表的删除
#案例2删除张无忌的女朋友的信息
delete b from beauty b inner join boys bo on b.boyfriend_idbo.id where bo.boyname张无忌;
#案例3删除黄晓明的信息以及他女朋友的信息
delete b,bo from beauty b inner join boys bo on b.boyfriend_id bo.id where bo.boyname黄晓明;
select * from beauty;
select * from boys;方式二truncate语句 【清空语句】
truncate不能和where搭配,当truncate用于删除整张表时,他的效率比delete要高
delete VS truncate 【面试题】
delete可以加where条件但truncate不能truncate删除效率更高一些假如要删除的表中自增长列 如果用delete删除后再插入数据自增长列的值从断点开始 而truncate删除后再插入数据自增长列的值从1开始truncate删除没有返回值delete删除有返回值能返回受影响的行数truncate删除不能回滚delete删除可以回滚
使用delete进行删除select * from boys;
delete from boys;
insert into boys(boyname,userCP) values(张飞,100),(刘备,140),(关云长,120);【补充】delete可以搭配limit使用 语法delete from 表名 【where 筛选条件】 【limit 条目数】 案例use girls;
select * from beauty;
delete from beauty limit 1;#beauty表中第一条数据被删除
delete from beauty where boyfriend_id 9 limit 1;#虽然符合筛选条件的记录有多个但是只删除了第一条。