/*
自己查询自己 把一张表看成是两张表。 表的设计。 SELECT
*
FROM
depart; SELECT
d1. NAME '部门',
d2. NAME '分部门'
FROM
depart d1
INNER JOIN depart d2 ON d1.id = d2.did; SELECT
d1. NAME,
d2. NAME
FROM
depart d1
INNER JOIN depart d2 ON d1.did = d2.id; SELECT s.name,s.age,g.gname ,z.id from student s INNER JOIN grade g INNER JOIN zhongjian z ON z.tid=z.gid;
*/
-- 学生表
create table students(
sno VARCHAR(3) not NULL,
sname VARCHAR(4) not NULL,
ssex VARCHAR(2) not NULL,
sbirthday datetime,
class VARCHAR(5)) --
CREATE table courses(
cno VARCHAR(5) not null,
cname varchar(10) not null,
tno VARCHAR(10) not null) CREATE table scores (
sno VARCHAR(3) not null,
cno VARCHAR(5) not null,
degree NUMERIC(10,1) not null) -- 老师表
create table teachers(
tno VARCHAR(3) not null,
tname VARCHAR(4) not null, tsex VARCHAR(2) not null,
tbirthday datetime not null,prof varchar(6),
depart VARCHAR (10) not null) insert into students (sno,sname,ssex,sbirthday,class)VALUES(108,'曾华','男','1977-09-01',95033);
insert into students (sno,sname,ssex,sbirthday,class)VALUES(105,'匡明','男','1975-10-02',95031);
insert into students (sno,sname,ssex,sbirthday,class)VALUES(107,'王丽','女','1976-01-23',95033);
insert into students (sno,sname,ssex,sbirthday,class)VALUES(107,'李军','男','1976-01-23',95033);
insert into students (sno,sname,ssex,sbirthday,class)VALUES(107,'王芳','女','1975-02-10',95031);
insert into students (sno,sname,ssex,sbirthday,class)VALUES(107,'陆军','男','1974-06-03',95031); insert into courses(cno ,cname,tno)VALUES('3-105','计算机导论',825);
insert into courses(cno ,cname,tno)VALUES('3-105','计算机导论',825);
insert into courses(cno ,cname,tno)VALUES('3-105','计算机导论',825);
insert into courses(cno ,cname,tno)VALUES('3-105','计算机导论',825); insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86);
insert into scores(sno ,cno,degree)VALUES (103,'3-245',86); insert into teachers(tno,tname,tsex,tbirthday,prof,depart) VALUES(804,'李晨','男','1958-12-02','副教授','计算机系'); -- 2791693327 select * from students;
select * from courses;
select * from scores;
select * from teachers; -- 1.查询student表中的所有记录的sname ssex, class 列?
SELECT sname, ssex,class from students; -- 2.查询教师所有的单位 既不重复的depart 列? 去重 关键字 distinct SELECT DISTINCT depart from teachers; -- 3.查询student 表的所有记录?
SELECT * from students; -- 4.查询score表中成绩在60 到 80之间的所以记录? between
SELECT * from scores where degree BETWEEN 60 and 80; -- 5.查询score中成绩 为85 86 88 的记录? in ()关键字
select * from scores WHERE degree in(85,86,88); -- 6. 查询students 表中 95031 班 或者 性别为女 的同学记录?or 关键字
SELECT * from students WHERE class='95031' or ssex='女'; -- 7.以class 降序查询 students 表的所以记录? 关键字 ORDER BY DESC 降序!
SELECT * from students ORDER BY class DESC; -- 8.以 con 升序,degree降序查询 score 表的所有记录。order by 默认状态下是 升序
select * from scores ORDER BY sno, degree DESC; -- 9.查询‘95031’ 班的学生人数 分组查询 SELECT COUNT(expr) AS ‘名字’ from 表 WHERE 条件(xx=xx;)!
SELECT COUNT(1) AS '95031班级的学生数量' from students where class='95031'; -- 10.查询score 表中的最高分的学生学号和课程号。分数降序查询 由高到低 分组时只取第一页!(联想子查询 ,一个查询的结果是另一个查询的条件)
-- 1.先查询score表中 的最高分,然后由此得到 最高分的学生学号和课程号。
SELECT cno,sno from scores ORDER BY degree DESC LIMIT 1;-- 这种简单快捷
SELECT max(degree) from scores;-- 利用聚合函数 max(列名)获取最大值
SELECT cno,sno from scores where degree=(SELECT max(degree) from scores); -- 这种相对麻烦。 -- 简单的聚合函数 最大值 最小值 平均值 求和值
SELECT max(class) from students;
select avg(class) from students;
SELECT min(class) from students;
SELECT sum(class) from students;
SELECT COUNT(class)FROM students;-- 对表中数据的的个数求和。 -- 11.查询3-105 号课程的平均分
SELECT avg(degree) from scores where cno='3-105'; -- 12.查score表 至少有5名学生选修的并以3开头的平均分数 LIKE ‘x%’ 模糊查询
-- 结果集是分组查询后,再次进行筛选,不能使用where, 分组后再次过滤,关键字 having
SELECT cno,avg(degree) FROM scores WHERE cno like '3%' GROUP BY cno HAVING COUNT(sno)>=5;
SELECT cno,avg(degree) FROM scores WHERE cno like '3%' GROUP BY cno HAVING count(sno)>=5; -- 13.在表scors 查询最低分大于70,最高分小于90的sno列 分组查询 group by 列名
-- 结果集是分组查询后,再次进行筛选,不能使用where, 分组后再次过滤,关键字 having
SELECT sno FROM scores GROUP BY sno HAVING max(degree)<90 and min(degree)>70 LIMIT 5; -- 14.查询所有学生的sname cno degree 列 INNER JOIN 显示内连接 on 是限制条件
SELECT sname,cno,degree FROM students INNER JOIN scores ON(students.sno=scores.sno)ORDER BY sname;
SELECT sname,cno,degree FROM students INNER JOIN scores on(students.sno=scores.sno)ORDER BY sname;
SELECT sname,cno,degree from students inner JOIN scores on (students.sno=scores.sno) order by sname; -- 15.查询所有学生的sname cname 和 degree列。 三张表 一起查。 INNER JOIN 用两次 限制条件是 外键
SELECT sname,cname,degree FROM students INNER JOIN scores ON(students.sno=scores.sno)INNER JOIN courses ON(scores.cno=courses.cno)ORDER BY sname;
SELECT sname,cname,degree FROM students INNER JOIN scores ON(students.sno=scores.sno)INNER JOIN courses ON(scores.cno=courses.cno)ORDER BY sname; -- 16.查询所有学生的sno cname degeree 列 排序查询 ORDER BY 关键字 默认是升序 ASC 降序 DESC
SELECT sno,cname,degree FROM scores INNER JOIN courses ON(courses.cno=scores.cno)ORDER BY sno DESC;
SELECT sno,cname,degree FROM scores INNER JOIN courses ON(courses.cno=scores.cno)ORDER BY sno;
SELECT sno,cname,degree FROM scores INNER JOIN courses ON(courses.cno=scores.cno)ORDER BY sno DESC; -- 17.查询 ‘95033’班所选课程的的平均分。分组查询 GROUP BY 被分组的列名
-- 必须跟随聚合函数
SELECT cname,avg(degree)
from students INNER JOIN scores ON(students.sno=scores.sno)INNER JOIN courses ON(courses.cno=scores.cno)WHERE class='95033'
GROUP BY courses.cno ORDER BY cname DESC; SELECT cname,avg(degree)
FROM students INNER JOIN scores ON(students.sno=scores.sno)INNER JOIN courses ON(courses.cno=scores.cno) WHERE class='95033'
GROUP BY courses.cno ORDER BY cname desc;

