SQL语句加强
AND & OR 运算符
AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
score表:
id | name | sex | score |
1 | 宫本 | 男 | 80 |
2 | 小鲁班 | 女 | 70 |
3 | 刘禅 | 男 | 75 |
4 | 貂蝉 | 女 | 70 |
用法:
第一个条件和第二个条件都要成立用AND
第一个条件和第二个条件只需有一个成立用OR
SELECT * FROM score WHERE sex='男' AND score>='80';
理解:筛选score表中sex为男且score大于等于80的记录,展示所有字段。可以从表中看出,只有宫本那条记录满足。
SELECT * FROM score WHERE sex='男' OR score>='80';
理解:筛选score表中sex为男或者score大于等于80的记录,展示所有字段。可以从表中看出,宫本和刘禅这两条记录都满足这个条件。
ORDER BY 关键字用于对结果集进行排序。可以按照一个列或者多个列进行排序。
默认按照升序对记录进行排序,降序对记录进行排序,您可以使用 DESC 关键字。(升序关键字为ASC)
语法:SELECT 字段名1,字段名2… FROM 表名 ORDER BY 字段名1,字段名2 ASC|DESC;
SELECT * FROM score ORDER BY score DESC,name ;
理解:对score表进行排序,按score(这里score是字段)降序排列,再按name升序排列。
id | name | sex | score |
1 | 宫本 | 男 | 80 |
3 | 刘禅 | 男 | 75 |
4 | 貂蝉 | 女 | 70 |
2 | 小鲁班 | 女 | 70 |
tips:先按score降序排序,貂蝉和小鲁班score相等时,按name升序排序(中文按首字母A-Z排序)
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
通配符可用于替代字符串中的任何其他字符。
%,替代 0 个或多个字符。
_,替代一个字符。
tips:在SQL中,通配符与 LIKE 操作符一起使用。
SELECT * FROM score WHERE name LIKE '宫%';
理解:选取score表中name为'宫'开头的所有记录。%代表0个字符,所以'宫%'代表以宫开头的,后面接上0到无穷多个字符。
'%宫' ,代表以'宫'结尾的数据
'%宫%',代表包含'宫'的数据
'宫_' ,代表两位且以'宫'开头的数据
'_宫_' ,代表三位且'宫'在第二位的数据
'宫_' ,代表两位且以'宫'结尾的数据
SQL函数
SQL 拥有很多可用于计数和计算的内建函数。常见的有:
AVG(),COUNT(),MAX() ,MIN() ,SUM()。
AVG() 函数返回数值列的平均值。
COUNT() 函数返回匹配指定条件的行数。
MAX() 函数返回指定列的最大值。
MIN() 函数返回指定列的最小值。
SUM() 函数返回数值列的总数。
语法:SELECT AVG(字段名)/COUNT()/MAX字段名)/MIN(字段名)/SUM(字段名)/ FROM 表名;
SELECT AVG(score) FROM score;
理解:计算出score表中score字段的平均值。
SELECT COUNT(score) FROM score;
理解:对score表中,对score字段进行计数。
GROUP BY语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
语法:SELECT 字段名, 聚合函数(字段名)FROM 表名 GROUP BY 字段名;
SELECT sex,SUM(score) FROM score GROUP BY sex;
理解:score表按sex分类,展示sex和SUM(score)。
男 | 155 |
女 | 140 |
因为聚合函数不能与WHERE子句一起使用。
所以,使用HAVING子句,可以让我们筛选分组后的各组数据。
SELECT sex,SUM(score) FROM score GROUP BY sex HAVING SUM(score)>'150';
理解:score表按sex分类后筛选SUM(score)大于150的记录,展示sex和SUM(score)。
SQL语句博大精深哟,这里仅仅提及一些常用的语句以及简单用法,了解其原理,工作中需要用到什么语句时,百度即可。工作0-3年经验的问题,在百度基本都能找到答案。
PS:今天教师节,祝妈妈节日快乐。
联系客服