数据库之数据库的创建删除属性修改语句大全
--创建数据库使用默认的方式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)--收缩数据库数据文件 ,缩小到10mbDBCC shrinkfile(test,10)--附加数据库create database teston (filename='d:\test.mdf') --只需要有主文件就行。位置没有改变for attach--附加(数据库文件位置改变了)create database zhangsanon (filename='d:\1\zhangsan_data1.mdf'), (filename='d:\2\zhangsan_data2.ndf'), (filename='d:\17\zhangsan_log.ldf') for attach--分离数据库 use mastergoexecute 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 表名nocheckconstraint all--启用约束alter table 表名 check constraint ck_sex--使用系统存储过程语句sp_rename,修改表的名称EXEC sp_rename '表名','新名字' --使用系统存储过程语句sp_rename,修改表中字段的名称EXEC sp_rename '表名.老字段名','新字段名','column'--删除表drop table 表名
赞 (0)