数据库语言一些基本操作

news2024/9/28 21:23:07

1,消除取值重复的行。

例如:查成绩不及格的学号:SELECT DISTINCT sno FROM SC WHERE grade<60.
这里使用DISTINCT表示取消取值重复的行。

2,比较。

例如:查计算机系全体学生的姓名:SELECT Sname FROM Student WHERE Sdept='CS'.
查所有年龄在20岁以下的学生姓名和年龄:
SELECT Sname,Sage
FROM Student
WHERE Sage<20(或者WHERE NOT Sage>=20)

3,确定范围。

例如:查询002号课程且成绩在80到90分之间的学生号。
SELECT sno
FROM SC
WHERE snp='002' AND grade BETWEEN 80 AND 90;

4,确定集合。

例如:查询信息院,数学系,计算机学院学生的姓名和性别。
SELECT sname,sex
FROM Student
WHERE dept IN(‘信息院’,‘数学系’,‘计算机学院’)

5,字符匹配。
%:代表任意长度的字符串。
_:代表任意单个字符。

例如:查询所有姓刘或姓王的学生姓名,学号和性别。
SELECT sname,sno,sex
FROM Student
WHERE sname LIKE '刘%' OR sname LIKE '王%'

查询姓欧阳且全名为三个汉字的学生姓名。
SELECT Sname
FROM Student
WHERE Sname LIKE '欧阳__'
(注意,由于一个汉字占两个字符的位置,所以欧阳后面是两个'_'。

查询第二个字为阳的学生的姓名和学号。
SELECT Sname,Sno
FROM Student
WHERE Sname LIKE '__阳%'

若要查询的串本身就具有%或者_,则使用ESCAPE<换行字符>对通配符进行转义,ESCAPE'\'短语表示\为换码字符,这样匹配串中紧跟在\后面的字符"_"就不在具有通配符的含义,而是取其本身含义,被转义为普通的_符号。

例如:查询以"DB_"开头且倒数第二个字符为i的课程情况。|
SELECT *
FROM Course
WHERE cname LIKE  'DB\_%i_' ESCAPE '\'

6,涉及空值的查询

例如:某些学生没有考试成绩,查询缺少成绩的学生的学号和相应的课程号。
SELECT Sno,Cno
FROM SC
WHERE Grade IS NULL(这里使用IS而不是=)

类似,查询所有成绩都记录的学生学号和课程号只需要将IS替换成IS NOT。

7,多重条件查询

例如:查询计算机系年龄在20岁以下学生的姓名。
SELECT Sname
FROM Student
WHERE Sdept='CS' AND Sage<20

查询计算机系,信息系,数学系学生的姓名和性别。
SELECTSname,Ssex
FROM Student
WHERE Sdept IN ('IS','MA','CS')     ||     WHERE Sdept='IS' OR Sdept='MA' OR Sdept='CS'

8,对查询结果排序

例如:查询所有男生的学号,系,年龄,结果按照所在的系进行升序排序,同一系中学生按照年龄降序排序。
SELECT sno,dept,age
FROM Student
WHERE sex='男'
ORDER BY dept,age DESC

9,使用集函数

COUNT(*)统计元组个数
COUNT(<列名>)统计一列中值的个数

注意,WHERE子句中是不能使用聚集函数作为条件表达式的,聚集函数只能用于SELECT子句和GROUP BY中的HAVING子句。

例如:查询女学生的总人数和平均年龄。
SELECT COUNT(sno),AVG(age)
FROM Student
WHERE sex=‘女’ 

查询选修001号课程并及格的学生的最高分,最低分和总分。
SELECT MAX(grade),MIN(grade),SUM(grade)
FROM SC
WHERE cno='001' AND grade>=60

10,对查询结果进行分组。

将查询结果按照某一行或者多行进行分组,值相等为一组。
目的是:细化集函数的作用对象,如果未对查询结果进行分组,集函数将作用于整个查询结果,即整个查询结果只有一个函数值,否则,集函数将作用于每一组,即每一组都有一个函数值。
例如:查询各个课程号与对应的选课人数。
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno(过程是先进行分组,再对每一组作用集函数COUNT以求得该组的学生人数)
查询结果如下:

11,筛选。

如果分组之后还要按照一定条件对这些组进行筛选,最终只输出满足条件的组,使用HAVING短句指定筛选条件。
例如:求每个学生的平均成绩,并将超过80分的进行输出。
SELECT sno,AVG(grade)
FROM SC
GROUP BY sno
HAVING AVG(grade)>88

注意区别:HAVING:在各组中选择满足条件的小组
WHERE:在表中选择满足条件的元组

找出选课学生超过30人的课程平均成绩以及选课人数
SELECT cno,AVG(grade),COUNT(*) AS st_number
FROM SC
GROUP BY cno
HAVING st_number>=30

求学生关系中女生的每一年龄组(超过20人)有多少,要求查询结果按照人数升序,人数相同时按照年龄降序排列。
SELECT age,COUNT(sno)AS number
FROM Student
WHERE sex=‘女’
GROUP BY age
HAVING number>20
ORDER BY number,age DESC

剩下练习题:

按照平均成绩降序给出所有课程都及格的学生号及其平均成绩,其中成绩统计时不包括008号考察课。

SELECT sno,AVG(grade) AS avg_g
FROM SC
WHERE cno<>'008'
GROUP BY sno
HAVING MIN(grade)>=60
ORDER BY avg_g DESC

查询选修了三门以上课程的学生学号。
SELECT Sno From SC
GROUP BY sno
HAVING COUNT(*)>3(拥有词条数量大于3)

查询平均成绩大于等于90的学生学号和平均成绩
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade)>=90

