小小程知识库 小小程知识库
首页
Golang
MySQL
归档
GitHub (opens new window)

xxcheng

记录美好生活~
首页
Golang
MySQL
归档
GitHub (opens new window)
  • 学习记录

    • 安装 & 连接
    • 基本SELECT语句
      • 1. SQL 分类
      • 2. 基本规则 & 规范
      • 3. 注释
        • a. 单行注释(写法一)
        • b. 单行注释(写法二)
        • c. 多行注释
      • 4. 导入数据表
        • a. 使用 source 关键字导入
        • b. 使用图形化工具导入
      • 5. 基础 SELECT 语句
      • 6. 列的别名
      • 7. 去除重复行
      • 8. 空值参加运算
      • 9. 着重号(反引号)
      • 10. 查询常数
      • 11. 显示表结构
      • 12. 过滤数据 WHERE
      • 13. 练习
        • a. 查询员工12个月的工资总和,并起别名为ANNUAL SALARY
        • b. 查询employees表中去除重复的job_id以后的数据
        • c. 查询工资大于12000的员工姓名和工资
        • d. 查询员工号为176的员工的姓名和部门号
        • e. 显示表 departments 的结构,并查询其中的全部数据
    • 运算符的使用
    • 排序与分页
    • 多表查询
    • 单行函数
    • 聚合函数
    • 子查询
    • DDL 操作
  • MySQL
  • 学习记录
xxcheng
2023-07-20
目录

基本SELECT语句

学习需要的 SQL 文件:点击下载 (opens new window)

# 1. SQL 分类

  • DDL 数据定义语言
  • DML 数据操作语言
  • DCL 数据控制语言

# 2. 基本规则 & 规范

  • 每条命令使用 ;、\g 或者 \G 来结束;
  • Windows 系统不区分大小写,Linux 系统区分大小写;
  • 数据库名、表名、字段名等使用小写;
  • 关键字、函数名等使用大写;

# 3. 注释

# a. 单行注释(写法一)

使用 # 注释

#我是单行注释
1

# b. 单行注释(写法二)

使用 -- 注释,需注意的是,-- 后面有一个空格

-- 我是单行注释

# 下面这个是错误的
--我是单行注释
1
2
3
4

# c. 多行注释

使用 /* 开头,*/ 结尾来实现多行注释,并且无法嵌套

/*
我是多行注释
我是多行注释
我是多行注释
*/

# 下面这个是错误的
/*
我是多行注释A
/*
我是多行注释b
*/
我是多行注释C
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 4. 导入数据表

# a. 使用 source 关键字导入

source 文件全路径名称
1
mysql> source d:\atguigudb.sql
Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)
......
1
2
3
4
5
6
7
8
9

# b. 使用图形化工具导入

image-20230716103008456

# 5. 基础 SELECT 语句

查询的结果叫做结果集(ResultSet)

SELECT 字段名1,字段名2... FROM 表名;
1

想要查询所有字段名,可以使用 * 表示所有字段名

SELECT * FROM 表名;
1

image-20230716103329870

image-20230716103350518

# 6. 列的别名

使用 as 关键字,是 alias 单词的缩写,同时关键词可以省略,在有些时候别名因为有空格或者关键字冲突等情况下,可以使用双引号或者反引号括起来。

SELECT CONCAT(first_name," ",last_name) as employee_name FROM employees;
1

image-20230716103919291

SELECT CONCAT(first_name," ",last_name) as "name" FROM employees;
1

image-20230716104033331

# 7. 去除重复行

在查询字段前使用 DISTINCT 关键字

SELECT DISTINCT department_id FROM employees;
1

image-20230716104259749

但是这种方法并不是完美的,如果我们在加上其他字段,得到的就是不是我们预期的结果

SELECT DISTINCT department_id,salary FROM employees;
1

image-20230716104456395

它给出的结果是两个字段全部不重复的结果

# 8. 空值参加运算

使用 IFNULL 函数

SELECT first_name,last_name,IFNULL(commission_pct,-1) FROM employees;
1

image-20230716104656397

# 9. 着重号(反引号)

在一些字段名、表名和关键字或者函数产生冲突时使用

SELECT * FROM `order`;
1

order 是关键字

image-20230716105716108

# 10. 查询常数

查询字段名时给所有符合条件的数据添加相同的值,字符串需要添加双引号,还可以和别名搭配起来

SELECT *,"哈哈哈",999,"100元" price  FROM `order`;
1

image-20230716105409851

# 11. 显示表结构

使用 DESCRIBE 或者 DESC 关键字

DESCRIBE `jobs`;
DESC `jobs`;
1
2

image-20230716105637350

# 12. 过滤数据 WHERE

SELECT 字段1,字段2 FROM 表名 WHERE 过滤条件;
1
# 查询部门ID为department_id的所有员工
SELECT * 
FROM `employees` 
WHERE `department_id`=90;

# 查询lastname为King的员工
SELECT * 
FROM `employees` 
WHERE `last_name`="King";

# 如果查询条件 last_name="king" 查询结果和上面一样,这是MySQL宽松的SQL规范造成的。
1
2
3
4
5
6
7
8
9
10
11

image-20230716101613212

image-20230716101629429

image-20230716101706381

# 13. 练习

# a. 查询员工12个月的工资总和,并起别名为ANNUAL SALARY

SELECT `employee_id`,`first_name`,`last_name`,
`salary`*12+IFNULL(`commission_pct`*salary,0) 
as "ANNUAL SALARY" 
FROM `employees`;
1
2
3
4

image-20230716101443553

# b. 查询employees表中去除重复的job_id以后的数据

SELECT DISTINCT `job_id` FROM `employees`;
1

image-20230716101456029

# c. 查询工资大于12000的员工姓名和工资

SELECT `first_name`,`last_name`,`salary` 
FROM `employees` 
WHERE `salary`>12000;
1
2
3

image-20230716101505545

# d. 查询员工号为176的员工的姓名和部门号

SELECT `employee_id`,`first_name`,`last_name`,`department_id` 
FROM `employees` 
WHERE `employee_id`=176;
1
2
3

image-20230716101520667

# e. 显示表 departments 的结构,并查询其中的全部数据

DESCRIBE `departments`;

DESC `departments`;

SELECT * FROM `departments`;
1
2
3
4
5

image-20230716101535058

image-20230716101545291

上次更新: 2023/07/20, 16:47:14
安装 & 连接
运算符的使用

← 安装 & 连接 运算符的使用→

最近更新
01
Go:GMP模型深入理解
01-10
02
rpc学习:进阶到gRPC
01-04
03
配置
12-12
更多文章>
Theme by Vdoing | Copyright © 2019-2024 xxcheng | 浙ICP备19024050号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式