sql查询语句-01

news/2024/11/16 18:02:48/

1.单表查询

◆限制显示结果

·使用limit限制显示的行数,分页函数limit m,n,从m+1行开始显示n条记录

例:查询选修课程成绩排在前5的学生的学号和成绩。

select sno,score from SC order by score desc limit 5;

limit 1,3 零是第一条

◆汇总数据(聚集函数)

5个聚集函数 count、avg、sum、min和max

(1)count

·统计元组个数:COUNT(*)

统计一列中值的个数:COUNT(DISTINCTIALL]<列名>)

例:查询学生总人数。
SELECT COUNT(*) FROM Student; as 给字段名
例:查询选修课程的学生人数·
SELECT COUNT(DISTINCT Sno) FROM SC; 去重,根据学号统计

例:计算01号课程的学生平均成绩、最高分和最低分。

SELECT avg(score),max (score),min(score) FROM SC WHERE Cno='01':

如何汇总每门课程的成绩?

◆分组统计

(1)group by

例:查询各课程的课程号及平均分

SELECT Cno,avg(Score) FROM SC GROUP BY Cno;

例:查询各课程的课程号及选课人数·

SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;
计数

(2)having分组以后设条件

分组后,如果要按条件筛选某些组,需要用having子句,不能用where。

例:查询各选课人数超过3人的课程号。

select Cno,count(Sno) from sc group by cno having count(sno)>=3;

多表

连接查询(关联插叙)

例:查询每个学生及其选修课程的情况

SELECT Student.*,SC.* #表前缀 .

FROM

Student,SC

WHERE Student.Sno =SC.Sno;

自然链接

Select Student.sno,sname,ssex,sage,sclass,scol,cno,score
from Student,SC
where Student.sno=SC.sno; #注意:两个表都有的字段要加表名前缀。
where Student.sno=SC.sno and score>=90;

例:查询每个学生的学号、姓名、选修的课程名及成绩

select Student.sno,sname,cname,score
from Student,SC,course
where Student.sno=SC.sno and course.cno=SC.cno;

自链接插叙(与自己的副本链接 ,有别名)

◆外连接查询

两张表在连接查询时,要求输出一张表的所有元组,而另一张表只输出满足条件的元组。

例:查询所有学生的基本情况和选课情况。

Select Student.sno,sname,ssex,sage,sclass,scol,cno,score
from Student left outer join SC on(student.sno=sc.sno);

左连接left outer join:输出左边关系中所有的元组

右连接right outer join:输出右边关系中所有的元组

子查询

(1)不相关的子查询

【例】查询和李四(条件)在同一个班的学生的信息。

select from Student
where sclass=(select sclass from Student where sname='李四');
子查询先查哪个班
再来父亲查询


http://www.ppmy.cn/news/44113.html

相关文章

运维——记一次接口超时的问题与解决方法(HttpException: Read timed out)

前言&#xff1a;近期,一个线上的项目,请求出现了大量接口超时的问题,找了几个小时原因,最终发现是因为数据库服务器的磁盘满了,在此记录一下寻找的过程以及发现的问题,以备后续参考。 环境&#xff1a; 项目服务器(CentOS 64-bit 7.9) OpenJDK 1.8.0_272 数据库服务器(CentO…

使用kubeadm方式搭建K8S集群

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 kubeadm init# 将一个 Node 节点加入到当前集群中 kubeadm join <Master节点的IP和端口 >Kubeadm方式搭建K8S集群 使用…

Android之AppWidget 开发浅析

什么是AppWidget AppWidget 即桌面小部件&#xff0c;也叫桌面控件&#xff0c;就是能直接显示在Android系统桌面上的小程序&#xff0c;先看图&#xff1a; 图中我用黄色箭头指示的即为AppWidget&#xff0c;一些用户使用比较频繁的程序&#xff0c;可以做成AppWidget&#x…

【C++】STL——用一颗红黑树封装出map和set

用一颗红黑树封装出map和set 文章目录用一颗红黑树封装出map和set一、前言二、红黑树模板参数的控制三、模板参数中仿函数的增加四、红黑树正向迭代器的实现五、红黑树的反向迭代器的实现六、红黑树的begin()和end()七、红黑树的rbegin()和rend()八、[ ]下标访问运算符重载九、…

(6)如果出现问题

文章目录 前言 1 如果你有一个问题,该怎么做 2 旋翼机常见的问题 3 空闲RAM问题

如何恢复回收站?数据恢复,这4招就够了!

案例&#xff1a;恢复回收站 【谁能帮帮我这个电脑小白呀&#xff1f;回收站里的文件被删除了还能恢复吗&#xff1f;怎么恢复回收站文件呢&#xff1f;求解答&#xff01;】 电脑的回收站给我们带来了很多的便利&#xff0c;我们可以将删除的数据放入回收站&#xff0c;也可…

大数据面试经验分享

一、简历部分 ​ 首先&#xff0c;无论什么样的简历应当包含核心四个部分&#xff0c;分别为基本信息、技术栈、工作经历、项目经历。 1、基本信息&#xff1a; ​ 姓名、性别、年龄、联系方式、学历信息。例&#xff1a;张三、男、25、123123、本科 2、技术栈&#xff1a;…

JDBC(数据库连接)

MYSQL 数据库总结&#xff1a; http://t.csdn.cn/Ka9Vm JDBC是使用Java语言操作关系型数据库的一套API。 将mysql-connector-j-8.0.32jar复制粘贴到一个新建的目录里&#xff0c;然后右键mysql-connector-j-8.0.32jar&#xff0c;添加为库。 DriverManager 一个工厂类&…