数据库的实现----(建库,建表,建约束)

首先大家要知道数据库是由哪三个部分组成的.

解析:

01.数据库文件:*.mdf

02.次要数据文件:*.ndf

03.日志文件:*.ldf

每个数据库至少要包含两个文件:一个数据文件和一个日志文件.数据文件中包含了数据库的数据和对象,如表,视图和索引等;日志文件中包含了用于恢复数据库所需的信息.创建数据库时,次要数据库文件可选.一个数据库可以有多个数据库文件和多个日志文件.

一.使用SQL语句创建数据库

以Myschool数据库为例:

create database Myschool
on primary  --默认属于primary主文件组,可省略
(
-----------数据文件的具体描述---------
--主数据文件的逻辑名称
name='Myschool_data',
--主数据文件的物理名称
filename='E:Myschool.mdf',
--主数据文件的初始大小
size=5,
--主数据文件增长的最大值
maxsize=100,
--主数据文件的增长率
filegrowth=15%


)
Log on
(
---------日志文件的具体描述---------
--日志文件的逻辑名称
name='Myschool_log',
--日志文件的物理名称
filename='E:Myschool.ldf',
--日志文件的初始大小
size=2,
--日志文件的增长率
filegrowth=1
)

二.使用SQL删除数据库

--删除数据库名称为Myschool
drop database Myschool

三.检测要创建的数据库是否存在

use master --设置当前数据库为master ,以便访问sysdatabase表
if exists(select * from sysdatabases where name='Myschool')
--如果存在则删除Myschool数据库
drop database Myschool
--重新创建Myschool数据库
create database Myschool
on primary  --默认属于primary主文件组,可省略
(
-----------数据文件的具体描述---------
--主数据文件的逻辑名称
name='Myschool_data',
--主数据文件的物理名称
filename='E:Myschool.mdf',
--主数据文件的初始大小
size=5mb,
--主数据文件增长的最大值
maxsize=100mb,
--主数据文件的增长率
filegrowth=15%


)
Log on
(
---------日志文件的具体描述---------
--日志文件的逻辑名称
name='Myschool_log',
--日志文件的物理名称
filename='E:Myschool.ldf',
--日志文件的初始大小
size=2mb,
--日志文件的增长率
filegrowth=1mb
)


四.如何在指定的路径下创建文件夹.

xp_cmdshell时SQL server的扩展储存过程,他以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行的方式返回任何输入.

在SQL server Management Studio 中,如果希望在操作系统的指定路径下创建文件夹,可以使用下面的语句:

EXEC xp_cmdshell 'mkdir E:project'

其中,字符串mkdir E:project 是DOS命令用于在E盘下创建文件夹.

注意.在使用xp_cmdshell之前,需要执行sp_configure以启用xp_cmdshell

EXEX sp_configure 'show advanced options',1
go
reconfigure
co
EXEC sp_configure 'xp_cmdshell',1
go
reconfigure
go

 五.使用SQL语句创建表

create table 表名
(
列1 数据类型 列的特征,
列2 数据类型 列的特征
)

列的特征:包括该列是否为空,是否是标识列,是否有默认值,是否是主键等.

eg:

--同创建数据库一样,如果当前数据库中已存在Student表,则再次创建时系统会提示错误,所以我们需要先检测当前数据库

--中是否存在该表,如果存在该表,则删除,然后在创建.

use myschool
if exists(select * from sysobjects where name='student') 
drop table student--删除表student

------------创建表Myschool中的学生表--------
create table student
(
  studentNO int not null,--学号,非空
  studentname nvarchar(20) not null,--学生姓名,非空
  Sex bit not null ,--性别,非空,取值0或1
  gradeid int not null,--年级编号
  phone nvarchar(50) null, --联系电话,允许为空
  address nvarchar(200) null, --住址,允许为空
  bornDate datetime null,--出生日期,允许为空
  Email nvarchar(50) null,--邮箱,允许为空
  Cid varchar(18) not null --身份证,非空
  
)

六.使用sql语句删除表

drop table student

七.使用sql语句创建和删除约束

01.实体完整性:唯一确定表中一行记录.

02.域完整性:表中特定列数据的有效性,以确保不会输入无效的数值.

03.引用完整性:插入或删除记录时,维护表之间定义的关系.

04.自定义完整性:为了确保数据库的数据完整性.

常用的约束类型:

01.主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空.

02.非空约束:(not null):要求列不能存在空值.

03.检唯一约束:(Unique Constraint):要求该列的值必须唯一,允许为空,但只能出现一个空值.

04.默认约束:(Dafault Constraint):某列的默认值.

05.外键约束:(Foregin Key Constraint):用于在两表之间建立关系,需要指定引用主表的哪一列.

添加约束的语法:

alter table 表名

add Constraint 约束名 约束类型 具体的约束说明

--把studentno学号列设置为主键
alter table student
add constraint PK_studentno primary Key (studentno)
--把身份证号列cid添加唯一约束
alter table student
add constraint UQ_cid unique(cid)
--把地址列添加默认约束
alter table student
add constraint DF_address Default('地址不详') for address
--为出生日期列添加检查约束
alter table student
add constraint CK_bornDate Check(bornDate>='1980-01-01')
--添加外键约束(主表student和从表result建立关系,关联列为StudentNo)
alter table result
add constraint FK_studentno foreign key (studentno) references student(studentno)
--添加grade表中的主键
alter table grade
add constraint pk_gradeid primary key (gradeid)
--添加外键约束(主表grade和从表student建立关系,关联列为gradeid)
alter table grade
add constraint FK_gradeid foreign key (gradeid) references grade(gradeid)

删除约束:

语法:

alter table 表名

drop Constraint 约束名

eg:删除student表中地址默认约束

alter table student
drop constraint DF_adress

八.sqlserver 文档

如何查看 sql server 帮助:

把光标放置在需要查找某个语法的关键字上方,饭F1键,就会启动Sql server联机丛书,并查找出有关关键字的帮助资料.

原文地址:https://www.cnblogs.com/hyjj/p/5115485.html