脚本

可以提前导入自己的数据库中
导入脚本:source 路径
atguigudb.sql

select

查询语句

  1. select .... # 字段名
  2. from .... # 表名

discinct

去重,去除字段中重复的数据

select discinct ... # 字段名
from ....

NULL

空值参与运算的话,不管是加减乘除,到最后的结果都是null ,null 不等于0
如果将空值变成 0 的话,需要引入 ifnull 函数
举例 :查看员工的月工资和年工资

#错误的
SELECT employee_id as 编号,salary as 月工资,salary * (1 + commission_pct,0) * 12 as "年工资"
FROM atguigudb.employees;


#正确的
SELECT employee_id as 编号,salary as 月工资,salary * (1 + ifnull(commission_pct,0)) * 12 as "年工资"
FROM atguigudb.employees;

着重号

就是 tab 键上面的 ` , 如果出现了表名和关键字相同的情况下,需要加着重号。

select * from order

select * from `order`

查看表结构

show create table 表名 : 查看创建语句的语法

desc 表名;   查看表的结构

descirbe 表名

mysql> desc employees;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| employee_id    | int         | 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         | YES  | MUL | NULL    |       |
| department_id  | int         | YES  | MUL | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
11 rows in set (0.00 sec)


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

where

过滤
例如:返回在90号部门工作的所有员工信息

SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;

注意 ,列的别名,不能在where后面使用