SQL 自学笔记(2)SELECT 语句
SELECT语句
本文笔记根据【b站 尚硅谷-宋红康 MySQL 课程】整理。笔记和代码存储在我的 GitHub 库中 github.com/isKage/sql-notes。
1 SQL 语言
1.1 书写规则
- 一行或多行
- 以
;分隔 - 字符串型 和 日期时间类型 的数据使用
''表示 - 列的别名使用
""表示 - 建议关键字、函数名大写
1.2 注释
单行注释
1 | # 注释文字 (MySQL特有) |
多行注释
1 | /* 注释文字 */ |
1.3 数据导入 (运行.sql文件)
登陆 MySQL 后,输入指令
1 | mysql> source xx.sql -- 输入路径 |
在学习语句前,先下载 mydb.sql 文件 ,之后使用数据导入的方式,运行 mydb.sql 创建数据库 atguigudb 以便后续操作。
1 | mysql> source ./xxx/mydb.sql -- mac 电脑 |
该文件来自 【b站 尚硅谷-宋红康 MySQL 课程】
2 基本 SELECT 语句
首先先进入刚刚创建的数据库
atguigudb
1 | mysql> USE atguigudb; |
2.1 SELECT … FROM …
1 | SELECT 选择哪些列 |
- 选择所有列
1 | SELECT * |
- 选择表中特定的列
1 | SELECT employee_id, last_name, salary |
2.2 列的别名
可以在列名后紧跟别名,也可以使用关键字 AS
1 | SELECT |

也可以对整列进行计算
1 | SELECT |
2.3 去除重复行
默认情况不会去除重复行
在 SELECT 语句中增加关键字 DISTINCT 即可返回去除重复行后的结果
1 | SELECT DISTINCT department_id |
注:若
DISTINCT后存在多个字段,只要两行之间有某个字段不同,则不认为重复
1 | SELECT DISTINCT department_id, salary |
例如:对 department_id, salary 去重,虽然部门只有 12 个,但因为 salary 仍有一些不同,故认为并不重复。
2.4 空值 null 参与计算
遇到 null 值,运算的结果都为 null
1 | SELECT employee_id, salary "月工资", salary * (1 + commission_pct) * 12 "年工资", commission_pct |

2.5 着重号 `` 解决关键字冲突
如果不得不使用关键字命名,则可以使用 ``
1 | SELECT * |
1 | SELECT * |
2.6 增加常值列
增加一列命名为 temp_const (字符串用 '')用数字 123 填充
1 | SELECT 123 AS 'temp_const', employee_id, last_name, salary |

3 查询表结构
使用 DESCRIBE 或 DESC 命令,查询表结构
1 | DESCRIBE employees; |
1 | +----------------+-------------+------+-----+---------+-------+ |
4 WHERE 过滤条件
1 | SELECT 列名1, 列名2, 列名3 |
例如:
1 | SELECT * |
1 | SELECT * |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 isKage`Blog!



