當前位置

首頁 > 教育範文 > 工作報告 > 資料庫上機實驗報告 實驗報告

資料庫上機實驗報告 實驗報告

推薦人: 來源: 閱讀: 1.19W 次
資料庫上機實驗報告 實驗報告

資料庫上機實驗報告


試驗內容

1、 資料表的建立

基本表《簡單的》帶有主鍵

帶有外碼約束的(外碼來自其他表或者本表)

2、 資料表的修改

新增刪除列

修改列屬性型別

新增刪除約束(約束名)

元組的新增,修改,刪除

刪除資料表


試驗過程

1、create table student

(

sno char(9) primary key , /*sno是主碼 列級完整性約束條件*/

sname char(20) unique, /*sname取唯一值*/

ssex char(2),

sage smallint, /*型別為smallint*/

sdept char(20) /*所在系*/

);

create table course

(

cno char(4) primary key, /*列級完整性約束條件,cno是主碼*/

cname char(40),

cpno char(4), /*cpno的含義是先行課*/

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*/

);

例1、create table s

(

cno varchar(3), /*變長的字串,輸入2個字元就是兩個字元不會補空格*/

sname varchar(20),

status int,

city varchar(20),

constraint pk_sno primary key(sno), /*約束條件的名字為pk_sno*/

);

create table p

(

pno varchar(3),

pname varchar(20),

color varchar(3),

weight int,

constraint pk_pno primary key (pno), /*約束條件的名字是pk_pno*/

);

create table j

(

jno varchar(3),

jname varchar(20),

city varchar(20),

constraint pk_jno primary key(jno) /*約束條件的名字為pk_jno*/

);

例2、create table spj

(

sno varchar(3), /*第一個表中的主碼*/

pno varchar(3),

jno varchar(3),

qty int, /*數量*/

constraint pk_spj primary key(sno,pno,jno), /*主碼由3個屬性組成*/

foreign key(sno) references s(sno),

/*表級完整性約束條件,sno是外碼,被參照表是s*/

foreign key(pno) references p(pno),

/*表級完整性約束條件,pno是外碼,被參照表是p*/

foreign key(jno) references j(jno),

/*表級完整性約束條件,jno是外碼,被參照表是j*/


);

2、資料表的更改

在s表中新增一個concat 列

alter table s add concat varchar(20)

在s表中刪除concat 列

alter table s drop column concat

更改s表 concat列的屬性 把長度由20改為30

alter table s alter column concat varchar(30)

聯絡方式 名字為concat 修改屬性為唯一的 屬性名為con_concat

alter table s add constraint con_concat unique(concat)

刪除約束關係con_concat

alter table s drop constraint con_concat


/*插入一個元組*/


insert into s valus(‘s1’,’精益’,20,’天津’) /*20不能寫成’20’*/

試驗中的問題的排除與總結:

1、在建立spj時

有三個實體所以從3個實體中取主碼,還有一個數量屬性也要寫上

主碼由那3個主碼確定

2、更改一個數據庫中資料表時一定要先使該資料庫處於正在使用狀態

3、constraint

是可選關鍵字,表示 primary key、not null、unique、foreign key 或 check 約束定義的開始。約束是特殊屬性,用於強制資料完整性並可以為表及其列建立索引。

4、--go可以不加但是要注意順序 注:go --註釋 提示錯誤

5、注意新增一個空元素用 null

附 sql備份


--建立一個數據庫 student

create database student

go

--在資料庫student中建立表student course sc 注意順序

use student
----------------------------------------------------------------
create table student
(
sno char(9) primary key, /*sno是主碼 列級完整性約束條件*/
sname char(10) unique, /*sname取唯一值*/
ssex char(2),
sage smallint, /*型別為smallint*/
sdept char(20) /*所在系*/
); /*;要加*/
-----------
1 2