sql92语法,sql99语法,连接查询

连接查询的分类:按年代分为sql192标准仅仅支持内连接,sql199标准支持内连接,左外连接,右外连接,交叉连接

                             按功能分为内连接,外连接,交叉连接

sql92标准:内连接包括1.等值连接:select name,boyname

                                            form boys,beauty

                                            where beauty.boyfriend_id = boys.id;

                         多表等值连接的结果为多表的交集部分

                         n表连接至少需要n-1个连接条件

                         多表的顺序没有要求

                         一般需要为表起别名

                     2.非等值连接:select salary,grade_level

                                             form employees e,job_grades g

                                             where salary between g.'lowest_sal' and 'highest_sal';

                     3.自连接:select e.employee_id,e.last_name,m.employee_id,m.last_name

                                      from employees e,employees m

                                      where e.'manager_id' = m.'employee_id';

sql99语法:包括内连接(inner),外连接(left outer ,right outer,full outer),交叉连接(cross join)

            语法:select 查询列表

                      form 表1 别名 【连接类型】

                      join 表2 别名

                     on 连接条件

                     【where 筛选条件】

特点:添加排序,分组,筛选

           inner可以省略

           筛选条件放在where后面,连接条件放在on后面,提高分离性

                      1.内连接:select 查询列表

                                        form 表1 别名

                                         inner join 表2 别名

                                          on 连接条件

                              等值连接:select last_name,department_name

                                                form employee e

                                                inner join department d

                                                 on e.'department_id' = d.'department_id';

                            非等值连接:select  salary,grade_level

                                                  from employee e

                                                  join job_grades g

                                                  on e.'salary' between g.'lowest_sal' and g.'highest_sal'

                                                  group by grade_level;

                               自连接:select e.last_name,m.last_name

                                           from employees e

                                           join employees m

                                          on e.'manager_id' = m.'employee_id'

                                           where e.'last_name' like '%k%';

                              2.外连接 :用于查询一个表中有,一个表中没有的

                                         特点:外连接的查询结果是主表中的所有记录

                                                      如果从表中有和它匹配的值,则显示出来,没有显示null

                                                   select * from beauty;

                                                    select * from boys;

                                     左外连接:left join左边的是主表

                                                         select b.name,bo.*

                                                         form beauty b

                                                         left outer join boys bo

                                                          on b.'boyfriend_id' = bo.'id';

                                      右外连接:right join右边的是主表

                                                           select b.name,bo.*

                                                         form boys bo

                                                         right outer join  beauty b

                                                          on b.'boyfriend_id' = bo.'id';

                                         全外连接:等于内连接的结果,加上表1有但表2没有的,加上表2有表一没有的

                                                            use girls;

                                                            select b.*,bo.*

                                                             from beauty b

                                                             full outer join boys bo

                                                             on b.'boyfriend_id' = 'bo.id';

                                           交叉连接:select b.*,bo.*

                                                              form beauty b

                                                              cross join boys bo;

                                       

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值