sql for mysql
来源:互联网 发布:知乎人均985 编辑:程序博客网 时间:2024/05/18 01:12
# 显示 张永生的三科成绩
SELECT a.name,b.coursename,b.course FROM student a,courses b WHERE a.studentid=b.studentid AND a.name='张永生'
#显示 物理的平均分
SELECT AVG(course) FROM courses WHERE coursename='物理'
# 找出物理成绩大于平均分的同学
SELECT a.name,b.coursename,b.course FROM student a,courses b WHERE a.studentid=b.studentid AND coursename='物理' AND course>(SELECT AVG(course) FROM courses WHERE coursename='物理')
# 显示 所有人员的自己的三科总成绩和自己的平均分,缺科的按0分算
SELECT a.name,SUM(b.course),AVG(b.course) FROM student a,courses b WHERE a.studentid=b.studentid GROUP BY a.name
#显示所有人员三科总成绩的平均分
SELECT AVG(total) FROM ( SELECT SUM(b.course) AS total FROM student a,courses b WHERE a.studentid=b.studentid GROUP BY a.name) bbb
# 找出总分数少于平均分的人员
SELECT a.name,SUM(b.course) FROM student a,courses b WHERE a.studentid=b.studentid GROUP BY a.name HAVING ( SUM(b.course) < (SELECT AVG(total) FROM ( SELECT SUM(bb.course) AS total FROM student aa,courses bb WHERE aa.studentid=bb.studentid GROUP BY aa.name) temp) )
#between的用法
SELECT * FROM courses WHERE course BETWEEN 60 AND 100
# orderby 排序
SELECT DISTINCT coursename FROM courses ORDER BY coursename ASC
# 多个条件排序
SELECT a.name,b.coursename,b.course FROM student a,courses b WHERE a.studentid=b.studentid ORDER BY coursename ASC,course DESC
# in语句
SELECT * FROM courses WHERE course IN(26,98,33)
# 找出缺科的人 (总共3科)
# 1 简单的,只统计成绩表 找出学生ID
SELECT COUNT(0) kemu, studentid FROM courses GROUP BY studentid HAVING(COUNT(0)< ( SELECT COUNT(DISTINCT coursename) FROM courses) )
# 2 复杂点 关联 student表,显示学生姓名
SELECT COUNT(0) kemu,a.name FROM courses b,student a WHERE a.studentid=b.studentid GROUP BY b.studentid HAVING(COUNT(0)< ( SELECT COUNT(DISTINCT coursename) FROM courses) )
---------------------------------------------------------------建表和数据------------------------
成绩表:
DROP TABLE IF EXISTS `courses`;
CREATE TABLE `courses` (
`coursename` varchar(20) default NULL,
`course` int(3) default NULL,
`studentid` int(4) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
insert into `courses`(`coursename`,`course`,`studentid`) values ('物理',156,1),('物理',26,2),('物理',53,3),('物
理',46,4),('物理',77,6),('物理',36,7),('语文',32,1),('语文',98,2),('语文',53,3),('语文',52,4),('语文',79,6),('语
文',136,7),('化学',73,1),('化学',32,2),('化学',74,3),('化学',32,6),('化学',36,7);
学生表:
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`studentid` int(4) NOT NULL auto_increment,
`name` varchar(20) default NULL,
`sex` char(1) default NULL,
`age` int(3) default NULL,
PRIMARY KEY (`studentid`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=gbk;
insert into `student`(`studentid`,`name`,`sex`,`age`) values (1,'张木生','男',23),(2,'张永生','男',24),(3,'王敏','
女',22),(4,'高峰','男',34),(5,'刘德华','男',32),(6,'乌海飞','男',24),(7,'张学友','男',21);
- sql for mysql
- java jdbc for sql 2000 and mysql
- SQL Manager 2010 for Mysql 破解
- SQL Server Migration Assistant for MySQL! 使用方法
- SQL Server Migration Assistant for MySQL使用方法
- Navicat for mysql、SQL Server、Oracle
- SQL Server Migration Assistant for MySQL使用方法
- 用Navicat for Mysql导入.sql文件
- MySQL for Java的SQL注入测试
- Navicat for mysql导入.sql文件教程
- 用Navicat for Mysql导入.sql文件
- 用Navicat for Mysql导入.sql文件
- 用navicat for mysql导入.sql文件
- Navicat for MySQL导入.sql文件
- navicat for mysql导入sql文件
- 用Navicat for Mysql导入.sql文件
- Navicat for MySQL如何导入SQL文件
- SQL Manager for MySQL 客户端显示中文乱码
- Apk签名时报错Export aborted because fatal lint errors were found
- 永久勘误:微软等面试100题答案V0.3版[第21-40题答案]
- Let the Balloon Rise
- 【转】学习方法
- N 后问题
- sql for mysql
- hdu 3439 Watch The Movie(背包问题)
- Spring Security-2.0.x参考文档“CAS认证”
- 在form中上传文件与Enctype=multipart/form-data 的作用
- 永久勘误:微软等面试100题答案V0.3版[第21-40题答案]
- C++打开默认浏览器
- eclipse配置tomcat 6.0
- 浅析Android中的消息机制(转载)
- exit, _exit, _Exit,abort,atexit-->一直未注意atexit