数据库之数据库的创建删除属性修改语句大全

database

--创建数据库使用默认的方式

createdatabase 数据库名称

--创建一个完整的数据库,带有主文件和日志文件

createdatabase 数据库名称 --逻辑名称

onprimary(

name="数据库名称", --物理名称

filename="d:名字.mdf",

size=10mb,

maxsize=unlimited,

filegrowth=10%) --若有多个文件在)后面添加 ,

logon(

name="test_log",

filename="d:名字.ldf",

size=1mb,

maxsize=5mb,

filegrowth=1mb)

go

--修改数据库

--添加一个文件组

alterdatabase test

add filegroup 文件组名称

--向文件组里添加文件

alterdatabase test

addfile

(name="test_data2",

filename="d:170508010430董志洋 est_data2.ndf",

size=5mb,

maxsize=100mb,

filegrowth=5mb),

(name="text_data3",

filename="d:170508010430董志洋 ext_data3.ndf",

size=5mb,

maxsize=100mb,

filegrowth=5mb)

to filegroup testgroup

go

--添加日志文件

alterdatabase test

addlogfile

(name="test_log2",

filename="d:170508010430董志洋 est_log2.ldf",

size=1mb,

maxsize=10mb,

filegrowth=1mb)

go

--删除一个文件组(只能删除空文件组,要想删除带有文件的文件组,就需要先把文件删光)

alterdatabase test

remove filegroup textgroup

--删除一个文件

alterdatabase test

remove file test_data2

--删除数据库

dropdatabase 数据库名称 --强调:正在使用的当前数据库不能删除

--扩大数据库

alterdatabase test

modify file

(name="test",

maxsize=unlimited,

filegrowth=15%)

go

--缩小数据库

--收缩数据库,保证该数据库所有的文件都有20%的可用空间

DBCC shrinkdatabase(test,20)

--收缩数据库数据文件 ,缩小到10mb

DBCC shrinkfile(test,10)

--附加数据库

createdatabase test

on

(filename="d: est.mdf") --只需要有主文件就行。位置没有改变

for attach

--附加(数据库文件位置改变了)

createdatabase zhangsan

on

(filename="d:1zhangsan_data1.mdf"),

(filename="d:2zhangsan_data2.ndf"),

(filename="d:17zhangsan_log.ldf")

for attach

--分离数据库

use master

go

execute sp_detach_db "test","true"--true为跳过‘更新统计信息’,fslse为显示

--创建表,字段和约束

createtable 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]")

primarykey,

sname varchar(8) notnull, --设置非空

sex char(2) default""check (sex in("","")), --默认是男,约束sex只能是男或女

scomegrade smallintcheck(scomegrade between0and750), --约束分数在0到750之间

sbirthday date check(year(getdate())-year(sbirthday) between 15and35), --计算入职年龄

snation bitdefault"false", --设置是否少数民族的默认值为 否

smemo text, --文本

sphone char(11) unique, --设置唯一(不可重复)

semail varchar(50) unique)

--一个表里只有一个主键,可以有多个唯一

-- getdate()是获取当前的日期

-- year(getdate())是获取当前日期的年

--修改表的结构

--向学生表里添加家庭住址和邮政编码字段

altertable student add Stuaddress char(40) null,Zipcode char(6) notnull

--修改表中的sdept字段改为 varchar类型 长度为30不为空

altertable student

altercolumn sdept varchar(30) notnull--column 是列

--将stuaddress列删除

altertable student dropcolumn stuaddress

--创建选课表,具有主键和外键,将学生表和信息表联系到一起

createtable sc

(sno char(10),

cno char(10),

grade tinyint,

primarykey (sno,cno),

foreignkey(sno) references student (sno) --外键

onupdatecascade-- 级联 :修改一个表的信息,和他有关联的表的信息全会修改

ondeletecascade,

foreignkey(cno) references course(cno)

onupdate no action --这个是禁止级联

ondelete no action,

)

--单个添加主键约束

altertable 表名 addconstraint pk_cno primarykey(字段名); --pk_cno 为主键名

--删除主键约束

altertable 表名 dropconstraint pk_cno;

--单个添加unique约束

altertable 表名 addconstraint u_cname unique(字段名);

--单个添加check约束 只能是男或女

altertable student addconstraint ck_sex check(sex=""or sex="")

--删除check约束 若是要修改CHECK约束先要删除现有的约束再新创建

altertable 表名 dropconstraint ck_sex;

--default默认约束 将sdept默认为计算机系

altertable student addconstraint df_dept default"计算机系"for sdept

--删除default约束

altertable 表名 dropconstraint df_dept;

--foreign key外键约束 在表score的cno字段上 设置为表course上cno的外键

altertable score addconstraint fk_cno foreignkey(cno) references course(cno)

--删除foreign key 约束

altertable score dropconstraint fk_cno

--禁用约束 禁用全部

altertable 表名

nocheck

constraintall

--启用约束

altertable 表名 checkconstraint ck_sex

--使用系统存储过程语句sp_rename,修改表的名称

EXEC sp_rename "表名","新名字"

--使用系统存储过程语句sp_rename,修改表中字段的名称

EXEC sp_rename "表名.老字段名","新字段名","column"

--删除表

droptable 表名

 

以上是 数据库之数据库的创建删除属性修改语句大全 的全部内容, 来源链接: utcz.com/z/531638.html

回到顶部