Learning SQL2
一 分组与聚集
聚集函数--GROUNP BY
mysql> SELECT gender,COUNT(*) how_many
-> FROM student_list
-> GROUP BY gender;
+--------+----------+
| gender | how_many |
+--------+----------+
| F | 2 |
| M | 2 |
+--------+----------+
聚集函数
MAX() 返回集合中的最大值
MIN() 返回集合中的最小值
AVG() 返回集合中的平均值
SUM() 返回集合中所有值的和
COUNT() 返回集合中值的个数
mysql> SELECT student_id,MAX(student_id) max_student_id,
-> MIN(student_id) min_student_id,
-> SUM(student_id) sum_student_id,
-> AVG(student_id) avg_student_id,
-> count(student_id) count_s
-> FROM student_list;
+------------+----------------+----------------+----------------+----------------+---------+
| student_id | max_student_id | min_student_id | sum_student_id | avg_student_id | count_s |
+------------+----------------+----------------+----------------+----------------+---------+
| 6100410004 | 6100410019 | 6100410004 | 24401640044 | 6100410011 | 4 |
+------------+----------------+----------------+----------------+----------------+---------+
二 子查询
IN & NOT IN
mysql> SELECT fname,lname,tel
-> FROM student_list
-> WHERE fname IN ('chen','Luo'); //子查询
+-------+---------+-------------+
| fname | lname | tel |
+-------+---------+-------------+
| chen | xueping | 13330078754 |
| Luo | Haitao | 18770087983 |
+-------+---------+-------------+
ALL运算符
IN 运算符用于能否在一个表达式集合中找到某一个表达式
ALL运算符则用于将某单值与集合中的每一个值进行比较。
构建这样的条件需要将其中一个比较运算符(=、<>不等于、<、>)与ALL配合使用
ANY 运算符
EXISTS 运算符
三 连接
左外连接 LEFT OUTER JOIN 连接左边的表决定结果集行数
右外连接 RIGHT OUTER JOIN ----右边-----------------
交叉连接 CROSS JOIN 生成两个表的笛卡尔积
自然连接 NATURAL JOIN 依赖多表交叉时的相同列名来推断正确的连接条件
转载于:https://www.cnblogs.com/xpchenscoding/archive/2012/03/27/2785510.html