MySQL
2022-06-06 14:12:40 7 举报
AI智能生成
mysql学习笔记
作者其他创作
大纲/内容
概念
什么是数据库
数据库是数据结构来组织、存储和管理数据的仓库
什么是关系型数据库
建立在关系模式基础上数据库,可以借助集合、代数等数学概念和方法来处理存储在数据库中的数据
SQL语言
优点
不是所有数据库厂商专有的语言,SQL语言几乎支持所有的DBMS
数据库的连接
windows的dos命令行连接命令:mysql -u账号 -p密码
数据库存储的特点
将数据存储在表中,再将表存储到数据库中
DQL语言
基础查询
语法
select 查询列表 from 表名
特点
查询列表可以是表中字段,常量值,函数
查询结果是虚拟的表
distinct:去重
concat(str1,str2....):字符串拼接
条件查询
语法
select 查询列表 from 表名 where 查询条件
模糊查询
like
通配符
%:代表多个字符
_:代表一个字符
between and
包含临界值
两个临界值是由小到大
in
含义:判断查询列表中的字段是否符合in列表中的字段
is null || in not null
排序查询
语法
select 查询列表
from 表名
【where 查询条件】
order by 排序列表【asc | desc】
from 表名
【where 查询条件】
order by 排序列表【asc | desc】
特点
asc是升序,可以默认不写
desc是降序
常见函数
语法:select 函数(实参列表) 【from 表】
分类
单行函数
作用:用于数据处理
字符函数
show variables like '%char%':查看当前字符集
length函数
参数是字符串,作用是返回该字符串长度(字节数),utf8中汉字占三个字节,gdk中占两个字节
例:select length('函数abc'); == 9
concat函数
字符串的拼接,参数是多个字符或字符串
例:select concat(first_name,'_',last_name) from employees;
upper,lower函数
upper大写函数:将英文字符串改为大写
lower小写函数:将英文字符串改为小写
字符串截取
索引是从1开始,包含区间
substring(str, pos)
substring(被截取字符串, 从第几位开始截取)
SELECT SUBSTRING('www.yuanrengu.com', 9)
从字符串的第9个字符开始读取直至结束
结果:rengu.com
substring(str, pos, length)
substring(被截取字符串,从第几位开始截取,截取长度)
SELECT SUBSTRING('www.yuanrengu.com', -6, 2)
从字符串的倒数第6个字符开始读取,只取2个字符
结果为:gu
substring_index(str, delim, count)
substring_index(被截取字符串,关键字,关键字出现的次数)
SELECT SUBSTRING_INDEX('www.yuanrengu.com', '.', 2);
截取第二个“.”之前的所有字符
结果为:www.yuanrengu
trim
去除字符串的前后空格
select trim(' aaa '); ==》aaa
去除前后字符串
select trim('a' from 'aaa组装aaa'); ==》 组装
replace:字符串的替换
replace('字符串','被替换的子串','替换的子串')
replace('aaaaccvvvv','cc','bbb'); ==》aaaabbbvvvv
数学函数
round:四舍五入
ceil:向上取整
floor:向下取整
mod:取余
日期函数
now:返回当前系统日期和时间
curdate:返回当前系统日期,不包含时间
curdate:返回当前时间,不包含日期
str_to_date():将字符串通过指定格式转换为日期
select str_to_date('09-09-2019','%Y-%m-%d');
date_format():将日期转换为字符串
流程控制函数
if:if(表达式,值,值),类似于三元运算符
case
语法1:
CASE <表达式>
WHEN <值1> THEN <操作>
WHEN <值2> THEN <操作>
...
ELSE <操作>
END CASE;
语法2
CASE
WHEN <条件1> THEN <命令>
WHEN <条件2> THEN <命令>
...
ELSE commands
END CASE;
其他函数
分组函数
sum:求和
avg:平均值
max:最大值
min:最小值
count:计算个数
分组查询
GROUP BY 语句根据一个或多个列对结果集进行分组。
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
例:
SELECT `department_id` 部门编号, AVG(salary)
FROM employees
GROUP BY department_id;
SELECT `department_id` 部门编号, AVG(salary)
FROM employees
GROUP BY department_id;
连接查询
子查询
分页查询
union查询
0 条评论
下一页