SQL库函数

一、 字符串函数
1. 删除字符 、 添加字符
trim ( str ) : 去掉两侧空格
ltrim( str ) : 去掉左侧空格
rtrim ( str ) : 去掉右侧空格

trim ( 位置 , ‘去掉谁’ From ‘原始字符串’ ) : 从 【原始字符串】 中去掉 【位置】指定的 子字符串 【去掉谁】

lPad( str , 长度len , ‘填充字符’ ) ; 在 str 的左侧 补充字符【填充字符】 , 直到总长度 为 len .
rPad( str , 长度len , ‘填充字符’ ) ; 在 str 的右侧 补充字符【填充字符】 , 直到总长度 为 len .

select ‘ abc’
select trim(‘ abc’)

update student set sname=’ 吴小亮’ where sid=2001001

select trim(sname) from student

select lpad(sname,10,’a’) from student

  1. 字符串的长度
    length ( str ); : 字符串 str 的字节数
    char_length ( str ); : 字符串 str 的字符数

select char_length(sname) from student

select * from student

— 查询名字为两个字 的学生
select * from student where CHAR_LENGTH(sname)=2

  1. 拼接字符串
    concat ( str1 , str2 , … ); 拼接 多个字符串 ‘aaa’ , ‘bbb’ ===> ‘aaabbb’

concat_ws ( 分隔符 , str1 , str2 , … )拼接 多个字符串 ‘aaa’ , ‘bbb’ ===> ‘aaa;bbb’

select concat(major,sname) from student

select concat_ws(” “,major,sname) from student

  1. 查找 字符串的位置
    field ( 需要查找的字符串 , 原字符串1 , 原字符串2 , 原字符串3 , …. ) : 在后面的字符串 中查找 第一个参数(需要查找的字符串) 的位置(不是下标!!!) ,如果没有就返回 0 。

select field(‘王前’,sname,major) from student;

select field(‘计算机及应用’,sname,major) from student;

select * from student

select * from student order by class desc

— 自定义排序规则
select * from student order by field(class,’0102′,’0101′,’0104′)

instr ( 原始字符串str , 子字符串substr )
— : 返回 子字符串substr 在 原始字符串str 中第一次出现的位置 。
select instr(sname,’大’) from student

locate ( 子字符串substr , 原始字符串str ) : 同 instr( )

locate ( 子字符串substr , 原始字符串str , 起始位置pos ) : 返回 子字符串substr 在 原始字符串str pos 以后的 部分第一次出现的位置 。

select locate(‘0’,class,2) from student

select * from student

  1. 截取字符串
    left ( 原始字符串str , 截取的长度 ) ; 从左侧截取 len 个字符
    right ( 原始字符串str , 截取的长度 ) ; 从右侧截取 len 个字符

substring ( 原始字符串str , 起始位置pos ) / substring ( 原始字符串str FROM 起始位置pos ) : 从 【原始字符串 str】中的第 pos 位置开始截取后段字符串 。

substring ( 原始字符串str , 起始位置pos , 截取的字符个数len ) / substring ( 原始字符串str FROM 起始位置pos FOR 截取的字符个数len ) : 从 【原始字符串 str】中的第 pos 位置开始截取 len 个字符 。

substr ( ) : 同 substring()

select left(sname,2) from student

select right(sname,2) from student

select substring(sname,1) from student

select substring(sname,1,2) from student

  1. 大小写
    lower ( ) / lcase ( ) : 小写

UPPER( ) / ucase( ) : 大写

select lower(‘AGGG’)

  1. 替换字符串
    insert ( 原始字符串str , 起始位置pos , 替换长度len , 新子字符串newStr ) :

select insert(sname,1,2,’**’) from student

repalce ( 原始字符串str , 旧的子字符串 , 新的子字符串 )

select replace(sname,’小’,’小小’) from student

reverse ( 原始字符串str )

select reverse(sname) from student

二、 数学函数
1.

abs()

select abs(mark) from score

2.

ceil ( n ) , ceiling ( n )

floor ( n )

select ceil(avg(mark)) from score where cid=’01’

select floor(avg(mark)) from score where cid=’01’

3.

format ( 小数X , 位数D ) , 通过 四舍五入 保留 小数点D位

