4.28 mysql简单学习笔记

mysql 查询数据

select * from xx ;

        查询xx全表数据,一般是自用,开发中不能使用

1>没有表的别名查询全表

        select 字段名1,字段名2,...字段名n from xx ;

        查询全表信息

2>有表的别名,也有字段别名

        select

                s.id as "编号",

                s.name as "名字",

                ......

        from

                xx as s ;

        询全表信息,其中as可以省略不写

        select distinect 字段名 from xx ;

                可以使用 distinect 将字段中重复数据去掉

3>查询指定的字段

        select s.id "编号" from xx s ;

        查询xx表中id这列信息,也可同时查询多列数据

                注:查询数据时,可以将字段为整数类型的进行求和

                例:select (math + english) "总分" from xx ;

        如果某个字段中有null,可以使用ifnull(字段名,期望值)给予特定的值

4>带条件查询

        select * from xx where 字段名 =(<,>) yy ;

        查询某一字段的值是否为yy 或者小于/大于yy 的数据所有信息

注意:

        ①where 后面可以跟多个条件,并列 或,可以使用&& || 或者 and or

        ②如果用"或"连接,也可以使用 where 字段名 in(值1,值2,...);

        ③如果查询某个字段为null,使用where 字段名 is null ;

                                     不为null,使用where 字段名 is not null ;

5>模糊查询        关键字: like

        ①select * from xx where 字段名 like "%马%" ;

        查询字段中有字符"马"的数据所有信息

        ②select * from xx where 字段名 like "__" ;        这里是两个"_"

        查询字段中是两个字符的数据所有信息

        ③select * from xx where 字段名 like "%_化%" ;

        查询字段中第二个字符是"化"的数据所有信息

6>聚合函数查询        单行单列数据

        select 聚合函数(字段名) from xx;

        聚合函数:

                ① count        查询当前表中的记录数,一般使用id查询

                ② sum          求和,针对某列字段值进行求和

                ③ avg           求平均值

                ④ max          求最大值

                ⑤ min           求最小值

7>带条件查询和聚合函数查询一起使用

        select * from xx

                        where 字段名 = (select max(字段名) from xx) ;

        查询字段等于字段中最大数值的数据所有信息

注意:括号中的查询最后没有";"

8>排序查询        关键字 order by

        asc : 升序(默认)

        desc : 降序

                select * from xx order by 字段名 desc ;

                        查询某字段降序排列的数据所有信息

        多字段排列查询:

                select * from xx order by math asc,english desc ;

                        主要排序math,当math中数据数值一样大时,再按照english排序   

 作业:

创建新库,新表,插入学生数据

1.查询表中所有学生的信息

2 查询表中所有学生的姓名和英语成绩。

3 过滤表中重复数据。(去重的关键字 distinct)

4.统计每个学生的总分

5.在所有学生总分数上加10分特长分

6.使用别名表示学生分数

7.查询姓名为行哥的学生成绩

8.查询英语成绩大于90分的同学

9.查询总分大于200分的所有同学

10.查询英语分数在 80-90之间的同学

11.查询数学分数为89,90,91的同学

12.查询所有姓白的学生英语成绩

13.查询数学分>80并且语文分>80的同学

14.查询英语>80或者总分>200的同学

15.对数学成绩升序排序

16.对总分降序排序,然后再按数学从高到低的顺序输出

17.对姓白的学生成绩排序输出(排序规则自己定义)

18.查询数学成绩大于等于平均分的所有学生信息

19.查询出英语成绩最高分的学生信息

20.模糊查询出学生姓名中第二个字是金的学生信息

21.查询出英语成绩平均分是多少

22.查询出数学总分是多少

23.查询学生表中有多少条记录

源代码:

-- 单表练习题
-- 创建新库,新表,并加入数据

create database ee_2204;
use ee_2204;
create table student(
	id int,			-- 编号
	name varchar(20),	-- 姓名
	chinese int,		-- 语文
	english INT,		-- 英语
	math int 		-- 数学
);

insert into student (id,name,chinese,english,math) values
	(1,"行哥",89,78,90),
	(2,"潘金莲",67,53,95),
	(3,"凤姐",87,78,77),
	(4,"旺财",88,98,92),
	(5,'白小黑',82,84,67),
	(6,'白小黄',55,85,45),
	(7,'范蹦蹦',75,65,30) ;

