一、连接查询
1.内连接查询
1.等值查询
SELECT girlName,boyName FROM boys,beauty WHERE beauty.boyfriend_id = boys.id;
特点:
① 一般为表起别名, 为表起了别名,就不认识原先表的名字了
②多表的顺序可以调换
③n表连接至少需要n-1个连接条件
④等值连接的结果是多表的交集部分
可以加筛选,筛选时候,条件用and连接到前面的where语句。
三表连接。保证第三个要与前两个连接的结果有连接条件。
2.非等值查询
3.自连接查询
2.外连接查询
1.左外连接查询
2.右外连接查询
3.全外连接查询(mysql不支持)
3.交叉查询
笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现完全连接
如何解决:添加有效的连接条件
二、子查询
一、含义
嵌套在其他语句内部的select语句称为子查询或内查询,
外面的语句可以是insert、update、delete、select等,一般select作为外面语句较多
外面如果为select语句,则此语句称为外查询或主查询
二、分类
1、按出现位置
select后面:
仅仅支持标量子查询
from后面:
表子查询
where或having后面:
标量子查询
列子查询
行子查询
exists后面:
标量子查询
列子查询
行子查询
表子查询
2、按结果集的行列
标量子查询(单行子查询):结果集为一行一列
列子查询(多行子查询):结果集为多行一列
行子查询:结果集为多行多列
表子查询:结果集为多行多列
from
后面的子查询必须重命名。不然找不到表名。
exit
不常用。可以用in结构来代替
分页查询
联合查询
查询语句1
union 【all】
查询语句2
插入
两种插入。
update
删除
对库操作
对表操作
表的复制