以下是表的基本信息,请自行创建。
这里采取进阶的方式学习,每个问题都是步步深入,请在理解的基础上一步步往下做,如果觉得困难,可以先去做一下基础的练习,这里一并附上链接。
http://blog.csdn.net/qaz13177_58_/article/details/5575711/
https://wenku.baidu.com/view/9545bb62cc17552706220824.html
创建student:
CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME,CLASS VARCHAR(5));
向student表插入记录的INSERT语句如下:
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾华'
,'男' ,1977-09-01,95033);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,'匡明'
,'男' ,1975-10-02,95031);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,'王丽'
,'女' ,1976-01-23,95033);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,'李军'
,'男' ,1976-02-20,95033);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,'王芳'
,'女' ,1975-02-10,95031);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,'陆君'
,'男' ,1974-06-03,95031);
创建course:
CREATE TABLE COURSE (CNO VARCHAR(5) NOT NULL, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(10) NOT NULL);
向course表插入记录的INSERT语句如下:
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-105' ,'计算机导论',825)
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-245' ,'操作系统' ,804);
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('6-166' ,'数据电路' ,856);
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('9-888' ,'高等数学' ,100);
创建score:
CREATE TABLE SCORE (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL) ;
向score表插入记录的INSERT语句如下:
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-245',86);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-245',75);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-245',68);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-105',92);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-105',88);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-105',76);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'3-105',64);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'3-105',91);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'3-105',78);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'6-166',85);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'6-106',79);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'6-166',81);
创建teacher:
CREATE TABLE TEACHER (TNO VARCHAR(3) NOT NULL, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL, TBIRTHDAY DATETIME NOT NULL,PROF VARCHAR(6),DEPART VARCHAR(10) NOT NULL);
向teacher表插入记录的INSERT语句如下:INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)
VALUES (804,'李诚','男','1958-12-02','副教授','计算机系');
INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)
VALUES (856,'张旭','男','1969-03-12','讲师','电子工程系');
INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)
VALUES (825,'王萍','女','1972-05-05','助教','计算机系');
INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)
VALUES (831,'刘冰','女','1977-08-14','助教','电子工程系');
学习知识点:
SELECT DISTINCT 列名 FROM 表名;(查询表中所选类的不同的值)
SELECT 表名FROM 列名WHERE 表名 IN (值1,值2,...);(选取多个值)
SELECT 列名FROM 表名WHERE 列名BETWEEN 值1 AND 值2;(选取介于两个值之间的数据范围)
题目:
1、查询Score表中成绩为85,86或88的记录。
2.1、查询成绩介于60—80的记录;
2.2、从高到低查询成绩介于60—80的记录;
2.3、从高到底查询成绩介于60-80的同学的名字及对应科目;
3、查询所有学生的Sno、Cname和Degree列;
4、查询“95033”班所选课程的平均分;
5、查询和“李军”同性别并同班的同学;
(往下是答案)
答案:
1、SELECT * FROM score WHERE degree IN (85,86,88);
2.1、SELECT * FROM SCORE WHERE DEGREE BETWEEN 60 AND 80;
2.2、SELECT * FROM SCORE WHERE DEGREE BETWEEN 60 AND 80 ORDER BY DEGREE DESC;
2.3、SELECT sname,cname,degree FROM course,score,student
WHERE score.sno = student.sno AND score.cno = course.cno AND DEGREE BETWEEN 60 AND 80 ORDER BY DEGREE DESC;
3、SELECT sname, score.cno, degree FROM course, score, student
WHERE score.sno = student.Sno AND score.cno = course.cno;
4、SELECT sname,score.CNO,avg(score.DEGREE) FROM student,score,course
WHERE student.SNO=SCORE.sno AND CLASS='95033' GROUP BY score.CNO;
5、SELECT sname FROM student WHERE ssex=(SELECT ssex FROM student WHERE sname='李军') AND class=(SELECT class FROM student WHERE sname='李军');