首页 > 数据库技术 > 详细

mysql20170404代码实现

时间:2017-04-04 09:30:40      阅读:251      评论:0      收藏:0      [点我收藏+]

 

技术分享
CREATE DATABASE IF NOT EXISTS school;

USE school;

CREATE TABLE tblStudent(
StuId INT(4) NOT NULL PRIMARY KEY,
StuName VARCHAR(20) NOT NULL,
StuAge INT(3),
StuSex CHAR(2)

);

CREATE TABLE tblCourse(
CourseId INT(4) NOT NULL PRIMARY KEY,
CourseName VARCHAR(20) NOT NULL,
TeaId INT(4)

);

CREATE TABLE tblScore(
StuId INT(4) NOT NULL PRIMARY KEY,
CourseId INT(4),
Score DECIMAL(20)

);

CREATE TABLE tblTeacher(
TeaId INT(4)NOT NULL PRIMARY KEY,
TeaName VARCHAR(20)

);

DROP TABLE tblTeacher;
建库建表

 

技术分享
INSERT INTO tblstudent VALUES(1,张三,50,),(2,李四,50,),(3,王五,50,);

INSERT INTO tblstudent VALUES(4,张小红,20,),(5,李小三,20,),(6,王小妞,20,);

INSERT INTO tblcourse VALUES(1,大学语文,2),(2,大学英语,1),(3,芭蕾舞,2);

INSERT INTO tblcourse VALUES(4,大学体育,1),(5,游泳,3),(6,马克思主义哲学,2);

DELETE FROM tblcourse;

INSERT INTO tblteacher VALUES(1,小葱拌豆腐),(2,微冷的雨),(3,帅的离谱);

DELETE FROM tblteacher;

INSERT INTO tblscore VALUES(1,1,100),(2,2,99),(3,3,98),(4,1,100),(5,2,99),(6,3,98);

INSERT INTO tblcourse VALUES(4,大学体育,1),(5,游泳,3),(6,马克思主义哲学,2);

INSERT INTO tblscore VALUES(1,1,100),(1,2,99),(1,3,92),(1,4,80),(1,5,99),(1,6,61);
INSERT INTO tblscore VALUES(2,1,87),(2,2,99),(2,3,60),(2,4,100),(1,5,60),(2,6,98);
INSERT INTO tblscore VALUES(3,1,98),(3,2,85),(3,3,66),(3,4,72),(1,5,99),(3,6,98);
INSERT INTO tblscore VALUES(4,1,77),(4,2,99),(4,3,98),(4,4,99),(1,5,62),(4,6,88);
INSERT INTO tblscore VALUES(5,1,66),(5,2,95),(5,3,94),(5,4,80),(1,5,99),(5,6,98);
INSERT INTO tblscore VALUES(6,1,100),(6,2,99),(6,3,98),(6,4,92),(1,5,85),(6,6,70);

DELETE FROM tblscore;

ALTER TABLE tblcourse MODIFY COLUMN CourseId INT(3) ZEROFILL;
插入数据

 

-- 1、查询“001”课程比 ”002“ 课程成绩高的所有学生的学号;
SELECT StuId FROM tblStudent s1 WHERE
(SELECT Score FROM tblScore t1 WHERE t1.`StuId`=s1.`StuId` AND t1.`CourseId`=001)
>(SELECT Score FROM tblScore t2 WHERE t2.stuId=s1.`StuId` AND t2.`CourseId`=002);

-- 2、查询平均成绩大于60分的同学的学号和平均成绩;
SELECT StuId,AVG(Score) AS AvgScore FROM tblScore
GROUP BY StuId
HAVING AVG(Score)>60;

-- 3、查询所有同学的学号、姓名、选课数、总成绩;
SELECT StuId,StuName,
SelCourses=(SELECT COUNT(CourseId) FROM tblscore t1 WHERE t1.StuId=s1.StuId),
SumScore=(SELECT SUM(Score) FROM tblscore t2 WHERE t2.StuId=S1.StuId)
FROM tblstudent s1;

-- 4、查询姓 ”李“ 的老师的个数;
SELECT COUNT(*) FROM tblTeacher WHERE TeaName LIKE ‘李%‘;

-- 5、查询没学过 ”叶平“ 老师课的同学的学号、姓名;
SELECT StuId,StuName FROM tblStudent
WHERE StuId NOT IN
(
SELECT StuId FROM tblScore sc
INNER JOIN tblCourse cu ON sc.`CourseId`=cu.`CourseId`
INNER JOIN tblTeacher tc ON cu.`TeaId`=tc.`TeaId`
WHERE tc.`TeaName`=‘叶平‘
);

mysql20170404代码实现

原文:http://www.cnblogs.com/xtdxs/p/6664265.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!