truncate ( 小数X , 位数D ) , 通过 直接舍弃 保留 小数点D位

round( 小数X )

round( 小数X , 位数D )

select round(avg(mark)) from score where cid=’01’

4.

mod ( x , y )
mod : X mod Y
X % Y
select * from score where mark %10=3

5.

PI( ) : 3.1415926535

6.

power ( x , y ) / pow( x , y ) : 返回 x 的 y 次方

sqrt ( n ) : 开根号之后 的结果

select power(2,3)

7.

rand( ) : 返回 0–1 之间的随机数

rand( seed ) : seed : 种子数 !

select rand()

三、 日期函数
1. 获得 当前系统日期
SELECT CURRENT_DATE , CURRENT_DATE() , CURDATE() ;

select CURRENT_DATE

  1. 获得 当前系统时间
    SELECT CURRENT_TIME , CURRENT_TIME() , CURTIME() ;

select CURRENT_TIME

  1. 获得 当前系统日期时间
    SELECT CURRENT_TIMESTAMP , CURRENT_TIMESTAMP() , NOW();

SELECT LOCALTIMESTAMP , LOCALTIMESTAMP() , NOW();

SELECT LOCALTIME , LOCALTIME() , NOW();

select CURRENT_TIMESTAMP

select now()

create table users2(
uid int primary key,
uname varchar(20),
pwd varchar(20),
regdate TIMESTAMP default now() — TIMESTAMP 时间戳
)

select * from users2

insert into users2 values(1,’aa’,’123′,default)

  1. 获得 日期时间的一部分
    (1) 取得日期部分
    date( d );

(2)取得时间部分
time( d ) ;

MonthName( d ); — 月份 全称

Hour( NOW() ) ,
MINUTE( NOW() ) ,
SECOND ( NOW() );

select hour(now())

(4)取得 星期几
DayOfWeek( d ) ;
DayName( d );

(5)取得任意一部分(type)
Extract ( type FROM date );

EXTRACT( YEAR_MONTH FROM NOW() ) ,
EXTRACT( HOUR_MINUTE FROM NOW() )

说明 : type 的取值 可以在 Date_add() 函数处 !!!

(1) 一个月份中的最后一天 ( 28 , 29 , 30 , 31 )
Select Last_Day ( NOW() );

Select Last_Day ( NOW() );
6. 添加、减少日期
SELECT ADDDATE( ‘2001-1-1 0:0:0’ , 20 ) , DATE_ADD( ‘2001-1-1 0:0:0’ ,INTERVAL 20 DAY) , ADDDATE( ‘2001-1-1 0:0:0’ , INTERVAL 20 YEAR ) ; – 默认加 天

SELECT SubDATE( ‘2001-1-1 0:0:0’ , 20 ) , DATE_Sub( ‘2001-1-1 0:0:0’ ,INTERVAL 20 DAY) , subDATE( ‘2001-1-1 0:0:0’ , INTERVAL 20 YEAR ); –

select adddate(now(),20)

  1. 添加、减少时间
    AddTime( date , time ) : 将 时间 time , 添加 到 日期date上

  2. 添加、减少日期时间
    TimestampAdd ( type , num , date ) : 给 日期时间 date 上添加 指定类型指定数额

TimestampDiff ( type , date1 , date2 ) : 计算出 两个日期时间 date1 和 date2 之间的差额 ??

select TIMESTAMPDIFF(day,now(),’2018-09-01′)

  1. 两个时间之间的差额
    DateDiff( )

TimeDiff( )

  1. 格式化日期时间
    (1)Date_format ( ) : 将 日期时间对象 按照指定格式 转换为字符串

select date_format(now(),’%Y/%m/%d’)

(2)str_to_date ( ) : 将 日期格式的字符串 转换为 日期时间对象

select str_to_date(‘2019-01-01′,’%Y-%m-%d’)

  1. 世界标准日期、时间
    SELECT UTC_DATE , UTC_DATE() ;

SELECT UTC_TIME , UTC_TIME() ;

SELECT UTC_TIMESTAMP , UTC_TIMESTAMP() ;

select UTC_TIME

Original: https://www.cnblogs.com/daimenglaoshi/p/16856165.html
Author: 呆萌老师
Title: SQL库函数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714335/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球