mysql 相关练习题
/*
自己查询自己 把一张表看成是两张表。 表的设计。 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 相关练习题的更多相关文章
- 【Python全栈-后端开发】MySQL数据库-练习题
MySQL数据库-练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号 ...
- 关于MySQL相关的查看显示信息:
关于MySQL相关的查看显示信息: 数据库范围: 一.查看所有的数据库:(仅仅是看数据库数量与名字) mysql> show databases; 二.查看某个数据库的创建信息:(主要看数据库的 ...
- .NetCore关于Cap(RabbitMQ)结合MySql使用出现MySql相关类冲突问题解决办法
问题还原 引用了 DotNetCore.CAP.MySql MySql.Data.EntityFrameworkCore 在使用MySql相关对象的时候会出现如下冲突,在命名空间加入伪空间名称是不能解 ...
- MySQL相关问题总结
希望此贴能够将MySQL安装周围的问题总结清楚,也免得自己再遇到问题时而不知所措.本帖中所有关于MySQL的问题均涉及到两个平台:Ubuntu 和 Windows(本人没有Mac) 问题1:MySQL ...
- 09js、MySQL相关
09js.MySQL相关-2018/07/19 1.js的dom 理解一下文档对象模型:html文件加载到内存之后会形成一颗dom树,根据这些节点对象可以进行脚本代码的动态修改;在dom树当中 一切皆 ...
- Linux下mysql相关操作
Linux下mysql相关操作 1.创建MySQL mysql -u root -p create user 'username'@'%' identified by 'password'; %可以选 ...
- MySQL相关参数总结
保留个原文链接,避免被爬虫爬了过去,以便后续更正补充:https://www.cnblogs.com/wy123/p/11273023.html MySQL参数繁多,是一个需要根据具体业务.软硬件环境 ...
- sql注入原理+mysql相关知识点
什么是SQL注入 sql就是经常说的数据库,而sql注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入是比较常见的网络攻击 ...
- MYSQL经典练习题,熟悉DQL
MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...
随机推荐
- 【LeetCode】454. 4Sum II 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 日期 题目地址:https://leetcod ...
- ZooKeeper基础知识总结
数据模型 ZooKeeper数据模型是一个树状的数据结构,类似于文件系统:和文件系统的区别在于树中的每一个节点(叶子节点与非叶子节点)都可以保存数据,且每个节点的访问都必须从根节点开始,以斜线作为分隔 ...
- uniapp解决测评有组件导出风险,解决APP反编译,回编译后app无法打开的问题
1.APP反编译 使用hbx云打包,打包出apk 拿到apk后,先下载反编译工具 https://pan.baidu.com/s/1A5D8x_pdSELlHYl-Wl6Xnw 提取码 6vzd 使用 ...
- 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。
查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...
- Hive安装Version2.1.0
Hive安装,基于版本2.1.0, 使用apache-hive-2.1.0-bin.tar.gz安装包. 1.安装规划 角色规划 IP/机器名 安装软件 运行进程 hive zdh-9 hive Ru ...
- MATLAB m文件编译错误之错误使用slCharacterEncoding
错误提示: 错误使用 slCharacterEncoding (line 51) Close all block diagrams (using 'bdclose all') before tryin ...
- [学习笔记] Oracle体系结构、下载安装、创建实例、客户端工具、网络服务名、服务管理
Oracle体系结构 实例: 一个操作系统只有一个 Oracle 数据库 一个 Oracle 数据库可以有多个 Oracle 实例(通常只安装一个实例) 一个实例对应着一系列的后台进程和内存结构 表空 ...
- spring boot热部署 -- 实现 后端java热更新 -- 详细操作 【idea 的 JRebel破解】
1.前言 上一随笔写了如何使得spring boot热更新前端 ,但后端java部分无法热更新. 对于Java热更新,以前常使用 springloaded ,但是缺点 和bug很多 无法实现真正意 ...
- webSocket 前端 js 加入 心跳机制 的基本写法
1前言 websocket 一般 每隔 90 秒无操作则会自动断开 ,需要加入一个心跳机制 来防止 自断 2. 实验过程 (1)设定一个jsp 或html 文件都行 ,加入元素 (2)js 源码 , ...
- PPT2010制作清明上河图动画
原文: https://www.toutiao.com/i6492312556915393038/ 新建一个空白幻灯片 选择"插入"选项卡,"图像"功能组,&q ...