学生档案表(表名XSDA)结构
字段名 | 类型 | 长度 | 是否允许为空值 | 说明 |
学号 | char | 6 | Not null | 主键 |
姓名 | char | 8 | Not null | |
性别 | char | 2 | Not null | |
系名 | char | 10 | null | |
出生日期 | smalldatetime | null | ||
民族 | char | 4 | null | |
身高 | decimal | 3,2 | null | |
总学分 | tinyint | null | ||
备注 | Text | null |
课程信息表(表名KCXX)结构
字段名 | 类型 | 长度 | 是否允许为空值 | 说明 |
学号 | char | 6 | Not null | 主键 |
姓名 | char | 8 | Not null | |
性别 | char | 2 | Not null | |
系名 | char | 10 | null | |
出生日期 | smalldatetime | null | ||
民族 | char | 4 | null | |
身高 | decimal | 3,2 | null | |
总学分 | tinyint | null | ||
备注 | Text | null |
学生成绩表(表名XSCJ)结构
字段名 | 类型 | 长度 | 是否允许为空值 | 说明 |
学号 | char | 6 | Not null | |
课程编号 | char | 3 | Not null | |
成绩 | tinyint | null |
创建3个表。 (创建顺序、主外键)
create table XSDA(
学号 char(6) not null primary key,
姓名 char(8),
性别 char(2),
系名 char(10),
出生日期 smalldatetime,
民族 char(4),
身高 decimal(3,2),
总学分 tinyint,
备注 varchar(50)
)
create table KCXX(
课程编号 char(3) not null primary key,
课程名称 char(20),
开学学期 tinyint,
学时 tinyint,
学分 tinyint
)
create table XSCJ(
学号 char(6) not null,
课程编号 char(3) not null,
成绩 numeric(4,1),
primary key(学号,课程信息),
foreign key(学号) references xsda(学号),
foreign key(课程编号) REFERENCES kcxx(课程编号)
)
1、输入(insert)数据
INSERT INTO XSDA(学号,姓名,性别,系名,出生日期,民族,身高,总学分,备注)
VALUES('200501','王红','女','信息',1986-02-14,'汉',1.70,60,null),
('200502','刘林','男','信息',1986-05-20,'汉',2.50,54,null),
('200503','曹红雷','男','信息',1986-09-24,'汉',1.98,50,null)
INSERT INTO KCXX(课程编号,课程名称 ,开学学期,学时 ,学分)
VALUES(104,'计算机文化基础',1,60,3),
(108,'C语言程序设计',2,96,5),
(202,'数据结构',3,72,4),
(207,'数据库信息管理系统',4,72,4)
INSERT INTO XSCJ(学号,课程编号,成绩)
VALUES('200501',104,81),
('200501',108,77),
('200501',202,89),
('200501',207,90),
('200502',104,92),
('200502',108,95),
('200502',202,93),
('200502',207,90),
('200503',104,65),
('200503',108,60),
('200503',202,69),
('200503',207,73)
2、新增加一门课程:课程编号、课程名称、开课学期依次为506、网站开发、5。
INSERT KCXX(课程编号,课程名称,开课学期)
VALUES(506,'网站开发',5)
3、修改课程506的编号为507。
UPDATE KCXX
SET cid=507
WHERE cid=506
4、新增一条成绩信息:200501、507、90。
INSERT INTO XSCJ
VALUES('200501',507,90)
5、修改课程507的学分为4、学时为64。
UPDATE KCXX
SET xueshi=64 , xuefen=4
WHERE cid=507
6、修改KCXX表中课程507的编号为506。
alter table XSCJ
drop constraint FK_XSCJ_KCXX
UPDATE KCXX
SET cid=506
WHERE cid=507
7、修改XSCJ表中课程507的编号为506。
UPDATE xscj
SET cid=506
WHERE cid=507
8、检索男生成绩信息并存入新表XSCJ_Boys中。
select 学号,姓名,课程编号,课程名称,成绩
INTO XSCJ_Boys
from kcxx,xsda,xscj
where xsda.学号=xscj.学号 and kcxx.课程编号=xscj.课程编号
9、删除200502学生的学生信息
alter table XSCJ
drop constraint FK_XSCJ_KCXX
delete from xsda
where stuid='200502'
10、删除200502学生的成绩信息。
delete from xscj
where stuid='200502'
11.同时删除'200501'学生的学生信息和成绩
--级联
alter table XSCJ
drop constraint FK_XSCJ_KCXX
alter table XSCJ
add constraint FK_XSCJ_KCXX123
foreign key(课程编号) references
kcxx(课程编号) on update cascade on delete cascade