前言
在数据库视频的学习中,当然少不了查询的功能,我自认为这是在整个视频中最重要的知识点,因为在这里边包含了不少语法知识,所以下面分享给大家~
分享
- 简单查询
SELECT * FROM 学生信息
SELECT 姓名,性别,家庭住址 FROM 学生信息
SELECT 12*13 AS 计算结果
SELECT 姓名 as 学生姓名,性别 from 学生信息
SELECT DISTINCT 民族 from 学生信息
- 设置查询条件
SELECT * FROM 学生信息 WHERE 姓名='张苗苗'
SELECT * FROM 学生信息 WHERE 民族='汉族' AND 性别='女'
SELECT * FROM 学生信息 WHERE 民族='汉族' OR 性别='男'
SELECT * FROM 学生信息 WHERE 家庭住址 like '河南%'
- 排序
SELECT * FROM 成绩信息 where 考试编号='0801' AND 课程编号='1'
ORDER BY 分数
注意:“ORDER BY 分数”默认的是升序,效果同“ORDER BY 分数 ASC”
SELECT * FROM 成绩信息 where 考试编号='0801' AND 课程编号='1'
ORDER BY 分数 DESC
SELECT * FROM 成绩信息 where 考试编号='0801' AND 课程编号='1'
ORDER BY 分数 DESC,学生编号 DESC
- 分组
SELECT AVG(分数)FROM 成绩信息 WHERE 考试编号='0801'
SELECT 课程编号,AVG(分数) FROM 成绩信息 WHERE 考试编号='0801' GROUP BY 课程编号
SELECT 课程编号,AVG(分数)FROM 成绩信息 WHERE 考试编号='0801' GROUP BY rollup(课程编号)
SELECT 课程编号,AVG(分数)FROM 成绩信息 WHERE 考试编号='0801' GROUP BY cube(课程编号)
SELECT 考试编号,课程编号,AVG(分数)FROM 成绩信息 GROUP BY 考试编号,课程编号
SELECT 考试编号,课程编号,AVG(分数)FROM 成绩信息 GROUP BY rollup(考试编号,课程编号)
SELECT 考试编号,课程编号,AVG(分数)FROM 成绩信息 GROUP BY cube(考试编号,课程编号)
- 使用函数
SELECT top 3 分数 FROM 成绩信息 WHERE 考试编号='0801' AND 课程编号='2'
- 使用HAVING子句
SELECT 考试编号,课程编号,AVG(分数)FROM 成绩信息 GROUP BY 考试编号,课程编号
ORDER BY 考试编号
SELECT 考试编号,课程编号,AVG(分数)FROM 成绩信息 GROUP BY 考试编号,课程编号
HAVING AVG(分数)>=90
ORDER BY 考试编号
- 插入数据(添加)
INSERT INTO 学生信息 VALUES('2009100101','李明','男','1986-06-01','汉族','20050101','河南郑州')
INSERT INTO 学生信息(学号,姓名,家庭住址) VALUES('2009100101','李明','河南郑州')
- INSERT…SELECT语句
INSERT 学生信息1
SELECT * FROM 学生信息
INSERT 学生信息1
SELECT * FROM 学生信息 WHERE 家庭住址 like '河南'
- SELECT…INTO语句
select *
into #student
from 学生信息
where 性别='男'
- UPDATE语句(修改)
select * from 学生信息
update 学生信息 set 姓名='李俊' where 学号='2005050101'
- 删除数据
delete from 表名(全删)
delete from 表名where 列名=数据and列名=数据(删除某行数据)
- 在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.性别='女'
- TOP 关键字和TOP表达式
select top 10 * from 成绩信息
select top 10 percent * from 成绩信息
declare @i int
set @i=20
select top (@i) percent * from 成绩信息
declare @i int
set @i=20
select top (@i) * from 成绩信息
select * from 成绩信息 order by 分数
select top(6) * from 成绩信息 order by 分数
select top(6) with ties * from 成绩信息 order by 分数
update top(6) 学生信息 set 民族='满族'
select * from 学生信息
- COMPUTE子句
select * from 成绩信息 where 课程编号=2
compute sum(分数),AVG(分数),MAX(分数),MIN(分数)
select * from 成绩信息 where 课程编号=2
compute sum(分数),AVG(分数),MAX(分数),MIN(分数) by 考试编号
- 在where子句使用运算符
select * from 成绩信息 where 考试编号='0802' AND (分数 between 90 and 95)
select * from 成绩信息 where 考试编号='0802' AND (分数 % 5=0)
select * from 成绩信息 where 考试编号='0802' AND 分数 in(85,90,87,86)
select * from 成绩信息 where 考试编号='0802' AND 分数 not in(85,90,87,86)
小结
不知以上的语法你都掌握了吗?欢迎留言交流~