create
database
《資料庫名》
use
《資料庫名》
create
table
《表名》
(《屬性列名1
>
《資料型別》
[列級約束條件]
,《屬性列名2
>
《資料型別》
[列級約束條件],.
....
....
....
....
....
....
....
....
.,[表級約束條件]
)
下面是sql語言資料型別介紹:
資料型別
含義char(n)
定義定長度n的字串(不足n個自動補空格)
varchar(n)
定義最大長度為n的變長字串(不會補空格)
int整數
smallint
短整數real
取決於機器精度的浮點數
float(n)
浮點數,精度至少為n位
numeric(p,d)
定點數,由p位數字(符號,小數點除外)組成,小數點後有d位數字
decimal(p,d)
定點數,由p位數字(符號,小數點除外)組成,小數點後有d位數字
data
日期,包含年月日,格式為yyyy-mm-dd
time
時間,包含時分秒,格式為hh:mm:ss
下面介紹主鍵和外來鍵:
1.主鍵
主鍵是用於確定資料庫中的表的記錄的唯一標識字段,可以是乙個字段,也可以是多個。
(需要注意的是:
一旦該字段被確定為主鍵時,該欄位不能為空,也不能有重複屬性值。)
下面是sql語言中定義主鍵的方式:
primary
key[
(《屬性列(組)
>
)]
1).當主鍵只有乙個字段,採用列級約束條件進行約束create
table s
(sno char(6
)primary
key,
sn char(10
),sd char(16
))
2).當主鍵有多個字段,採用表級約束條件進行約束create
table sc
(sno char(6
),cno char(6
),grade decimal(4
,1),
primary
key(sno,cno)
)
2.外來鍵
外來鍵是相對於主鍵來說的,是用於關聯兩個或以上的表,乙個表(參照表)的某字段與另乙個表(被參照表)的主鍵相對應從而建立關係。(保證資料的一致性)
(需要注意的是:
1.外來鍵不一定要與主鍵同名,但是為了方便識別,通常採用同名方式。
2.外來鍵與對應的主鍵必須定義在同一值域上,即資料型別和長度要完全一致。)
下面是sql語言中定義外來鍵的方式:
foreign
key[
《外來鍵》
]references
(被參照表)(
《與外來鍵對應的主鍵名》
)
create
table s
(sno char(6
),cno char(6
),grade decimal(4
,1),
primary
key(cno,sno)
,foreign
key(sno)
references s(sno)
,foreign
key(cno)
references c(cno)
,)
當外來鍵被定義後,插入值便只能取對應被參照表的主鍵值。
為了防止完整性被破壞,採用了以下的更新策略:
on
update
(cascade|no
action
)(當修改被參照表中的主鍵值時,級聯修改參照表中的所有關聯元組或拒絕執行修改操作。)
ondelete
(cascade|no
action
)(當刪除被參照表中的主鍵值時,級聯修改參照表中的所有關聯元組或拒絕執行刪除操作。)
使用者定義完整性定義:
1)not null或null(預設)約束 約束關係主屬性必須限定為not null。
2)unique約束 唯一性約束條件,不允許出現重複的屬性值。
3)default約束 預設值約束。
4)check約束 檢查約束條件表示式設定屬性值應該滿足的條件。
下面是例子:
create
table s
(sno char(6
)primary
key,
sn char(10
)not
null
,sd char(16
),sb date
,*** char
default
'男',
check
(*** in
('男'
,'女'))
)
create
table sc
(sno char(6
),sno char(6
),grade decimal(4
,1),
primary
key(sno,cno)
,foreign
key(sno)
references s(sno)
,foreign
key(cno)
references c(cno)
,check
(grade between
0and
100)
)
實現**如下:
alter
table
《表名》
add《屬性列名》
《資料型別》
[完整性約束條件]
|《完整性約束》
1.增加表中某一列alter
table s add sh char(30
)
2.補充定義sno為主鍵alter
table s add
primary
key(sno)
3.修改原有列型別alter
table
《表名》
alter
column
《屬性列名》
《資料型別》
4.刪除原有列或約束條件alter
table
《表名》
drop
cascade:級聯更新
restrict: 在沒有檢視或約束引用該條件時,才能被刪除。
5.基本表的刪除
drop
table
《表名》
[cascade
|restrict
]
例如
drop
table s cascade
基本表的定義
create table 表名 列名 資料型別 列級完整性約束條件 列名 資料型別 列級完整性約束條件 表級完整性約束條件 sql中約束分為以下6種 主碼約束 primary key pk course 外碼約束 foreign key fk c 非空約束 not null n k 唯一約束 uni...
SQL獲取表定義
查詢某個庫里所有表的定義,包括欄位名,值型別,長度,是否為空,是否為主鍵等 select sysobjects.name astb name,syscolumns.name ascol name systypes.name ascol type,syscolumns.length ascol len...
SQL之表定義
sql 結構化查詢語言 1 用create table命令定義sql關係 create table r a1 d1,a2 d2,an dn,完整性約束1 完整性約束k 其中,r是關係名,每個ai是關係r模式中的乙個屬性名,di是屬性ai的域 2 完整性約束 not null,乙個屬性上的not nu...