MySQL-01-SELECT
注意事项
- 在进行查询的时候,一定要想到 查询结果为空 有重复数据 数据中含有NULL !
SQL 命令基本结构
1 | select <select_list> |
注释
1 | 单行注释:# 注释文字(MySQL特有的方式) |
关键词冲突
当名字、数据和 Mysql 关键词冲突的时候,可以使用 `` 来包裹它(着重号),比如:
1 | SELECT * FROM `user` # user 是关键词 |
导入数据库文件
在导入 .sql
文件:
1 | source D:/downlaod/websites.sql; |
别名 AS
as 是 SQL 语句中的别名,用来给列或者表起一个新的名字。
列的别名
比如把两个列相加产生的新数据重新命名为 12sum:
1 | select column1+column2 as 12sum from "table"; |
在比如把合并的几个字符串产生的新字符串命名为 12add:
1 | select comcat(column1,column2) as 12add from "table"; |
需要知道的是,因为 where 的计算优先级高于 select,所以在执行 where 的时候 还没有生效,因此无法在 where 中使用设置的别名。如果需要对别名的列进行过滤,则在 where 后面用 having 语句。having 优先级低于 select,此时已经生成了别名列,就可以使用别名了。
表的别名
可以给表起一个别名:
1 | SELECT emp.last_name, dep.department_name |
但是需要记住的是,from 语句的执行优先级是最高的,所以表名在最开始就覆盖为了别名,后面就只能使用别名。
数据去重 distinct
在 SELECT 后和列名前添加 DISTINCT 关键词,会对后面所有 列名的组合 进行去重。
1 | SELECT DISTINCT department_id,salary |
合并查询结果 UNION
1 | SELECT column,... FROM table1 |
将两个 SELECT 返回的查询结果进行合并为一个结果。合并的两个查询结果对应的列数和数据类型必须相同。可以用来实现 FULL JOIN 的效果。
UNION
对结果进行去重。UNION ALL
对结果不去重(建议考虑使用,效率高!)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xorex!
评论