Mysql基本的一些查询操作

/*查询选修课程‘3-105’且成绩在60到80之间的所有记录。*/
SELECT * FROM result WHERE CNO='3-105' AND GRADE > 60 AND GRADE<80;
/*查询成绩为85、86或88的记录。*/
SELECT * FROM result WHERE GRADE>=85 AND GRADE<=88;
/* 查询95031班的学生人数*/
SELECT count(*) AS '人数95031班级' FROM student WHERE CLASS='95031';
/* 查询至少有5名学生选修并以3开头的课程的平均成绩*/
SELECT avg(GRADE) from result where CNO like '3%' AND CNO HAVING count(*)>=5;
/* 查询最低分大于70,最高分小于90的NO列*/
SELECT NO FROM result WHERE GRADE<(
SELECT max(GRADE) FROM result WHERE GRADE<90
) AND GRADE>(
SELECT min(GRADE) FROM result WHERE GRADE>70
);
/* 查询95033班学生所选课程的平均分*/
SELECT avg(GRADE) AS '95033班级平均分' FROM result WHERE NO IN (
SELECT NO FROM student WHERE CLASS='95033'
);
/* 查询选修‘3-105’课程的成绩高于‘109’号同学成绩的所有同学的记录*/
SELECT * FROM result WHERE CNO='3-105' AND GRADE >(
SELECT GRADE FROM result WHERE CNO='3-105' AND NO=109
);
/* 查询与学号为108的同学同岁的所有学生的NO、NAME和AGE*/
SELECT NO,NAME,AGE FROM student WHERE AGE=(
SELECT AGE FROM student WHERE NO=108
) AND NO <> 108;
/* 查询“张旭”教师任课的课程号,选修其课程学生的学号和成绩*/
SELECT NO,GRADE FROM result WHERE CNO = (
SELECT CNO FROM subject WHERE TNO = (
SELECT TNO FROM teacher WHERE NAME='张旭'
)
);
/* 查询选修其课程的学生人数多于5人的教师姓名*/
SELECT NAME FROM teacher WHERE TNO=(
SELECT TNO FROM subject WHERE CNO=(
SELECT CNO FROM result GROUP BY CNO HAVING count(*)>5
)
);
/* 查询“计算机系”与“电子工程系”不同职称的教师的姓名和职称*/
SELECT NAME,PROF FROM teacher WHERE DEPART='计算机系' AND PROF NOT IN (
SELECT PROF FROM teacher WHERE DEPART='电子工程'
);
SELECT NAME,PROF FROM teacher WHERE DEPART='电子工程' AND PROF NOT IN (
SELECT PROF FROM teacher WHERE DEPART='计算机系'
); /* 查询选修编号为“3-105”课程且成绩至少高于选修编号为“3-245”课程的同学的CNO、NO 、GRADE并按GRADE从高到低次序排列*/
SELECT NO,CNO,GRADE FROM result WHERE CNO='3-105' AND GRADE>ANY(
SELECT GRADE FROM result WHERE CNO='3-245'
) ORDER BY GRADE DESC ; /* 列出所有教师和同学的NAME 、SEX 、AGE*/
SELECT NAME,SEX,AGE FROM student UNION SELECT NAME,SEX,AGE FROM teacher; /* 查询成绩比该课程平均成绩低的学生的成绩表*/
SELECT * FROM result a WHERE GRADE <(
SELECT avg(GRADE) FROM result b WHERE a.CNO=b.CNO
);
/* 列出所有任课教师的NAME和DEPART*/
SELECT NAME,DEPART FROM teacher WHERE TNO IN (
SELECT TNO FROM subject
); /* 列出所有未讲课教师的NAME和DEPART*/
SELECT NAME,DEPART FROM teacher WHERE TNO NOT IN (
SELECT TNO FROM subject WHERE CNO IN (
SELECT CNO FROM result
)
);
/* 列出至少有2名男生的班号*/
SELECT CLASS FROM student WHERE SEX='男' GROUP BY CLASS HAVING count(*)>1;
/* 查询不姓“王”的学生记录*/
SELECT * FROM student WHERE NAME NOT LIKE '王%';
/* 查询每门课最高分的学生的NO、CNO、CRADE*/
SELECT NO,CNO,GRADE FROM result WHERE GRADE GROUP BY CNO HAVING max(GRADE);
/* 查询与“李军”同性别并同班的同学NAME*/
SELECT NAME FROM student WHERE SEX=(
SELECT SEX FROM student WHERE NAME='李军'
) AND CLASS=(
SELECT CLASS FROM student WHERE NAME='李军'
) AND NAME<>'李军'; /* 查询“男”教师及其所上的课程*/
SELECT teacher.NAME,subject.CNAME FROM teacher,subject WHERE teacher.TNO=subject.TNO AND teacher.SEX='男';
/* 查询选修“计算机导论”课程的“男”同学的成绩表*/
SELECT * FROM result WHERE CNO=(
SELECT CNO FROM subject WHERE CNAME='计算机导论'
) AND NO IN (
SELECT NO FROM student WHERE SEX='男'
);
/* 把选修高等数学课不及格的成绩全改为60*/
UPDATE result SET GRADE=60 WHERE GRADE<60 AND CNO=(
SELECT CNO FROM subject WHERE CNAME='高等数学'
);
/* 把低于总平均成绩的女同学成绩提高5%*/
SELECT @avg:=(SELECT avg(GRADE) FROM result);
UPDATE result SET GRADE=GRADE*(1+0.05) WHERE GRADE<@avg AND NO IN (
SELECT NO FROM student WHERE SEX='女'
);
/* 在基本表SC中修改计算机导论的成绩,若成绩小于等于75分时提高5%,若成绩大于75时提高4%*/
UPDATE result SET GRADE=GRADE*(1+0.05) WHERE GRADE<=75 AND CNO=(
SELECT CNO FROM subject WHERE CNAME='计算机导论'
);
UPDATE result SET GRADE=GRADE*(1+0.04) WHERE GRADE>75 AND CNO=(
SELECT CNO FROM subject WHERE CNAME='计算机导论'
); /* 查询“张旭”教师任课的课程号,选修其课程学生的学号和成绩*/
SELECT r.NO,r.GRADE,t.TNO FROM result AS r,subject AS s,teacher AS t WHERE t.NAME='张旭' AND r.CNO=s.CNO AND s.TNO=t.TNO; /* 检索学号比李同学大,而年龄比他小的学生姓名*/
SELECT NAME FROM student WHERE NO>(
SELECT NO FROM student WHERE NAME='李军'
) AND AGE<=(
SELECT AGE FROM student WHERE NAME='李军'
);
Mysql基本的一些查询操作的更多相关文章
- Python操作Mysql数据库进阶篇——查询操作详解(一)
前面我们已经介绍了在Python3.x中如何连接一个Mysql数据库,以及怎么样对这个数据库创建一个表,增删改查表里的数据.想必大家对Mysql数据库和简单的sql语句有了一定的了解,其实sql语句博 ...
- mysql数据库表的查询操作-总结
转自:https://www.cnblogs.com/whgk/p/6149009.html 序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VA ...
- 最全MySQL数据库表的查询操作
序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...
- mysql重点,表查询操作和多表查询
表单查询 1. 完整的查询语句语法 select distinct(* or 字段名 or 四则运算 )from 表名 where 条件 group by 条件 having 条件 order by ...
- 详细讲述MySQL中的子查询操作 (来自脚本之家)
继续做以下的前期准备工作: 新建一个测试数据库TestDB: ? 1 create database TestDB; 创建测试表table1和table2: ? 1 2 3 4 5 6 7 8 9 1 ...
- MySql数据库表的查询操作
http://www.cnblogs.com/whgk/p/6149009.html 优化:http://www.ihref.com/read-16422.html MYSQL常用的几种连接查询方法
- C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】
为什么要参数化执行SQL语句呢? 一个作用就是可以防止用户注入漏洞. 简单举个列子吧. 比如账号密码登入,如果不用参数, 写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧 sql:se ...
- MySQL(三) 数据库表的查询操作【重要】
序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...
- PHP操作mysql数据库:[2]查询数据听语音
本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料 Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言 ...
随机推荐
- selenium 基本常用操作
from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChains #鼠标操作 ...
- 私有云搭建:树莓派+kodexplorer可道云,几步搞定!
目前蒲公英异地组网则是推出了树莓派1.0软件客户端.无需公网IP!简单60秒设置!轻松远程访问树莓派!实现远程登录.远程配置.远程访问服务.传输数据等等操作.例如:蒲公英树莓派1.0软件客户端+可道云 ...
- 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!
本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...
- IntelliJ IDEA 自动编译功能无法使用,On 'update' action:选项里面没有update classes and resources这项
https://zhidao.baidu.com/question/1381265197230335740.html
- Redux和React-Redux的实现(二):Provider组件和connect的实现
接着上一篇讲,上一篇我们实现了自己的Redux和介绍了React的context以及Provider的原理. 1. Provider组件的实现 Provider组件主要有以下下两个作用 在整个应用上包 ...
- Scrum Meeting 7 -2014.11.13
之前srcum没写好是我的错.以后会每天更新的. 老师反映之前项目小组从pdf中提取作者效果不好,我们讨论决定进行一定的优化.在整合测试的同时开始服务器程序部署. Member Today’s tas ...
- Daily Scrum (2015/11/2)
今日我们完成了博客作业的发布,并且也完成了服务器的配置. 成员 今日工作 时间 明日工作 符美潇 两篇文档的修善和数据库的搭建. 2h 完成数据库搭建,并能爬取数据提供给第二小组使用 潘礼鹏 编写两篇 ...
- 软工实践-Beta 冲刺 (1/7)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...
- Teamwork(The third day of the team)
在确定了第一个spring后我们就开始了各自的工作,不过由于大家都在专注于自己的工作并且由于近段时间的作业及各方面的事情都很多,没有来得及每天都更新一个博客,因此,我们现在把落下的博客都补上,很多事情 ...
- 更新ubuntu的源
什么是Ubuntu的软件源? 我们在使用Debian或者Ubuntu的apt-get工具来安装需要的软件时,其实就是从服务器获取需要安装的软件并把它安装在本地计算机的过程.所谓的软件源,就是我们获取软 ...