目录
命令行
select database(); --查看当前的使用的数据库
use student; -- 选择一个数据库
show tables; --查询当前数据库有哪些表
mysql> desc `order`; -- 查看表结构
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| order_no | varchar(20) | NO | UNI | NULL | |
| user_id | int(11) | NO | MUL | NULL | |
| delete_time | int(11) | YES | | NULL | |
| create_time | int(11) | YES | | NULL | |
| total_price | decimal(6,2) | NO | | NULL | |
| status | tinyint(4) | NO | | 1 | |
| snap_img | varchar(255) | YES | | NULL | |
| snap_name | varchar(80) | YES | | NULL | |
| total_count | int(11) | NO | | 0 | |
| update_time | int(11) | YES | | NULL | |
| snap_items | text | YES | | NULL | |
| snap_address | varchar(500) | YES | | NULL | |
| prepay_id | varchar(100) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
14 rows in set (0.00 sec)
show create table `order`; # 查询创建表时的sql语句
# 加载sql文件:
# 方式一:
source xxx.sql
# 方式二, school为database:
mysql -uroot -p123456 school < student.sql
DQL 执行顺序
验证1:
SELECT name,age myAge from emp where myAge > 15 order by age asc;
执行失败:
select 对 age 起别名,但是where 子句 识别不到age的别名
SELECT name,age myAge from emp where age > 15 order by myAge asc;
执行成功:
order by 子句可以识别到select 子句 age的别名,说明 select 的执行顺序在 where 子句 后 order by 子句前
函数
字符串函数
案例:企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0,比如: 1号员工的工号应该为00001
update emp set workno = LPAD(workno,5,'0');
效果:
需要注意的是workno 需要是varchar类型
数值函数
案例:通过数据库的函数,生成一个6位随机验证码
# 生成一个0-1的随机数
SELECT rand();
# rand() * 1000000 夸大10000000 倍,保留0位小数
SELECT round(rand()*1000000,0);
# 不够6位左补0
SELECT LPAD(round(rand()*1000000,0),6,'0');
日期函数
案例:查询所有员工的入职天数,并根据入职天数倒序排序
select name, DATEDIFF(CURDATE(),entrydate) AS join_days from emp order by join_days desc;
结果:
流程函数
第三个函数案例:成绩表各门成绩>=85,展示优秀;>=60 展示及格;否则展示不及格
SELECT
id,
NAME,
(
CASE
WHEN math >= 85 THEN
'优秀'
WHEN math>= 60 THEN
'及格'
ELSE
'不及格'
END
) '数学',
(
CASE
WHEN english >= 85 THEN
'优秀'
WHEN english>= 60 THEN
'及格'
ELSE
'不及格'
END
) '英语',
(
CASE
WHEN chinese >= 85 THEN
'优秀'
WHEN chinese>= 60 THEN
'及格'
ELSE
'不及格'
END
) '语文'
FROM
score;
执行结果:
第四个函数 案例:如果dept_id 等于1,展示开发,如果为2展示测试,其他展示为前端
SELECT
name,
(case dept_id when 1 then '开发' when 2 then '测试' else '前端' end) '职位'
from emp;
执行结果:
标签:函数,age,Mysql,YES,NULL,order,SELECT From: https://www.cnblogs.com/czzz/p/17742701.html