SQL简单查询——学生课程表
文章目录
- 一、学习目标
- 二、数表介绍
- 三、SQL简单查询
- 四、SQL复杂查询
一、学习目标
1、掌握 S E L E C T SELECT SELECT语句的语法格式,各句子的使用;
2、掌握别名的概念、掌握 D I S T I N C T DISTINCT DISTINCT、 A L L ALL ALL的使用;
3、掌握空值的概念及查询判断条件的表达,了解查询时系统对 N U L L NULL NULL值的处理;
4、掌握使用 G R O U P B Y GROUP BY GROUPBY子句、 H A V I N G HAVING HAVING子句、 O R D E R B Y ORDER BY ORDERBY子句对查询结果进行排序和分组;
5、掌握 S U M SUM SUM、 A V G AVG AVG、 C O U N T COUNT COUNT、 M A X MAX MAX、 M I N MIN MIN等聚合函数的用法。
二、数表介绍
本次是数据库中最典型的学生课程表,如下如所示:
- tb_sc
- tb_student
- tb_course
三、SQL简单查询
use tb;#首先要选择数据库
SELECT * FROM tb_student;
SELECT Sname 姓名,2020-Sage 出生年份, LOWER(Sdept) 所属系院 FROM tb_student;
SELECT Sno FROM tb_sc;
SELECT Sname,Sage FROM tb_student WHERE Sage=19;
SELECT Sname,Sdept,Sage FROM tb_student WHERE Sage NOT IN (20,23);
SELECT Sname ,Ssex FROM tb_student WHERE Sdept NOT IN ('IS','MA','CS');
SELECT * FROM tb_student st ,tb_sc sc WHERE st.Sno='201812119'AND sc.Sno='201812119';
SELECT Sname FROM tb_student WHERE Sname LIKE '刘_礼';
SELECT Sname FROM tb_student WHERE Sname not LIKE '刘%';
SELECT * FROM tb_course WHERE Cname LIKE 'DB#_%i__' ESCAPE '#';
SELECT Sno,Cno FROM tb_sc WHERE Grade IS NOT NULL;
SELECT Sname, Sage, Sdept FROM tb_student WHERE Sage<20 AND Sdept IN ('CS');
SELECT Cno,Grade FROM tb_sc WHERE Cno=3 ORDER BY Grade DESC;
SELECT * FROM tb_student ORDER BY Sdept ASC,Sage DESC;# 年龄降序
SELECT Sname FROM tb_student ORDER BY Sage DESC LIMIT 3;
SELECT COUNT(DISTINCT Sno) 总人数 FROM tb_sc;#计算总人数 去除重复的
SELECT AVG(Grade) 平均值 ,MAX(Grade) 最大值,CNO FROM tb_sc WHERE Cno=2;
SELECT Cno,GROUP_CONCAT(Grade) AS 成绩 ,COUNT(Grade)FROM tb_sc GROUP BY Cno;#根据Cno分类
SELECT Cno,COUNT(Cno)FROM tb_sc GROUP BY Cno;
SELECT Sno 学生学号,GROUP_CONCAT(Cno) 课程编码 FROM tb_sc GROUP BY Sno HAVING count(Cno)>2;
SELECT Sno 学号,GROUP_CONCAT(Grade) score FROM tb_sc WHERE Grade>80 GROUP BY Sno HAVING COUNT(Grade)>2 ;
SELECT SUM(Grade) 总分 FROM tb_sc WHERE Sno='201215121';
其中有两个sql语句有图展示:
SELECT Cno,GROUP_CONCAT(Grade) AS 成绩 ,COUNT(Grade)FROM tb_sc GROUP BY Cno;#根据Cno分类
SELECT Sno 学生学号,GROUP_CONCAT(Cno) 课程编码 FROM tb_sc GROUP BY Sno HAVING count(Cno)>2;
四、SQL复杂查询
- 查询每一门课的间接先修课(即先修课的先修课)
SELECT a.Cno,b.Cpno FROM tb_course a,tb_course b WHERE a.Cpno=b.Cno
- 查询每个学生选修课程的情况
SELECT * FROM tb_student,tb_sc WHERE tb_student.Sno=tb_sc.Sno;
- 查询每个学生及其选修课程的情况包括没有选修课程的学生(用外连接)
SELECT tb_student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM tb_student LEFT JOIN tb_sc USING(Sno) ;
- 查询选修2号课程且成绩在90分以上的所有学生的学号、姓名
SELECT tb_student.Sno,Sname FROM tb_student,tb_sc WHERE tb_student.Sno=tb_sc.Sno AND tb_sc.Cno='2' AND tb_sc.Grade>90;
- 查询学生201215121选修课程的总学分
SELECT SUM(Grade) 总分 FROM tb_sc WHERE Sno='201215121';
- 查询每个学生选修课程的总学分
SELECT Sno,GROUP_CONCAT(Grade) 分数 ,SUM(Grade) 总和 FROM tb_sc GROUP BY Sno;
- 查询每个学生的学号、姓名、选修的课程名及成绩
SELECT tb_student.Sno,Sname,Cname,Grade FROM tb_sc,tb_course,tb_student WHERE tb_student.Sno=tb_sc.Sno AND tb_sc.Cno=tb_course.Cno;
- 查询与“刘晨礼”在同一个系学习的学生(分别用嵌套查询和连接查询)
-- 嵌套查询
SELECT Sno,Sname,Sdept FROM tb_student WHERE Sdept = (SELECT Sdept FROM tb_student WHERE Sname='刘晨礼');
-- 自身连接查询
SELECT a.Sno,a.Sname,a.Sdept FROM tb_student a,tb_student b WHERE a.Sdept=b.Sdept AND b.Sname='刘晨礼';
- 查询选修了课程名为“信息系统”的学生学号和姓名
SELECT tb_student.Sno,Sname FROM tb_sc,tb_course,tb_student WHERE tb_student.Sno=tb_sc.Sno AND tb_sc.Cno=tb_course.Cno AND tb_course.Cname='信息系统';
SQL简单查询——学生课程表相关推荐
- sql简单查询和排序分组
一.sql简单查询 1.简单查询语法 select 列名,列名 from 表明: select ...from:查询语句的关键字:(select后面跟是你要从数据库里取的数据,from后面跟表名,表示 ...
- SQL简单查询语句,语法
** SQL简单查询语法,语句 ** select * from where order by --先from 后 where 后 select 最后 order by select sbrlsh 病 ...
- SQL练习:创建四个数据表,录入学生信息,通过SQL语句查询学生成绩
声明:此次操作基于Oracle数据库!! 题目:创建数据表,将学生详细信息,班级信息,选课信息,课程成绩写入其中,最终通过SQL语句查询学生成绩信息 --创建学生信息表(表的数量不为1),将学生信息, ...
- sql查询between and_SQL(二)——SQL简单查询
1. 基本查询语句 select <列名1>,<列名2>,- from <表名> * 查询出全部列,as为列设定别名,distinct删除重复数据,distinct ...
- 加sql查询语句导出_搞不懂这些查询语句,SQL简单查询也无法从入门到熟练
大纲: 一.基本的查询语句 二.指定查询条件 三.注释和SQL语句注意事项 四.运算符 五.谓词 一.基本的查询语句 从表中选取数据时需要使用select语句,也就是只从表中选出(select)必要数 ...
- sql 显示百分比_轻松搞定数据分析之SQL——简单查询
每天早起或者睡前听一首温柔而美好的音乐,是一件很幸福的事情,无论你是否懂音乐,它都能带你发现生活中的隐藏的那些美好,今天我们先来一起欣赏Mindy Gledhill的单曲<California& ...
- SQL简单查询语句问题
SQL语句 在学生表中把姓张的离校用户的年龄全部加上2岁` update student set sage=sage+2 where sname like '李%' and sstate=2 查询年龄 ...
- 使用SQL语句查询学生数据库中学生信息 —14条基本查询语句
SQL语句不区分大小写 调用数据库(数据库创建见上一篇文章) use STU_Information go 1.查询各位学生的学号.班级和姓名 --1.查询各位学生的学号.班级和姓名 select S ...
- sql数据库查询计算机学院,SQL简单查询-2
12.查询"计算机系"与"电子工程系" 中不同职称的教师tname和prof select tname,prof from teacher a where pr ...
最新文章
- 在android布局中使用include和merge标签
- 【博客话题】感谢您,我的老师
- 一图看懂hadoop分布式文件存储系统HDFS工作原理
- flask 实现异步非阻塞----gevent
- java编译器分析_Java反编译器的剖析
- 产生式是蕴含式_独栋别墅~下沉式庭院设计
- 未来金融科技宣布已完成mBTC系统和技术升级,消费者可用比特币进行在线支付
- java 一级缓存,MyBatis一级缓存避坑完全指南
- 华为光猫虚拟服务器,高兴得要哭了!!!!研究了N天,终于把我的华为 光猫救回来了...
- 自己写的网页放在github里面
- 赛尔号和赛尔机器人_与赛尔号机器人同乐作文600字
- vue2.x中slot-scope插槽在vue3.x中的新写法
- 利用贴图实现的人脸特效
- 蓝牙耳机录音进行讯飞语音识别
- Linux网络服务-----测试网络命令与DHCP服务
- Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)
- 【CTFshow】文件包含web78-web81
- html5骰子游戏实验报告,C++实验报告骰子游戏.doc
- 群晖rsync同步详解_FreeNas中使用rsync同步文件
- SQL SERVER CEILING 函数 取整时的坑。。。