第七章 查询与统计数据
目标: 了解SELECT 语句的构成、通配符和聚合算法的使用方法、SELECT语句中各子句使用方法、子查询和连接查询的使用方法、运用SELECT语句解决实际的查询问题
1、SELECT语句的完整语法包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY子句。在查询时还可以使用UNION,EXCEPT将结果集合并或比较,最终合成一个结果集。
select * into new table from table where () group by () order by () asc desc (升序,降序)
2、通配符
%表示任意多个字符,_表示任意一个字符,[]表示方括号中列出的任意一个字符,[^]表示不属于方括号中的任意一个字符
LIKE ‘%AB‘ 返回以AB结尾的任意一个字符 LIKE ‘AB%‘ 返回以AB结束的任意一个字符 LIKE ‘[AB]%‘ 返回以A或者B开头的任意一个字符 LIKE ‘A[^a]%‘ 返回以A开头,不以a为第二个字符的任意字符串
[%] 表示纯粹的%而不表示通配符, LIKE ‘5[%]‘ 表示匹配5%的字符
3 聚合函数
聚合函数也称为统计函数,是对一组值进行计算并且返回一个数值,通畅与GROUP BY 一起使用。除了COUNT外,其他都会忽略NULL值
COUNT(ALL | DISTINCT) 求列数目,ALL 去除为空的列, DISTINCT 去除为空和重复的列
SUN(ALL | DISTINCT) 求和
MAX(ALL | DISTINCT) 求最大值
MIN(ALL | DISTINCT) 求最小值
AVG(ALL | DISTINCT) 求平均值
代码:
1 USE XK 2 GO 3 --查询班级表内容 4 SELECT * FROM class 5 GO 6 --更新成绩信息 7 UPDATE elective SET course_score=3 WHERE course_id=‘11111116‘ OR course_id=‘11111114‘ 8 GO 9 --查询班级名和部门编号 10 SELECT class_name ,department_id FROM class 11 GO 12 ----查询数据时top 和5需要分开 13 SELECT TOP 5 * FROM elective 14 GO 15 --修改课程表本科目选的人数 \ 16 UPDATE course SET student_num=(SELECT COUNT(course_id) FROM elective WHERE course.course_id=elective.course_id ) 17 GO 18 ----或者 19 DECLARE @id int 20 SET @id=11111111 21 WHILE @id<11111116 22 BEGIN 23 UPDATE course SET student_num=(SELECT COUNT(course_id) FROM elective WHERE course_id=@id ) WHERE course_id=@id 24 SET @id+=1 25 END 26 GO 27 --查出选修表中选修人数最多和最少的三门课程 28 29 30 SELECT TOP 3 course_name,student_num 31 FROM course ORDER BY student_num ASC 32 33 SELECT TOP 3 course_name,student_num 34 FROM course ORDER BY student_num DESC 35 GO 36 --修改课程时间 37 SELECT teacher_name AS ‘教师姓名‘ ,course_name AS ‘课程名称‘ 38 FROM course 39 WHERE course_time=‘周四晚上‘ 40 GO 41 --SUNSTRING 从1 截取2 截取12 0,2 截取 01 字符串index没0,相当于只截取1 42 SELECT * FROM student 43 WHERE SUBSTRING( student_name,1,2)=‘王‘ OR SUBSTRING( student_name,1,2)=‘小明‘ 44 GO 45 --查询软件1班选修情况 46 SELECT course_name,elective.student_id,student_name,class_name,course_time FROM student 47 JOIN class ON class.class_id=student.class_id AND class.class_name=‘软件1班‘ 48 JOIN elective ON elective.student_id =student.student_id 49 JOIN course ON course.course_id=elective.course_id 50 --查询小猪的选修情况 51 SELECT course_name,elective.student_id,student_name,class_name,course_time FROM student 52 JOIN class ON class.class_id=student.class_id 53 JOIN elective ON elective.student_id =student.student_id 54 JOIN course ON course.course_id=elective.course_id WHERE student_name=‘小猪‘ 55 GO 56 --查询出没有人选择的课程 57 SELECT * FROM course WHERE course_id NOT IN(SELECT DISTINCT course_id FROM elective)
第八章 创建于管理视图
原文地址:https://www.cnblogs.com/27floor/p/11259013.html