SQL语法--数据库查询语法+扩展知识
搞动态网站,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等合计函数使用
有 0 位网友评论: