Sql筆記二:數據庫表的設計
創建了數據庫,我們需要創建表來對數據進行操作。一個數據庫中可以創建200萬個表,一個表可以定義爲1024列。在同一數據庫不同表中,可以有相同的字段,但在同一個表中,不允許有相同的字段,每個字段都要求數據類型相同。
表的創建:
create table tablename
(
列名1 數據類型,
列名2 數據類型
[約束]
)
我們先簡單說一下數據類型:
整型:int、gibint、smallint、tinyint、bit
浮點型:float、real、decimal、numeric
字符型:char、varchar、text、nchar、nvarchar、ntext
日期和時間數據類型:datetimen、 smalldatetime
貨幣類型:money、smallmoney
二進制數據類型:binary、varbinary、p_w_picpath
特殊數據類型:timestamp、uniqueidentifier、sql_variant
然後我們討論約束:
唯一約束:unique
一個表中可以有多個唯一約束,允許爲空
語法:列名 數據類型 unique
作用:是這一列的數據具有唯一性,特別是用在手機號碼,身份證等唯一的數字中。
檢查性約束:check
語法:列名 數據類型 check(sex=’male’ or sex=’famale’)
作用:在給定的括號中選擇值,防止出錯。
默認約束:default
格式:列名 數據類型 default(‘默認值’)
作用:對於某列大部分值相同時設置,防治一個一個輸入,節約時間。
主鍵約束:primary key
列名 數據類型 主鍵約束
外鍵約束:foreign key
foreign key(本表列名) references 目標表表名
標識列:identity
特點:有且只有一個,必能編輯,不能更新,數據類型爲整型,不能爲空,不能重複。
格式 列名 數據類型 identity
實例:id int identity
說明:id會從1開始排序,即使刪除這行,id也不會從1開始,而是從2繼續延伸。
說了這麼多,讓我們實際操作創建一個表格:
create table score
(
id int,
name char(10),
sex char(2) default(‘男’,’女’),
age int,,
score1 float,
score2 float,
score3 float
hooby varchar
)
創建完成,那麼是什麼結構呢:
查看錶結構:
格式: exec sp_help table_nam
通過查看之後,發現少添加了一條地址列add,多了一條列hobby:
修改表:
增加列:
格式:alter table table_name add 列名 數據類型
實例:alter table table_name add add char(50)
刪除列:
格式:alter table table_name drop column 列名
實例
刪除表:
drop table table_name
這樣我們就能簡單創建一個表格了,不過表格裏面沒有數據,關於數據的操作請看下節。