數據庫之數據庫的建立刪除屬性修改語句大全

--建立數據庫使用默認的方式
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 表名
相關文章
相關標籤/搜索