常见命令
查看所有数据库
show database; -- 查看所有数据库打开指定数据库
use <name>; -- 打开指定数据库显示库中所有表
show tables; -- 显示库中所有表指定库中所有表
show tables from <name>; -- 指定库中所有表 创建表
-- 创建表
create table '表名'(
<字段名> <字段类型> <约束>,
<字段名> <字段类型> <约束>
primary key <字段名>);查看指定表的结构
desc <表名>; -- 查看指定表的结构显示表中的所有数据
select * from <表名>; -- 显示表中的所有数据DQL(Data Query Language)
DQL(Data Query Language):数据查询语言
DQL也称为“数据检索语句”,从数据中提取到需要的信息,SELECT使用最为频繁;
1 - 基础查询
SELECT 要查询的东西 FROM 表名;- 通过select查询完的结果 ,是一个虚拟的表格,不是真实存在
- 要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数
2 - 条件查询
条件查询:根据条件过滤原始表的数据,查询到想要的数据
select
要查询的字段|表达式|常量值|函数
from
表
where
条件 ;条件表达式
salary > 1000;
name != 'cjj';
salary <= 1000 && age >= 18;模糊条件
last_name like 'a%'3 - 排序查询
语法
select
要查询的东西
from
表
where
条件
-- 排序部分
order by 排序的字段|表达式|函数|别名 【asc|desc】4 - 常见函数
4.1 - 单行
4.1.1 字符串
concat(str1, str2, ...); -- 拼接
substr(str, begin_index, _length); -- 截取子串, 从第bi个开始,第一个记作1
upper(); -- 转换成大写
lower();-- 转换成小写
trim();-- 去前后指定的空格和字符
ltrim();-- 去左边空格
rtrim();-- 去右边空格
replace();-- 替换
lpad();-- 左填充
rpad(); -- 右填充
instr(); -- 返回子串第一次出现的索引
length(); -- 获取字节个数4.1.2 数学
round;-- 四舍五入
rand; -- 随机数
floor;-- 向下取整
ceil; -- 向上取整
mod; -- 取余
truncate; -- 截断4.1.3 日期
now; -- 当前系统日期+时间
curdate; -- 当前系统日期
curtime; -- 当前系统时间str_to_date(str, format); -- 将字符转换成日期
date_format(date, format); -- 将日期转换成字符date 参数是合法的日期。format 规定日期/时间的输出格式。
| 格式 | 描述 |
|---|---|
| %a | 缩写星期名 |
| %b | 缩写月名 |
| %c | 月,数值 |
| %D | 带有英文前缀的月中的天 |
| %d | 月的天,数值(00-31) |
| %e | 月的天,数值(0-31) |
| %f | 微秒 |
| %H | 小时 (00-23) |
| %h | 小时 (01-12) |
| %I | 小时 (01-12) |
| %i | 分钟,数值(00-59) |
| %j | 年的天 (001-366) |
| %k | 小时 (0-23) |
| %l | 小时 (1-12) |
| %M | 月名 |
| %m | 月,数值(00-12) |
| %p | AM 或 PM |
| %r | 时间,12-小时(hh:mm:ss AM 或 PM) |
| %S | 秒(00-59) |
| %s | 秒(00-59) |
| %T | 时间, 24-小时 (hh:mm:ss) |
| %U | 周 (00-53) 星期日是一周的第一天 |
| %u | 周 (00-53) 星期一是一周的第一天 |
| %V | 周 (01-53) 星期日是一周的第一天,与 %X 使用 |
| %v | 周 (01-53) 星期一是一周的第一天,与 %x 使用 |
| %W | 星期名 |
| %w | 周的天 (0=星期日, 6=星期六) |
| %X | 年,其中的星期日是周的第一天,4 位,与 %V 使用 |
| %x | 年,其中的星期一是周的第一天,4 位,与 %v 使用 |
| %Y | 年,4 位 |
| %y | 年,2 位 |
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')结果类似:
Dec 29 2022 11:45 PM
12-29-2022
29 Dec 22
29 Dec 2022 16:25:46.635
4.1.4 流程控制
if 处理双分支
case语句 处理多分支
情况1:处理等值判断
情况2:处理条件判断4.1.5 Other
version;-- 版本
database;-- 当前库
user;-- 当前连接用户4.2 分组
sum 求和
max 最大值
min 最小值
avg 平均值
count 计数- 除了
count(\*)这些函数忽略null sum和avg一般用于处理数值型max、min、count可以处理任何数据类型- 都可以搭配
distinct使用,用于统计去重后的结果 count的参数可以支持: 字段、*、常量值,一般放1 建议使用count(\*)
5 - 分组查询
select 查询的字段,分组函数
from 表
group by 分组的字段特点: