**
第六章
**
第一节
简单的Select语句
读取数据库信息的语句,select 语法格式:
Select [ALL|Distinct]select_list ’查询表中的某个列
[Into new_table]
FROM TABLE_Soure ’具体哪个表查询数据
[Where search_conditions] ’设置搜索条件
[Group by group_by_expression] ’分组查询
[Having search_conditions] ’查询判断
[Order by order_expression[ASC|DESC]] ‘查询的如何排序
使用简单的Select字句:
Select * 学生信息 ’*表示查询表中的所有字段
指定查询单个列的信息:select * 姓名,性别,from 学生信息
SQL Server2014新建查询小技巧计算器:Select (±*/) as 计算结果 ’还可以当计算器用,计算结果是他的列明。
查询表中都有哪些民族:select 民族 from 学生信息,这条语句查询的是表中的全部名族,
select Distinct 民族 from 学生信息,这条语句多加了一个关键字(Distinct)就可以查询得到表中有哪些名族种类。
第二节
设置查询条件
精确查询:select * from 学生信息 where 姓名=‘崔鹏’
多条件查询:select * from 学生信息 where 民族=‘汉族’ AND 性别=‘男’ AND 出生日期=‘1997-05-09’
使用通配符查询:select * from 学生信息 where 民族like’汉族%’
第三节
排序
表中结果按升序排序:select * from 成绩信息 where 考试编号='04’AND 课程编号=‘1004’
order by 分数 ASC
按照降序排序:select * from 成绩信息 where 考试编号='04’AND 课程编号=‘1004’
order by 分数 DESC
重复记录:select * from 成绩信息 where 考试编号='04’AND 课程编号=‘1004’
order by 分数 asc
select * from 成绩信息 where 考试编号='04’AND 课程编号=‘1004’
order by 分数 desc
第四节
分组
这一节后边有点懵:select 课程编号, AVG (分数) from 成绩信息 where 课程编号='1004’group by rollup(课程编号)
第五节
使用函数
select * from 成绩信息 where 考试编号='01’AND 课程编号=‘1001’
select sum(分数) from 成绩信息 where 考试编号=‘01’ and 课程编号=‘1001’
select (top 2 分数) from 成绩信息 where 考试编号='01’AND 课程编号=‘1001’
order by (分数) DESC
MAX取最大值、MIN最小值、AVG平均值函数、sum求和函数、
第六、七节
使用Having子句
select 考试编号,课程编号,AVG(分数) from 成绩信息 Group by 考试编号,课程编号
HAVING AVG(分数)>=46
Order by 考试编号
插入数据
Insert语法
Insert[into]table_or_view[(column_list)] Values data_values
table_or_view:用于制定向数据表中添加数据的表或视图名称。
column_list:用于指定该数据表的列名,可指定一列或多列,所有列必须放在括号里边。指定多列时,各列必须用逗号隔开。
data_values:用于指定向数据表中插入的数据值。
用Insert into表中插入数据:insert into 学生信息 values(‘4’,‘大法师’,‘女’,‘1997-06-09’,‘汉族’,‘10086’,‘陕西西安’)
第八、九、十节
Insert…Select 语句
语法格式:
INSERT table_name[column_list]
SELECT column_list
FRO, table_list
WHERE search_condirions
复制表——学生信息给学生信息1里边插入信息:
insert 学生信息1
select * from 学生信息 where 家庭住址 like ‘河北廊坊%’
Select…Into语句 创建一个临时表: #table
语法格式:
Select <select_list> ‘列
Into new_table ‘新建的表名
From[<table_source>][,…n]
Where<search_condition>
select *
into #table
from 学生信息
where 性别=‘男’
select * from #table
Update语句语法
Update[top][table_name|view_name] ‘top函数 view函数 talbe列明
Set
[column_name]=[expression]…
Where[search_conditions]
实践: select * from 学生信息
update 学生信息
set 姓名=‘士大夫’,出生日期='1983-10-23’where 学号=‘123’
第十一节
在Update 语句使用From子句
实践:select * from studentINFO
update studentINFO set s_sex =b.性别,s_address =b.家庭住址,s_id =b.学号
from studentINFO a join 学生信息 b on a.s_name =b.姓名
where b.性别=‘女’
第十二节
Delete 语句语法格式
Delete from <table_name>
[Where]
实践:select * from 学生信息1
delete from 学生信息1
where 学号=‘432’
第十三节
Top 关键字和top表达式
语法格式:
[
Top(expression)[Percent]
[with ties]
]
实践:declare@i int
set @i=5
select top (6) with ties * from 成绩信息 order by 分数 (红标识是成对出现的。Top(6)是限制返回多少行的)
Update top(6) 学生信息 set 民族=’满族’ ’改变表中民族类型,top6表示前6行
Select * from 学生信息 ’查询返回学生信息
第十四节
Compute子句
语法格式:
[
Compute
[[ AVG| COUNT | MAX| MIN | SUM]]
(ewpression)[,…n]
[by expression [,…n]]
]
实践:select * from 成绩信息 where 课程编号 =‘1004’ order by 考试编号
compute sum(分数),AVG(分数),max(分数),min(分数) by 考试编号
第十五节
在where字句使用运算符
实践:select * from 成绩信息 where 考试编号='04’AND (分数 % 05 =0) ’AND后边按整数倍显示分数
select * from 成绩信息 where 考试编号='04’AND (分数 between 20 and 90) ’限制成绩范围
select * from 成绩信息 where 考试编号='04’AND 分数 not in (74,75,75) ’not in 就是分数不等于那些数,相反 in 的话就等于那些数。