MySQL学习-SELECT语句(三)

203 阅读2分钟

「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战」。

前言

上篇我们又学习了一部分SELECT语句,有兴趣的小伙伴可以阅读(MySQL学习-SELECT语句(二) - 掘金 (juejin.cn)
下面继续学习MySQL中的SELECT语句。

显示表结构

使用DESCRIBEDESC来显示表结构。

  • 语法
DESCRIBE employees;
或者
DESC employees; 显示表中字段的详细信息
+----------------+-------------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| employee_id  | int(6)   | NO  | PRI | 0    |    |
| first_name   | varchar(20) | YES |   | NULL  |    |
| last_name   | varchar(25) | NO  |   | NULL  |    |
| email     | varchar(25) | NO  | UNI | NULL  |    |
| phone_number  | varchar(20) | YES |   | NULL  |    |
| hire_date   | date    | NO  |   | NULL  |    |
| job_id     | varchar(10) | NO  | MUL | NULL  |    |
| salary     | double(8,2) | YES |   | NULL  |    |
| commission_pct | double(2,2) | YES |   | NULL  |    |
| manager_id   | int(6)   | YES | MUL | NULL  |    |
| department_id | int(4)   | YES | MUL | NULL  |    |
+----------------+-------------+------+-----+---------+-------+
各个字段的含义分别解释如下:

Field:表示字段名称。
Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。
Null:表示该列是否可以存储NULL值。
Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;
     UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次。
Default:表示该列是否有默认值,如果有,那么值是多少。
Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

过滤数据

  • 语法
SELECT 字段1,字段2 
FROM 表名 
WHERE 过滤条件
WHERE需要声明在FROM结构的后面
  • 举例1
# 查询1号部门员工的信息
SELECT *
FROM employees
# 过滤条件
WHERE department_id = 1; 这样可以过滤出1号部门员工的信息
  • 举例2
# 查询last_name为'King'的员工信息
SELECT *
FROM employees
# 过滤条件
WHERE last_name = 'King'; 这样可以过滤出last_name为'King'的员工的信息

这里需要注意查询字段的大小写,在MySQL中,比较宽泛,大小写不敏感。但是在其他数据库中比较敏感,所以我们在写SQL语句时,还是需要养成大小写敏感的习惯。

练习题

  1. 查询员工12个月的工资总和,并起名为ANNUAL SALARY
SELECT employee_id, last_name, salary * 12 AS "ANNUAL SALARY"
FROM employees;
  1. 查询employees表中去除重复的job_id以后的数据
SELECT DISTINCT job_id
FROM employees;
  1. 查询工资大于12000的员工的姓名和工资
SELECT last_name, salary
FROM employees
WHERE salary > 12000;
  1. 查询员工号为176的员工的姓名和部门号
SELECT last_name, department_id
FROM employees
WHERE employee_id = 176;
  1. 显示表departments的结构,并查询其中的全部数据
DESCRIBE department;
SELECT *
FROM department;