1. 程式人生 > >使用 sql 語句完成資料庫和表的建立等基本操作(基於 sql server 2014)

使用 sql 語句完成資料庫和表的建立等基本操作(基於 sql server 2014)

寫在前面

程式碼中使用的資料庫名字 review 和 review_2,表名是 first 和 second

資料庫的建立

資料庫建立常用的幾個引數設定

  1. name:邏輯檔名稱
  2. filename:物理檔名稱(存放在磁碟的哪個地方)
  3. size:初始化的大小
  4. maxsize:最大大小
  5. filegrowth:增量(可以選擇百分比,數值和 unlimited)
use master -- 使用當前資料庫
go -- 批處理,類似事務(在兩個 go 之間)
create database review_2
on primary  -- 一個數據庫只能有一個主檔案(預設檔案)
(
	name = review_2_Data, -- 邏輯名稱
	filename = 'D:\review_2_Data.MDF', -- 物理名稱
	size = 10, -- 初始大小
	maxsize = unlimited, -- 最大值:無限制
	filegrowth = 5 -- 每次增量為 5 MB
)

log on -- 事務日誌檔案
(
	name = review_2_Log,
	filename = 'D:\review_2_Data.LDF',
	size = 10,
	maxsize = 1000,
	filegrowth = 10% -- 按照百分比增長
)

go

生成的資料庫
在這裡插入圖片描述

資料庫的修改

資料庫的選擇
use review
資料庫屬性查詢
exec sp_helpdb review_2

查詢結果
在這裡插入圖片描述

修改資料庫屬性
alter database review_2
modify file
(
	name = review_2_Data, -- 必須出現 name
	size = 110
)
增加資料庫屬性
alter database review_2
add file
(
	name = review_2_Data, -- 必須出現 name
	size = 110
)

分離和附加資料庫

分離
use review
go 
exec sp_detach_db @dbname = 'review'
go
附加
use review
go 
exec sp_attach_db @dbname = 'review',filename = '你儲存的磁碟位置'
go

刪除資料庫

drop database review

建立表

create table first
(
	-- not null 定義非空,primary key 定義主鍵
	cid int not null  primary key, 
	cname varchar(255),

	-- check 定義了域完整性,此處是 check 也就是值範圍
	cage char(4) check( cage like '[0-9][0-9][0-9][0-9]'),
)
create table seconde
(
	cmid int not null  primary key, 

	--外來鍵關聯 first 表的 cid
	cid int foreign key references first(cid)
)

修改表

增加屬性
alter table first add nothing int 
修改屬性
alter table first alter column nothing varchar(255)
刪除屬性
alter table first drop column nothing 

資料庫完整性的實現

實體完整性(主鍵約束)

列級約束

cmid int not null  primary key

表級約束

cid int not null,
cname varchar(255),
primary key (cid,cname)

列級約束和表級約束的區別

參照完整性(外來鍵約束)

列級約束

cid int references second(cid) 

表級約束

foreign key (cid) references second(cid)
域完整性

預設約束(default)

create table second
(
	cid int not null primary key,
	
	cname varchar(255) default 'zhangyu', -- 設定了預設約束,當沒有給該屬性鍵入值
	的時候,預設使用 zhangyu

	cage char(2) check( cage like '[0-9][0-9]')
)

如果表存在,需要新增預設值(def 是設定的預設約束的名稱)

alter table second add constraint def default 'zhangyu' for cname

刪除預設約束

alter table second drop constraint def 

檢查約束(check)

create table second
(
	cid int not null primary key IDENTITY, -- identity 是 t-sql 語句中實現自動增長的方式
	cage char(4) check(cage >= 0 and cage <= 100) -- 不能用 && 之類的判斷方式
)

在以有表中增加檢查約束

alter table second add constraint csex check(csex in ('m','f'))

唯一約束(unique)

ciid int unique

建立索引

建立一個唯一的聚集索引
create unique clustered index index_name
on second (cname)
建立一個唯一的非聚集索引
create unique nonclustered index index_name
on second (cname)
刪除索引
drop index second.index_name