有一个“学生-课程”数据库,数据库中包括三个表:

2024-11-30 14:53:31
推荐回答(5个)
回答1:

1、创建“学生-课程”数据库:将数据文件和日志文件都存放在D盘自已学号的目录下。其中数据文件和日志文件初始大小都为1MB,自动增长率都为10%。

create database MyDB
on(
name='Student-SC',
filename='d:\自己学号\Student-SC.mdf',
size=1,filegrowth=10%)
log on
(name='Student-SClog',
filename='d:\自己学号\Student-SClog.ldf',
size=1,filegrowth=10%)
go

2、在“学生-课程”数据库创建“学生”表,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号设为主键约束,性别设置检查性约束。

use Student-SC
create table Student
(Sno char(5) primary key,
Sname varchar(20),
Ssex varchar(2),
Sage tinyint,
Sdept varchar(30),
check(Ssex in('男','女')))
go

3、查询“学生”表中全体学生的学号与姓名

select Sno,Sname from Student

4、查询年龄在20至23岁之间的学生的姓名、所在系和年龄

select Ssex,Sdept,Sage from Student where Sage between 20 and 23

5、 查所有姓刘的学生的姓名、学号和性别

select Sname,Sno,Ssex from Student where Sname like '刘%'

6、 查询“学生选课”表中成绩最高和成绩最低的记录,要求显示学号(Sno)、课程号(Cno)、成绩(Grade)三个属性

select Sno,Cno,Grade from SC group by Sno,Cno having max(Grade) or min(Grade)

7、使用内部联接查询并显示所有选修课程的同学的学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)、课程号(Cno)、成绩(Grade)属性

select SC.Sno,Student.Sname,Student.Ssex,Student.Sage,Student.Sdept,SC.Cno,SC.Grade from SC inner join Student on SC.Sno=Student.Sno

8、向“学生”表中插入如下记录:学号:’04160’、姓名:’王燕’、性别 :’女’、年龄:22、所在系: ’计算机科学系’

insert into Student values('04160','王燕','女',22,'计算机科学系')

9、将计算机科学系全体学生的成绩置零

update SC set Grade=0 where exists(select Sno,Sdept from Student where Student.Sno=SC.Sno and Student.Sdept='计算机科学系')

10、在“学生”表中,删除学号为’04160’同学的记录
delete from Student where Sno='04160'

回答2:

以oracle 为例:

1、create table student( Sno  number(10) primary key,    
                            Sname varchar2(20),    
                            Ssex varchar2(2),
                            Sage  number(10),
                            Sdept varchar2(20)
);
2、SELECT * FROM  student FROM Sdept='计算机' ORDER BY Sno DESC

3、SELECT DISTINCT student.Sno,student.Sname,student.Ssex 
   FROM student,Course,SC
   where student.Sno=SC.Sno AND Course.Cno=SC.Cno
   AND Course.Ccredit=5 AND SC.Grade > 60
   
4、create or  replace trigger my_trig
   after delete on student
   for each row
   begin
   delete from SC where Sno=:student.Sno;
   end;

回答3:

CREATE TABLE [课程]
(
Cno CHAR(4) PRIMARY KEY,
Cname VARCHAR(20),
Cpno VARCHAR(20),
Ccredit INT
)

CREATE TABLE [学生选课]
(
Sno CHAR(5),
Cno CHAR(4),
Grade INT

CONSTRAINT PK_Selectcourse PRIMARY KEY(Sno, Cno)
)

1、
CREATE DATABASE [学生-课程]
ON
( NAME = stud_course_dat,
FILENAME = 'D:\200101001\stud_course_dat.mdf',
SIZE = 1MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10% )
LOG ON
( NAME = stud_course_log,
FILENAME = 'D:\200101001\stud_course_log.ldf',
SIZE = 1MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10%
)

2、
CREATE TABLE [学生]
(
Sno CHAR(5),
Sname VARCHAR(20),
Ssex CHAR(2),
Sage INT,
Sdept VARCHAR(20)

CONSTRAINT PK_STUDENT PRIMARY KEY(Sno),
CONSTRAINT CHK_SEX CHECK(Ssex IN ('男','女'))
)

3、
SELECT Sno, Sname
FROM 学生

4、
SELECT Sno, Sdept, Sage
FROM 学生
WHERE Sage BETWEEN 20 AND 23

5、
SELECT Sname, Sno, Ssex
FROM 学生
WHERE Sname LIKE '刘%'

6、
SELECT Sno, Cno, MAX(Grade)
FROM 学生选课
GROUP BY Sno, Cno
UNION
SELECT Sno, Cno, MIN(Grade)
FROM 学生选课
GROUP BY Sno, Cno

7、
SELECT Sno, Sname, Ssex, Sage, Sdept, Cno, Grade
FROM 学生 S
JOIN 学生选课 SC
ON S.Sno = SC.Sno

8、
INSERT INTO 学生 VALUES('04160', '王燕', '女', 22, '计算机科学系')

9、
UPDATE 学生选课
SET Grade = 0
WHERE Sno = (SELECT Sno FROM 学生 WHERE Sdept = '计算机科学系')

10、
DELETE 学生
WHERE Sno = '04160'

回答4:

1.自己手动建吧!
2.select DISTINCT(Sno) from SG where Grade<60
3.update Student set Sage='22' where Sno='05001'
4.select cast(Grade) from Gourse where Cno=1
5.
CREATE PROCEDURE getDetailByName
@Sname NVARCHAR(10),
@intCount int ouput

AS
BEGIN
SELECT @intTotalCount=count(*) FROM Student WHERE Sname=@Sname
if @intCount =1
BEGIN
select * from Student where Sname=@Sname
END
ELSE
BEGIN
print '不存在此学生'
END
END
GO

6.select Sname,Ssex,Sage from where Ssex=N'男' and Sdept =N'计算机系' and Sname like '赵%'

7.

8.INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept) VALUES('05020','丁莉','女','17岁','计算机')

回答5:

用ACCESS处理