多表连接查询

1.笛卡尔集
* 产生条件:
1. 省略连接条件
2. 连接条件无效
3. 所有表中所有行互相连接
* 解决方案:
添加有效筛选条件

  1. 内连接
    • SQL92语法:
      SELECT 查询列表
      FROM 表名1 别名1 ,表名2 别名2
      WHERE 连接条件
      AND 筛选条件
      GROUP BY 分组列表
      HAVING 分组后筛选条件
      ORDER BY 排序列表
    • SQL99语法:
      select 字段列表
      from 表名1
      [inner] join 表名2 on 条件
      where 筛选条件
      group by 分组条件
      having 分组后的筛选条件
      order by 排序字段

外连接

1. 左外连接
	* 语法:
		select 字段列表 
		from1 
		left [outer] join2 on 条件
		...
	* 注意:
		左外连接查询的是左表所有数据以及其交集部分
-------------------------------------------------------------------------
5. 右外连接
	* 语法:
		select 字段列表 
		from1 
		right [outer] join2 on 条件
		...
	* 注意:
		右外连接查询的是右表所有数据以及其交集部分		
		
## 子查询
```sql
* 概念:查询中嵌套查询,称嵌套查询为子查询
* 特点:
	1、子查询都放在小括号内
    2、子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
    3、子查询优先于主查询执行,主查询使用了子查询的执行结果
    4、子查询根据查询结果的行数不同分为以下两类:
        ① 单行子查询
            结果集只有一行
            一般搭配单行操作符使用:> < = <> >= <= 
            非法使用子查询的情况:
               	a、子查询的结果为一组值
                b、子查询的结果为空
       	② 多行子查询
            结果集有多行
            一般搭配多行操作符使用:anyallinnot in
            in: 属于子查询结果中的任意一个就行
            anyall往往可以用其他查询代替
	
``

##  分页查询

```sql
* 语法:
	select 字段|表达式,...
	fromwhere 条件
	group by 分组字段
	having 条件
	order by 排序的字段
	limit 起始的条目索引,条目数;
* 示例:每页显示3条记录
		* SELECT * FROM student LIMIT 0,3; -- 第1页
		
		* SELECT * FROM student LIMIT 3,3; -- 第2页
		
		* SELECT * FROM student LIMIT 6,3; -- 第3页
* 特点:
	1.起始条目索引从0开始

	2.limit子句放在查询语句的最后

	3.公式:select * fromlimit (page-1*sizePerPage,sizePerPage
	假如:
		每页显示条目数sizePerPage
		要显示的页数 page
	

联合查询(union )

* 语法:
	select 字段|常量|表达式|函数 fromwhere 条件 unionallselect 字段|常量|表达式|函数 fromwhere 条件 unionallselect 字段|常量|表达式|函数 fromwhere 条件 unionall.....
	select 字段|常量|表达式|函数 fromwhere 条件
* 特点:
	1、多条查询语句的查询的列数必须是一致的
	2、多条查询语句的查询的列的类型几乎相同
	3union代表去重,union all代表不去重
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值