-- 查询表中所有学生的信息
select 
	id "编号",
	name "姓名",
	chinese "语文",
	english "英语",
	math "数学"
from
	student ;

-- 查询表中所有学生的姓名和英语成绩
select
	name "姓名",
	english "英语"
from
	student ;

-- 过滤表中重复数据 (去重的关键字 distinct)
select
	distinct chinese "语文",english "英语",math "数学"
from
	student ;

-- 统计每个学生的总分
select
	id "编号",name "姓名",
	(chinese + english + math) "总分"
from
	student ;

-- 在所有学生总分数上加10分特长分
select
	id "编号",NAME "姓名",
	(chinese + english + math + 10) "总分"
from
	student ;

-- 使用别名表示学生分数
select 
	id "编号",
	name "姓名",
	chinese "语文",
	english "英语",
	math "数学"
from
	student ;
	
-- 查询姓名为行哥的学生成绩
select
	id "编号",
	NAME "姓名",
	chinese "语文",
	english "英语",
	math "数学"
from
	student
where
	name = "行哥" ;

-- 查询英语成绩大于90分的同学
SELECT
	id "编号",
	NAME "姓名",
	english "英语"
FROM
	student
where
	english > 90 ;

-- 查询总分大于200分的所有同学
select
	id "编号",
	NAME "姓名",
	chinese "语文",
	english "英语",
	math "数学",
	(chinese + english + math) "总分"
FROM
	student
where
	(chinese + english + math) > 200 ;

-- 查询英语分数在 80-90之间的同学
SELECT
	id "编号",
	NAME "姓名",
	english "英语"
FROM
	student
where
	english >= 80 && english <= 90 ;
	
-- 查询数学分数为89,90,91的同学
SELECT
	id "编号",
	NAME "姓名",
	math "数学"
FROM
	student
where
	math in(89,90,91) ;

-- 查询所有姓白的学生英语成绩
SELECT
	id "编号",
	NAME "姓名",
	english "英语"
FROM
	student
where
	name like "%白_%" ;

-- 查询数学分>80并且语文分>80的同学
SELECT
	id "编号",
	NAME "姓名",
	chinese "语文",
	math "数学"
FROM
	student
where
	math > 80 and chinese > 80 ;

-- 查询英语>80或者总分>200的同学
SELECT
	id "编号",
	NAME "姓名",
	english "英语",
	(chinese + english + math) "总分"
FROM
	student
where
	english > 80 || (chinese + english + math) > 200;

-- 对数学成绩升序排序
SELECT
	id "编号",
	NAME "姓名",
	math "数学"
FROM
	student
order by
	math asc;

-- 对总分降序排序,然后再按数学从高到低的顺序输出
SELECT
	id "编号",
	NAME "姓名",
	math "数学",
	(chinese + english + math) "总分"
FROM
	student
order by
	(chinese + english + math) desc,
	math desc ;

-- 对姓白的学生成绩排序输出(排序规则自己定义)
SELECT
	id "编号",
	NAME "姓名",
	chinese "语文",
	english "英语",
	math "数学"
FROM
	student
where
	name like "%白_%" 
order by
	math desc;
	
-- 查询数学成绩大于等于平均分的所有学生信息
SELECT
	id "编号",
	NAME "姓名",
	chinese "语文",
	english "英语",
	math "数学"
FROM
	student
where
	math >= (
		select
			avg(math)
		from
			student
	) ;
	
-- 查询出英语成绩最高分的学生信息
SELECT
	id "编号",
	NAME "姓名",
	chinese "语文",
	english "英语",
	math "数学"
FROM
	student
WHERE
	english = (
		SELECT
			max(english)
		FROM
			student
	) ;

-- 模糊查询出学生姓名中第二个字是金的学生信息
SELECT
	id "编号",
	NAME "姓名",
	chinese "语文",
	english "英语",
	math "数学"
FROM
	student
where
	name like "%_金%"

-- 查询出英语成绩平均分是多少
select
	avg(english) "英语成绩平均分"
from
	student

-- 查询出数学总分是多少
select
	sum(math) "数学成绩总分"
from
	student

-- 查询学生表中有多少条记录
select
	count(id) "总共记录"
from
	student

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值