排序 :order by


select 查询列表
from 表
whrer 条件
order by 排序列表(asc升序默认|desc降序)
可以支持单个字段,多个字段,表达式,函数,别名

  1. 一般放在语句最后

常见函数

SELECT 函数表(实参列表) <br />    FROM 表 

字符函数

  1. length(‘实参’) 读取实参的长度 一个汉字3个字节(utf-8)
  2. concat(实参,实参) 拼接字符串
  3. upper(实参),lower(实参) 变成大写,和小写
  4. substr(实参,开始索引),
  5. subString(实参,开始索引,截取的长度) 截取字符 长度从一开始
  6. instr(实参,查找字符串) 查找字符串出现的索引
  7. trim(实参) 去除字符两端的空格
  8. trim(‘指定字符’ from 实参 ) 去除前后的指定字符
  9. lpad(参数,长度,’字符’) 用指定的字符去左填充参数到指定长度
  10. rpad(参数,长度,’字符’) 用指定的字符去右填充参数到指定长度

    1. replace(实参,被替换的字符,替换字符) 替换字符

数字函数

   1.    round(参数) 四舍五入  round(参数,保留小数点几位) 四舍五入<br />       2.    ceil(实参) 向上取整返回最小整数<br />       3.    floor(实参) 向下取整返回最大整数<br />       4.    truncate(实参) 截断<br />       5.    mod(a,b) 取余

日期函数

    1.    now() 返回当前时间 日期+时间<br />        2.    curdate() 返回不包含时间<br />        3.    curtime() 时间宝不含日期<br />        4.    year() month() day() 等可以获取指定的<br />        5.    str_to_date( )  指定格式转换<br />        6.    date_format(时间,'%y年%m月%d日') 日期转换成字符<br />        7.     datediff('日期','日期') : 取他们相差的天数

其他函数

    1.     version() 版本号<br />        2.     database() 查看当前的库<br />        3.     user() 当前的用户 

流程控制函数

    1.     if(条件表达式,返回值1,返回值2) <br />        2.      第一种<br />     case 判断的表达式和字段<br />     when 常量 then 结果<br />     when 常量 then 结果<br />     else  结果<br />     end

            第二种<br />     case<br />     when 条件  then 结果                          <br />     when 条件  then 结果<br />     else 结果<br />     end

分组函数

  1. sum(实参) 求和
  2. avg(实参) 平均值
  3. max(实参) 最大值
  4. min(实参) 最小值
  5. count(实参) 计算个数
  6. 和分组函数一起使用的一般是group by后的字段

分组查询 group by

select 查询列表 (要求出现在group by的后面)<br />    from 表<br />    whrer 条件(分组前筛选)<br />    group by 子句语法<br />    order by 排序列表<br />    having 分组后的筛选

分组函数做筛选肯定在having后面
多表查询
select 表一 ,表二
from 表一,表二,表三
where 表一.列 = 表二.列
and 筛选条件
可以在from给表起别名,都可以使用别名表示,起了别名就要使用别名要不然报错

非等值连接

select 列名,列名<br />    from 表一,表二<br />    where 列名 between 列名条件一 and 列名条件二  

常用语句 :

select 查询列表
from 表一
[连接类型] join 表二 on 连接条件
[连接类型] join 表三 on 连接条件
where 筛选条件
group by 分组
having 排序后筛选条件
order by 排序列表

自连接

select 列名<br />    from 表一 ,表一<br />    where 表一列名 = 表一列名

内连接 inner (inner可以省略)

外连接 (一个有,另一个表没有的,外连接有匹配的显示匹配的值,没有则null )

左外 left outer可以省略不写<br />    右外 right<br />    全外 full (mysql不支持)

交叉连接 cross

联合查询

查询语句 union 查询语句 ; 

多条查询语句的查询列数一致的,类型和顺序一致,默认去重,union all 不去重