查询每个学生及其选修课程的情况
SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno=SC.Sno

自然连接,若在等值连接中把目标列中重复属性去掉则为自然连接。
SELECT Student.Sno,Sname,Ssex,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno

或者SELECT*
FROM Student,SC
WHERE Student.Sno=SC.Sno

查询系别为信息,课程成绩在90分以上的学生档案及其成绩情况。
SELECT*
FROM Student NATRUAL JOIN SC
WHERE dept='信息' AND grade>=90

查询年龄比王玲大的同学的姓名和年龄
SELECT s1.sname,s1.age
FROM S AS s1,S AS s2
WHERE s1.age>s2.age AND s2.sname='王玲'

查询每个学生学号,姓名,选修课程名及成绩。
SELECT Student.Sno,Sname,Cname,Grade
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno

查询与刘晨在同一个系中的学生的学号,姓名,系
SELECT Sno,Sname,Sdept
FROM Student
WHERE Sdept IN(
SELECT Sdept 
FROM Student
WHERE Sname='刘晨')

由内而外,每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。

当然,也可以使用自身连接。
SELECT S1.Sno,S1.Sname,S1.Sdept
FROM Student S1,Student S2
WHERE S1.Sdept=S2.Sdept
AND S2.Sname='刘晨'

查询选修了课程名为'信息系统'的学生学号和姓名
SELECT Sno,Sname
FROM Student
WHERE Sno IN(
SELECT Sno
FROM SC
WHERE Cno IN
(SELECT Cno
FROM Course
WHERE Cname=‘信息系统’))

或者:
SELECT Sno,Sname
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Course.Cname='信息系统'

查询与刘晨在同一个系学习的学生学号姓名系

SELECT Sno,Sname,Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept 
FROM Student
WHERE Sname='刘晨')

当确切知道返回值是单个值的时候,可以使用=,!=,>,<,>=,<=。
如可将上述的IN改成=。

找出年龄超过平均年龄的学生的姓名:
SELECT sname FROM Student
WHERE age>(
SELECT AVG(age)
FROM Student)

查询有一门课在90分以上的学生的姓名
SELECT sname FROM Student
WHERE sno=SOME
(SELECT DISTINCT sno
FROM SC
WHERE grade>90)

找出平均成绩最高的学生学号
SELECT sno
FROM SC
GROUP BY sno
HAVING AVG(grade)>ALL
(SELECT AVG(grade)
FROM SC
GROUP BY sno)

查询其他系中比IS系任意学生大的学生名单。
SELECT Sname,Sage
FROM Student
WHERE Sage>ALL
(SELECT Sage
FROM Student
WHERE Sdept='IS'
)
AND Sdept<>'IS'

FROM子句查询:

