1. 查询 重点是模糊查询 降序升序 限制数量查询
(1)不带条件的查询
select * from 表名 //查询表的所有字段
select filed1,filed2 ... filedn from 表名 //filed为表中 字段名
select name,age from employee
(2)带条件的查询
分为下面的几种情况
-----带关系运算符和逻辑运算符的条件数据查询
-----带between and关键字的条件数据查询
-----带is null关键字的条件数据查询
-----带in关键字的条件数据查询(较少用到)
-----带like关键字的条件数据查询
<1> 带关系运算符和逻辑运算符的条件数据查询
> < >= <= !=
select * from employee WHERE id>2;
AND(&&) 逻辑与 OR( || )逻辑或 XOR逻辑异或 NOT( !)逻辑非
带多个条件的查询
SELECT * from employee WHERE id!=2 and age<20;
<2> 带between and的条件数据查询
SELECT * from employee WHERE age BETWEEN 12 AND 20;
SELECT * from employee WHERE age NOT BETWEEN 14 AND 22;
<3>带is null关键字的条件数据查询
SELECT * from employee WHERE NAME IS NULL;
SELECT * from employee WHERE NAME IS NOT NULL;
<5>带like关键字的模糊查询
(1)带有% 通配符的查询
%通配符 可以匹配任意长度的字符 可以是0个 1个 或者是很多个
select * from employee WHERE name like 'x%';
'x%' 表示以字母x开头的数据记录,x不区分大小写 这里X和x是一样的
"_" 下划线通配符 只能匹配单个字符串
select * from employee WHERE name like '_i%';//查询name属性第二个字母是i的记录
select * from employee WHERE name like '__a%'; __ a 查询name属性第三个字母s是a的记录
还有 select field1,field2... fieldn from 表名 where field NOT LIKE value;
select * from employee WHERE age NOT like 14; //查询age 不是14的记录
(2)%s%非常重要 这里s 可以是任意字符 或者数字
如果什么都没有 %% 就是匹配查询所有记录
select * from employee WHERE name like '%a%';//查询name属性所有包含a字母的的记录
select * from employee WHERE age like '%2%'; //查询age属性包含数字2的记录
select * from employee WHERE name like '%%';//就是查询name所有 非null的记录
2. 排序数据记录查询
DESC是descend 降序意思
ASC是ascend 升序意思 (记住了 ascend是攀登、上升的意思。2012年从华为Ascend P1 S 开始
select field1,field2... fieldn from 表名 (where condition) order by filedm asc/desc
=1= 按单字段排序
select * from employee ORDER BY age asc; //age 由小到大 上升
=2= 按多字段排序
//由于字段中可能存在多个值相同的数据记录
先按照第一字段排序 , 遇到相同的字段值 按第二个字段排序
我的表里面是这些数据
select * from employee ORDER BY age asc, id desc;
可以看到age 由小到大 相同字段值的 id 大的在前 降序排列
3.限制数据记录查询数量
很重要
select field1,field2... fieldn from 表名 (where condition) limit offset_start , row_count;
通过关键字limit来限制数据查询结果的数量
offset_start :数据起始偏移量
row_count :显示的行数
也是不知道初始位置 直接 limit row_count
select * from employee limit 2; //显示最开始的两行数据
select * from employee where name is null limit 2;//显示name是空的数据
select * from employee limit 10; //行数大于 记录数 显示所有的记录
指定初始位置
select * from employee limit 3,5; //从第4条记录开始 查询5行记录
4. 统计函数和分组数据记录查询
count()函数:实现统计表中的记录数
avg() :实现 计算字段的平均值
sum():实现计算字段的总和
max():查询字段的最大值
min():查询字段的最小值
select function(field)from 表名 where condition
select count(*) age FROM employee; //总记录数
select avg(id) age FROM employee; //求id的平均值
和也是一样的 ,最后来一个最大值和最小值
select MAX(id) id, MIN(age) age FROM employee; //id最大 age最小