#新建一个表
create database exercise;

#查询表的信息
SELECT * FROM student;
SELECT * FROM score;

#查询student表的第二条到第四条的记录
SELECT * FROM student2 LIMIT 1,3;

#从student表查询所有学生的学号(sno)、姓名(sname)和院系(class)的信息
SELECT sno,sname,class FROM student;

#从student表中查询计算机系和英语系的学生的信息
SELECT * FROM student WHERE department IN ('计算机系','英语系');

#从student表中查询年龄18~22岁的学生信息
SELECT Id,NAME,sex,2019-birth AS age,department,address FROM student WHERE 2019-birth BETWEEN 18 AND 30;

#从student表中查询每个院系有多少人
SELECT department, COUNT(id) FROM student GROUP BY department;

SELECT COUNT(*), department FROM student GROUP BY department;

#查询李四的考试科目(c_name)和考试成绩(grade)
SELECT C_name,Grade FROM score WHERE Stu_id=(SELECT id FROM student WHERE name= '李四' );

#用连接的方式查询所有学生的信息和考试信息
SELECT student.id,name,sex,birth,department,address,c_name,grade FROM student,score WHERE student.id=score.stu_id;

#计算每个学生的总成绩
SELECT student.id,name,SUM(grade) FROM student,score WHERE student.id=score.stu_id GROUP BY id;

#计算每个考试科目的平均成绩
SELECT c_name,AVG(grade) FROM score GROUP BY c_name;

#查询计算机成绩低于95的学生信息
SELECT * FROM student WHERE id IN (SELECT stu_id FROM score WHERE c_name="计算机" and grade<95);

#查询同时参加计算机和英语考试的学生的信息
SELECT * FROM student WHERE id =ANY( SELECT stu_id FROM score WHERE stu_id IN (SELECT stu_id FROM score WHERE c_name= '计算机') AND c_name= '英语' );

#将计算机考试成绩按从高到低进行排序
SELECT stu_id, grade FROM score WHERE c_name= '计算机' ORDER BY grade DESC;

#从student表和score表中查询出学生的学号,然后合并查询结果
SELECT id FROM student UNION SELECT stu_id FROM score;

#查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
SELECT student.id, name,sex,birth,department, address, c_name,grade FROM student, score WHERE (name LIKE '张%' OR name LIKE '王%')AND student.id=score.stu_id ;

#查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩
SELECT student.id, name,sex,birth,department, address, c_name,grade FROM student, score WHERE address LIKE '湖南%' AND student.id=score.stu_id;

#练习题三
#查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
SELECT DISTINCT x.cno,x.sno,x.degree FROM score2 x,score2 y WHERE x.Cno = '3-105' AND x.Degree > y.Degree AND y.Sno='109' AND y.Cno='3-105';

SELECT Degree FROM score2 WHERE Sno='109' AND Cno='3-105';
SELECT * FROM score2 WHERE Cno='3-105' AND Degree >(SELECT Degree FROM score2 WHERE Sno='109' AND Cno='3-105');

#查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT x.cno,x.sno,x.degree FROM score2 x,score2 y WHERE x.Degree > y.Degree AND y.Sno='109' AND y.Cno='3-105';

SELECT cno,sno,degree FROM score2 WHERE Degree > (SELECT Degree FROM score2 WHERE Cno='3-105' AND Sno='109');

SELECT * FROM score2 WHERE Degree >(SELECT Degree FROM score2 WHERE Sno='109' AND Cno='3-105');
#查询和学号为108、101的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
SELECT * FROM student2 WHERE sno in (101,108);
SELECT sbirthday FROM student2 WHERE sno in (101,108);
SELECT DATE_FORMAT(sbirthday,"%Y") FROM student2 WHERE sno in (101,108);
SELECT sno,sname,sbirthday FROM student2 WHERE DATE_FORMAT(sbirthday,"%Y") in (SELECT DATE_FORMAT(sbirthday,"%Y") FROM student2 WHERE sno in (101,108));

#查询“张旭“教师任课的学生成绩。
SELECT * FROM teacher WHERE Tname="张旭";
SELECT tno FROM teacher WHERE Tname="张旭";
SELECT cno FROM course WHERE Tno in (SELECT tno FROM teacher WHERE Tname="张旭");
SELECT * FROM score2 WHERE Cno in (SELECT cno FROM course WHERE Tno in (SELECT tno FROM teacher WHERE Tname="张旭"));

