一.select语句

1.SELECT语句的基本结构

SELECT  select_list[INTO new_table]

[FROM table_source] [WHERE search_condtion]

[GROUP BY group_by_expression]

[HAVING search_condtion]

[ORDER BY order_by_expression [Asc\Desc] ]

2.用WITH语句检查一致性

   WITH语句用于指定临时命令的结果集

   WITH expression_name[(column_name[,.....n])] AS(CTE_query_defintion)

   expression_name:表达式

   CTE_query_defintion:创建临时结果集的查询语句

----使用公式表查询每个班的男生人数和女生人数
 WITH cte_count(班级,性别,人数) 
AS (select 班级,性别,count(*) from xs group by 班级,性别)
select * from cte_count
View Code

3.用SELECT.....FROM 子句返回记录

  1.查询所有列

         select *  from  xs

 2.查询指定列

      select 学号,姓名,出生日期 from xs 

3.计算列

----查询所有学生的学号、姓名和年龄
select 学号,姓名,year(GETDATE())-year(出生日期)  from xs

4.定义别名(定义别名[AS可以空格省略] ,除了使用AS关键字,还可以使用“=”)

select 学号,姓名,year(GETDATE())-year(出生日期) AS 年龄 from xs

select 学号,姓名,年龄=year(GETDATE())-year(出生日期)  from xs

4.用INTO子句将记录写入到指定文件

--查询所有男生的信息并将结果保存到新表中。
select * into man from xs where 性别=''
--查询所有1996年出生的学生情况,保存到临时表中【临时表前面需要加上“#”】
select * into #temp from xs where year(出生日期)=1996

5.用WHERE子句三选符合条件的记录

 1.比较条件查询

  

  • And:当2个条件都满足时,其值为真。
  • Or:当两个条件中有1个满足,其值为真。
  • Not:对指定条件取反。
--从KC表中查询第二学期所开课程显示课程号、课程名以及学时
select 课程号,课程名,学时 from kc where 学期=2
--从kc表中查询第2学期且学分4分或以上的课程,显示课程号、课程名以及学分
select 课程号,课程名,学分 from kc where 学期=2 and 学分>=4

2.范围条件查询【Between......end】

--查询1996年出生学生的基本情况,显示所有字段
select * from xs where 出生日期 between '1996-1-1' and '1996-12-31'

3.列表条件查询

      使用IN 关键字,可以查询与列表中的值相匹配的记录

    

6.用GROUP BY 子句为记录分组

 

7.用HAVING子句对聚合指定条件

 

8.用ORDER BY 子句排序

 

9.用Distinct关键字排除重复值

 

10.用Top关键字返回指定记录

 

 二、Union合并多个查询结果