SQL學(xué)習(xí)之使用命令方式創(chuàng)建、刪除與修改關(guān)系表

首先,先介紹用命令方式創(chuàng)建、刪除和修改關(guān)系表,

創(chuàng)新互聯(lián)公司主營朔城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),朔城h5重慶小程序開發(fā)搭建,朔城網(wǎng)站營銷推廣歡迎朔城等地區(qū)企業(yè)咨詢

(1)、創(chuàng)建表

基本格式:create table表名

      (

      列名 數(shù)據(jù)類型 列級完整性約束,列名 數(shù)據(jù)類型 列級完整性約束(如果有多個(gè)列,注意要用      英文式的逗號隔開)

      ,表級完整性約束(表級完整性約束和列級完整性約束之間也要用逗號分隔開)

      )

列級完整性約束有:
not null限制列取值為空
default指定列的默認(rèn)值
unique定義列取值不能重復(fù)
check定義列的取值范圍(check是定義的多列之間的取值約束,只能在表級完整性約束)處定義
primary key定義主碼約束
foreign key定義外碼約束
表級完整性約束:
unique定義列取值不能重復(fù)
check定義列的取值范圍(check是定義的多列之間的取值約束,只能在表級完整性約束)處定義
primary key定義主碼約束
foreign key定義外碼約束

知道呢有哪些約束,那么,怎么定義完整性約束呢?他們的格式是什么呢?

主碼約束:primary key (列名,列名,列名......)

外碼約束:foreign key (列名) references 外表名 (外表列名)

unique約束:列名 數(shù)據(jù)類型 unique (列名,列名......)

default約束:列名 default 默認(rèn)值

check約束:check 邏輯表達(dá)式(邏輯表達(dá)式中不能包含來自多個(gè)表的列)

(2)、修改表:

基本格式: alter table表名

       alter column 列名 新的數(shù)據(jù)類型     (修改列的定義)

       add 列名 數(shù)據(jù)類型 約束         (增加新的列)

       drop column 列名              (刪除列)

       add 約束定義                 (添加約束)

       drop 約束名                  (刪除約束)

注意:不同的DBMS的alter table語句格式都不同,在這里以SQL2014為例     

(3)、刪除表:

基本格式: drop table表名

注意:如果被刪除的表中有其他表對他的外碼引用約束,則必須先刪除外碼所在的表,然后再刪除被引     用碼所在的表


實(shí)例說明:(1)創(chuàng)建3張表,學(xué)生表(student)、課程表(course)和學(xué)生選課表(sc)

學(xué)生表(student)

列名含義數(shù)據(jù)類型約束
Sno學(xué)號char(11)主碼
Sname姓名nchar(4)非空
Snumber×××號char(18)取值不重
Ssex性別nchar(1)默認(rèn)值為'男'
Sage年齡tinyint取值范圍為15—45
Sdept所在系nvarchar(20)

創(chuàng)建student表代碼:

use student

create table student

(

Sno char(11) primary key,

Sname nchar(4) not null,

Snumber char(18) unique,

Ssex nchar(1) default '男',

Sage tinyint check(sage >= 15  and sage <= 45),

Sdept nvarchar(20)

)

課程表(course)

列名含義數(shù)據(jù)類型約束
Cno課程號char(6)主碼
Cname課程名nvarchar(20)非空
Credit學(xué)分numeric(3,1)大于0
Semester學(xué)期tinyint


創(chuàng)建course表代碼:

use student

create table course

(

Cno char(6) primary key,

Cname nvarchar(20) not null,

Credit numeric(3,1) check(Credit > 0),

Semeter tinyint

)


選課表(sc)

列名含義數(shù)據(jù)類型約束
Sno學(xué)號char(11)主碼,引用student的外碼
Cno課程號char(6)主碼,引用course的外碼
Grade成績tinyint

創(chuàng)建sc表代碼:

use student

create table sc

(

Sno char(11) not null,

Cno char(6) not null,

Grade tinyint,

primary key (sno,cno),

foreign key (sno) references student(sno),

foreign key (cno) references course(cno)

)

(2)為sc表添加‘修課類別’(type)列,允許為空,代碼如下:

alter table sc

add type nchar(1) null

(3)為sc表添加‘修課類別’(type)列修改他的數(shù)據(jù)類型為nchar(2),代碼如下:

alter table sc

alter column type nchar(2)

(4)為sc表添加‘修課類別’(type)列添加取值范圍為{必修,重修,選修}的約束,代碼如下:

alter table sc

add check(type in ('必修','重修','選修'))

(5)刪除type列,代碼如下:

alter table sc

drop column type

文章名稱:SQL學(xué)習(xí)之使用命令方式創(chuàng)建、刪除與修改關(guān)系表
網(wǎng)站網(wǎng)址:http://muchs.cn/article2/gphpoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、全網(wǎng)營銷推廣、移動網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、軟件開發(fā)、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)