查询:字段select 字段1,字段2,字段3 from表名 where 条件
“+”号:只用于数值计算 select 1+2或select 1+‘2’
“CONCAT”:用于连接字符串CONCAT(字符1,字符2) ,如select concat(1,2)查询结果为12.CANCAT函数中若有NULL参数,则结果为NULL。
"IFNULL" :给NULL指定默认值,语法IFNULL(字段,默认值) 如select ifnull(null,0);再如select CONCAT(字符1,IFNULL(字符2,0)) from 表名。
条件查询
条件表达式:<、>、=、<>(也可以是!=)、<=、>=、<=>(安全等于,可以判断null值)
逻辑运算符:&&、||、!;一般使用and、or、not代替
模糊查询:like、between and 、in/not in、is null、is not null
like一般跟通配符%(任意多个字符包含零个)、_(任意单个字符匹配)。通配符可以前面加“\\”进行转义,也可以用escape申明转义符号。
between and可以提高条件查询的简洁度,包含临界值,不可交换条件的顺序(一般小的在前,大的在后)
order by :order by 关键字 asc/desc 默认按照asc(升序)
常见函数
字符函数:length(字段)、concat(字段1,字段2,...)、upper(字段)、lower(字段)、substr(求子字符串,sql中索引从1开始)、instr(字段、字符串)、trim(字符 from 字段)、rpad(字段、长度、字符)右填充、lpad(字段、长度、字符)左填充
数学函数:round四舍五入、ceil向上取整、floor向下取整、truncate截取、mod求余(mod(a,b)<=>a-a/b*b)
日期函数:now()返回当前时间(日期+时间)、curdate()当前日期、curtime()当前时间、year(date)、month(date)、monthname(date)、day(date)、hour(date)、minute(date)、second(date)、str_to_date、date_format、datedif(date1,date2)
系统函数:version()当前版本、database()当前数据库、user()当前数据库
流程控制函数:if(表达式,值1,值2)、case 表达式或字段 when 常量1 then 值或语句 when 常量1 then 值或语句 else 值或语句、case when 表达式1 then 值或语句 case when 表达式2 then 值或语句 else 值或语句。
分组函数:sum(字段)求和、avg(字段)平均值、max(字段)、min(字段)、count(字段)。这些分组函数都会忽略计算null值。在innodb存储引擎下,count(*)或count(1)的效率要比count(字段)的效率高。