SQL语法--数据库查询语法+扩展知识

阅读558评论0

搞动态网站,SQL必须会,在这里记录一下SQL的select用法


1、查询

s elect * from table where a=1 and b=1 order by id desc limit 0,10

语法结构:

s elect 数据 from  where 条件 order by 排序方式 limit 数据范围


解析:
    数据要查找的数据字段名称,如:id,name,address,phone等等,多个用“,”隔开
    表要查找的数据表名称,如:user、webstr_user
    条件查找的条件,如:name=webstr,多个条件根据逻辑关系使用 and / or 链接
    排序方式根据哪个字段排序(顺序/ASC 和 倒序/DESC)
    数据范围从第几条开始获取多少条,如:前十条--0,10;前三十条--0,30;从第十条开始获取十五条--10,15


扩展:
    s elect DISTINCT 字段名称 from table
    查找返回唯一不同的值,过滤重复值。

    

    s elect MAX(id) from table
    查找id中最大的值

   

     s elect MIN(id) from table
    查找id中最小的值


    s elect SUM(price) from table
    统计price的数据和


    s elect AVG(price) from table
    统计price数据的平均值


    s elect COUNT(name) from table
    统计name的非空数据的行数


    s elect COUNT(*) from table
    统计行数


     s elect FIRST(name) from table
    查找name列中的第一个数据


     s elect LAST(name) from table
    查找name列中的最后一个数据


    s elect UCASE(name) as name from table
    将name字段数据转换成大写输出


    s elect LCASE(name) as name from table
    将name字段数据转换成小写输出


    s elect MID(name,1,5) from table
    在name字段数据中提取从第1位到第5位的数据


    s elect LEN(name) from table
    统计name字段数据的长度


    s elect ROUND(price,2) from table
    将price字段的数据转为有两位小数的类型,并四舍五入


    s elect FORMAT(time,"YYYY-MM-DD") from table
    将time字段的数据格式化为2016-08-11类型输出

2、条件

where中的逻辑符号


操作符
描述
=
等于
<>
不等于(有些版本的SQL中,可以写成 !=)
>
大于
<
小于
>=
大于等于
<=
小于等于
BETWEEN
在某个范围内,如:between a,g
NOT BETWEEN
不在某个范围内,如:not between a,g
LIKE
搜索某种模式,例:
% 替换一个或多个字符
g% :以g开头的数据
%n:以n结尾的数据
%h%:含有h的数据
_仅替换一个字符
_abc:第一个字符后是abc的数据
a_b_c:第一个字符是a,第三个字符是b,第五个字符是c的数据
[]字符列中的任何单一字符,结合%使用
[ABC]%:以A或B或C开头的数据
[!ABC]%:不以A或B或C开头的数据
NOT LIKE
不包含,用法同上
IN
所包含某些字符
如:
id in (1,2,3):相当于id=1 or id=2 or id=3

where中的多个条件,用and 或 or拼接,如: a=1 and b=2;a=1 and (b=2 or c=3);(a=1 and b=2) or c=3;


3、排序

order by 字段 排序方式,可以多个排序方式
desc 倒序
asc 顺序

如:
order by id desc     //根据ID倒序
order by name asc      //根据name顺序
order by id desc , name asc       //先根据ID倒序,在此基础上再根据name顺序

扩展:
group by:根据指定条件分组显示,通常结合sum等合计函数使用