数据库之数据库的创建删除属性修改语句⼤全--创建数据库使⽤默认的⽅式
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 between0and750), --约束分数在0到750之间sbirthday date check(year(getdate())-year(sbirthday) between 15and35), --计算⼊职年龄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表名
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论