--創(chuàng)建數(shù)據(jù)庫使用默認的方式create database 數(shù)據(jù)庫名稱--創(chuàng)建一個完整的數(shù)據(jù)庫,帶有主文件和日志文件create database 數(shù)據(jù)庫名稱 --邏輯名稱on primary(name='數(shù)據(jù)庫名稱', --物理名稱filename='d:\名字.mdf',size=10mb,maxsize=unlimited,filegrowth=10%) --若有多個文件在)后面添加 ,log on(name='test_log',filename='d:\名字.ldf',size=1mb,maxsize=5mb,filegrowth=1mb)go--修改數(shù)據(jù)庫--添加一個文件組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 --刪除數(shù)據(jù)庫 drop database 數(shù)據(jù)庫名稱 --強調(diào):正在使用的當前數(shù)據(jù)庫不能刪除 --擴大數(shù)據(jù)庫alter database test modify file (name='test', maxsize=unlimited, filegrowth=15%) go --縮小數(shù)據(jù)庫 --收縮數(shù)據(jù)庫,保證該數(shù)據(jù)庫所有的文件都有20%的可用空間DBCC shrinkdatabase(test,20)--收縮數(shù)據(jù)庫數(shù)據(jù)文件 ,縮小到10mbDBCC shrinkfile(test,10)--附加數(shù)據(jù)庫create database teston (filename='d:\test.mdf') --只需要有主文件就行。位置沒有改變for attach--附加(數(shù)據(jù)庫文件位置改變了)create database zhangsanon (filename='d:\1\zhangsan_data1.mdf'), (filename='d:\2\zhangsan_data2.ndf'), (filename='d:\17\zhangsan_log.ldf') for attach--分離數(shù)據(jù)庫 use mastergoexecute sp_detach_db 'test','true' --true為跳過‘更新統(tǒng)計信息’,fslse為顯示--創(chuàng)建表,字段和約束create table student --使用約束,讓每個學號數(shù)字都在九之間(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), --約束分數(shù)在0到750之間sbirthday date check(year(getdate())-year(sbirthday) between 15and 35), --計算入職年齡snation bit default 'false', --設置是否少數(shù)民族的默認值為 否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 --創(chuàng)建選課表,具有主鍵和外鍵,將學生表和信息表聯(lián)系到一起 create table sc (sno char(10), cno char(10), grade tinyint, primary key (sno,cno), foreign key(sno) references student (sno) --外鍵 on update cascade -- 級聯(lián) :修改一個表的信息,和他有關聯(lián)的表的信息全會修改 on delete cascade, foreign key(cno) references course(cno) on update no action --這個是禁止級聯(lián) 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約束先要刪除現(xiàn)有的約束再新創(chuàng)建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 表名nocheckconstraint all--啟用約束alter table 表名 check constraint ck_sex--使用系統(tǒng)存儲過程語句sp_rename,修改表的名稱EXEC sp_rename '表名','新名字' --使用系統(tǒng)存儲過程語句sp_rename,修改表中字段的名稱EXEC sp_rename '表名.老字段名','新字段名','column'--刪除表drop table 表名
聯(lián)系客服