第三十一天

一、单行函数(每一行都会执行一次的函数)
eg:pet表中每一个pname的长度
select pname,CHAR_LENGTH(pname) from pet where char_length(pname)>2
CHAR_LENGTH(列):获取列的值的字符长度
单行函数的分类 :
1.数值类型
① round(值,保留几位):四舍五入、保留小数
select round(123.957)-- 123.96
select round(123.956)-- 124
select round(153.956,-2)-- 200
② truncate(值,截断保留的小数) 只截断不四舍五入
select TRUNCATE(123.956,2)-- 123.95
select TRUNCATE(123.956,-2)-- 100
注:符号代表方向,以小数点为界限,向左为负,向右为正
2.字符型
③ substr(字符串,起始位置,截取长度):进行字符串截取,将截取之后的信息展示出来 ,不改变原有信息
select substr(‘abcdefg’,3,4) 结果: cdef
select substr(‘abcdefg’,-5,4) 结果:cdef
注:负号代表从最后一位往前数;截取长度代表往后截取的长度。
④ length() 字节长度(3字节 utf-8) char_length() 字符长度
select length(‘中国’); 结果:6
select CHAR_LENGTH(‘中国’); 结果:2
⑤ trim(两端要去掉的字符from 原来的字符串):去掉两端指定的字符
select TRIM(’ ’ from ’ a b c d ');结果: a b c d
select TRIM(‘a’ from 'a b c d ');结果:b c d
⑥ replace(字符串,需要替换的字符,替换的字符):替换
select REPLACE(‘abcadeafg’,‘a’,‘q’);结果:qbcqdeqfg
⑦ instr(字符串,查找的字符):在字符串中查找字符第一次出现的位置,若无则返回0。
select INSTR(‘abcabc’,‘b’);结果:2
b 第二次出现的位置
select INSTR(substr(‘abcabc’,INSTR(‘abcabc’,‘b’)+1),‘b’)+INSTR(‘abcabc’,‘b’)
3.日期型
now() 当前日期时间
select date(now());:获取此刻的年月日
select year(now());:年
select month(now());:月
select day(now());:日
select HOUR(now());:时
select MINUTE(now());:分
select SECOND(now()); :秒
select ADDDATE(now(),2);:加两天
select SUBDATE(now(),2);:减两天
select date(now())+2;加两天

4.转换函数
⑧ 隐式转换(自动转换)
insert into pet (age) values(‘20’)
insert into pet (birthday) values(‘2019-09-08’);
⑨ 显式转换
格式:str_to_date(列或字符串,’%Y-%m-%d %H:%i:%s’ );:将字符串转换为日期类型(年月日时分秒) ;
select STR_TO_DATE(‘2019-09-08’,’%Y-%m-%d %h%i%s’);
格式:date_format(now(),’%Y-%m-%d %H:%i:%s’) 将日期转换为字符串
select date_format(列或now(),’%Y-%m-%d %H:%i:%s’) 年-月-日 时:分:秒
二、多表连接(笛卡尔积 )
select * from pet,emp where pet.ren=emp.empno (等值连接 内连接)
例:查询旺财的主人姓名 ;
select pname,ename from pet ,emp where ren=empno and pname =‘旺财’ ;
查询 宠物年龄大于3 岁 的主人信息;
SELECT * FROM s_person,s_pet WHERE age>3 AND s_person.pname = s_pet.ownner
查询 张三 所拥有的宠物信息;
SELECT * FROM s_person,s_pet WHERE ownner = ‘张三’ AND s_person.pname = s_pet.ownner;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值