脚本
可以提前导入自己的数据库中
导入脚本:source 路径
atguigudb.sql
select
查询语句
select .... # 字段名
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后面使用