mysql 回顾小练习

Student(id,sname,age,sex) 学生表
Course(id,cname,t_id) 课程表
SC(s_id,c_id,score) 成绩表
Teacher(id,Tname) 教师表
问题:
1.查询“001”课程比“002”课程成绩高的所有学生的学号;

select aa.id from (select s.id,SC.score sc1 from student s ,Course c,SC  where s.id=SC.s_id and c.id=SC.c_id and c.id=1) aa,(select s.id,SC.score sc2 from student s ,Course c,SC  where s.id=SC.s_id and c.id=SC.c_id and c.id =2) bb where aa.id=bb.id and aa.sc1>bb.sc2

2.查询平均成绩大于60分的同学的学号和平均成绩;

select s.id ,avg(SC.score) from student s,SC where s.id=SC.s_id GROUP BY s.id HAVING avg(SC.score)>60

3.查询所有同学的学号、姓名、选课数、总成绩;

select s.id,s.sname,count(c.id) XUKESHU,sum(SC.score) ZONGCHENGJI from student s,SC,Course c where s.id=SC.s_id and c.id=SC.c_id GROUP BY s.id

4.查询姓“李”的老师的个数;

select count(t.id) from Teacher t where t.tname like"李%"

5.查询没学过“叶平”老师课的同学的学号、姓名;

select s.id from student  s where s.id  not in (select s.id from student s , Teacher t ,Course c ,SC where SC.s_id=s.id and SC.c_id=c.id and c.t_id=t.id  and c.id =1)

6.查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

select aa.id,aa.sname from (select s.id,s.sname from student s , Teacher t ,Course c ,SC where SC.s_id=s.id and SC.c_id=c.id and c.t_id=t.id  and c.id =1 ) aa,(select s.id,s.sname from student s , Teacher t ,Course c ,SC where SC.s_id=s.id and SC.c_id=c.id and c.t_id=t.id  and c.id =2) bb where aa.id=bb.id

7.查询不同老师所教不同课程平均分从高到低显示

select avg(SC.score),t.tname,c.cname from SC, Teacher t,Course c where SC.c_id=c.id and c.t_id=t.id GROUP BY t.tname order by avg(SC.score) desc

8.查询各科成绩前三名的记录:(不考虑成绩并列情况)

select s.id,s.sname,c.cname,SC.score from student s , Teacher t ,Course c ,SC where SC.s_id=s.id and SC.c_id=c.id and c.t_id=t.id  and c.id =1 order by SC.score desc limit 3

9.查询男生人数

select count(s.id),s.sex from student s where s.sex="男"

10.查询同名同性学生名单,并统计同名人数

select count(s.id),s.sname from student s GROUP BY s.sname HAVING count(s.id)>1

时间: 2024-08-09 02:17:53

mysql 回顾小练习的相关文章

MYSQL 问题小总结

mysql 问题小总结 1.MySQL远程连接ERROR 2003(HY000):Can't connect to MySQL server on 'ip'(111)的问题 通常是mysql配置文件中配置了/etc/mysql/my.cnf[mysqld]bind_address=127.0.0.1这种情况只有本机可以TCP/IP连接加#注释掉或改为 0.0.0.0 2.数据库导入导出导出整个库mysqldump -u dbadmin -p myblog > /home/zhangy/blog/

MySQL安全小技巧

MySQL安全小技巧,后面会慢慢补充. mysql命令行有个参数 -U, --safe-updates  Only allow UPDATE and DELETE that uses keys. 表示安全的更新,就是说delete或者update数据的时候,必须加上条件,不然就报错.如下图: 我们可以做个别名 echo 'alias mysql="mysql -U"' >> /etc/profile source /etc/profile 这样的话,其他用户登录mysql,

Mysql 监控小脚本

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言.MyS

mysql优化小技巧

对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平分割.垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程 [模块化编程,可以提高速度] f: 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] g: mysql服务器硬件升级 h: 定时的去清除不需要的数据,定时进行碎片整理(MyISAM)

带你了解MySQL数据库小技巧

兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外.本文列举37 个 MySQL 数据库小技巧,快来学习吧! 37 个 MySQL 数据库小技巧! 1.如何快速掌握MySQL? 培养兴趣 兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率.当然学习MySQL 5.6也不例外. 夯实基础 计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深 入,只有有着扎实的基础功底,才能在技术的道路上走得更快.更远.对于M

mysql的小总结

1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式.数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用. 主流的数据库有:sqlserver,mysql,Oracle.SQLite.Access.MS SQL Server等,本文主要讲述的是

Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表

一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files.cnblogs.com/files/xiaobo-Linux/mysql.zip 把两个文件放入 Qt目录\Qt5.5.0\5.5\mingw492_32\bin文件夹下直接粘贴(路径根据自己的设置) 也可以放到原来工程代码中,头文件用双引号引出即可. <!--小波Linux QQ463431476 cnblogs http://www.cnblogs.com/xi

随手写的一个检测php连接mysql的小脚本

最近偶然接触到一点点的php开发,要用到mysql数据库,由于mysql和php版本的关系,php5里面连接函数有mysql_connect(),mysqli_connect()两种,php7中又使用了mysqli()对象,想到以后上一些其他项目时有可能需要调试这些问题,随手写了个小的php脚本,用来检测当前php与mysql的连接状态和可以使用的连接函数,代码如下: <?php header("Content-type:text/html;charset=utf-8"); $s

mysql注入小测试

转自:http://www.jb51.net/article/46163.htm 在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符.通常,用户可以通过以下接口调用数据库的内容:URL地址栏.登陆界面.留言板.搜索框等.这往往给骇客留下了可乘之机.轻则数据遭到泄露,重则服务器被拿下. 一.SQL注入的步骤 a)  寻找注入点(如:登录界面.留言板等) b)  用户自己构造SQL语句(如:' or 1=1#,后面会讲解) c)  将sql语句发送给数据库管理系统(DBMS) d)  DB