數(shù)據(jù)庫上機實驗報告sql數(shù)據(jù)庫實驗報告
數(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 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),/*主碼有兩個屬性構(gòu)成,必須作為表級完整性進行定義*/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, /*數(shù)量*/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、數(shù)據(jù)表的更改在s表中添加一個concat 列alter table s add concat varchar(20)在s表中刪除concat 列alter table s drop column concat更改s表 concat列的屬性 把長度由20改為30alter table s alter column concat varchar(30)聯(lián)系方式 名字為concat 修改屬性為唯一的 屬性名為con_concatalter table s add constraint con_concat unique(concat)刪除約束關(guān)系con_concatalter table s drop constraint con_concat/*插入一個元組*/insert into s valus(s1,精益,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、注意添加一個空元素用 null附 sql備份-創(chuàng)建一個數(shù)據(jù)庫 studentcreate database studentgo-在數(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 頁