可以看成是python中的自定义函数
# 无参函数
delimiter $$
create procedure p1()
begin
select *from cmd;
end $$
delimiter ;# 定义
call p1()# 有参函数
delimiter $$
create procedure p2(in m int,# in表示这个参数必须只能是传入不能被返回出去in n int,
out res int# out表示这个参数可以被返回出去 还有一个inout表示即可传入也可以返回出去)
begin
select *from cmd where id> m andid< n;set res=0# 用来标志存储过程是否执行
end $$
delimiter ;# 针对set需要先提前定义set @res=10; 定义
select @res; 查看
call p2(1,5,@res); 调用
select @res;'''
查看存储过程具体信息
show create procedure pro1;
查看所有存储过程
show procedure status;
删除存储过程
drop procedure p2;
'''
函数
可以看成是python中的内置函数
'''可以通过help 函数名 查看帮助信息'''# 移除指定字符
Trim
LTrim
RTrim
# 大小写转换
Lower
Upper
# 获取左右起始指定个数字符
Left
Right
# 返回读音相似值(对英文效果)
Soundex
'''
客户表中有一个顾客登记的用户名为J.Lee
但如果这是输入错误了 真名其实叫J.Lie 可以使用soundex匹配发音类似的
where Soundex(name)=Soundex('J.Lie')
'''# 日期格式:date_format'''在MySQL中表示时间格式 尽量采用2022-11-11形式'''
create table blog(idint primary key auto_increment,
name char(32),
sub_time datetime
);
insert into blog(name,sub_time)
values
('第1篇','2015-03-01 11:31:21'),('第2篇','2015-03-11 16:31:21'),('第3篇','2016-07-01 10:21:31'),('第4篇','2016-07-22 09:23:21'),('第5篇','2016-07-23 10:11:11'),('第6篇','2016-07-25 11:21:31'),('第7篇','2017-03-01 15:33:21'),('第8篇','2017-03-01 17:32:21'),('第9篇','2017-03-01 18:31:21');
select date_format(sub_time,'%Y-%m'),count(id)from blog group by date_format(sub_time,'%Y-%m');
where Date(sub_time)='2015-03-01';
where Year(sub_time)=2016and Moth(sub_time)=07;# 更多日期处理相关函数
adddate 增加一个日期
addtime 增加一个时间
datediff 计算两个日期差值
流程控制
# 分支结构
declare i int default 0;if i=1 then
select 1;
elseif i=2 then
select 2;else
select 7;
end if;# 循环结构
declare num int;set num=0;while num<10 do
select num;set num=num+1;
end while;
索引相关概念
索引就好比一本书的目录 它能够让你更快的找到自己想要的内容
让获取的数据更有目的性 从而提高数据库检索数据的性能
索引在MySQL中也叫作'键' 是存储引擎用于快速找到记录的一种数据结构
primary key
unique key
index key
1.上述的三个key都可以加快数据查询
2.primary key和unique key除了可以加快查询外本身还自带限制条件而index key很单一 就是用来加快数据查询
3.外键不属于索引键的范围 是用来建立关系的 与加快查询无关
索引加快查询的本质
select name from userinfo where phon=18888888888;# 一页页的翻
select name from userinfo where id=999;# 按照目录确定页数找
索引可以加快数据查询 但是会降低增删速度
通常情况下我们频繁使用某些字段查询数据 为了提升查询的速度可以将该字段建立索引
聚焦索引(primary key)
主键 主键索引
辅助索引(unique,index)
除了主键以外的都是辅助索引
覆盖索引
select name from user where name='jason';
非覆盖索引
select age from user where name='jason';
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!