文章目录
插入语句
一、方式一
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语法
update 表1 别名,表2 别名
set 列名=值,...
where 连接条件
and 筛选条件;
sql99语法
update 表1 别名
inner|left|right join 表2 别名
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语法
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法
delete 表1的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;
二、方式二:truncate
删除整个表
语法:
truncate table 表名
两种方式的区别【面试题】
1.truncate不能加where条件,而delete可以加where条件
2.truncate的效率高一丢丢
3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始;delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
4.truncate删除不能回滚,delete删除可以回滚