数据库、数据表和数据的操作

数据库、数据库表和数据的操作

一、实验目的

掌握创建数据库和数据表,以及对表结构进行修改,创建索引和视图,并对视图中的数据进行增删改操作。

二、实验知识要点

了解和掌握实验相关知识点:
数据操作、录入数据至数据表、插入数据SQL语句语法、修改数据SQL语句语法、删除数据SQL语句语法。

三、实验内容

创建一个名为:jiaoxue的数据库,在该库下创建如下的各表以及视图等数据库对象。
STUDENT表

学 号姓 名性 别年 龄所 在 系
SnoSnameSsexSageSdept
200215121李勇20CS
200215122刘晨19CS
200215123王敏18MA
200515125张立19IS
COURSE表
课程号课程名先行课学分
--------------------------------------------------------------------
CnoCnameCpnoCcredit
1数据库54
2数学12
3信息系统64
4操作系统73
5数据结构64
6数据处理2
7PASCAL语言4
SC表
学号课程号成绩
--------------------------------------------------------
SnoCnoGrade
200215121192
200215121285
200215121388
200215122290
200215122380

四、实验操作及过程

--创建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)

补充

  1. 向STUDENT表增加“入学成绩列”
    在这里插入图片描述在这里插入图片描述
  2. 定义三张表的主码
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 定义SC表中的参照完整性(删除、更新级联)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. STUDENT表的SSEX只允许取“男”或“女”,年龄小于30
    在这里插入图片描述
    在这里插入图片描述
  5. SC表的GRADE的值应该在0-100之间
    在这里插入图片描述
    在这里插入图片描述
  6. 去掉第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怎样创建表,插入数据,以及加相应的约束和相关的简单查询等。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三毛是she

感谢打赏,我会继续努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值