数据库基础与应用二

存储过程基本语法–运算符

(1)算术运算符

加 set @var1=2+2;

减 set @var2=3-2;

乘 set @var3=3*2;

除 set @var4=10/3;

整除 set @var5=10 div 3;

取模 set @var6=10%3;

(2)比较运算符

大于 >

小于 <

小于等于 <=

大于等于 >=

在两值之间 BETWEEN…AND

例如:

5 BETWEEN1 AND10 (成立)

不在两值之间 not between…and

例如:

5 NOT BETWEEN 1 AND10 (不成立)

在集合中 in

例如:

5 IN (1,2,3,4,) (不成立)

不在集合中 not in

例如:

5 NOT IN (1,2,3,4) (成立)

等于 =

不等于 <>, !=

严格比较两个NULL值是否相等 <=>

简单模式匹配 LIKE

例如:

“Guy Harrison” LIKE “Guy%” (成立)

为空 IS NULL

不为空 IS NOT NULL

比较运算符中比较的结果如果是1的话就表示成立,反之,为0就是不成立。

(3)逻辑运算符

或 ||

与 &&

非 ~(单目运算,按位取反)

简单示例如下:

在这里插入图片描述

(4)位运算符

左移位 <<

右移位 >>

存储过程基本语法–分支语句

(1)if语句

delimiter //
create procedure pro_judge(in a int)
begin
if a<20 then
select ‘小于20’;
elseif a>20 then
select ‘大于20’;
else
select ‘等于20’;
end if;
end//
delimiter ;

(2)case语句

delimiter //
create procedure pro_case(in v int)
begin
case v
when 0 then
select ‘去西安’;
when 1 then
select ‘去南京’;
else
select ‘哪儿都不去’;
end case;
end //
delimiter ;

存储过程基本语法–循环语句

(1)while语句

while…end while

while 条件 do

–循环体

end while

实例:

delimiter //
create procedure pro_while()
begin
declare v int;
set v=0;
while v<6 do
select v;
set v=v+1;
end while;
end //
delimiter ;

(2)repeat语句

repeat…end repea

repeat

–循环体

until 循环条件

end repeat;

实例:

delimiter //
create procedure pro_repeat()
begin
declare v int;
set v=0;
repeat
select concat(‘第’,v,‘个数’);
set v=v+1;
until v>6
end repeat;
end //
delimiter ;

(3)loop-leave语句

loop循环不需要初始条件,这点和while相似,同时和repeat循环一样不需要结束条件leave语句的意义是离开循环。

delimiter //
create procedure pro_loop()
begin
declare v int;
set v=0;
loopA:loop
select v;
set v=v+1;
if v>5 then
leave loopA;
end if;
end loop;
end //
delimiter ;

(4)leave,iterate(leave相当于其他语言中的break跳出循环,iterate相当于continue继续循环)

在这里插入图片描述

delimiter //
create procedure pro_loop()
begin
declare v int;
set v=0;
loopA:loop
set v=v+1;
if v>5 then
leave loopA;
end if;
if v=3 then
iterate loopA;
end if;
select v;
end loop;
end //
delimiter ;

函数–字符串函数

(1)字符串拼接

concat(str1,str2,…)

实例:

set @a=0;
select concat(‘第’,@a:=@a+1,‘本书:’,title) (as ‘标题’ )from books;

如果感觉显示的标题不美观,可以as一下。

(2)字符串查找

instr(string,substring) 这里的下表是从一开始的,不是从零开始。

实例:

select instr(‘sdfsfs’,‘4’); 一是代表有,0是代表没有。

select * from books where instr(title,‘宋’)>0;

locate(substring,string,startPoint) 同instr,但可以指定开始位置,一个汉字算两个字符

实例:
select * from contents where locate(‘唐’,content,3)>1;

(3)字符串去空格

trim(string) 去除前后端空格

实例:

select trim(’ aa bb cc ');

(4)字符串格截取

left(string,length) 截取开头开始指定长度的字符串。

实例:

select id,ctitle,left(content,6) from contents;

select id,ctitle,concat(left(content,6),’…’) from contents;

实现如下效果:

在这里插入图片描述

函数–数学函数

(1)取模,求指数,开方

取余:select mod(10,3);

求指数: select power(4,2);

平方根:select sqrt(16);或者:select power(4,1/2);

(2)取整,绝对值,随机数

取整:

select ceiling(3.1); 向上取整

select floor(3.9); 向下取整

select round(3.5); 四舍五入

绝对值:

select abs(-5);

随机数:
select rand();

select floor(3+rand()*(9-3+1));

(3)千分位、保留n位有效数字

格式化:

select format(62.732839,2) 保留两位有效数字

千分位:当数字整数部分超过4位时,自动进行千分位

select format(12345678.12344,4);

select foramt(6210.732839,2);

以上语句具体到查询表中时:

就是把放数字的地方改成字段值,括号后边放上from 表名

例如:

select format(price,1) from books;

在这里插入图片描述

函数–日期函数

(1)系统函数

select sysdate(); 系统时间

在这里插入图片描述

select current_date(); 当前日期

在这里插入图片描述

select current_time(); 当前时间

在这里插入图片描述

select current_timestamp(); 当前时间戳

在这里插入图片描述

select date(current_timestamp()); 返回时间的日期部分

在这里插入图片描述

实例:
select id,date(updtime) from admins;

在这里插入图片描述

时间格式化:
select date_format(updtime,’%Y年%m月%d日 %H:%i:%s’) from admins;

(2)日期转换函数

转成星期几:

select concat(‘星期’,dayofweek(updtime)) from admins;

在这里插入图片描述

select date_add(updtime,interval 2 day) from admins; 加上两天

select date_add(updtime,interval 1 hour) from admins; 加上1小时

select date_sub(updtime,interval 3 minute) from admins; 减少3分钟

(3)时间转换函数
(4)日期计算

select id,datediff(updtime,createtime) from admins; 两者日期差

select id,timediff(updtime,createtime) from admins; 两者时间差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值