-- 1、基本结构select 查询列
from 查询表
into<表名> 查询结果保存新表
where 查询条件
Groupby 依据哪列分组 不常用
having 分组条件 不常用
Orderby 排序条件 不常用
-- 2、select子句汇总 处理各列的值Select2018-年龄列 :可以直接对应全列结果
Select2018-年龄列 as 新列名 :结果显示新列名
Selectdistinct 列 :所在列去重
Select 列,列 :中间用,号隔开
select 函数(列名)
-- 3、where子句汇总 查询满足条件的行Where 列名<60 : 比较 对数字进行比较大小,规定范围 大于,大于等于,小鱼,小于等于 等于 不等于
where 列名 between20and30 :确定范围 对数字类型
Where 列名 in (‘1’,’2’,’3’) : 确定集合
Where 列名 like ‘张%’:字符匹配 通配符: 按字符查找
%(百分号):匹配0个或多个字符。
_(下划线):匹配一个字符。
[]:匹配括号中的字符
[^]:不匹配括号中的字符
Where 列名 like ‘%[50%]%’
Where 列名 like ‘%50*%%’
Escape ’*’ :转意字符,把%通配符的含义转成普通的百分比
Where 列名 isnotnull 空值查询 查询和去掉空值
Where 列名=‘表’and 列名<20 多重条件连接字符 andor 多条件链接查询
-- 4、不常用子句汇总Groupby 例名 : 按照一列进行分组 --遇到每一个的字眼的时候就是分组Having count(*)>3 对分组的结果按照条件筛选
Orderby 列名 ,列名 desc :前按升序,后按降序
-- 5、子查询WHERE 列名 [NOT]IN(子查询)Where 表达式 = 比较运算符(子查询)
WHERE[NOT]EXISTS存在 (子查询)1 带in 子句查询 :子查询的列名都是和父表有关的
Select 列名
From 表名
Where 列名 in
(Select 列名
From 表名
Where 列名 )
2带比较运算符的子查询
Select 列名
From 表名
Where 列名 =
(Select 列名
From 表名
Where 列名 )
3带exists():关联外部表时用此函数引导,子句不反回结果数据,产生真值和假值
Select 列名
From 表名
Where exitsts
(Select 列名
From 表名
Where 列名 )
-- 6、多表连接查询1内连接
From 表名 innerjoin 表名
On 表名。列名 = 表名。列名 列名是两张表中相同列,连接用 =2左外连接
FROM 表1leftouterjoin 表2ON 连接条件
返回表1中的全部记录,和表2中满足连接条件的记录
3右外连接
FROM 表1rightouterjoin 表2ON 连接条件
返回表2中的全部记录,和表1中满足连接条件的记录
-- 7、合并多个结果集 :all包含所有行,包括重复行
查询语句1Union[all]
查询语句2Union[all]-- 8、TOP限制结果集:Top n percent with ties-- 查询语句总结:1select 后的关键字、函数都是直接处理对应列内容的。
2where后的表达式都是处理行数的
3group by 也是对应列的,按照那一列分组
4having 对应的是where 的条件表达式 --having对分组后的数据加条件,where是对整个的数据加条件5select 列名,COUNT(*)from 表名
groupby 列名 --固定格式,按照列名分组,其他列进行分组后的数量6子查询中:父子句 where 列 in 都和子子句 select 列 对应的
From 是两个不一样的表
7连接查询:on 后的表。列 必须是两个表对应一样的列
-- 8主键外键思路汇总:1每一组数据系统都是几张表,每张表都有主键和外键的列,
3外键表中的外键列都对应其他主键表有相同列。
4、groupby 分组的列,基本都选择主键的列,因为主键有唯一表示
5父查询条件在in前的列,是主键,和子句中的查询后的列相同,唯一表示好对比
6连表接on后的列基本都是主键列
五 建立视图
-- 1、例题Createview age_view
asSelect*From students
Where sage between18and22Withcheckoption--可以不加,意思是给存储过程加密-- 1说明
查询语句中通常不包含orderby子句,除非使用了top子句;不能包含into子句,不能包含临时表和临时变量;
withcheckoption选项是指利用所创建的视图对基本表进行更新、插入、删除的时候,操作的目标记录必须满足定义视图时where子句给出的条件,这样仍可以通过视图看到修改后的数据;如果在子查询中使用了top,则不能指定withcheckoption;
-- 2使用视图的原因
A. 重用SQL语句。
B. 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道其基本查询。
C. 使用表的一部分而不是整个表。
D. 保护数据。可以授予用户访问表的特定部分的权限,而不是整个表的访问权限。
E. 更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。
-- 3语句调用视图:和调用表是一样的,只是是一个临时表,正常表中的数据映射SELECT*FROM v_Test_View1