--創建資料庫使用預設的方式 create database 資料庫名稱 --創建一個完整的資料庫,帶有主文件和日誌文件 create database 資料庫名稱 --邏輯名稱 on primary( name='資料庫名稱', --物理名稱 filename='d:\名字.mdf', size= ...
--創建資料庫使用預設的方式
create database 資料庫名稱
--創建一個完整的資料庫,帶有主文件和日誌文件
create database 資料庫名稱 --邏輯名稱
on primary(
name='資料庫名稱', --物理名稱
filename='d:\名字.mdf',
size=10mb,
maxsize=unlimited,
filegrowth=10%) --若有多個文件在)後面添加 ,
log on(
name='test_log',
filename='d:\名字.ldf',
size=1mb,
maxsize=5mb,
filegrowth=1mb)
go
--修改資料庫
--添加一個文件組
alter database test
add filegroup 文件組名稱
--向文件組裡添加文件
alter database test
add file
(name='test_data2',
filename='d:\170508010430董志洋\test_data2.ndf',
size=5mb,
maxsize=100mb,
filegrowth=5mb),
(name='text_data3',
filename='d:\170508010430董志洋\text_data3.ndf',
size=5mb,
maxsize=100mb,
filegrowth=5mb)
to filegroup testgroup
go
--添加日誌文件
alter database test
add log file
(name='test_log2',
filename='d:\170508010430董志洋\test_log2.ldf',
size=1mb,
maxsize=10mb,
filegrowth=1mb)
go
--刪除一個文件組(只能刪除空文件組,要想刪除帶有文件的文件組,就需要先把文件刪光)
alter database test
remove filegroup textgroup
--刪除一個文件
alter database test
remove file test_data2
--刪除資料庫
drop database 資料庫名稱 --強調:正在使用的當前資料庫不能刪除
--擴大資料庫
alter database test
modify file
(name='test',
maxsize=unlimited,
filegrowth=15%)
go
--縮小資料庫
--收縮資料庫,保證該資料庫所有的文件都有20%的可用空間
DBCC shrinkdatabase(test,20)
--收縮資料庫數據文件 ,縮小到10mb
DBCC shrinkfile(test,10)
--附加資料庫
create database test
on
(filename='d:\test.mdf') --只需要有主文件就行。位置沒有改變
for attach
--附加(資料庫文件位置改變了)
create database zhangsan
on
(filename='d:\1\zhangsan_data1.mdf'),
(filename='d:\2\zhangsan_data2.ndf'),
(filename='d:\17\zhangsan_log.ldf')
for attach
--分離資料庫
use master
go
execute sp_detach_db 'test','true' --true為跳過‘更新統計信息’,fslse為顯示
--創建表,欄位和約束
create table student --使用約束,讓每個學號數字都在九之間
(sno char(10) check (sno like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
primary key,
sname varchar(8) not null, --設置非空
sex char(2) default '男' check (sex in('男','女')), --預設是男,約束sex只能是男或女
scomegrade smallint check(scomegrade between 0 and 750), --約束分數在0到750之間
sbirthday date check(year(getdate())-year(sbirthday) between 15and 35), --計算入職年齡
snation bit default 'false', --設置是否少數民族的預設值為 否
smemo text, --文本
sphone char(11) unique, --設置唯一(不可重覆)
semail varchar(50) unique)
--一個表裡只有一個主鍵,可以有多個唯一
-- getdate()是獲取當前的日期
-- year(getdate())是獲取當前日期的年
--修改表的結構
--向學生表裡添加家庭住址和郵政編碼欄位
alter table student add Stuaddress char(40) null,Zipcode char(6) not null
--修改表中的sdept欄位改為 varchar類型 長度為30不為空
alter table student
alter column sdept varchar(30) not null --column 是列
--將stuaddress列刪除
alter table student drop column stuaddress
--創建選課表,具有主鍵和外鍵,將學生表和信息表聯繫到一起
create table sc
(sno char(10),
cno char(10),
grade tinyint,
primary key (sno,cno),
foreign key(sno) references student (sno) --外鍵
on update cascade -- 級聯 :修改一個表的信息,和他有關聯的表的信息全會修改
on delete cascade,
foreign key(cno) references course(cno)
on update no action --這個是禁止級聯
on delete no action,
)
--單個添加主鍵約束
alter table 表名 add constraint pk_cno primary key(欄位名); --pk_cno 為主鍵名
--刪除主鍵約束
alter table 表名 drop constraint pk_cno;
--單個添加unique約束
alter table 表名 add constraint u_cname unique(欄位名);
--單個添加check約束 只能是男或女
alter table student add constraint ck_sex check(sex='男' or sex='女')
--刪除check約束 若是要修改CHECK約束先要刪除現有的約束再新創建
alter table 表名 drop constraint ck_sex;
--default預設約束 將sdept預設為電腦系
alter table student add constraint df_dept default '電腦系' for sdept
--刪除default約束
alter table 表名 drop constraint df_dept;
--foreign key外鍵約束 在表score的cno欄位上 設置為表course上cno的外鍵
alter table score add constraint fk_cno foreign key(cno) references course(cno)
--刪除foreign key 約束
alter table score drop constraint fk_cno
--禁用約束 禁用全部
alter table 表名
nocheck
constraint all
--啟用約束
alter table 表名 check constraint ck_sex
--使用系統存儲過程語句sp_rename,修改表的名稱
EXEC sp_rename '表名','新名字'
--使用系統存儲過程語句sp_rename,修改表中欄位的名稱
EXEC sp_rename '表名.老欄位名','新欄位名','column'
--刪除表
drop table 表名