CREATE
TABLE
学生表
(学号
VARCHAR(12)
NOT
NULL,
姓名
VARCHAR(20)
NOT
NULL,
性别
VARCHAR(10)
NOT
NULL,
年龄
INT
CHECK(年龄>=0
AND
年龄<=120),
所在系
VARCHAR(20)
NOT
NULL,
PRIMARY
KEY
(学号)
)
CREATE
TABLE
课程表
(课程号
VARCHAR(12)
NOT
NULL,
课程名
VARCHAR(20)
NOT
NULL,
先修课号
VARCHAR(20)
NOT
NULL,
学分
INT
CHECK(学分>0
AND
学分<=20),
PRIMARY
KEY
(课程号)
)
CREATE
TABLE
成绩表
(学号
VARCHAR(12)
NOT
NULL,
课程号
VARCHAR(12)
NOT
NULL,
成绩
REAL
CHECK(成绩>=0
AND
成绩<=100),
PRIMARY
KEY
(学号,课程号),
FOREIGN
KEY
(学号)
REFERENCES
学生表
(学号),
FOREIGN
KEY
(课程号)
REFERENCES
课程表(课程号)
)
1
SELECT
FROM STUDENT
WHERE SDEPT='信息系' AND SSEX='女' AND SAGE<=21
2
SELECT SNAME
FROM STUDENT W
WHERE EXISTS(SELECT
FROM STUDENT
WHERE SNAME='wang' AND WSNO>SNO AND WSAGE<SAGE)
3
SELECT SNAME,SAGE
FROM STUDENT
WHERE SSEX='男'AND SAGE>(SELECT SAGE
FROM STUDENT
WHERE SSEX='女')
4
SELECT CNAME,COUNT()
FROM COURSE JOIN SCG ON COURSECNO=SCGCNO
GROUP BY CNAME
5
SELECT CNO,COUNT() 人数
FROM SCG
GROUP BY CNO
HAVING COUNT()>10
ORDER BY 2 DESC,1
6
DELETE FROM SCG WHERE SNO=(SELECT SNO FROM STUDENT WHERE SNAME='WANG')
7
INSERT INTO STUDENT VALUES('200200146','王飞','男',20,'信息系')
8
UPDATE SCG SET GRADE=GRADE105
WHERE CNO=3' AND GRADE<=75
9
SELECT
INTO Student_bak
FROM STUDENT
1.查询所有学生的学号、姓名、所在系
Select sno,sname,sdept
From student
2查询全体学生的学号、姓名、性别,年龄,系别的信息
Select
From student
3查询全体学生的姓名及其出生年份
Select sname,datadiff(year,sage,2010) as 出生年份
From student
4查询信息工程系全体学生的名单
Select sname
From student
Where sdept=’信息工程系’
5查询所有年龄在20岁以下的学生姓名以及年龄
Select sname,sage
From student
Where sage<20
6查询考试成绩不及格的学生的学号
Select sno
From score
Where grade<60
7查询年龄在20-25(包括20、25)之间的学生的姓名、系别和年龄
Select sname,sdept,sage
From student
Where sage>=20 and sage<=25
8查询不在软件系、网络系、也不在外语系学生的姓名和性别
select sname,sex
from student
where sdept <>'软件系、网络系、外语系'
9查询所有姓李且全名为三个汉字的学生的姓名、学号、和性别
select sname,sno,sex
from student
where sname like '李_ _'
10查询姓名中第二个字为'阳'字的学生的姓名
select sname
from student
where sname like '_阳%'
11查询信息工程系年龄在20岁以下的学生的姓名
select sname
from student
where sage<20 and sdept='信息工程系'
12查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
select sno,grade
from score
where cno='3'
order by grade desc
13查询全体学生的学号、姓名等情况,结果按照所在系的升序排序,同一系的按年龄降序排列
select sno,sname
from student
order by sdept asc,sage desc
14统计学生总人数
select count() as 人数
from student
15查询选修课课程的学生人数
select count() as 人数
from score
16计算1号课程的学生平均分数
select avg(grade) 均分
from score
where cno='1'
17查询选修了1号课程的学生最高分数
select max(grade) 最高分
from score
where cno='1'
18求各课程号及相应的选修课人数
select cno,distinct(sno)
from score
group by cno
19查询选修了3门以上课程的学生号
select sno
from score
group by sno
having count(cno)>3
20查询选修2学分的课程且该课程的成绩在90分以上的所有学生的姓名
select sname
from student,course,score
where studentsno=scoresno and coursecno=scorecno and ccredit=2 and grade>90
21查询每个学生的学号、姓名、选修的课程号和成绩
select studentsno,sname,cno,grade
from student,score,course
where studentsno=scoresno and scorecno=coursecno
22查询所有选修了1号课程的学生姓名
select sname
from student,score
where studentsno=scoresno and scorecno='1'
23查询选修了课程名为“计算机信息管理”的学生的学号和姓名
select sno,sname
from student,course,score
where studentsno=scoresno and coursecno=scorecno
and cname='计算机信息管理'
希望能给你帮助
您好,这样:
--1
select Sname,Sage from Student where Sage<(select Sage from Student where Sno='某一学生') and Sdept='数学系'
--2
select Sname from Student where Sno in (select Sno from SC)
--3
select Sname from Student where Sno in (select Sno from SC group by Sno having count()=(select count() from Course ))
--4
题意不清楚。
SELECT语句的基本形式为
SELECT
[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>···]
FROM
<表名或视图名>[,<表名或视图名>···]
[WHERE
<条件表达式>]
语句的功能是根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句中的目标列,选出元组中的目标列形成结果表。
SQL语句对数据库的 *** 作十分灵活方便,原因在于SELECT语句中的成分丰富多样,有许多可选形式,尤其是目标列和目标表达式,下面用例子来详细说明,例子涉及的是"学生-课程"数据库,其关系模式集如下:
学生信息表Student(SNO,SNAME,SSEX,SBIRTHDAY
CLASS)
教师信息表Teacher(TNO,TNAME,TSEX,TBIRTHDAY,DEPART)
课程信息表Course(CNO,CNAME,TNO)
成绩表Grade(SNO,CNO,DEGREE)
例题:查询Student表所有学生信息。
SELECT
FROM
Student;/选择 *** 作/
例题:查询Student表中所有学生的学号和姓名。
SELECT
SNO,SNAME
FROM
Student;/投影 *** 作/
例题:查询Grade表中成绩在60到80之间的所有记录。
SELECT
FROM
Grade
WHERE
degree
BETWEEN
60
AND
80;/选择 *** 作/
例题:查询Grade表中成绩为85、86、88的记录。
SELECT
FROM
Grade
WHERE
degree
IN(85,86,88);/选择 *** 作/
例题:查询所有学生的SNAME,CNAME和DEGREE。
SELECT
StudentSNAME,CourseCNAME,GradeDEGREE
FROM
Student,Course,Grade
WHERE
StudentSNO
=
GradeSNO,GradeCNO
=
CourseCNO;/连接 *** 作/
例题:查询"张旭"教师任课的学生成绩。
SELECT
CNO,SNO,DEGREE
FROM
Grade
WHERE
CNO=(SELECT
CourseCNO
FROM
Course,Teacher
WHERE
CourseTNO=TeacherTNO
and
TeacherTNAME="张旭")
此查询 *** 作为嵌套查询。子查询在上一级查询处理之前求解,即嵌套查询是从里向外处理的,这样,外层查询可以利用内层查询的结果,在此例中首先执行子查询:
SELECT
CourseCNO
FROM
Course,Teacher
WHERE
CourseTNO=TeacherTNO
and
TeacherTNAME="张旭"
获得张旭老师讲授课程的课程号(801003),然后执行外查询:
SELECT
CNO,SNO,DEGREE
FROM
Grade
WHERE
CNO="801003"
获得"张旭"教师任课的学生成绩。
以上就是关于有一个“学生课程”数据库,数据库中包括三个表:全部的内容,包括:有一个“学生课程”数据库,数据库中包括三个表:、麻烦做一下sql题,直接写出sql就可以了,很简单的。、设有一个学生—课程数据库,其中包括三个表:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)