#查询选修某课程的同学人数多于5人的教师姓名。没完成
SELECT COUNT(cno),cno FROM score2 GROUP BY Cno;
SELECT COUNT(cno),cno FROM score2 GROUP BY Cno HAVING COUNT(Cno)>5;
SELECT cno FROM score2 GROUP BY Cno HAVING COUNT(Cno)>5;

#查询95033班和95031班全体学生的记录。

#查询存在有85分以上成绩的课程Cno.
SELECT MAX(degree), cno FROM score2 GROUP BY Cno;
SELECT MAX(Degree), cno FROM score2 GROUP BY Cno HAVING MAX(Degree)>85;
SELECT cno FROM score2 GROUP BY Cno HAVING MAX(Degree)>85;
SELECT * FROM course WHERE Cno in(SELECT cno FROM score2 GROUP BY Cno HAVING MAX(Degree)>85);

#查询出“计算机系“教师所教课程的成绩表。

#查询“计算 机系”与“电子工程系“不同职称的教师的Tname和Prof。

#查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。
SELECT degree FROM score2 WHERE Cno="3-105";

SELECT degree FROM score2 WHERE Cno="3-245";

SELECT * FROM score2 WHERE Cno="3-105" AND Degree > ANY(SELECT degree FROM score2 WHERE Cno="3-245");

#查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.
SELECT * FROM score2 WHERE Cno="3-105" AND Degree > ALL(SELECT degree FROM score2 WHERE Cno="3-245");

#查询所有教师和同学的name、sex和birthday.
SELECT tname,tsex,tbirthday FROM teacher
UNION
SELECT sname,ssex,sbirthday FROM student2;

#查询所有“女”教师和“女”同学的name、sex和birthday.
SELECT tname,tsex,tbirthday FROM teacher WHERE Tsex="女"
UNION
SELECT sname,ssex,sbirthday FROM student2 WHERE ssex="女";

#查询成绩比该课程平均成绩低的同学的成绩表。

#查询所有有任课教师的Tname和Depart.
SELECT DISTINCT(cno) FROM score2;
SELECT Tno FROM course WHERE Cno in(SELECT DISTINCT(cno) FROM score2);
SELECT Tname,Depart FROM teacher WHERE Tno in(SELECT Tno FROM course WHERE Cno in(SELECT DISTINCT(cno) FROM score2));

select Tname,Depart from Teacher where Tname in (select distinct Tname from Teacher,Course,score2 where Teacher.Tno=Course.Tno and Course.Cno=score2.Cno);

#查询所有未讲课的教师的Tname和Depart.
select Tname,Depart from Teacher where Tname NOT in (select distinct Tname from Teacher,Course,score2 where Teacher.Tno=Course.Tno and Course.Cno=score2.Cno);

SELECT Tname,Depart FROM teacher WHERE Tno NOT in(SELECT Tno FROM course WHERE Cno in(SELECT DISTINCT(cno) FROM score2));
#查询至少有2名男生的班号。

#查询Student表中不姓“王”的同学记录。

#查询Student表中每个学生的姓名和年龄。

#查询Student表中最大和最小的Sbirthday日期值。

#以班号和年龄从大到小的顺序查询Student表中的全部记录。

#查询“男”教师及其所上的课程。

#查询最高分同学的Sno、Cno和Degree列。

#查询和“李军”同性别的所有同学的Sname.

#查询和“李军”同性别并同班的同学Sname.

#查询所有选修“计算机导论”课程的“男”同学的成绩表。

#分组函数avg,查询每门分数的平均分
SELECT * FROM score2 WHERE Cno="3-105";
#查询3-105科目的平均分
SELECT avg(degree) FROM score2 WHERE Cno="3-105";
#使用分组,按照cno课程分组,查询每个课程的avu(degree)平均分
SELECT avg(degree),cno FROM score2 GROUP BY Cno;

#查询每个学生的平均分
SELECT AVG(degree),student2.Sno FROM student2,score2 WHERE student2.Sno=score2.Sno GROUP BY student2.Sno;
#查询出男同学的平均分
SELECT sno FROM student2 WHERE ssex="男";

SELECT AVG(degree) FROM score2 WHERE sno in (SELECT sno FROM student2 WHERE ssex="男");