查出选课成绩在80分以上女学生的姓名,课程名和成绩。
SELECT sname,cname,grade
FROM(SELECT sname,cname,grade
FROM Student,SC,Course
WHERE Student.sno=SC.sno
AND SC.cno=Course.cno AND sex='女')AS Temp(sname,cname,grade)
WHERE grade>=80

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1541393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++一维数组练习oj(3)

为什么C的一维数组练习要出要做那么多的题目&#xff1f;因为我们是竞赛学生&#xff01;想要将每个知识点灵活运用的话就必须刷大量的题目来锻炼思维。 我使用的是jsswoj.com这个刷题网站&#xff0c;当然要钱... C一维数组练习oj(2)-CSDN博客这是上一次的题目讲解 这道题有…

java每日一题——买啤酒(递归经典问题)

前言&#xff1a; 非常喜欢的一道题&#xff0c;经典中的经典。打好基础&#xff0c;daydayup!!!啤酒问题&#xff1a;一瓶啤酒2元&#xff0c;4个盖子可以换一瓶&#xff0c;2个空瓶可以换一瓶&#xff0c;请问10元可以喝几瓶 题目如下&#xff1a; 啤酒问题&#xff1a;一瓶…

[Halcon学习笔记]在Qt上实现Halcon窗口的字体设置颜色设置等功能

1、 Halcon字体大小设置在Qt上的实现 在之前介绍过Halcon窗口显示文字字体的尺寸和样式&#xff0c;具体详细介绍可回看 &#xff08;一&#xff09;Halcon窗口界面上显示文字的字体尺寸、样式修改 当时介绍的设定方法 //Win下QString Font_win "-Arial-10-*-1-*-*-1-&q…

传输层——UDP协议

端口号(Port) 端口号标识了一个主机上进行通信的不同的应用程序&#xff0c;准确来说&#xff0c;端口号标识了主机上唯一的一个进程。 在TCP/IP协议中, 用 "源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个…

罗德与施瓦茨联合广和通全面验证RedCap模组FG132系列先进性能

近日&#xff0c;罗德与施瓦茨联合广和通完成Redcap(Reduce Capability)功能和性能验证。本次测试使用R&SCMX500 OBT(One Box Tester)无线通信测试仪&#xff0c;主要验证广和通RedCap模组FG132系列射频性能以及IP层吞吐量&#xff0c;包括RedCap上下行吞吐量和射频指标如矢…

Java 自定义线程池实现

自定义线程池 简介任务图示阻塞队列 BlockingQueue<T>ReentrantLock代码 线程池 ThreadPool工作线程类 Worker 拒绝策略接口代码测试类 TestThreadPool为什么需要j i&#xff1f;&#xff08;lambad表达式相关&#xff09; 测试结果拒绝策略&#xff1a;让调用者自己执行…

c++常考基础知识(2)

二.c关键字 关键字汇总 c中共有63个关键字&#xff0c;其中包括int&#xff0c;char&#xff0c;double等类型关键字&#xff0c;if&#xff0c;else&#xff0c;while&#xff0c;do&#xff0c;等语法关键字&#xff0c;还有sizeof等函数关键字。 三.数据结构 1.数组&#x…

Navicat 干货 | 探索 PostgreSQL 的外部数据包装器和统计函数

PostgreSQL 因其稳定性和可扩展性而广受青睐&#xff0c;为开发人员和数据管理员提供了许多有用的函数。在这些函数中&#xff0c;file_fdw_handler、file_fdw_validator、pg_stat_statements、pg_stat_statements_info 以及 pg_stat_statements_reset 是其中的重要函数&#x…

浩哥带你做项目,纯免费教学

浩哥带你做项目 一、YiYi-Web项目开发1. 简介2. 技术栈2.1 后端开发环境2.2 前端开发环境 3.项目截图 二、计算机游戏程序设计&#xff08;基础篇&#xff09;三、RuoYi-Cloud项目学习1.功能介绍2.项目截图 四、鸿蒙应用开发五、软考六、Linux基础知识学习 最近浩哥社区群涌进大…

【Python从入门到进阶】51、电影天堂网站多页面下载实战

