创建数据库,数据表,约束整理

一、创建数据库
1.启动服务(三种)
开始--cmd--输入net start mssqlserver
开始--运行--net start mssqlserver
开始--服务--找到SQLSERVER(MSSQLSERVER)--右键--启动

2.打开ssms

3.登录:windows身份验证
混合验证模式

系统数据库:
master:存储系统配置信息,数据库信息等;千万不能删;
model:模板信息;空白数据库模板,表模板;
tempdb:临时表,临时存储过程等;
msdb:存储调度信息等;

创建数据库的语法:
create database 数据库名
on
( 
name='数据库名', 
filename='盘符:\文件夹名\文件名.后缀名',
size=数值mb, --主数据文件最小值为3mb
filegrowth=数值mb或百分比, --按mb增长,或按百分比增长
maxsize=数值mb
)
log on
(
name='数据库名_log',
filename='盘符:\文件夹名\数据库名_log.ldf',
size=数值mb, --日志文件最小值为1mb
filegrowth=数值mb或百分比,
maxsize=数值mb
)
go

判断是否有同名数据库存在,如果存在则先删除
1>if exists(select * from sys.databases where name='数据库名')
drop database 数据库名
go
2>if db_id('数据库名') is not null
drop database 数据库名
go


题目:在E盘的hello文件夹下创建数据库students,主数据文件 初始大小10mb 按10%的方式增长,不限制上限;
日志文件,初始大小3Mb, 按1mb的方式增长,最大为20mb

如果当文件夹不存在时,需要在指定文件夹下创建数据库文件,需要先启动外围配置,再调用dos命令创建文件夹
启动外围配置
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'xp_cmdshell',1
reconfigure
go

调用dos命令
exec xp_cmdshell 'md 盘符:\文件夹名\...',no_output或output
go

完整的创建数据库的步骤:
1.启动外围配置

2.调用dos命令创建文件夹

3.判断是否有同名数据库存在

4.创建数据库


二、创建表
1.切换数据库
use 数据库名
go

2.判断同名表是否存在
if exists(select * from sys.objects where name='表名')
drop table 表名
go

 

三、.创建约束
alter table 表名 
add constraint pk_表名_列名 primary key(列名), --主键:不为空不重复
cosntraint uq_表名_列名 unique(列名), --唯一约束:不重复
constraint ck_表名_列名 check(条件表达式),
constraint df_表名_列名 default '默认值' for 列名
go

外键:关联多个表之间的相同列;
学生信息表stuInfo:学号sno 姓名 性别 年龄 等... --学号一定是主键
学生成绩表score: 考号 学号no 成绩... --考号是主键 学号是外键

外键创建的前提,必须在另外一个表里面是主键;
主表:外键对应的主键所在的表;
从表:外键所在的表;
alter table 从表名
add constraint 从表名_主表名_从表列名 foreign key(从表列名) references 主表名(主表列名)
go
alter table score 
add constraint score_stuInfo_no foreign key(no) references stuInfo(sno)
go
了解"联合主键":
alter table 表名
add constraint pk_表名_列名1_列名2 primary key(列名1,列名2)
go 


 

 

posted @ 2018-08-16 17:04  聖潔  阅读(692)  评论(0编辑  收藏  举报