MySQL【二】

查询列

SELECT [ALL | DISTINCT ] * | 列名1[,……列名n] FROM 表名;

查询所有选课学生的学号,结果去除重复值
select distinct sno from sc;

选择行

在这里插入图片描述

查询满足条件的数据集
SELECT 字段列表 FROM 表名 WHERE 查询条件

查询不属于数学系或外国语系的学生全部信息 
select * from s where dept <> '数学' and dept <> '外国语';

带IN关键字的查询

用来限制查询数据的范围属于指定集合的数据集,格式为: SELECT 字段列表 FROM 表名 WHERE 表达式 IN (值1,值2…值N);

带NOT IN关键字的查询

SELECT 字段列表 FROM 表名 WHERE 表达式 NOT IN (值1,值2…值N);

查询选修了课程'c02''c03''c04'任意一门课的学生学号
select distinct sno from sc where cno in('c02', 'c03','c04');

带BETWEEN AND关键字的查询

SELECT 字段列表 FROM 表名 WHERE 字段名 BETWEEN N1 AND N2; 其中N1是范围的开始值(下限),N2是结束值(上限),包含上下限。

########## 查询查询成绩在80~90分的学生选课记录 ##########
select sno,cno,score from sc where score between 80 and 90;

带NOT BETWEEN AND关键字的查询

SELECT 字段列表 FROM 表名 WHERE 字段名 NOT BETWEEN N1 AND N2; 不包含上下限。

带LIKE关键字的模糊查询

1.通配符’%‘可以匹配任意长度的字符,长度可以为0;
2.通配符’_'只能模糊匹配1个字符。

语法格式如下: SELECT 字段名 FROM 表名 WHERE 字段名 [NOT] LIKE '匹配串' [ESCAPE ‘转义字符’];

查询空值

SELECT 字段名 FROM 表名 WHERE 字段名 IS [NOT] NULL;

########## 查询考试成绩为非空的学生学号和课程号   ##########

select sno,cno from sc where score is not null;

分组查询

SELECT 字段列表 FROM 表名 GROUP BY 字段名1,字段名2,……[HAVING 条件表达式];

对查询结果进行排序

SELECT 列名 FROM 表名 ORDER BY {列名 | 表达式 | 正整数} [ASC | DESC] [,…n]

########## 查询所有学生学号、姓名、所在院系和年龄(别名:age),查询结果按系名升序,同系学生按年龄降序排列 ##########
select sno,sname,dept,age from s order by dept asc,age desc;

使用LIMIT限制查询结果的数量

SELECT 字段名 FROM 表名 LIMIT [OFFSET,] 记录数;

########## 查询选修了'c01'课程第2名到第4名的学生学生学号、课程号和成绩  ##########
SELECT sno, cno, score
FROM sc
WHERE cno = 'c01'
ORDER BY score DESC
LIMIT 1,3 ;
LIMIT 1,3:
这一行用于限制查询结果的数量。LIMIT子句的第一个数字(1)表示从排序后的结果中跳过前1行,第二个数字(3)表示返回接下来的3行。因此,这个LIMIT子句的意思是返回排序后从第二条记录开始的3条记录。
上一篇:Google推出了AI驱动的学习工具“Learn About”


下一篇:考公人数攀升?地信、测绘、地质、遥感等专业,能报考哪些单位-地理学相关岗位分析