数据库04—DML数据操控语言

插入语句

一、方式一

1.语法

insert into 表名(列名,...) values (1,...),(,...)

2.特点

1)要求值的类型和字段的类型要一致或兼容
2)字段的个数和顺序不一定与原始表中的字段个数和顺序一致
但必须保证值和字段一一对应
3)假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
①字段和值都省略
②字段写上,值使用null
4)字段和值的个数必须一致
5)字段名可以省略,默认所有列

二、方式二

1.语法

insert into 表名 set 字段=,...

三、两种方式的区别

1.方式一支持一次插入多行,语法如下:

insert into 表名【(字段名,..)values(值,..),(值,...),...;

2.方式一支持子查询,语法如下:

insert into 表名
查询语句;
#案例:在beauty表中插入boys表中的内容
insert into beauty(id,NAME,phone)
select id,boyname,'1234567'
from boys where id<3;

三、mysql中常用的三种插入数据的语句:

1.insert into

表示插入数据,数据库会检查主键,如果出现重复会报错;

2.replace into

表示插入替换数据 ,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;

3.insert ignore

表示如果中已经存在相同的记录,则忽略当前新数据

修改语句

一、修改单表记录

1.语法

update 表名
set 列名=新值,列名=新值,...
where 筛选条件;
#replace 
#更新所有数据
replace table_name
set column1 = 'value1',
    column2 = 'value2'
 
#更新特定数据
replace(x,y,z)
-- x表示要更新的列名
-- y表示需要被更新的数据
-- z表示更新后的数据
-- 会更新表格中这一列所有符合条件的数据
update table
set column1=replace(column1,'old_value','new_value')
#将id=5,emp_no=10001的员工信息改为id=5,emp_no=10005
#1.
update titles_test
set emp_no=replace (emp_no,'10001','10005')
where id=5

#2.
replace into titles_test
select 5,10005,title,from_date,to_date
from titles_test
where id=5 and emp_no=10001;

2.示例

#案例:修改boys表中id好为2的名称为张飞,魅力值 1000
update beauty set  boyname='李雷',usercp=1000
where id=2

二、修改多表记录

1.语法

sql92语法
update1 别名,2 别名
set 列名=,...
where 连接条件
and 筛选条件;
sql99语法
update1 别名
inner|left|right join2 别名
on 连接条件
set 列名=,...
where 筛选条件;
#示例:修改张无忌的女朋友的手机号为114
update boys bo
join beauty b on bo.id=b.boyfriendid
set b.phone='114'
where bo.boyName='张无忌'

删除语句

一、方式一:delete

SQL中不允许在子查询的同时删除表数据(不能一边查一边把查的表删了),如果想删除,必须给原始数据表取一个别名再删除;查询出结果,给结果取别名之后再删除

1.语法

delete from 表名 where 筛选条件

删除整个表:delete from 表名

2.单表的删除

delete from 表名 where 筛选条件
#案例:删除手机号以9结尾的女神信息

3.多表的删除

sql92语法
delete1的别名,2的别名
from1 别名,2 别名
where 连接条件
and 筛选条件;
sql99语法
delete1的别名,2的别名
from1 别名
inner|left|right join2 别名 on 连接条件
where 筛选条件;

二、方式二:truncate

删除整个表
语法:

truncate table 表名

两种方式的区别【面试题】

1.truncate不能加where条件,而delete可以加where条件
2.truncate的效率高一丢丢
3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始;delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
4.truncate删除不能回滚,delete删除可以回滚

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值