使用 sql 语句完成数据库和表的创建等基本操作(基于 sql server 2014)

版权声明:本文为博主原创文章,若转载请注明出处且不得删改。(如有错误请提出指正,部分文章会参考其他文章,已经表明参考出处,如有侵权请联系删除) https://blog.csdn.net/qq_34902437/article/details/84350095

写在前面

代码中使用的数据库名字 review 和 review_2,表名是 first 和 second

数据库的创建

数据库创建常用的几个参数设置

  1. name:逻辑文件名称
  2. filename:物理文件名称(存放在磁盘的哪个地方)
  3. size:初始化的大小
  4. maxsize:最大大小
  5. filegrowth:增量(可以选择百分比,数值和 unlimited)
use master -- 使用当前数据库
go -- 批处理,类似事务(在两个 go 之间)
create database review_2
on primary  -- 一个数据库只能有一个主文件(默认文件)
(
	name = review_2_Data, -- 逻辑名称
	filename = 'D:\review_2_Data.MDF', -- 物理名称
	size = 10, -- 初始大小
	maxsize = unlimited, -- 最大值:无限制
	filegrowth = 5 -- 每次增量为 5 MB
)

log on -- 事务日志文件
(
	name = review_2_Log,
	filename = 'D:\review_2_Data.LDF',
	size = 10,
	maxsize = 1000,
	filegrowth = 10% -- 按照百分比增长
)

go

生成的数据库
在这里插入图片描述

数据库的修改

数据库的选择
use review
数据库属性查询
exec sp_helpdb review_2

查询结果
在这里插入图片描述

修改数据库属性
alter database review_2
modify file
(
	name = review_2_Data, -- 必须出现 name
	size = 110
)
增加数据库属性
alter database review_2
add file
(
	name = review_2_Data, -- 必须出现 name
	size = 110
)

分离和附加数据库

分离
use review
go 
exec sp_detach_db @dbname = 'review'
go
附加
use review
go 
exec sp_attach_db @dbname = 'review',filename = '你存储的磁盘位置'
go

删除数据库

drop database review

创建表

create table first
(
	-- not null 定义非空,primary key 定义主键
	cid int not null  primary key, 
	cname varchar(255),

	-- check 定义了域完整性,此处是 check 也就是值范围
	cage char(4) check( cage like '[0-9][0-9][0-9][0-9]'),
)
create table seconde
(
	cmid int not null  primary key, 

	--外键关联 first 表的 cid
	cid int foreign key references first(cid)
)

修改表

增加属性
alter table first add nothing int 
修改属性
alter table first alter column nothing varchar(255)
删除属性
alter table first drop column nothing 

数据库完整性的实现

实体完整性(主键约束)

列级约束

cmid int not null  primary key

表级约束

cid int not null,
cname varchar(255),
primary key (cid,cname)

列级约束和表级约束的区别

参照完整性(外键约束)

列级约束

cid int references second(cid) 

表级约束

foreign key (cid) references second(cid)
域完整性

默认约束(default)

create table second
(
	cid int not null primary key,
	
	cname varchar(255) default 'zhangyu', -- 设置了默认约束,当没有给该属性键入值
	的时候,默认使用 zhangyu

	cage char(2) check( cage like '[0-9][0-9]')
)

如果表存在,需要添加默认值(def 是设置的默认约束的名称)

alter table second add constraint def default 'zhangyu' for cname

删除默认约束

alter table second drop constraint def 

检查约束(check)

create table second
(
	cid int not null primary key IDENTITY, -- identity 是 t-sql 语句中实现自动增长的方式
	cage char(4) check(cage >= 0 and cage <= 100) -- 不能用 && 之类的判断方式
)

在以有表中增加检查约束

alter table second add constraint csex check(csex in ('m','f'))

唯一约束(unique)

ciid int unique

创建索引

创建一个唯一的聚集索引
create unique clustered index index_name
on second (cname)
创建一个唯一的非聚集索引
create unique nonclustered index index_name
on second (cname)
删除索引
drop index second.index_name

猜你喜欢

转载自blog.csdn.net/qq_34902437/article/details/84350095