JAVA学习总结十五

第五章 简单数据查询、分组查询及聚合函数

  1. 查询关键字:select
  2. 分组关键字:group by
  3. 常用聚合函数:sum、avg、max、min、count
  4. 简单数据查询示例:
    -- 创建数据库(这是注释)
    CREATE DATABASE book;-- 创建表
    CREATE TABLE t_student(-- 加下划线表示表的意思
    id INT PRIMARY KEY AUTO_INCREMENT, -- 编号
    studentName VARCHAR(20),-- 学生姓名
    sex VARCHAR(20), -- 性别
    birthday DATE, -- 生日
    tel VARCHAR(20)
    – 添加记录
    INSERT INTO t_student(studentName,sex,birthday,tel)VALUES(‘张三’,’男’,’1980-09-22’,’13881812530’);
    INSERT INTO t_student(studentName,sex,birthday,tel)VALUES(‘谭帅’,’女’,’1994-05-13’,’13423566765’);
    INSERT INTO t_student(studentName,sex,birthday,tel)VALUES(‘方俊超’,’男’,’1992-11-04’,’13454376115’);
    INSERT INTO t_student(studentName,sex,birthday,tel)VALUES(‘黄瑞’,’女’,’1991-08-02’,’15823217610’);
    INSERT INTO t_student(studentName,sex,birthday,tel)VALUES(‘贾老练’,’男’,’1967-11-06’,’134423216667’);
    INSERT INTO t_student(studentName,sex)VALUES(‘钟南山’,’非男非女’),(‘张无忌’,’男’),(‘赵敏’,’女’),(‘周芷若’,’女’),(‘李莫愁’,’女’),(‘谢逊’,’金毛狮王’)
    ,(‘周润发’,’女’),(‘李魁’,’女’),(‘不谢’,’金毛狮王’);
    – 查询表中所有的数据 *表示查询所有的列
    SELECT * FROM t_student;
    – 查询给定条件的数据
    SELECT * FROM t_student WHERE sex=’男’;
    SELECT * FROM t_student WHERE studentName LIKE ‘%张%’;
    SELECT * FROM t_student WHERE studentName LIKE ‘李_’;
    SELECT * FROM t_student WHERE tel LIKE ‘134%’;– 查询电话134开头的号码
    SELECT * FROM t_student WHERE studentName LIKE ‘%李%’ AND sex=’女’;– 查询两个条件的数据
    SELECT * FROM t_student WHERE birthday>=’1980-01-01’AND birthday<’1990-01-01’;
    SELECT * FROM t_student WHERE tel LIKE ‘13%’ OR tel LIKE ‘15%’;
    SELECT * FROM t_student LIMIT 2,3;– 第一个参数2表示从第几条开始;第二个参数3表示显示几条信息
    SELECT * FROM t_student ORDER BY birthday DESC;– 排序 默认为升序,加DESC为降序排序
    SELECT * FROM t_student ORDER BY birthday DESC LIMIT 0,1;– 查询年龄最小的
    SELECT * FROM t_student WHERE tel IS NULL;– 查询没有电话的
    SELECT * FROM t_student WHERE id IN (3,5,8);– 查询ID号不连续的指定人物信息
    SELECT DISTINCT sex FROM t_student; – 查询所有性别,distinct表示去除重复记录
  5. 分组查询示例
    分组查询作用是以一列的数据作为分组依据,得到以其不同数据分组后的表数据。
    `SELECT region FROM bbc GROUP BY region;
    – 显示每个地区信息
    SELECT region FROM bbc GROUP BY region;
    – 显示每个地区的总人口数和总面积,以总人口排序,仅显示那些面积超过1000000的地区

SELECT region,SUM(population) sp,SUM(contryArea) sa FROM bbc GROUP BY region HAVING sa>1000000 ORDER BY sp;
6. 常用聚合函数的应用示例
– 显示每个地区的总人口数和总面积,以总人口排序
SELECT region,SUM(population) s,SUM(contryArea)’总面积’ FROM bbc GROUP BY region ORDER BY s;
– 显示每个地区以及该地区国家总人口数不少于10000000的国家总数

SELECT region,COUNT(CASE WHEN population>=10000000 THEN contryName END)’10000000以上人口国家数’ FROM bbc GROUP BY region;
SELECT region,COUNT(population) FROM bbc WHERE population>=10000000 GROUP BY region;– 比上面语句执行起来更高效
– 列出人口总数不少于100000000的地区
SELECT region,SUM(CASE WHEN population>=100000000 THEN population END) FROM bbc GROUP BY region;
SELECT region,SUM(population) su FROM bbc GROUP BY region HAVING su>=100000000;

– 显示欧州人口总数和总GDP
SELECT region,SUM(population),SUM(gdp) FROM bbc WHERE region=’Europe’;

– 显示每个地区的总人口数和总面积,以总人口排序,仅显示那些面积超过1000000的地区

SELECT region,SUM(population) sp,SUM(contryArea) sa FROM bbc GROUP BY region HAVING sa>1000000 ORDER BY sp;`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值