case when then else end 相当于Java的if-else if-else,可以用来在select语句中将要显示的内容替换成另一个内容
更多用法:https://www.cnblogs.com/aipan/p/7770611.html
用法1:
case
字段名
when
条件
then
显示为什么
else
条件
end
例子1:
select(casesexwhen
'1'
then
'男'
else
'女'
end) assexfromstudent
用法2:
case
when 条件 then 显示为什么
else 条件
end
例子2:
select(case
whensex='1'
then
'男'
else
'女'
end) assexfromstudent
IFNULL()函数
IFNULL(字段名,将要转换成什么)
select
if(score,0)
from
result
in 和not in
in、not in运算符,表示包含的集合,一般用于子查询的
#只需要年龄为18,20,21的同学的成绩
selectstu.id,
stuName,
score,
agefromstudentasstu,
resultasrwherestu.id=r.stuId
agein(18,20,21)
#不显示年龄为18岁的学生selectid,
namefromstudentwhereidNOT IN(select id from age=18)
将date日期类型转换成varchar类型(DATE_FORMAT(字段名,格式))
SELECTDATE_FORMAT(DATE,'%Y-%m-%d') ASDateFROMtest
将varchar类型转换成date类型(STR_TO_DATE(字段名,格式))
SELECTSTR_TO_DATE(DATE,"%Y%m%d") ASDATEFROMtest
varchar和date相互转换的格式参数
格式描述
%a
缩写星期名
%b
缩写月名
%c
月,数值
%D
带有英文前缀的月中的天
%d
月的天,数值(00-31)
%e
月的天,数值(0-31)
%f
微秒
%H
小时 (00-23)
%h
小时 (01-12)
%I
小时 (01-12)
%i
分钟,数值(00-59)
%j
年的天 (001-366)
%k
小时 (0-23)
%l
小时 (1-12)
%M
月名
%m
月,数值(00-12)
%p
AM 或 PM
%r
时间,12-小时(hh:mm:ss AM 或 PM)
%S
秒(00-59)
%s
秒(00-59)
%T
时间, 24-小时 (hh:mm:ss)
%U
周 (00-53) 星期日是一周的第一天
%u
周 (00-53) 星期一是一周的第一天
%V
周 (01-53) 星期日是一周的第一天,与 %X 使用
%v
周 (01-53) 星期一是一周的第一天,与 %x 使用
%W
星期名
%w
周的天 (0=星期日, 6=星期六)
%X
年,其中的星期日是周的第一天,4 位,与 %V 使用
%x
年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y
年,4 位
%y
年,2 位
将查询结果复制到一张新表(create table)或者插入到已创建的新表(insert into)中
#复制到新表中CREATE TABLEnew_tableSELECTid,
nameFROMtest
#复制到已创建的新表中INSERT INTOb_table(id,name)SELECTid,
nameFROMc_table