一.查询语句语法
SELECT 字段 FROM 表名;
1.查询出表中所有字段
所有字段*
__SELECT * FROM 表名;
例: 查询 birds_bill_shapes表中所有字段

2.查询出表中指定字段
_SELECT _字段名 FROM **表名;
例:SELECT bill_id FROM birds_bill_shapes; 查询指定字段
3.查询多个字段的数据
在字段填写的时候会改变数据字段显示的顺序
_SELECT __字段1,字段2 __FROM__ 表 ;_
例:
没有按原字段顺序查询,则改变显示顺序
4.WHERE 子句**
给查询添加筛选条件,满足条件的数据才显示
以下都可选择或获取多个字段
语法 :
_** SELECT **_**字段 **_** FROM **_**表名 **_**WHERE **_**字****段 ****=**** 值 ;**<br />**<br />**运算符 : = > < != >= <=**<br />**<br />**也可以使用 OR 或 AND 并且 来设置筛选条件**
例: OR使用 取出对应字段 值
AND使用
注意 **筛选带上值,不然没有意义
5.排序子句 ORDER BY
注意 **要写在WHERE后面
DESC 降序 从大到小
ASC 升序 从小到大
SELECT 字段 FROM 表名** ORDER BY 字段名 DESC; 降序
_SELECT _字段 _ FROM _表名 ORDER BY 字段名 _ASC_; 升序**
例:
6.LIMIT 字句
**
限定结果集合; 限制获取数据的数量;
LIMIT 写在语句的最后面;
限制获取几条数据
LIMIT 条数;
例: 限制获取为5
限制获取数据的位置和条数
LIMIT 起始位置, 条数;
例:加上起始位置 限制条数
从第6条开始获取
//查询出最后添加到表中数据
通过排序子句设置降序最后 加上 限制条数得到表中最末尾的数据
SELECT * FROM** 表 ORDER BY 字段 DESC LIMIT 1;
//分页
起始位置默认为 0; 0 表示第一条数据;
规定: 每页显示两条数据
第一页
SELECT * FROM **users LIMIT 0, 2;
第二页
SELECT * FROM users **LIMIT 2, 2;
第三页
SELECT * FROM **users LIMIT 4, 2;
7.LIKE 运算符
**
模糊查找
属于 WHERE 下面的运算符
% 表示匹配任意内容, 不限制长度
_ 表示匹配任意内容, 长度限制为一个字符
**
WHERE 字段 LIKE 值
例:
类似例子
搜索用户名字中带有 ‘我 ’字的用户;
SELECT * FROM users WHERE name LIKE ‘%我%’;
搜索用户名为两个字的时候就匹配<br /> SELECT * FROM users WHERE name LIKE '__';<br /> SELECT * FROM users WHERE name LIKE '___'; 三个字
注意 **LIKE运算符仅作解析符号,单独写没有作用
8.REGEXP 运算符
正则查找(不区分大小写)
WHERE__ 字段 REGEXP [BINARY] 值
例: 使用正则查询带g的字段
NOT REGEXP [BINARY] 匹配上的内容就丢弃, 没匹配上的就作为结果 //不推荐使用,数据大的操作慢
**
默认查找时是不区分大小写的: 想要让他区分大小写 加上 BINARY(二进制的意思
8.对查询结果进行计数 //独立计算
注意 不是整个表
COUNT() 计数函数
例:
计算字段条数返回
SELECT count( id ) _ FROM __van;
计算全部字段条数返回
SELECT count( * ) FROM van;
使用条件计数
__SELECT count(*) FROM users WHERE id > 5;
9.对查询数据进行分组**
//其实就是将重复的数据合并
** GROUP BY** 字段
!**调整MySQL的设置之后才能执行
set SESSION sql_mode =’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ‘;**
SELECT * FROM VAN GROUP BY bill_id;
将表中重复的内容分组
_
