首页 > 数据库技术 > 详细

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

时间:2019-12-01 15:54:10      阅读:76      评论:0      收藏:0      [点我收藏+]
--创建数据库使用默认的方式
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 表名

 

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

原文:https://www.cnblogs.com/wuya132/p/11965947.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!