Mysql查询功能整理

基本查询

假设表名是students,要查询students表的所有行,我们用如下SQL语句: 

SELECT * FROM students;

条件查询

SELECT语句可以通过WHERE条件来设定查询条件,查询结果是满足查询条件的记录。例如,要指定条件“分数在80分或以上的学生”。

SELECT * FROM students WHERE score >= 80;

条件表达式可以用<条件1> AND <条件2>表达满足条件1并且满足条件2。例如,符合条件“分数在80分或以上”,并且还符合条件“男生”,把这两个条件写出来:

SELECT * FROM students WHERE score >= 80 AND gender = 'M';

第二种条件是<条件1> OR <条件2>,表示满足条件1或者满足条件2。例如,把上述AND查询的两个条件改为OR,查询结果就是“分数在80分或以上”或者“男生”,满足任意之一的条件即选出该记录:

SELECT * FROM students WHERE score >= 80 OR gender = 'M';

第三种条件是NOT <条件>,表示“不符合该条件”的记录。例如,写一个“不是2班的学生”这个条件

SELECT * FROM students WHERE NOT class_id = 2;

要组合三个或者更多的条件,就需要用小括号()表示如何进行条件运算。例如,编写一个复杂的条件:分数在80以下或者90以上,并且是男生:

SELECT * FROM students WHERE (score < 80 OR score > 90) AND gender = 'M';

✳️如果不加括号,条件运算按照NOTANDOR的优先级进行,即NOT优先级最高,其次是AND,最后是OR。加上括号可以改变优先级。

投影查询

 使用SELECT * FROM <表名> WHERE <条件>可以选出表中的若干条记录。例如,从students表中返回idscorename这三列:

SELECT id, score, name FROM students;

使用SELECT 列1, 列2, 列3 FROM ...时,还可以给每一列起个别名,这样,结果集的列名就可以与原表的列名不同。它的语法是SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM ...。 

例如,以下SELECT语句将列名score重命名为points,而idname列名保持不变:

SELECT id, score points, name FROM students;

投影查询同样可以接WHERE条件,实现复杂的查询:

SELECT id, score points, name FROM students WHERE gender = 'M';

排序

如果我们要根据其他条件排序可以加上ORDER BY子句。例如按照成绩从低到高进行排序: 

猜你喜欢

转载自www.cnblogs.com/magicg/p/12928531.html