首页 > 其他分享 >4.24总结

4.24总结

时间:2023-04-24 23:11:26浏览次数:41  
标签:总结 -- WHERE age 查询 stu 4.24 SELECT

-- 基础查询
-- 1.查询多个字段
/*
1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据

  1. 去除重复记录
    SELECT DISTINCT 字段列表 FROM 表名;

3.起别名
AS:AS也可以省略
*/

drop table if exists 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,'1997-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 id,name,age,sex,address,math,english,hire_date FROM stu;
SELECT * FROM stu;

-- 查询地址信息
SELECT address FROM stu; -- 会出现重复数据

-- 去除重复数据
SELECT DISTINCT address FROM stu;

-- 查询姓名,数学英语成绩
SELECT name,math as 数学成绩,english as 英语成绩 FROM stu;-- as 别名,可以不写,最少有一个空格隔开

-- 条件查询=====================================

-- 1.查询年龄大于20岁的学员信息
SELECT * FROM stu WHERE age > 20;

-- 2.查询年龄大于等于20岁,且小于等于30岁的学员信息
SELECT * FROM stu WHERE age >= 20 && age <= 30;-- 不建议使用&&
SELECT * FROM stu WHERE age >= 20 and age <= 30;
SELECT * FROM stu WHERE age BETWEEN 20 and 30;

-- 2.查询入学日期在'1998-09-01'到'1999-09-01'之间的学员信息
SELECT * FROM stu WHERE hire_date BETWEEN '1998-09-01' and '1999-09-01';

-- 3.查询年龄等于18岁的学员信息
SELECT * FROM stu WHERE age = 18;-- 等号只写一个

-- 4.查询年龄不等于18岁的学员信息
SELECT * FROM stu WHERE age != 18;
SELECT * FROM stu WHERE age <> 18;

-- 5.查询年龄等于18岁,或者年龄等于20岁,或者年龄等于22的学员信息
SELECT * FROM stu WHERE age = 18 or age = 20 or age = 22;
SELECT * FROM stu WHERE age in (18,20,22);

-- 6.查询英语为null的学员信息
-- 注意:null值的比较不能使用= !=; 需要使用is is not;
SELECT * FROM stu WHERE english = null;-- 错误
SELECT * FROM stu WHERE english is null;
SELECT * FROM stu WHERE english is not null;

-- 模糊查询like==================
/*
通配符:
(1)_:代表单个任意字符
(2)%:代表任意个数字符
*/

-- 1.查询姓'马'的学员信息
SELECT * FROM stu WHERE name LIKE '马%';

-- 2.查询第二个字是'化'的学员信息
SELECT * FROM stu WHERE name LIKE '_化%';

-- 3.查询名字中包含'德'的学员信息
SELECT * FROM stu WHERE name LIKE '%德%';

-- 排序查询===================

-- 1.查询学生信息,按照年龄升序排列
SELECT * FROM stu ORDER BY age asc;-- asc 升序(默认值) desc降序

-- 2.查询学生信息,按照数学成绩降序排列
SELECT * FROM stu ORDER BY math desc;

-- 3.查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列
SELECT * FROM stu ORDER BY math desc,english asc;

-- 聚合函数:将一列作为一个整体,进行纵向计算

/* count:统计数量
* 取值情况:
1.主键(非空且唯一)
2.*
*/

-- 1.统计班级一共有多少个学生
SELECT COUNT(id) FROM stu;-- count 统计的列名不能为null
SELECT COUNT(english) FROM stu;-- 丢失null

SELECT COUNT(*) FROM stu;
-- 2.查询数学成绩最高分
SELECT MAX(math) FROM stu;

-- 3.查询数学成绩最低分
SELECT MIN(math) FROM stu;

-- 4.查询数学成绩总分
SELECT SUM(math) FROM stu;

-- 5.查询数学成绩平均分
SELECT AVG(math) FROM stu;

-- 6.查询英语成绩的最低分
SELECT MIN(english) FROM stu;-- null值不参与聚合函数的运算

-- 分组查询GROUP BY
-- 1.查询男同学和女同学各自的数学平均分
/SELECT sex, AVG(math) FROM stu GROUP BY sex;-- 分组字段

-- 2.查询男同学和女同学各自的数学平均分,以及各组人数
SELECT sex, AVG(math),count(*) FROM stu GROUP BY sex;

