一、什么是sql
SQL是结构化查询语言(Structured Query Language)的缩写,它是一种专门为数据库设计的操作命令集,用于管理关系数据库管理系统(RDBMS)。
二、查找相关语句
首先,我们已经设计好一个表格,包含四个名:id name age class_name
创建查询界面,开始编写内容(注意sql只能单条语句执行,选中所需的代码行,再执行)
1.where子语句
= 等于 找到ff表中age为21的元组
SELECT * FROM ff WHERE age=21
> 大于 <小于
找到ff表中age大于25的元组
找到ff表中age小于21的元组
SELECT * FROM ff WHERE age>25
SELECT * FROM ff WHERE age<21
>= 大于等于 <= 小于等于
找到ff表中age大于等于25的元组
找到ff表中age小于等于21的元组
SELECT * FROM ff WHERE age>=25
SELECT * FROM ff WHERE age<=21
!=不等于 <> 不等于 不等于有两种表达方式
找到ff表中age中不等于21的元组
SELECT * FROM ff WHERE age!=21
SELECT * FROM ff WHERE age<>21
2.逻辑运算符
and 并且
找到ff表中age中不等于21并且小于25的的元组
SELECT * FROM ff WHERE age<>21 and age<25
or 或者
找到ff表中age中小于23或者大于25的的元组
SELECT * FROM ff WHERE age>25 or age<23
between and 范围查询 在两个值之间
找到ff表中age中23到25之间的元组
SELECT * FROM ff WHERE age BETWEEN 23 and 25
not 取非 通常结合其他语句使用
3.补充
in 包含
找到ff表中id为1,4,5,8的元组
SELECT * FROM ff WHERE id in(1,4,5,8)
not in 不包含
找到ff表中id不为1,4,5,8的元组
SELECT * FROM ff WHERE id not in(1,4,5,8)
is null 为空
找到ff表中age为(不为)null的元组
SELECT * FROM ff WHERE age is null
SELECT * FROM ff WHERE age is not null
4.模糊查询
like为模糊查询 需要配合占位符一起使用
_代表一位字符
查找表ff中name为l开头并长度为3的元组
SELECT * FROM ff WHERE name LIKE "l__"
%代表任意位字符
查找表ff中name为l开头并长度任意的元组
SELECT * FROM ff WHERE name LIKE "l%"
查找表ff中name包含l的元组
SELECT * FROM ff WHERE name LIKE "%l%"
5.分页查询 (限制查询)
limit a,b a表示起始的索引值 b表示查询的数量
索引从0开始查找表ff中5个元组
SELECT * from ff LIMIT 0,5
分页显示
SELECT * from ff LIMIT (page-1)*pagesize,pagesize
一页三个的展示
-- 第一页
SELECT * from ff LIMIT 0,3
-- 第二页
SELECT * from ff LIMIT 3,3
-- 第三页
SELECT * from ff LIMIT 6,3
注意:LIMIT子语句要放在最后位置
SELECT * FROM ff WHERE age BETWEEN 23 and 25 LIMIT 0,2
SELECT * from ff ORDER BY age desc
5.排序子语句
ORDER BY 列名
desc降序排列 asc 升序排列 默认为asc
以age为标准进行降序排列
SELECT * from ff ORDER BY age desc
注意:排序子语句与where 和 limit同时出现时 位于where之后 limit之前
SELECT * FROM ff WHERE age BETWEEN 23 and 25 ORDER BY age desc LIMIT 0,3
6.分组函数和聚合函数
sum()求和
SELECT sum(age) from ff
min() 取最小值
SELECT min(age) FROM ff
max() 取最大值
SELECT max(age) FROM ff
avg() 平均数
SELECT avg(age) from ff
count() 取得的记录数量
SELECT count(age) from ff
GROUP BY 字段名称 分组 分完组之后做查找用 having
以class_num为标准分组,分完组后查找class_num为2的且年龄最大的人的年龄与class_num
SELECT max(age),class_num FROM ff GROUP BY class_num having class_num=2