数据库、数据库表和数据的操作
一、实验目的
掌握创建数据库和数据表,以及对表结构进行修改,创建索引和视图,并对视图中的数据进行增删改操作。
二、实验知识要点
了解和掌握实验相关知识点:
数据操作、录入数据至数据表、插入数据SQL语句语法、修改数据SQL语句语法、删除数据SQL语句语法。
三、实验内容
创建一个名为:jiaoxue的数据库,在该库下创建如下的各表以及视图等数据库对象。
STUDENT表
| 学 号 | 姓 名 | 性 别 | 年 龄 | 所 在 系 |
|---|---|---|---|---|
| Sno | Sname | Ssex | Sage | Sdept |
| 200215121 | 李勇 | 男 | 20 | CS |
| 200215122 | 刘晨 | 女 | 19 | CS |
| 200215123 | 王敏 | 女 | 18 | MA |
| 200515125 | 张立 | 男 | 19 | IS |
| COURSE表 | ||||
| 课程号 | 课程名 | 先行课 | 学分 | |
| --------------------------- | --------------- | -------------- | ------------ | |
| Cno | Cname | Cpno | Ccredit | |
| 1 | 数据库 | 5 | 4 | |
| 2 | 数学 | 1 | 2 | |
| 3 | 信息系统 | 6 | 4 | |
| 4 | 操作系统 | 7 | 3 | |
| 5 | 数据结构 | 6 | 4 | |
| 6 | 数据处理 | 2 | ||
| 7 | PASCAL语言 | 4 | ||
| SC表 | ||||
| 学号 | 课程号 | 成绩 | ||
| --------------------------- | --------------- | -------------- | ||
| Sno | Cno | Grade | ||
| 200215121 | 1 | 92 | ||
| 200215121 | 2 | 85 | ||
| 200215121 | 3 | 88 | ||
| 200215122 | 2 | 90 | ||
| 200215122 | 3 | 80 |
四、实验操作及过程
--创建jioaxue数据库
create database jiaoxue
use jiaoxue
--创建student表
create table student (sno char(9) primary key,sname char(20) unique,ssex char(2),sage smallint,sdept char(20))
alter table student drop column s_score
select * from student
--创建course表
create table course (cno char(9) primary key,cname char(20),cpno char(9),ccredit smallint,foreign key (cpno) references course(cno))
--alter table course alter column ccreait ccredit
--alter table course change ccreait ccredit char
select * from course
--创建SC表
create table sc (sno char(9) ,cno char(9),grade smallint,primary key(sno,cno),foreign key (sno) references student(sno),foreign key (cno) references course(cno))
select * from sc
--插入student表中相应数据
insert into student values('201215121','李勇','男',20,'CS')
insert into student values('201215122','刘晨','女',19,'CS')
insert into student values('201215123','王敏','女',18,'MA')
insert into student values('201215125','张立','男',19,'IS')
select * from student
--插入course表中相应数据
insert into course values('1','数据库',5,4)
insert into course values('2','数学',null,2)
insert into course values('3','信息系统',1,4)
insert into course values('4','操作系统',6,3)
insert into course values('5','数据结构',7,2)
insert into course values('6','数据处理',null,2)
insert into course values('7','PASCAL语言',6,4)
select * from course
--插入SC表中相应数据
insert into sc(sno,cno,grade) values('201215121','1',92)
insert into sc(sno,cno,grade) values('201215121','2',85)
insert into sc(sno,cno,grade) values('201215121','3',88)
insert into sc(sno,cno,grade) values('201215122','2',90)
insert into sc(sno,cno,grade) values('201215122','3',80)
补充
- 向STUDENT表增加“入学成绩列”


- 定义三张表的主码






- 定义SC表中的参照完整性(删除、更新级联)



- STUDENT表的SSEX只允许取“男”或“女”,年龄小于30


- SC表的GRADE的值应该在0-100之间


- 去掉第6题中的性别的限制



7. 修改表STUDENT的约束条件,年龄由小于30改为14——40之间


8. 为STUDNT表按学号升序建立唯一索引,为COURSE表按课程号升序建立唯一索引,为SC表按学号升序和课程号降序建立唯一索引




9. 建立信息系学生的视图


10. 建立信息系选修了1号课程的学生的视图


11. 建立信息系选修1号课程且成绩在90分以上的学生的视图


12. 所有女生记录定义为一个视图




五、实验小结
实验中遇到的问题:第四题中单独第一主码的时候
没指定表中的列名唯一时老是报错,之后发现必须要加以下语句指定表中该列名唯一。在STUDENT表和SC表中也是同样的道理
alter table course alter column cno char(9) not null
从第九道题建视图的时候,总是会出现CREATE VIEW 必须是批处理中仅有的语句的报错,经过上网查询,发现CREATE VIEW 语句执行时有一个条件,即该语句必须是第一个被执行的但在其前方有多个语句因此在CREATE VIEW 语句的上方和下方加一个GO指令即可。
实验心得:做完此次实验后明确了在SQL server怎样创建表,插入数据,以及加相应的约束和相关的简单查询等。
本文介绍了一个具体的SQL数据库操作实例,包括创建数据库、表结构、数据插入及修改等基本操作,并详细展示了如何设置表间关系、定义索引以及创建视图等进阶技巧。
1989

被折叠的 条评论
为什么被折叠?