-- 3.查询男同学和女同学各自的数学平均分,以及各组人数,要求分数低于70的不参与分组
SELECT sex, AVG(math),count(*) FROM stu WHERE math > 70 GROUP BY sex;

-- 4.查询男同学和女同学各自的数学平均分,以及各组人数,要求分数低于70的不参与分组,分组之后人数大于2个的。
SELECT sex, AVG(math),count() FROM stu WHERE math > 70 GROUP BY sex HAVING count() > 2;

-- 注意:where>聚合函数>having 执行时间不一样,所以
-- where 不能对聚合函数进行判断,having可以

-- 分页查询
-- 1.从0开始查询,查询3条数据
SELECT * FROM stu LIMIT 0 , 3;-- 0起始索引(应该是动态计算出来),显示3条数据

-- 2.每页显示3条数据,查询第1页数据
SELECT * FROM stu LIMIT 0 , 3;

-- 3.每页显示3条数据,查询第2页数据
SELECT * FROM stu LIMIT 3 , 3;

-- 4.每页显示3条数据,查询第3页数据
SELECT * FROM stu LIMIT 6 , 3;

-- 起始索引 = (当前页码-1) * 每页显示的条数

标签:总结,--,WHERE,age,查询,stu,4.24,SELECT
From: https://www.cnblogs.com/XiMenXve/p/17346175.html

相关文章

  • 2023.4.24记录
    声明抽象基类Shape,由它派生出三个类,圆形Circle,矩形Rectangle,三角形Triangle,用一个函数输出三个面积。输入格式:在一行中依次输入5个数,圆的半径,长方形的高和宽,三角形的高和底,中间用空格分隔输出格式:圆的面积,长方形的面积,三角形的面积,小数点后保留2位有效数字,每个面积占一行。......
  • 2023.4.24
     1//实验五任务二2#include<iostream>3usingnamespacestd;4classvector3D5{6private:7floatx,y,z;8public:9vector3D()10{11x=0;12y=0;13z=0;14}15friendostream&oper......
  • BusTub 通关总结
    Project#0-C++Primer是个前期热身项目,考察对C++的掌握。要求实现一个并发Trie支持的kv存储,存储map到任何类型的value的stringkey。Trie中的每个节点存储一个键的单个字符,并且可以有多个子节点,这些子节点表示不同的可能的下一个字符。当到达一个键的结尾时,将设......
  • day55(2023.4.24)
    1.应用程序分层 应用程序分层实现在分层项目中实现查询业务UserDao接口 UserDaoImpl接口实现类 UserService接口 UserServiceImpl接口实现类 web 此时数据库中的数据 运行结果2.封装通用的BaseDao封装通用的DML操作BaseDao接口 BaseDaoImpl接......
  • 4.24
    1#include<iostream>2usingnamespacestd;3classDataType4{5public:6DataType(inti)7{8data.i=i;9type=INT;10}11DataType(charc)12{13data.c=c;14type=CHAR;1......
  • 4.24每日总结
       今天是第一阶段验收,王老师说这次的展示的功能比较单一,场景应用的构想也不够完善。今天看到一个组用python写的人脸识别,效果很好,与我们web端相比确实体现了差距。这几天会抓紧时间完善功能和场景应用的问题。......
  • 4.24打卡
    二、设计思路、1.先输出前两个月的兔子数,然后进入循环2.循环中每过一个月都会有新兔子产生,迭代求出当前月份的兔子数3.求和输出每个月的兔子总数 三、程序流程图 四、代码实现#include<stdio.h>usingnamespacestd;intmain(){longrab1=1,rab2=1,rab......
  • 4.24 贪心法学习笔记
    多写题解多交流才能学好oi。在这里贴了代码,为了看上去完整一些。 大概是一些自己学习的记录罢。贪心不算客观意义上的算法,感觉还不算一种策略机制。我认为更像一种思路,其内涵就是择优,解题时就去想怎样才能更优。根据最优的思路能去做很多,如果说贪心是一个题的正解的话太抽......
  • 2023.4.24——软件工程日报
    所花时间(包括上课):6.5h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习并开会。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;7.了解了一些考......
  • 4.24打卡
    一、问题描述: 魔术师利用一副牌中的 13 张黑桃,预先将它们排好后迭在一起,并使牌面朝下。然后他对观众说:我不看牌,只要数数就可 猜到每张牌是什么,我大声数数,你们听,不信?你们就看,魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,他将黑桃A放在桌子上,然后按顺序从上到下数手中的......