CREATE TABLE student
(
id INT,
NAME VARCHAR (10),
Chinese FLOAT,
English FLOAT,
Math FLOAT
); INSERT INTO student VALUES (1,'张三',80,70,90);
INSERT INTO student VALUES (2,'李四',70,80,80);
INSERT INTO student VALUES (3,'张三',80,70,90);
INSERT INTO student VALUES (4,'张大锤',82.5,86.5,90);
INSERT INTO student VALUES (5,'李二蛋',76.5,80,78);
INSERT INTO student VALUES (6,'王老五',76.5,92,78); -- 查询表中所有学生的信息
SELECT * FROM student; -- 查询表中所有学生的姓名和对应的英语成绩。
SELECT NAME,English FROM student; -- 过滤表中英语成绩的重复数据
SELECT DISTINCT English FROM student; -- 使用别名表示学生分数
SELECT Chinese AS '语文',English AS '英语',Math '数学' FROM student; -- 查询姓名为李四的学生成绩
SELECT * FROM student WHERE NAME = '李四'; -- 查询英语成绩大于等于90分的同学
SELECT * FROM student WHERE English > 90; -- 查询总分大于200分的所有同学
SELECT *,(Chinese+English+Math) AS '总成绩' FROM student WHERE (Chinese+English+Math) > 200; -- 查询所有姓李的学生英语成绩。
SELECT * FROM student WHERE NAME LIKE '李%'; -- 查询英语>80或者总分>200的同学
SELECT * FROM student WHERE English > 80 OR (Chinese+English+Math) > 200; -- 统计每个学生的总分。
SELECT *,(Chinese+English+Math) AS '总成绩' FROM student; -- 在所有学生总分数上加10分特长分。
SELECT * , (Chinese+English+Math) AS '总成绩', (Chinese+English+Math) + 10 AS '特长分' FROM student; -- 5.8 、聚合查询 (使用聚合函数的查询)
-- 常用的聚合函数:和:sum() 平均:avg() 最大:max() 最小:min() 计数:count()
-- count:统计的数量不包括null,所以使用它来统计记录书,要使用不包括null的字段 -- 查询学生的Math的总成绩
SELECT SUM(Math) FROM student; -- 查询学生的Math的平均分
SELECT AVG(Math) FROM student; -- 查询Math的最高分
SELECT MAX(Math) AS '最高分' FROM student; -- 统计当前学生的人数
SELECT COUNT(*) FROM student; -- 统计每种数据的个数,取最大的
SELECT COUNT(id) FROM student; -- 统计id的个数 -- 5.9、分页查询(Limit 起始行,查询行数)
-- 起始行是从0开始 (没有的记录不显示)
-- 分页查询当前页的sql语句(SELECT * FROM student LIMIT (当前页-1)*每页显示的行数,每页显示的行数); -- 查询第1、2条记录
SELECT * FROM student LIMIT 0,2; -- 查询第3、4条记录
SELECT * FROM student LIMIT 2,2; -- 查询第5、6条记录
SELECT * FROM student LIMIT 4,2; -- 查询第7、8条记录(没记录,不显示)
-- SELECT * FROM student LIMIT 6,2; -- 上面这些可以看作是3页的数据 -- 默认情况下,排序是按照插入记录的先后顺序
-- 5.10、 查询排序(order by)
-- 语法: order by 字段 asc/desc
-- asc:正序 : 数字(递增) 字母(a-z)
-- desc:反序 :反过来 -- 按照id正序排序:
SELECT * FROM student ORDER BY id ASC;
-- 不写排序规则,默认正序
SELECT * FROM student ORDER BY id ; -- 按照id倒序:
SELECT * FROM student ORDER BY id DESC; -- 若相同,则按照插入顺序再排)
SELECT * FROM student ORDER BY Chinese; -- 注意:当有多个排序条件(先按照第一个条件排序,再第二个)
SELECT * FROM student ORDER BY Chinese , Math DESC; -- 5.11、分组查询(group by) -- 查询男女的人数
-- 预期结果:
-- 男 3
-- 女 2
-- 1)把学生按照性别分组
SELECT sex FROM student GROUP BY sex;
-- 2)统计每组的人数
SELECT sex , COUNT(*) FROM student GROUP BY sex; -- 5.12、分组查询后进行筛选 -- 查询总人数大于2的性别
-- 1) 查询男女的人数
SELECT sex,COUNT(*) FROM student GROUP BY sex;
-- 2) 筛选出人数大于2的记录
-- 分组之前的筛选用where
-- 分组以后再筛选用having
SELECT sex , COUNT(*) FROM student GROUP BY sex HAVING COUNT(*)>2;

最新文章

  1. 使用网站processon在线作图
  2. Swift翻译之-关于Swift
  3. MVC Router学习
  4. 【py网页】urllib.urlretrieve远程下载
  5. 109. Convert Sorted List to Binary Search Tree
  6. Django数据迁移
  7. javascript 定义类(转载)
  8. PHP, Python Nginx works together!
  9. 可视化Git版本管理工具SourceTree的使用
  10. C/C++知识点清单02-上
  11. 我的docker全套流程例子
  12. Kali Linux安装字典StarDict
  13. asp.net core 系列 16 Web主机 IWebHostBuilder
  14. kmeans聚类理论篇
  15. [BZOJ 2186] [SDOI 2008] 沙拉公主的困惑
  16. 「CodeForces - 598B」Queries on a String
  17. Mybatis之注解实现动态sql
  18. css解决无论页面长短footer永远置底
  19. MySQL ACID及四种隔离级别的解释
  20. WordPress主题开发实例:根据不同分类使用不同模板

热门文章

  1. CRM 2013 自动发送报表
  2. PPT产品的重要性
  3. JavaBean的作用域
  4. Map集合概述
  5. Android 内容提供者简介
  6. Nodejs的模块实现
  7. 分享2个网址二维码API接口
  8. Java并发之ScheduledExecutorService(schedule、scheduleAtFixedRate、scheduleWithFixedDelay)
  9. DateTime , DateTime2 ,DateTimeOffset 之间的小区别
  10. iNeedle日志下载功能问题