做电影网站哪个源码好,网页代码,做网站的属于什么岗位,360推广平台登录入口SQL介绍-DQL查询数据 一.基础查询二.条件查询三.排序查询1.聚合函数2.分组查询 四.分页查询 DQL查询基础的语法结构如下#xff1a;
SELECT字段列表
FROM表名列表
WHERE条件列表
GROUP BY分组字段
HAVING分组后条件
ORDER BY排序字段
LIMIT分页限定一.基础查询
说明语法查询… SQL介绍-DQL查询数据 一.基础查询二.条件查询三.排序查询1.聚合函数2.分组查询 四.分页查询 DQL查询基础的语法结构如下
SELECT字段列表
FROM表名列表
WHERE条件列表
GROUP BY分组字段
HAVING分组后条件
ORDER BY排序字段
LIMIT分页限定一.基础查询
说明语法查询多个字段SELECT 字段列表 FROM 表名;SELECT * FROM 表名; -- 查询所有数据去除重复记录SELECT DISTINCT 字段列表 FROM 表名;起别名列名 AS 别名(AS也可以省略)
-- 先建立新的表
drop table if exists stu;
-- 创建stu表
CREATE TABLE stu (
id int,-- 编号
name varchar(20),-- 姓名
age int,-- 年龄
sex varchar(5),-- 性别
address varchar(100),-- 地址,
math double(5,2),-- 数学成绩,
english double(5,2),-- 英语成绩
hire_date date -- 入学时间
);-- 添加数据
INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date)
VALUES
(1,马运,55,男,杭州,66,78,1995-09-01),
(2,马花疼,45,女,深圳,98,87,1998-09-01),
(3,马斯克,55,男,香港,56,77,1999-09-02),
(4,柳白,20,女,湖南,76,65,1997-09-05),
(5,柳青,20,男,湖南,86,NULL,1998-09-01),
(6,刘德花,57,男,香港,99,99,1998-09-01),
(7,张学右,22,女,香港,99,99,1998-09-01),
(8,德玛西亚,18,男,南京,56,65,1994-09-02);
SELECT * FROM stu;-- 基础查询
-- 查询name age两列
SELECT name,age FROM stu;-- 查询所有列的数据,用*指代所有列的数据但是不推荐使用
SELECT * FROM stu;-- 查询地址信息,这时候查询出来的信息有重复记录
SELECT address FROM stu;-- 去除重复可以通过DISTINCT关键字
SELECT DISTINCT address FROM stu;-- 查询姓名数学成绩英语成绩并用别名代替原有列名
-- 可以通过AS关键字来起别名也可以省略
SELECT name AS 姓名,math 数学成绩,english 英语成绩 FROM stu;二.条件查询
条件查询的语法很简单但是要结合不同的条件表达式去使用 SELECT 字段列表 FROM 表名 WHERE 条件列表;
符号功能\, \大于, 小于\, \大于等于, 小于等于等于\\ 或 !不等于BETWEEN ... AND ...在某个范围内(都包含)IN(...)多选一LIKE 占位符模糊查询 _单个任意字符 %多个任意字符IS NULL是NULLIS NOT NULL不是NULLAND 或 并且OR 或||或者NOT 或 !非
解下来通过实际的需求来体验这些语句的作用
SELECT * FROM stu;
-- 查询年龄大于20岁的学院的信息
SELECT * FROM stu WHERE age 20;-- 查询年龄大于等于20的学员的信息
SELECT * FROM stu WHERE age 20;-- 查询年龄大于等于20岁但是小于等于30岁的学员信息
SELECT id,name 姓名,age 年龄 FROM stu WHERE age20 AND age30;
SELECT * FROM stu WHERE age BETWEEN 20 AND 30;-- 查询入学日期在1998-09-01到1999-09-01之间的学员信息
SELECT * FROM stu WHERE hire_date BETWEEN 1998-09-01 and 1999-09-01;-- 查询年龄等于18岁的信息
SELECT * FROM stu WHERE age18;-- 查询年龄不等于18的学员信息
SELECT * FROM stu WHERE age ! 18;
SELECT * FROM stu WHERE age 18;-- 查询年龄等于182022的信息
SELECT * FROM stu WHERE age18 OR age20 OR age22;
SELECT * FROM stu WHERE age IN(18,20,22);-- 查询英语成绩为NULL的信息(NULL值的比较不能使用或!)
SELECT * FROM stu WHERE english IS NULL;-- 查询英语成绩不为NULL的信息
SELECT * FROM stu WHERE english IS NOT NULL;模糊查询LIKE 占位符
-- 模糊查询LIKE
-- 通配符 _ 代表单个任意字符
-- 通配符 % 代表多个任意字符-- 查询姓马的学员信息
SELECT * FROM stu WHERE name LIKE 马%;-- 查询名字第二个字是花的学员信息
SELECT * FROM stu WHERE name LIKE _花%;-- 查询名字中包含 德 的学员信息
SELECT * FROM stu WHERE name LIKE %德%;三.排序查询
具体语法 SELECT 字段列表 FROM 表名 ORDER BY 排序字段1 [排序方式1],排序字段2 [排序方式2] ...;排序方式 ASC: 升序排列(默认值) DESC: 降序排列当有多个条件时,只有前边的条件一样的时候,才会根据后边的条件进行排序
-- 查询学员信息按年龄进行升序排列
SELECT * FROM stu ORDER BY age ASC;
SELECT * FROM stu ORDER BY age; -- ASC是默认的,不进行指定也可以打到效果-- 查询信息按照数学成绩降序排列
SELECT * FROM stu ORDER BY math DESC;-- 查询信息按数学成绩降序排列如果成绩一样按英语成绩升序排列
SELECT * FROM stu ORDER BY math DESC,english ASC;1.聚合函数
聚合函数是把一列作为一个整体,进行纵向计算的. SELECT 函数名(列名) FROM 表;
函数名作用count(列名)统计数量(一般选用不为NULL的列)max(列名)统计最大值min(列名)统计最小值sum(列名)求和avg(列名)求平均
-- 聚合函数
-- 查班上一共有多少个学生 COUNT(expr)统计的列名不能为NULL
/*count推荐的取值1.主键2.*新版MySQL中会计算效率最高的一列
*/
SELECT COUNT(id) FROM stu;
SELECT COUNT(name) FROM stu;
-- COUNT(expr)统计的列名不能为NULL空值是统计不到的会出错
SELECT COUNT(english) FROM stu;-- 查询数学成绩的最高分
SELECT MAX(math) FROM stu;
-- 查询数学成绩的最低分
SELECT MIN(math) FROM stu;
-- 查询数学成绩的平均分
SELECT AVG(math) FROM stu;-- 查询英语成绩的最低分 注意NULL值不参与聚合函数的运算
SELECT MIN(english) FROM stu;2.分组查询
基本语法 SELECT 字段列表 FROM 表名 [WHERE 分组前限定条件] GROUP BY 分组字段名 [HAVING 分组后条件过滤] 注意分组之后,查询的字段为聚合函数和分组字段,查询其他的字段无任何意义WHERE和HAVING的区别 – 执行时机不一样:WHERE是分组之前进行限定,不满足WHERE条件则不参与分组,HAVING是分组之后对结果进行过滤 – 可判断的条件不一样: WHERE不能对聚合函数进行判断, HAVING可以 – 执行顺序:WHERE 聚合函数 HAVING
-- 查询男同学和女同学各自的数学平均分
SELECT sex 性别,AVG(math) 平均分 FROM stu GROUP BY sex;-- 查询男女各自的平均分以及各自的人数
SELECT sex 性别,AVG(math) 平均分,COUNT(*) 人数 FROM stu GROUP BY sex;-- 查询男女各自的数学平均分,统计人数. 要求分数低于70分的人不参与分组
SELECT sex 性别,AVG(math) 数学均分,COUNT(*) 人数 FROM stu WHERE math70 GROUP BY sex;-- 查询男女各自的数学平均分,统计人数. 要求分数低于70分的人不参与分组,分组后人数大于2人的数据
SELECT sex 性别,AVG(math) 平均分,COUNT(*) 人数 FROM stu WHERE math70 GROUP BY sex HAVING COUNT(*)2;四.分页查询
语法 SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;起始索引: 从零开始 计算公式:起始索引(当前页码-1) * 每页显示的条数分页查询是MySQL的方言 Oracle分页查询使用rownumber SQL Server分页查询使用top
-- 从0开始查询3条数据
SELECT * FROM stu LIMIT 0,3;-- 每页显示3条数据,查询第一页
SELECT * FROM stu LIMIT 0,3;-- 每页显示3条数据,查询第二页
SELECT * FROM stu LIMIT 3,3;-- 每页显示3条数据,查询第三页
SELECT * FROM stu LIMIT 6,6;B站视频课程 笔记与源码文件