数据库之数据库的创建删除属性修改语句大全
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
--创建数据库使用默认的方式
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董志洋 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
--添加日志文件
alter database test
add log file
(name="test_log2",
filename="d:170508010430董志洋 est_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: est.mdf") --只需要有主文件就行。位置没有改变
for attach
--附加(数据库文件位置改变了)
create database 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为显示
--创建表,字段和约束
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 表名
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341