表的内外连接与增删改操作

1.内连接
内连接:内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接
格式:
select 列名 from 表名inner join 表2 on 连接条件 and 其他条件;
在这里插入图片描述
左外连接:如果联合查询,左侧的表完全显示
格式:
select 字段名 from 表名1 left join 表名2 on 连接条件

右外连接:如果联合查询,右的表完全显示
格式:
select 字段 from 表名1 right join 表名2 on 连接条件;
在这里插入图片描述
左外查询和右外查询,如果置换表的位置,查询结果一样。
在这里插入图片描述

表的增删改

1.增加 insert into

   insert into 表名 【(要插入的列名)】 values(插入的数据1) 【,(插入的数据2),..,】;

不写列名就是隐含列,插入时需按列的顺序插入且插入全表内容,且数据类型需对应,数据大小在对应的范围内,
指定列插入值需对应数据类型插入

字符串.日期等要加单引号
当主键冲突时,则更新数据:–>将原先数据update后内容的更新为新数据,其他保持原冲突数据不变

insert into goods (id,goods_name,price) values(89,’sm’,2) on duplicate key update goods name=’sm’,price=7;

替换全部数据:

replace into goods (id,goods_name,price) values(89,’sm’,2)

注:若主键有重复则全部替换原数据,若无重复则添加新数据
2.更新操作update

update 表名 set 要修改的列名=修改后的值....【where 条件】 【limit 数字】;

eg:limt 2 -->从第一个数据开始,更新2个数据
没有约束条件的情况下,会修改列中所有的数据
3. 删除delete

delete from 表名 【where 条件】

不能删除列,删除列可通过 alter drop 命令或 update 更新为null
不加where条件—》整表数据删除,且是一行一行的删,会返回删除数据行的结果
复制表的数据(两步)
i)复制表结构
a)

show create table [];

b)

create table [新表名] like [要复制的表名];

ii)复制表数据

select * from [要复制的表名];

4.删除 truncate

    truncate table 表名  

一次性删除数据, 直接将表长度变为0
但是表结构在,且速度快于delete,效率更高

猜你喜欢

转载自blog.csdn.net/weixin_42962924/article/details/83720539