#新建一个表
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. linux下查看Apache的访问日志及ip

    linux下查看Apache的实时访问日志:tail -f  /etc/httpd/logs/access_log 查看有哪些ip访问过:cat access_log |awk '{print $1} ...

  2. html中的块级元素和行内元素

    块级元素:块级大多为结构性标记 <address>...</adderss> <center>...</center>  地址文字 <h1> ...

  3. 【转】SIP协议 会话发起协议

    转自:https://www.cnblogs.com/gardenofhu/p/7299963.html 会话发起协议(SIP)是VoIP技术中最常用的协议之一.它是一种应用层协议,与其他应用层协议协 ...

  4. HDU-3810 超大容量01背包

    题意:有n堆野兽,每堆野兽屠杀完完需要花费ti时间,可以增加金钱gi,敌法师有瞬移技能,可以从某堆野兽移到另一堆野兽,题目有给定从哪堆可以移到哪堆.最后问在满足打的金钱多余m的情况下的最少时间.数据范 ...

  5. [web 安全] php随机数安全问题

    and() 和 mt_rand() 产生随机数srand() 和 mt_srand() 播种随机数种子(seed)使用: <?php srand(123);//播种随机数种子 for($i=0; ...

  6. thinkphp数据库连接

    https://www.kancloud.cn/manual/thinkphp5/118059 一.配置文件定义 常用的配置方式是在应用目录或者模块目录下面的database.php中添加下面的配置参 ...

  7. 【leetcode】1027. Longest Arithmetic Sequence

    题目如下: Given an array A of integers, return the length of the longest arithmetic subsequence in A. Re ...

  8. 对微信小程序的研究2

    .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模板文件 .wxss 后缀的 WXSS 样式文件 .js 后缀的 JS 脚本逻辑文件 JSON 配置 我们可以看到在项目的根目录有 ...

  9. React笔记01——React开发环境准备

    1 React简介 2013年由Facebook推出,代码开源,函数式编程.目前使用人数最多的前端框架.健全的文档与完善的社区. 官网:reactjs.org 阅读文档:官网中的Docs React ...

  10. POJ 3660 Cow Contest ( 最短路松弛思想应用 && Floyd求传递闭包 )

    题意 : 给出 N 头奶牛在比赛的结果,问你最多的能根据给出结果确定其名次的奶牛头数.结果给出的形式为 A  B 代表在比赛当中 A 战胜了 B 分析 : 对于一头奶牛来说,如果我们能确定其他 N - ...