#查询出每个科目男同学的平均分

#查询出每门科目的最高分
SELECT MAX(degree),cno FROM score2 GROUP BY cno;

#查询女同学中的总分的最高分
SELECT sno FROM student2 WHERE ssex="女";

SELECT SUM(degree),sno FROM score2 WHERE Sno in(SELECT sno FROM student2 WHERE ssex="女") GROUP BY sno ORDER BY SUM(degree) DESC LIMIT 1;

#查询3-105的最低分
SELECT MIN(degree) FROM score2 WHERE Cno="3-105";

#查询所有分数对应的学生信息,课程编号,教师信息

MySQL基础(查)的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  4. MySQL基础(二)——DDL语句

    MySQL基础(二)--DDL语句 1.什么是DDL语句,以及DDL语句的作用 DDL语句时操作数据库对象的语句,这些操作包括create.drop.alter(创建.删除.修改)数据库对象. 2.基 ...

  5. 【转载】20分钟MySQL基础入门

    原文:20分钟MySQL基础入门 这里持续更新修正 开始使用 MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格 ...

  6. MYSQL基础笔记(三)-表操作基础

    数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...

  7. MYSQL基础笔记(二)-SQL基本操作

    SQL基本操作 基本操作:CRUD,增删改查 将SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: Create da ...

  8. MYSQL 基础操作

    1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...

  9. mysql 基础之CURD

    原文:mysql 基础之CURD 增删改查基本语法学习 增: insert Insert 3问: 1: 插入哪张表? 2: 插入哪几列? 3: 这几列分别插入什么值? Insert into Tabl ...

  10. MySQL基础操/下

    MySQL基础操 一.自增补充 desc (表名)t1: 查看表格信息内容 表的信息 show create table t1(表名):也是查看信息,还不多是横向查看 show create tabl ...

随机推荐

  1. Add JWT Bearer Authorization to Swagger and ASP.NET Core

    Add JWT Bearer Authorization to Swagger and ASP.NET Core     If you have an ASP.NET Core web applica ...

  2. jQuery——复选框操作

    学习jQuer对表单.表格操作的过程中,按照书上的例子发现一个问题: <!DOCTYPE html> <html> <head> <title>复选框应 ...

  3. Vue 实现文件的下载

    上次说了,实现文件的上传需要三步,那么实现文件的下载呢? 答:也是三步 第一步:获取文件的 fileId (或者别的什么的,总之应该是代表这个文件的东西),各家后台需要的都不一样 第二步:调用接口 t ...

  4. Storm消费Kafka值得注意的坑

    问题描述: kafka是之前早就搭建好的,新建的storm集群要消费kafka的主题,由于kafka中已经记录了很多消息,storm消费时从最开始消费问题解决: 下面是摘自官网的一段话:How Kaf ...

  5. 好玩的Linux命令-1

    Ag:比grep.ack更快的归递搜索文件内容 1:首先在linux创建个sh文件->ag.sh 2:在ag.sh里面输入如下内容并保存 #!/bin/bash set -x TEMP_DIR= ...

  6. bzoj4009 [HNOI2015]接水果 整体二分+扫描线+树状数组+dfs序

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4009 题解 考虑怎样的情况就会有一个链覆盖另一个链. 设被覆盖的链为 \(a - b\),覆盖 ...

  7. Thinkphp 请求和响应

    一. Request对象获取方法 1. request() 助手函数获取 2. think\Request 类获取 3.利用框架注入Request对象  Request方法时单利方法 在think框架 ...

  8. Git的配置与基本操作

    Git是一个版本控制软件,它可以让我们能够拍摄处于可行状态的项目的快照,修改项目(如实现新功能)后,如果项目不能正常运行,可以恢复到前一个可行状态. 通过使用版本控制,我们可以无忧无虑的改进项目,不用 ...

  9. Spring动态数据源-AbstractRoutingDataSource

    在分库分表的情况下,在执行SQL时选择连接不同的数据源(库)的思路:配置多个数据源加到动态数据源对象中,根据实际的情况动态切换到相应的数据源中. 如存放订单信息的有10个库,每个库中有100张表,根据 ...

  10. Primary Key Increase by Trigger

    Oracle Create Table: CREATE TABLE TAB( ID NUMBER(10) NOT NULL PRIMARY KEY, NAME VARCHAR(19) NOT NULL ...