《數(shù)據(jù)庫上機實驗報告sql數(shù)據(jù)庫實驗報告》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫上機實驗報告sql數(shù)據(jù)庫實驗報告(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫上機實驗報告sql數(shù)據(jù)庫實驗報告
數(shù)據(jù)庫上機實驗報告
試驗內(nèi)容
1、 數(shù)據(jù)表的建立
基本表《簡單的》帶有主鍵
帶有外碼約束的(外碼來自其他表或者本表)
2、 數(shù)據(jù)表的修改
添加刪除列
修改列屬性類型
添加刪除約束(約束名)
元組的添加,修改,刪除
刪除數(shù)據(jù)表
試驗過程
1、create table student
(
sno char(9) primary key , /*sno是主碼 列級完整性約束條件*/
sname char(20) unique, /*sname取唯一值*/
ssex char(2),
sage small
2、int, /*類型為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*/
);
creat
3、e table sc
(
sno char(9),
cno char(4),
grade smallint,
primary key (sno,cno),
/*主碼有兩個屬性構(gòu)成,必須作為表級完整性進(jìn)行定義*/
foreign key (sno) references student(sno),
/*表級完整性約束條件,sno是外碼,被參照表是student*/
foreign key (cno) references course(cno),
/*表級完整性約束條件,cno是外碼,被參照表示course*/
);
例1、create table s
(
cno v
4、archar(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), /*約束條件的名字是p
5、k_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, /*數(shù)量*/
constraint pk_spj primary key(sno,pno,jno)
6、, /*主碼由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、數(shù)據(jù)表的更改
在s表中添加一個concat 列
alter table s add concat varchar(20)
在s表中刪除concat 列
7、
alter table s drop column concat
更改s表 concat列的屬性 把長度由20改為30
alter table s alter column concat varchar(30)
聯(lián)系方式 名字為concat 修改屬性為唯一的 屬性名為con_concat
alter table s add constraint con_concat unique(concat)
刪除約束關(guān)系con_concat
alter table s drop constraint con_concat
/*插入一個元組*/
insert into s valus(‘s
8、1’,’精益’,20,’天津’) /*20不能寫成’20’*/
試驗中的問題的排除與總結(jié):
1、在創(chuàng)建spj時
有三個實體所以從3個實體中取主碼,還有一個數(shù)量屬性也要寫上
主碼由那3個主碼確定
2、更改一個數(shù)據(jù)庫中數(shù)據(jù)表時一定要先使該數(shù)據(jù)庫處于正在使用狀態(tài)
3、constraint
是可選關(guān)鍵字,表示 primary key、not null、unique、foreign key 或 check 約束定義的開始。約束是特殊屬性,用于強制數(shù)據(jù)完整性并可以為表及其列創(chuàng)建索引。
4、--go可以不加但是要注意順序 注:go --注釋 提示錯誤
5、注意添加一個空元素用 n
9、ull
附 sql備份
--創(chuàng)建一個數(shù)據(jù)庫 student
create database student
go
--在數(shù)據(jù)庫student中創(chuàng)建表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) /*所在系*/ ); /*;要加*/ -----------
第 7 頁 共 7 頁