当前位置:   article > 正文

SQL Server 查询语句_sql server查询语句

sql server查询语句

注:数据库对字母的大小写没有强烈要求

目录

1、 SELECT语句中关键字执行顺序

2、限定查询范围关键字:WHERE

 (1)模糊查询关键字:LIKE

(2)过滤重复关键字:DISTINCT

(3)查询前几行数据的关键字:TOP

3、ORDER BY排序查询

4、GROUP BY分组查询

 (1)分组后限定查询关键字:HAVING

5、聚合函数

查询是数据库中最常用的操作。对于以及定义的表和视图,用户通过查询操作得到所需的信息。

要从表中查询数据,请使用SELECT语句,以下是SELECT语句最基本的形式:

SELECT(查询) *(全部) from(指定的表) table—_name
SELECT colum_name(列名) from table_name

1、 SELECT语句中关键字执行顺序

from>where>group by>having>select>order by

通过关键字的执行顺序可以发现一下语法错误 

2、限定查询范围关键字:WHERE

where用于过滤查询结果中满足条件的结果,格式为:

SELECT column_name from table_name
where<条件表达式>

where子句:指出查找条件,可以使用以下运算符来限定查询结果:

(1)比较运算符:=,>,<,>=,<=,<>,!=,!>,!<

(2)字符匹配运算符:like,not like

(3)确定范围运算符:between and,not between and

(4)逻辑运算符:not,and,or

(5)集合运算符:union(并),intersect(交),except(差)

(6)集合成员运算符:in,not in

(7)聚合函数:avg(列名),min(列名),max(列名),sum(列名),count(列名/*/1)

注:逻辑运算符若要使用多个的话要考虑要求用括号来决定查询范围

代码示例:

  1. --查询单价大于等于1000的物品
  2. select product_name from product
  3. where sale_price>=1000
  4. --查询所以年龄在20到23的学生姓名,专业,及年龄
  5. select sage,sname,sdept from student
  6. where sage between 20 and 23
  7. --查询不在20到23岁之间的
  8. --where sage not between 20 and 23
  9. --查询厨房用具大于等于3000的商品
  10. select product_name from product
  11. where product_type='厨房用具' and sale_price>=3000
  12. --查询软件工程,电子电工的学生,查询不是的学生则在in的前面加not
  13. select sname,ssex from student
  14. where sdept='软件工程' or sdept='电工电子';
  15. --where sdept in('软件工程','电子电工');

 (1)模糊查询关键字:LIKE

--查询姓为林的学生
select sname,sno,ssex from student
where sname like '林%';
--查询名字中第二个字为涛的学生
select sname,sno from student
where sname like '_涛%';

like关键字中的"_","%"表示可以匹配0个或多个字符

(2)过滤重复关键字:DISTINCT

--查询产品类别的数量

select count(distinct product_type)from product

distinct 去重关键字写在列名的前面

(3)查询前几行数据的关键字:TOP

--查询成绩表中前三行的数据

select top 3 * from course

--查询成绩表中一半的数据
select top 50 percent * from course

percent百分数

3、ORDER BY排序查询

order by用于把数据进行有序输出,格式如下:

SELECT column_name from table_name 

order by column_name [desc |asc]

desc降序关键字,asc升序关键字

SELECT语句中,order by子句是要最后处理的一个子句 

4、GROUP BY分组查询

group by用于查询数据过程对数据先进行分组,然后再对每个小组进行计算,而不是全表,格式如下:

SELECT column_name,expression[聚合函数...] from table_name

group by column_name

代码展示:

  1. --查询产品表中每个类型的数量
  2. select product_type,count(*) as product_type_num from product
  3. group by product_type
  4. --查询产品表中每个类型的平均价格
  5. select product_type,avg(sale_price)as sale_price_avg from product
  6. group by product_type

 group by后面的列名不能使用列别名因为group by的执行顺序大于select的执行顺序

 (1)分组后限定查询关键字:HAVING

如果希望在分组的基础上要筛选满足条件的组,可以在GROUP BY子句后跟一个HAVING的子句来限定分组,格式如下:

having[ 条件]

代码展示:

  1. --查询产品表中类型数量大于4
  2. select product_type,count(*) from product
  3. group by product_type
  4. having count(*)<4

代码执行顺序为:先找到product表,然后对表中产品类型数量进行分组,再找到分好的组中产品类型数量小于4的,最后在输出

from>group by>having>select 

 我们可以发现有两个限定查询的关键字(where,having),让我们来分析一下二者的区别

--where作用于基本表或者视图,从中选取满足的元组,having作用于分组,从中选取满足条件的组

--where不可以使用聚合函数,而having可以使用聚合函数

--having子句总是跟在group by子句后的,不可以单独使用,而where可以独立使用

5、聚合函数

聚合函数可对一组值进行计算并返回一个单值。计算时可以满足WHERE子句条件的记录,也可以对满足的分组进行计算。聚合函数有

 --COUNT(*):计算元组的个数

 --COUNT(列名):计算单列中的值的计算个数

 --SUM(列名):求某一列值的总和

 --AVG(列名):求某一列值的均值

 --mMAX(列名):求某一列值的最大

 --MIN(列名):求某一列值的最小

聚合函数和算数运算符的区别

聚合函数使用若表中有NULL值则会自动跳过,算数运算符有空值计算结果就为空。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/703779
推荐阅读
相关标签
  

闽ICP备14008679号