1.查询表中的所有信息
select *
from <表名>
2.查询表中选择的列的所有信息
select <列名>as<列名>,<列名>as<列名>
from <表名>
select *
from <表名>
where <条件表达式>
查询条件 | 谓 词 |
---|---|
比较 | =, >, <, >=, <=, !=, <>, !>, !< |
确定范围 | between and, not between and |
确定集合 | in, not in |
字符匹配 | like, not like |
空值 | is null, is not null |
多重条件 | and, or(and优先级高于or) |
字符匹配通配符
%(匹配0个或多个字符串)
_(匹配1个字符串)
select <聚集函数>,
from depart
where <条件表达式>
聚集函数 | 效果 |
---|---|
avg (distinct<列名>) | 求平均值,加上distinct 表示相同的只计算一次 |
count (distinct<列名>) | 计数,加上distinct 表示相同的只计数一次 |
sum (distinct<列名>) | 求和,加上distinct 表示相同的只计算一次 |
max (<列名>) | 求最大值 |
min (<列名>) | 求最小值 |
1.top(查询结果是表从上往下的 n 行信息)
select top n *
from <表名>
2.distinct(可以消除同一列的重复数据-消除重复行)
select distinct <列名>
from <表名>
order by 子句用作排序
select *
from <表名>
order by <列名> asc,<列名> desc
asc:升序
desc:降序
group by 子句用作分组统计查询
select type,avg(price) as avg(price)
from <表名>
group by type
查询语句图片效果↓
having 子句使用在 group by 子句后面
可以在后面跟条件表达式和聚集函数
作用与where
类似
select <列名>,<列名>
from <表名>
group by <列名> having <条件表达式/聚集函数>
into 子句用作将查询结果保存到一个新建表中<永久表/临时表>)
临时表用#
开头
select *
into #<临时表名>
from <表名>
查询临时表
select *
from #<临时表名>
方法1:在from子句中指定内部连接的条件(建议使用方法1)
select *
from <表名1> inner join <表名2> on <连接条件>
方法2:在where子句中指定内部连接的条件
select *
from <表名1>,<表名2>
where <连接条件>
1.左外连接(left outer join–on)
select <表名1>.*,<表名2>.*
from <表名1> left outer join <表名2> on <连接条件>
返回 outer join
左边的表中所有的行,并匹配右边表中的数据行,若无填入NULL
2.右外连接(right outer join–on)
select <表名1>.*,<表名2>.*
from <表名1> right outer join <表名2> on <连接条件>
返回 outer join
右边的表中所有的行,并匹配左边表中的数据行,若无填入NULL
3.完全外部连接(full outer join–on)
select <表名1>.*,<表名2>.*
from <表名1> full outer join <表名2> on <连接条件>
返回两表中所有行的数据
如果两表之间有匹配行时,返回整体结果集包含两表的数据值,
如果两表之间没有匹配的行时,返回数据值并且与之相对应的列填入NULL
select <表名1>.*,<表名2>.*
from <表名1> cross join <表2名>
where <条件表达式>
返回两表每行的所有可能的组合,可通过where进行筛选
union
Union运算符用于将两个或多个select语句的结果组合成一个结果集
使用 union 运算符时应遵循下列准则:
CTE:可以视为临时结果集
CTE 不存储对象,并且只在查询期间有效,它可以自引用,还可以在同一查询中引用多次
定义CTE
with
引用CTE
select *
from
in谓词的作用是判断一个表中指定列的值是否包含在已定义的列表中或在另一个表中
select <列名>
from <表名>
where <列名> in (<查询语句>)
判断符号 | any(表示任何一个) | all(表示全部) |
---|---|---|
< | 表示小于子查询结果中的任何一个结果 | 表示小于子查询结果中的所有值 |
> | 表示大于子查询结果中的任何一个结果 | 表示大于子查询结果中的所有值 |
select <列名>
from <表名>
where <列名><判断符号>
exists谓词用于where子句中测试子查询返回的数据行是否存在,只产生逻辑值“true”或“false”
select *
from <表名1>
where exists (<查询语句>)
select <查询语句> as <显示的列名>
from <表名>
<连接条件>=<表名1>.<列名>=<表名2>.<列名>
<查询语句>=select...from...where...
year(<列名>)
用于获取这个列的年
month(<列名>)
用于获取这个列的月
day(<列名>)
用于获取这个列的日
GETDATE()
用于获取当前日期