常见命令

查看所有数据库

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)
%pAM 或 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 计数
  1. 除了count(\*)这些函数忽略null
  2. sumavg一般用于处理数值型
  3. maxmincount可以处理任何数据类型
  4. 都可以搭配distinct使用,用于统计去重后的结果
  5. count的参数可以支持: 字段、*、常量值,一般放1 建议使用 count(\*)

5 - 分组查询

select 查询的字段,分组函数
from
group by 分组的字段

特点: