实验一
文章目录
前言
-
注:TIT的校友只需要运行二、1.2创建表格,三、1.建立索引,四、1.2插入表格信息。其他内容为做实验过程中扩充的知识点,可作为SQL学习使用
-
参考教材《数据库系统概论第五版》一、二、三为P82—P93,四、表格信息为P118内容
-
第六点为遗留问题,但不影响代码运行。解决后会回来修改
-
本篇主要介绍SQL语句,在SQL Server中也可以使用键鼠操作,我参考了这篇,很不错!《数据库实验》实验一:建立数据库和基本表结构_三桥君-CSDN博客
-
实验内容和要求
1.创建数据库和查看数据库属性。
2.创建表、确定表的主码。
3.查看和修改表结构。
4.具体内容:
(1)使用SQL语句按教材中的内容建立学生数据库。
(2)查看学生数据库的属性,并进行修改,使之符合要求。
(3)使用SQL语句,在建好的学生数据库中建立学生、课程、选课和系部4个表,其结构为;
学生(学号,姓名,年龄,性别,所在系)
课程(课程号,课程名,先行课,学分)
选课(学号,课程号,成绩)
系部(系号,系名称,系主任)
要求:
(1)建库、建表和建立表间联系。(表间联系通过外键实现,在属性关系中建)
(2)选择合适的数据类型。
(3)定义必要的主键和索引。
(4)使用SQL语句在上述4个表中尽可能的多输入些数据(每个表不能少于10条记录)。要求记录不仅满足数据约束要求,还要有表间关联的记录。
一、创建数据库和查看数据库属性
1.创建数据库
右击数据库,点击“新建数据库”,命名“学籍管理”
SQL语句:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
2.查看数据库属性
右击学籍管理,点击“属性”
SQL语句:
sp_helpdb 学籍管理 --使用数据库信息报告的系统过程
select *from sys.databases where name='学籍管理'
第一种信息更为全面
二、基本表
1.创建表、确定表的主码
1.1右击学籍管理新建
-
展开新建的数据库,右击“新建表”
右击列名可以修改其属性
1.2使用SQL语句创建
创建前先展开”学籍管理“数据库,或在CREATE TABLE前加一句”USE 学籍管理“表示新建表在学籍管理数据库中或下图(常用按键)
点击新建查询,写入代码,执行代码,右击刷新即可看到新建表格
- 学生(学号,姓名,年龄,性别,所在系)
CREATE TABLE Student(
Sno CHAR(9) PRIMARY KEY, /*列级完整性约束条件,Sno是主码*/
Sname CHAR(20) UNIQUE,/*Sname取唯一值*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
- 课程(课程号,课程名,先行课,学分)
CREATE TABLE Course(
Cno CHAR(4) PRIMARY KEY,/*列级完整性约束条件,Cno是主码*/
Cname CHAR(40) NOT NULL,/*列级完整性约束条件,Cname不能取空值*/
Cpno CHAR(4),
Ccredit SMALLINT,
--FOREIGN KEY(Cpno) REFERENCES Course(Cno)/*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/
);
- 选课(学号,课程号,成绩)
CREATE TABLE SC(
Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),/*主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY(Sno) REFERENCES Student(Sno),/*表级完整性约束条件,Sno是外码,被参照表是Student*/
FOREIGN KEY(Cno) REFERENCES Course(Cno)/*表级完整性约束条件,Cno是外码,被参照表是Course*/
);
- 系部(系号,系名称,系主任)
CREATE TABLE Dept(
Dno CHAR(10) PRIMARY KEY,
Dname CHAR(40),
Ddictor CHAR(20)
);
扩充:主键/主码 :primary key,一个表可能有多个,往往选中一个作为主键. 外键/外码 :foreign key,假设表A的某个属性attr是另一表B中的主码,且A和B有某种联系,则称attr是外码
2.查看基本表结构
查看Course表的结构
sp_help table_name
sp_help Course
sp_columns Student