一 关系表的介绍
课程表
学生表
选课表
二 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;
3.1.2 查询经过计算后的值的列
-- 2查询全体学生的姓名及其出生年份
SELECT s.sname,year(now())-s.sage
FROM student AS s;
-- 3查询全体学生的姓名、出生年份和所在院系(要求:用小写字母表示专业名)
SELECT s.sname,year(now())-s.sage, LOWER(s.sdept)
FROM student AS s;
3.2 单表查询:选择表中的若干行(元组/记录)
3.2.1 消除取值重复的行(DISTINCT)
若不消除查询结果中的重复行,则:不声明 DISTINCT ,即使用默认的 ALL
-- 4查询已选过课程的学生学号
SELECT DISTINCT s.sno
FROM student AS s;
3.2.2 查询满足条件的若干行(元组/记录)
查询满足指定条件的元组可通过 WHERE 子句 实现。
WHERE 子句 常用的查询条件,如下图所示:
-- 5查询计算机科学系(CS)全体学生的名单
SELECT s.sno,s.sname
FROM student AS s
WHERE s.sdept='CS'
-- 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
);
-- 7查询计算机科学专业(CS)、数学专业(MA)和信息专业(IS)学生的姓名和性别
SELECT s.sname, s.ssex
FROM student AS s
WHERE s.sdept IN ('CS', 'MA', 'IS');
参考文献
《数据库系统概论.王珊.萨师煊 著.高等教育出版社》
[数据库]MySQL之SQL查询
标签:技术 target des table 查询条件 rom ima 参考 mysql
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:https://www.cnblogs.com/johnnyzen/p/12535602.html