目录
1、sql语句执行顺序
一般情况下:1、from 2、where 3、select
如果有分组和having:from 分组 having最后执行
2、多表查询
内联:select * from 表1 inner join 表2 on 连接条件 inner join 表3 on 连接条件;
左联:select * from 表1 left join 表2 on 连接条件 left join 表3 on 连接条件;
右联:select * from 表1 right join 表2 on 连接条件 right join 表3 on 连接条件;
笛卡尔积:select * from 表1,表2 where 连接条件;
区别
内联:不包含空的结果,取两个表的交集
左联:以左边的表为基准匹配行,如果没有对应的,属性为空
右联:以右边的表为基准匹配行,如果没有对应的,属性为空
笛卡尔积:查询结果和内联一致,写法简单,但效率低,不推荐使用,先采用排列组合的方式,再按照条件筛选符合条件的结果
3、写sql的步骤
1、联表
2、加条件
3、筛选显示的列
4、去重
distinct
举例:select s from sc;
select distinct s from sc;
select s,c from sc;
select distinct s,c from sc;
5、视图
view:为了简化复杂的sql查询语句而提出的概念。视图是一个表或者是多个表导出的虚拟表,所以不需要满足范式的要求
视图创建好以后,永久保存在数据库中,查询语句可以通过视图名代替
创建语法:create view 视图名 as (sql查询语句)
使用:跟表的使用方法一样(只能查询数据)
删除:drop view 视图名
eg:
create view myvie