Sql server 2012學習之庫建立與表建立的sql語句
【學習環境】:sql server 2012
【學習內容】:使用sql語句進行庫與表的建立
【涉及知識點】:
一、資料庫的建立
在Sql server 2012中,分為介面操作和程式碼語句操作,介面操作在後續說明,今天所記為Sql語句的操作
資料庫建立:
程式碼區
Creater database 學生成績管理系統
On
(
name = 成績管理, /*資料檔名稱*/
filename = 'G:\sql server 2012 cq\學生成績管理系統.mdf', /*資料檔案儲存地址*/
size = 5,
maxsize = 10, /*最大資料檔案*/
filegrowth = 2 /*增長速度*/
)
Log on
(
name = 成績管理_Log, /*日誌檔名稱*/
filename = 'G:\sql server 2012 cq\學生成績管理系統.ldf',
size = 2,
maxsize = 5,
filegrowth = 10%
)
上述程式碼中,簡單的涉及到了資料庫的名稱,資料檔案,日誌檔案,檔名稱(name),儲存位置(filename),儲存大小(size/maxsize)及增長速度(filegrowth)的語句;此為最簡單的通過Sql語句建立資料庫的案例,接下來我們進行表的建立。
二、表的建立
在資料庫中,“表”起到一個核心的作用,就目前我所知而言,資料庫根據有無“表”而言,可將資料庫分為關係式資料庫、網路式資料庫以及層次式資料庫,我現在學習的即為關係式資料庫,在關係式資料庫中,對資料的操作幾乎全部建立在一個或多個關係表格上,通過對這些關係表格的分類,合併,連線或選取等運算來實現資料的管理。
表的建立:
程式碼區
use 學生成績管理系統
create table students(
Sid int primary key identity/*學生編號*/,
Sname Nvarchar(50) not null/*學生姓名*/,
Ssex char(2) not null default '男' check(rsex='男' or rsex='女')/*讀者性別*/,
Stypeid int not null,/*學生型別編號*/
Saddress Nvarchar(50) default '地址不詳',/*家庭住址*/
email Nvarchar(50) check(email like '%@%'),/*電子郵件*/
foreign key(rtypeid) references readtype(rtypeid)
)
在上述程式碼中,我建立了一個六列的表,在建立資料庫中的“表”時,可以遵循如下的規則:
use 資料庫名
Create table 表名
(
列名 列資料型別【寬度】 【default 預設值】 列約束
)
在約束中,我們可以對其進行一系列的設定,常見約束如下所示:
1、主鍵:primary key
2、外來鍵:foreign key(列名) references 表名(列名)
3、檢查約束:check(約束條件)
4、預設約束:default
5、唯一性約束:unique
我們將約束分為列約束及表約束,列約束可直接在寫在該列的後方,而表約束需要寫完所有的基本列之後才可進行列約束的書寫,在書寫表約束時,須在前方寫“constraint”以示要進行約束書寫,如:
contraint fk_本表名_想要關聯的主鍵所在表 froeign key(列名) references 關聯的主鍵所在表(列名)
contraint pk_本表名 primary key(列名......)/*用表約束建立主鍵時,說明想要建立複合主鍵,否則,用列約束建立會比較方便*/
寫到此處,基本上已經將資料庫與表的Sql建立語句寫完了,再補一些在建立表時常用的語句作為該次文字的結束
1、獲得當前系統時間:getdate()
2、列數值不允許為空:not null
3、對某個資料進行說明:/**/
4、必須包含某種字元或字串:使用Check約束,在約束中寫“like %(_)約束條件(_)%”【%該符號用於字串;_該符號用於單個字元】
5、增長量:identity(),若括弧中以1,1的形式出現,此時表示的是該屬性自增