接上篇《50、当当网Scrapy项目实战&#xff08;三&#xff09;》 上一篇我们讲解了使用Scrapy框架在当当网抓取多页书籍数据的效果&#xff0c;本篇我们来抓取电影天堂网站的数据&#xff0c;同样采用Scrapy框架多页面下载的模式来实现。 一、抓取需求 打开电影天堂网站&…

VMware Workstation Pro 17虚拟机超级详细搭建(含redis,nacos,docker, rabbitmq,sentinel,elasticsearch....)(一)

今天从零搭建一下虚拟机的环境&#xff0c;把nacos&#xff0c;redis等微服务组件还有数据库搭建到里面&#xff0c;首先看到的是我们最开始下载VMware Workstation Pro 17 之后的样子&#xff0c;总共一起应该有三部分因为篇幅太长了 下载地址 : VMware - Delivering a Digit…

echarts睡眠分期

效果 echarts核心配置 option {tooltip: {trigger: axis // 触发方式为axis&#xff0c;表示数据项图形触发&#xff0c;此时坐标轴上的刻度也会显示提示信息。},xAxis: {show: false,type: category,data: [2024-02-02 12:00:01,2024-02-02 12:00:02,2024-02-02 12:00:03,20…

stm32启动文件里面的__main和主函数main()

一、__main和main()之间的关系 先来对stm32启动过程简单学习 启动文件里面的Reset_Handler&#xff1a; 调用过程&#xff1a; stm32在启动后先进入重启中断函数Reset_Handler&#xff0c;其中会先后调用SystemInit和__main函数&#xff0c; __main函数属于c库函数&…

3GPP 协议资料学习和文档下载

一、登录3GPP官网 3GPP – The Mobile Broadband Standard 二、选择Specifications Per TSG Round 三、选择ftp下载路径 四、选择不同阶段的3GPP协议 包含了从1999年到R18,甚至更新到当前最新的协议。 五、查看对应版本的LTE或者5G NR协议 其中LTE射频相关章节为36.521系列&…

【黄啊码】使用cloudflare搭建OpenAI的接口

现在&#xff0c;我们可以使用cloudflare自己搭建一个OpenAI代理服务&#xff0c;使用我们自己的转发代理 第一步&#xff1a;注册cloudflare账号 前往官方网站注册一个账户 第二步&#xff1a;创建worker&#xff0c;进行请求中转 名字可以自己随便取一个&#xff0c;点击快…

leetcode 2671

leetcode 2671 题目 例子 思路1 使用哈希&#xff0c; unordered_map 是基于hash 实现的key,val 存储。 代码1 class FrequencyTracker {unordered_map<int, int>m;public:FrequencyTracker() { }void add(int number) {if(m.find(number) m.end()){m.insert({num…

优维全面可观测产品能力分解⑥:运维状态可观测

本文是《优维全面可观测产品能力分解》系列文章的第六篇&#xff1a;『运维状态可观测』。基于可观测的数据体系&#xff0c;「运维状态可观测」是实现于运维状态的一次深入可观测。 在日常运维场景中&#xff0c;系统/应用运维人员重点关注的是系统/应用是否可用&#xff0c;…

谧林涓露门禁

原神武器升级材料谧林涓露和门禁好像聂。 difference(){union(){cylinder(2, 10,10, $fn365);hull(){translate([15,0,0])cylinder(1,2,2,$fn365);cylinder(1,10,10,$fn365);}}translate([15,0,-1])cylinder(4,1,1,$fn365); }

透视未来工厂:山海鲸可视化打造数字孪生新篇章

在信息化浪潮的推动下&#xff0c;数字孪生工厂项目正成为工业制造领域的新宠。作为一名山海鲸可视化的资深用户&#xff0c;我深感其强大的数据可视化能力和数字孪生技术在工厂管理中的应用价值&#xff0c;同时我们公司之前也和山海鲸可视化合作制作了一个智慧工厂项目&#…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记19_前方的路

1. 技术与财富分配不均 1.1. 当前的财富分配不均早已成为世界难题 1.1.1. 世界上有一半的人口——相当于35亿人——拥有的财富却不敌在一辆双层巴士上的商业精英的个人财富总和 1.2. 部分线上市场仍受到竞争机制支配的事实并不能为其他市场的反竞争策略开脱 1.3. 企业的市场…