SQL Server——SELECT基本语句

时间:2021-03-11 10:45:25
</pre><pre class="sql" name="code">/****** Script for SelectTopNRows command from SSMS  ******/
use [MyDatabase]
go
select * from [dbo].[学生信息表$]     --显示表中的全部信息


select top 10 * from [dbo].[学生信息表$]     --选择前10项显示全部信息


select [学号/帐号*],[姓名*],[性别],[院系*],[专业*],[入学年份]
from [dbo].[学生信息表$]
order by [入学年份] desc --desc按降序排列,asc按升序排列



select [学号/帐号*],[姓名*],[性别],[院系*],[专业*],[入学年份]
from [dbo].[学生信息表$]
order by 6  --按第6列升序排列


select [学号/帐号*],[姓名*],[性别],[院系*],[专业*],[入学年份],[手机号],isnull([邮箱],''),[课程]
from [dbo].[学生信息表$]   --不显示[邮箱]中值为NULL的值且列名不显示


select [学号/帐号*],[姓名*],[性别],[院系*],[专业*],[入学年份],[手机号],isnull([邮箱],'') as [邮箱],[课程]
from [dbo].[学生信息表$]   --不显示[邮箱]中值为NULL的值且显示列名



select [学号/帐号*],[姓名*],[性别],[院系*],[专业*],[入学年份],[手机号],isnull([邮箱],'') as [邮箱],[课程],
'我是:'+ [姓名*]
from [dbo].[学生信息表$]   --+号的使用


select *,[日花费]*300 as 年花费
from [dbo].[软件1405——406$]--对数据的计算


select * from [dbo].[学生信息表$]
where [学号/帐号*]='13030330'--选出所有[学号/帐号*]为13030330的数据


select * from [dbo].[学生信息表$]
where [学号/帐号*]>'13030330'and [学号/帐号*]<'13030340'--选出同时满足两个条件的数据and ,between....and


select * from [dbo].[学生信息表$]
where [学号/帐号*]<'13030330'or [学号/帐号*]>'13030340'--选出只要满足两个条件中一个条件的数据


select * from [dbo].[学生信息表$]
where [姓名*] like '刘%'--%代表有字符或没字符



select * from [dbo].[学生信息表$]
where [姓名*] like '_王%'--_代表只有一个字符。



select * from [dbo].[学生信息表$]
where  [专业*] in('会计','文秘','物流管理')  --in的用法



select * from [dbo].[学生信息表$]
where  [专业*] not in('会计','文秘','物流管理')  --not in的用法


select * from [dbo].[学生信息表$]
where [邮箱]  is null  --is null和is not null的用法

<pre class="sql" name="code">select 
Avg([体重]) as [平均体重],
Min([体重])as [最大值],
Max([体重])as [最小值],
Sum([体重])as [总和]
from [MyDatebase].[dbo].[软件1405——406$]

select [姓名],
Max([体重])as [最小值]
from [MyDatebase].[dbo].[软件1405——406$]
group by [姓名]
order by [姓名]  --



select [姓名],
Max([体重])as [最小值]
from [MyDatebase].[dbo].[软件1405——406$]
where [体重] is not null
group by [姓名]
having Max([体重])>60
order by [姓名]

COUNT(表达式|*)

COUNT(*)函数用于计算查询中返回的行数

SELECT [入学年份],COUNT(*) AS [人数]
  FROM [MyDatebase].[dbo].[学生信息表$]
  WHERE [入学年份] IN(2012,2013)
  GROUP BY [入学年份]
  ORDER BY [入学年份]


HAVI子句仅用于带有GROUP BY自居的查询语句中。WHERE子句应用于每一行,而HAVING字句应用于分组的聚合值。

WHERE子句在聚合函数之前执行

HAVING子句在聚合函数执行后执行

SELECT [入学年份],COUNT(*) AS [人数]
  FROM [MyDatebase].[dbo].[学生信息表$]
  WHERE [入学年份] IN(2012,2013)
  GROUP BY [入学年份]
  HAVING COUNT(*) > 50
  ORDER BY [入学年份]


DISTINCT只返回不同的值,去掉重复的。

SELECT DISTINCT [入学年份]
  FROM [MyDatebase].[dbo].[学生信息表$]
  WHERE [入学年份]>=2013

DISTINCT可以用在聚合函数表达式中。

SELECT COUNT(DISTINCT [入学年份])
  FROM [MyDatebase].[dbo].[学生信息表$]
  WHERE [入学年份]>=2012