mysql 相关练习题的更多相关文章

  1. 【Python全栈-后端开发】MySQL数据库-练习题

    MySQL数据库-练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号 ...

  2. 关于MySQL相关的查看显示信息:

    关于MySQL相关的查看显示信息: 数据库范围: 一.查看所有的数据库:(仅仅是看数据库数量与名字) mysql> show databases; 二.查看某个数据库的创建信息:(主要看数据库的 ...

  3. .NetCore关于Cap(RabbitMQ)结合MySql使用出现MySql相关类冲突问题解决办法

    问题还原 引用了 DotNetCore.CAP.MySql MySql.Data.EntityFrameworkCore 在使用MySql相关对象的时候会出现如下冲突,在命名空间加入伪空间名称是不能解 ...

  4. MySQL相关问题总结

    希望此贴能够将MySQL安装周围的问题总结清楚,也免得自己再遇到问题时而不知所措.本帖中所有关于MySQL的问题均涉及到两个平台:Ubuntu 和 Windows(本人没有Mac) 问题1:MySQL ...

  5. 09js、MySQL相关

    09js.MySQL相关-2018/07/19 1.js的dom 理解一下文档对象模型:html文件加载到内存之后会形成一颗dom树,根据这些节点对象可以进行脚本代码的动态修改;在dom树当中 一切皆 ...

  6. Linux下mysql相关操作

    Linux下mysql相关操作 1.创建MySQL mysql -u root -p create user 'username'@'%' identified by 'password'; %可以选 ...

  7. MySQL相关参数总结

    保留个原文链接,避免被爬虫爬了过去,以便后续更正补充:https://www.cnblogs.com/wy123/p/11273023.html MySQL参数繁多,是一个需要根据具体业务.软硬件环境 ...

  8. sql注入原理+mysql相关知识点

    什么是SQL注入 sql就是经常说的数据库,而sql注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入是比较常见的网络攻击 ...

  9. MYSQL经典练习题,熟悉DQL

    MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...

随机推荐

  1. 【LeetCode】454. 4Sum II 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 日期 题目地址:https://leetcod ...

  2. ZooKeeper基础知识总结

    数据模型 ZooKeeper数据模型是一个树状的数据结构,类似于文件系统:和文件系统的区别在于树中的每一个节点(叶子节点与非叶子节点)都可以保存数据,且每个节点的访问都必须从根节点开始,以斜线作为分隔 ...

  3. uniapp解决测评有组件导出风险,解决APP反编译,回编译后app无法打开的问题

    1.APP反编译 使用hbx云打包,打包出apk 拿到apk后,先下载反编译工具 https://pan.baidu.com/s/1A5D8x_pdSELlHYl-Wl6Xnw 提取码 6vzd 使用 ...

  4. 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。

    查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...

  5. Hive安装Version2.1.0

    Hive安装,基于版本2.1.0, 使用apache-hive-2.1.0-bin.tar.gz安装包. 1.安装规划 角色规划 IP/机器名 安装软件 运行进程 hive zdh-9 hive Ru ...

  6. MATLAB m文件编译错误之错误使用slCharacterEncoding

    错误提示: 错误使用 slCharacterEncoding (line 51) Close all block diagrams (using 'bdclose all') before tryin ...

  7. [学习笔记] Oracle体系结构、下载安装、创建实例、客户端工具、网络服务名、服务管理

    Oracle体系结构 实例: 一个操作系统只有一个 Oracle 数据库 一个 Oracle 数据库可以有多个 Oracle 实例(通常只安装一个实例) 一个实例对应着一系列的后台进程和内存结构 表空 ...

  8. spring boot热部署 -- 实现 后端java热更新 -- 详细操作 【idea 的 JRebel破解】

    1.前言 上一随笔写了如何使得spring boot热更新前端 ,但后端java部分无法热更新. 对于Java热更新,以前常使用  springloaded  ,但是缺点 和bug很多 无法实现真正意 ...

  9. webSocket 前端 js 加入 心跳机制 的基本写法

    1前言 websocket 一般 每隔 90 秒无操作则会自动断开  ,需要加入一个心跳机制 来防止 自断 2. 实验过程 (1)设定一个jsp 或html 文件都行 ,加入元素 (2)js 源码 , ...

  10. PPT2010制作清明上河图动画

    原文: https://www.toutiao.com/i6492312556915393038/ 新建一个空白幻灯片 选择"插入"选项卡,"图像"功能组,&q ...