单表查询
# 查询所有字段
SELECT * FROM tb_name; # SELECT 后面跟上要查询的字段,* 号代表所有的字段,一般来说,查询所有字段是最耗时长的,所以查询数据尽可能按需所取。
# 查询指定字段
SELECT col_name1,col_name2 FROM tb_name; # 查询字段尽可能查询部分字段,不需要的字段就要不查询出来
# 条件查询
SELECT col_name FROM tb_name WHERE `id = 1` # 条件查询条件可以是大于等于不等于(>,=,<>)等等,也可以是更加复杂的判断都是可以的。
# 给字段或表取别名
SELECT col_name AS new_name FROM tab_name AS new_name2 # 如果列名或者表名太长,可以给它们取一个别名,可以方便使用
多表查询
# 内连接 以下是4种不同的连接方式,效果都一样
SELECT * FROM `department` INNER JOIN(内连接) `students`;
SELECT * FROM `department` , `students`;
SELECT * FROM `department` CROSS JOIN `students`;
SELECT * FROM `department` JOIN `students`;
# 外连接:分为左连接/右连接/全连接
# A LEFT JOIN B 会以左边的表为主,展示左边表的所有数据,展示右边表中符合ON子句中条件的数据,没有为空
SELECT * FROM `students` s LEFT JOIN `student_details` sd ON s.`s_id`=sd.`stu_id`; # 左连接
SELECT * FROM `students` s RIGHT JOIN `student_details` sd ON s.`s_id`=sd.`stu_id`; # 右连接
UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行
SELECT s.`name`,c.`name` FROM `students` s LEFT JOIN `select` se ON s.`s_id`=se.`stu_id` LEFT JOIN `course` c ON c.`id`=se.`coures_id`
UNION
SELECT s.`name`,c.`name` FROM `students` s LEFT JOIN `select` se ON s.`s_id`=se.`stu_id` LEFT JOIN `course` c ON c.`id`=se.`coures_id`
子表查询
# 在一个SQL语句中出现两个SQL语句,就是子表查询,下面这个子表查询是在JOIN这个地方建立查询
SELECT s.`name`, e.`name` FROM `students` s LEFT JOIN(SELECT se.`stu_id`, c.`name` FROM `select` se JOIN `course` c ON se.`coures_id` = c.`id`) e ON s.`s_id`=e.`stu_id`;
# 子查询不但可以放在JOIN那里,也可以放在 WHERE 后面
SELECT * FROM `students` s WHERE s.`dept_id` = ( SELECT `id` FROM `department` d WHERE d.`name` = '外国语学院')
排序和限制行数
# 对查询出来的结果进行排序,ASC升序(默认) DESC降序
SELECT * FROM `students` s JOIN `student_details` sd ON s.`s_id`=sd.`stu_id` ORDER BY s.`s_id` DESC;
# 对查询出来的结果限制显示的行数
SELECT * FROM `students` s JOIN `student_details` sd ON s.`s_id`=sd.`stu_id` ORDER BY s.`s_id` DESC LIMIT 3;
# 分组查询,常用于分组统计,使用GROUP BY后,会按照GROUP BY后面的字段进行分组,且必须是明确的字段,不能是*,因此SELECT后面也不能是*
SELECT d.`d_id`,d.`name`,COUNT(*) FROM `department` d LEFT JOIN `students` s ON d.`d_id`=s.`dept_id` GROUP BY d.`d_id`,d.`name`;
文章转载自嘀嘀嘀哒哒哒,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




