mysql学习(1)

2019-05-23  本文已影响0人  Bob_Running

# *****************************常用查询****************************
SELECT VERSION();

SHOW ENGINES;

#IFNULL(e1,r1):如果e1为空,则返回r1;
SELECT IFNULL(`user`.photo,"") FROM `user`;

#IF(e1,r1,r2):类似于三目运算符
SELECT IF( STRCMP(`user`.photo,'default.jpg')=0,"default","---") FROM `user`;

# *****************************全局变量*****************************

/*
展示系统变量,当不加global的时候,默认为会话变量
*/
show GLOBAL VARIABLES;

SHOW GLOBAL VARIABLES LIKE '%char%';


#查询前局变量
SELECT @@global.character_set_client;

/*
设置全局变量,当mysql重启后,设置的全局变量会被默认值替代
*/

SET @@global.character_set_client='utf8mb4';

# ********************************会话变量***************************

/*
展示会话变量
*/
SHOW SESSION VARIABLES;

#查询会话变量
SELECT @@session.character_set_client;

/*
设置会话变量,只在当前会话有效,当开启一个新的会话时,将无效。
*/
SET @@session.character_set_client='utf8mb4';

#*********************************字符串处理***************************

-- 字符串拼接

#concat函数可以一次性拼接多个字符串或数值型
SELECT CONCAT(city,addrDetail,mobile) FROM address;

-- 字符串比较

#strcmp(str1,str2)函数:当str1>str2,返回1;当str1=str2,返回0;当str1<str2时,返回-1.
SELECT STRCMP("1","2");

-- 字符串截取

#substr(str,start):字符串的起始位置为1,不是0.
SELECT SUBSTR("abcdefghijkl",1);

#substring(str,start,length):length代表截取的长度
SELECT SUBSTRING("abcdefghijkl",1,3);

#*******************************日期型********************************

-- 返回当前的日期和时间
SELECT NOW();

-- 返回当前的日期
SELECT CURDATE();

-- 返回当前的时间
SELECT CURTIME();

-- 提取日期部分
SELECT DATE(NOW());

-- 用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
SELECT EXTRACT(WEEK FROM NOW());

-- 给指定日期添加时间,可以选择添加的时间类型

/*
unit类型为:

MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
*/
SELECT DATE_ADD(NOW(), INTERVAL 2 DAY);

-- 返回两个时间相差的天数
SELECT DATEDIFF(NOW(),  "2020/01/01");

-- 给指定日期减少时间
SELECT DATE_SUB(NOW(),INTERVAL 2 MINUTE);

-- 将字符串转换为日期
SELECT STR_TO_DATE("2020/01/01 00:00","%Y/%m/%d %H:%m");

-- 日期转字符串
SELECT DATE_FORMAT(NOW(),"%Y/%m/%d");

#*******************************运算符********************************

-- +

#加号只能进行数值型操作
SELECT 1+2;
#如果其中一方为字符型,试图将其转换为数值型,如果转换成功,则进行加法计算;如果转换失败,则将字符型转为0;如果一方为null,则结果为null。
SELECT "aaa"+11;
SELECT "22"+11;
SELECT "22"+"11";

-- /
SELECT 5/4;

-- mod求余
SELECT MOD(5,4);

-- 绝对值
SELECT ABS(1);
SELECT ABS(-1);

-- 四舍五入
SELECT ROUND(1.6);
SELECT ROUND(1.2);
SELECT ROUND(-1.6);
SELECT ROUND(-1.2);

-- 取比其大的,最接近的整数值
SELECT CEIL(1.2);
SELECT CEIL(-1.2);
SELECT CEIL(-1.6);

-- 取比其小的,最接近的整数值
SELECT FLOOR(1.2);
SELECT FLOOR(1.6);
SELECT FLOOR(-1.2);
SELECT FLOOR(-1.6);







上一篇 下一篇

猜你喜欢

热点阅读