mysql sql 查询库_[数据库]MySQL之SQL查询

一 关系表的介绍

9155d9e841fdd5b27298680b4821ab6e.png

课程表

93afd5a7611fd38f96db2043d9c30f2e.png

学生表

263931d423afd7ab9d0101279f48caf8.png

选课表

f8ef53dd4120e7c1ac0457b550f91372.png

二 SQL查询语句格式

/* SQL查询的一般格式

SELECT [ALL | DISTINCT] [* | coulmnNameA,coulmnNameB,...]

FROM [tableName | viewName | (select语句)]

[AS 结果表的别名]

[WHERE 条件表达式x]

[GROUP BY coulmnName1 [HAVING 条件表达式y]]

[ORDER BY coulmnName2 [ASC | DESC]]

[LIMIT startRow,targetRows]

【各子句的处理顺序】FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

【关键词释义】

+ GROUP BY coulmnName : 将结果按 coulmnName 的值分组·,该属性列中值相等的分为一组

+ HAVING 条件表达式 : 若 GROUP BY 子句带HAVING短语,则: 只有满足指定条件的组才予以输出

*/

三 查询案例

3.1 单表查询:选择表中的若干列

3.1.1 查询指定列/全部列

-- 1查询全体学生的姓名、学号、所在专业

SELECT s.sname,s.sno,s.sdept

FROM student AS s;

00e4214b7cb9bd19194a57177ed6184c.png

3.1.2 查询经过计算后的值的列

-- 2查询全体学生的姓名及其出生年份

SELECT s.sname,year(now())-s.sage

FROM student AS s;

b4ef54849b13a850848408f714100dd2.png

-- 3查询全体学生的姓名、出生年份和所在院系(要求:用小写字母表示专业名)

SELECT s.sname,year(now())-s.sage, LOWER(s.sdept)

FROM student AS s;

6fe150962f4c0190cc4abe53c56aea32.png

3.2 单表查询:选择表中的若干行(元组/记录)

3.2.1 消除取值重复的行(DISTINCT)

若不消除查询结果中的重复行,则:不声明 DISTINCT ,即使用默认的 ALL

-- 4查询已选过课程的学生学号

SELECT DISTINCT s.sno

FROM student AS s;

d5fb94be41997e646c853b6811214e01.png

3.2.2 查询满足条件的若干行(元组/记录)

查询满足指定条件的元组可通过 WHERE 子句 实现。

WHERE 子句 常用的查询条件,如下图所示:ef74388462bfa2cfa6b2d50e013e67b0.png

-- 5查询计算机科学系(CS)全体学生的名单

SELECT s.sno,s.sname

FROM student AS s

WHERE s.sdept='CS'

9f98fcb59b06297ed5256bf2ddd52456.png

-- 6查询考试不及格的学生的学号和姓名 (多表查询)

SELECT s.sno, s.sname

FROM student AS s

WHERE s.sno IN (

SELECT sc.sno

FROM select_course AS sc

WHERE sc.grade<60

);

458ea18aa2c868dfdb0ff3ff5699ee97.png

-- 7查询计算机科学专业(CS)、数学专业(MA)和信息专业(IS)学生的姓名和性别

SELECT s.sname, s.ssex

FROM student AS s

WHERE s.sdept IN ('CS', 'MA', 'IS');

58f7600dc484783c1469b060adf914bf.png

参考文献

《数据库系统概论.王珊.萨师煊 著.高等教育出版社》

[数据库]MySQL之SQL查询

标签:技术   target   des   table   查询条件   rom   ima   参考   mysql

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/johnnyzen/p/12535602.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值