--一.對錶的基本操作:--建立表book1create table book1(編號 char(8) not null,IBSN char(13) not null,書名 nvarchar(255),定價 money,出版社 nvarchar(255),出版日期 datetime)create table book2(編號 char(8) not null,IBSN char(13) not null,書名 nvarchar(255),定價 money,出版社 nvarchar(255),出版日期 datetime)create table teacher(作者編號 char(4) default '001', 作者姓名 nvarchar(200) not null,性別 char(2) not null default '男',職稱 char(20),聯絡電話 char(10),編號 char(8) not null)create table booking(編號 char(8) not null,IBSN char(13))--查看錶結構exec sp_help book1 --表中增加一列use bookalter table book1add 作者 varchar null--刪除一列alter table book1drop column 作者--修改列資料類型alter table book1alter column 定價 smallmoney--查看錶內容select * from book1--表中插入資料insert into book1 values ('101172','172','sql資料庫',35,'中山大學','03-13-2008')--完整表結構插入insert into book1(編號,IBSN,書名) values('101186','186','JAVA程式設計')--表中部分列插入--修改表內容 update book1 set 書名='JSP動態網頁製件技術' where IBSN='186' --刪除表內容 delete from book1 where IBSN='186' --刪除表所有內容delete book1delete from book1--刪除表drop table book1--二.約束條件 --1,CHECK --增加約束條件 alter table teacher add constraint ch_teacher check(性別='男' or 性別='女') /*此時,插入的性別不是男或者女,則會報如下錯 訊息 547,層級 16,狀態 0,第 2 行INSERT 語句與 CHECK 條件約束"ch_teacher"衝突。該衝突發生於資料庫"book",表"dbo.teacher", column '性別'。語句已終止。*/insert into teacher(作者姓名,性別,編號) values('22','ds','2') --刪除約束條件 alter table teacher drop constraint ch_teacher --刪除約束後,則可以正常插入 insert into teacher(作者姓名,性別,編號) values('22','ds','2') --2.DEFAULT --增加約束 alter table teacher add constraint de_性別 default '男' for 性別 --刪除約束 alter table teacher drop constraint de_性別 --3,primary key --增加約束 alter table teacher add constraint pri_作者編號 primary key clustered(作者編號) /*訊息 8111,層級 16,狀態 1,第 2 行無法在表 'teacher' 中可為 Null 的列上定義 PRIMARY KEY 約束。訊息 1750,層級 16,狀態 0,第 2 行無法建立約束。請參閱前面的錯誤訊息。查看錶結構,可發現作者編號允許為NULL,不能作為PRIMARY KEY,修改如下:*/--增加約束 alter table teacher add constraint pri_編號 primary key clustered(編號) --刪除約束 alter table teacher drop constraint pri_編號 --4,foreign key --為booking建立外鍵,主鍵在book1 alter table booking add constraint for_編號 foreign key(編號) references book1(編號) /* 報錯如下: 訊息 1776,層級 16,狀態 0,第 2 行在被參考資料表 'book1' 中沒有與外鍵 'for_編號' 中的引用列列表匹配的主鍵或候選索引鍵。訊息 1750,層級 16,狀態 0,第 2 行無法建立約束。請參閱前面的錯誤訊息。因為在book1表中"編號"並未設定主鍵約束,則先設定如下*/alter table book1add constraint pri_編號 primary key clustered(編號)--再設定foreign key如下: alter table booking add constraint for_編號 foreign key(編號) references book1(編號) exec sp_help booking
複習教材:SQL.Server.2005.資料庫基礎及應用技術教程與實訓.周奇.pdf )