SQL创建表、数据库、约束、文件夹语法

use master
go

------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------创建数据库存放位置(文件夹)-----------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
--exec sp_configure ‘show advanced options‘, 1
--go
--reconfigure
--go
--exec sp_configure ‘xp_cmdshell‘, 1
--go
--reconfigure
--go
--exec xp_cmdshell ‘mkdir E:\‘
--go

------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------创建数据库----------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
if exists(select * from sysdatabases where name = ‘Room‘)
drop database Room
go
create database Room
on primary
(
name = ‘Room‘,
filename = ‘E:\北大青鸟 - 深圳信狮\S2\1_优化MySchool数据库设计\Chapter_08\Room\Room.mdf‘,
size = 5,
filegrowth = 15%
)
log on
(
name = ‘Room_log‘,
filename = ‘E:\北大青鸟 - 深圳信狮\S2\1_优化MySchool数据库设计\Chapter_08\Room\Room_log.ldf‘,
size = 1,
filegrowth = 15%
)
go

------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------创建表------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
use Room
go
if exists(select * from sys.tables where name = ‘RoomType‘)
drop table RoomType
go
if exists(select * from sys.tables where name = ‘RoomState‘)
drop table RoomState
go
if exists(select * from sys.tables where name = ‘Room‘)
drop table Room
go
if exists(select * from sys.tables where name = ‘ResideState‘)
drop table ResideState
go
if exists(select * from sys.tables where name = ‘GuestRecord‘)
drop table GuestRecord
go

create table RoomType --客房类型表
(
TypeID int identity(1,1) not null, --客房类型编号,主键,标识列从1开始,递增值为1
TypeName varchar(50) not null, --客房类型名称
TypePrice Decimal not null --客房价格,大于等于0
)
go

create table RoomState --客房状态表
(
RoomStateID int identity(1,1) not null, --客房状态编号,主键,标识列从1开始,递增值为1
RoomStateName varchar(50) not null --客房状态名称
)
go

create table Room --客房信息表
(
RoomID int identity(1,1) not null, --房间号,主键,标识列从1开始,递增值为1
BedNum int, --床位数,默认值为2
GuestNum int, --入住客人数,默认值为0,必须大于等于0
[Description] varchar(50) not null, --客房描述,必填
RoomStateID int, --客房状态编号,外键
RoomTypeID int --客房类型编号,外键
)
go

create table ResideState --结账状态表
(
ResideId int identity(1,1) not null, --结账状态编号,主键,标识列从1开始,递增值为1
ResideName varchar(50) not null --结账状态名称,必填
)
go

create table GuestRecord --客人信息表
(
GusetID int identity(1,1) not null, --客人入住流水号,主键,标识列从1开始,递增值为1
GusetName varchar(50) not null, --客人姓名
IdentityID varchar(18) not null, --身份证号,字符个数必须等于18
RoomID int, --房间号,外键
ResideID int, --结账状态编号,外键,默认值为“未结账”编号
ResideDate datetime, --入住日期
LeaveDate datetime, --结账日期,必须大于等于入住日期
Deposit decimal, --押金
TotalMoney decimal --总金额
)
go

------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------添加约束信息-------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
--添加主键
alter table RoomType
add constraint PK_RoomType_TypeID primary key(TypeID)
go
alter table RoomState
add constraint PK_RoomState_RoomStateID primary key(RoomStateID)
go
alter table Room
add constraint PK_Room_TypeID primary key(RoomID)
go
alter table ResideState
add constraint PK_ResideState_TypeID primary key(ResideId)
go
alter table GuestRecord
add constraint PK_GuestRecord_TypeID primary key(GusetID)
go
--添加外键约束
alter table Room
add constraint FK_Room_RoomStateID
foreign key(RoomStateID) references RoomState(RoomStateID)
go
alter table Room
add constraint FK_Room_RoomTypeID
foreign key(RoomTypeID) references RoomType(TypeID)
go
alter table GuestRecord
add constraint FK_GuestRecord_RoomID
foreign key(RoomID) references Room(RoomID)
go
alter table GuestRecord
add constraint FK_GuestRecord_ResideID
foreign key(ResideID) references ResideState(ResideId)
go
--添加检查约束
alter table RoomType
add constraint CK_RoomType_TypePrice check(TypePrice >= 0)
go
alter table Room
add constraint CK_Room_GuestNum check(GuestNum >= 0)
go
alter table GuestRecord
add constraint CK_GuestRecord_IdentityID check(len(IdentityID) = 18)
go
alter table GuestRecord
add constraint CK_GuestRecord_LeaveDate check(datediff(day,LeaveDate,ResideDate) <= 0)
go
--添加默认约束
alter table Room
add constraint DF_Room_BedNum default(2) for BedNum
go
alter table Room
add constraint DF_Room_GuestNum default(0) for GuestNum
go
alter table GuestRecord
add constraint DF_GuestRecord_ResideID default(0) for ResideID
go

------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------添加测试数据-------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
insert into RoomType values(‘标准间‘,180.00)
insert into RoomType values(‘单人套房‘,360.00)
insert into RoomType values(‘豪华标准间‘,260.00)
insert into RoomState values(‘清理中‘)
insert into RoomState values(‘未入住‘)
insert into RoomState values(‘已入住‘)
insert into Room values(default,default,‘双人标准间‘,1,1)
insert into Room values(default,default,‘双人标准间‘,2,1)
insert into Room values(default,default,‘双人标准间‘,1,2)
insert into Room values(default,default,‘双人标准间‘,3,1)
insert into Room values(default,default,‘单人间‘,1,1)
insert into Room values(default,default,‘单人间‘,2,1)
insert into Room values(default,default,‘单人间‘,1,2)
insert into Room values(default,default,‘单人间‘,3,1)
insert into Room values(default,default,‘单人间‘,1,3)
insert into Room values(default,default,‘单人间‘,2,3)
insert into Room values(default,default,‘单人间‘,3,2)
insert into Room values(default,default,‘单人套房‘,2,1)
insert into Room values(default,default,‘单人套房‘,1,3)
insert into Room values(default,default,‘单人套房‘,3,1)
insert into Room values(default,default,‘单人套房‘,1,2)
insert into Room values(default,default,‘单人套房‘,2,3)
insert into Room values(default,default,‘单人套房‘,1,3)
insert into Room values(default,default,‘单人套房‘,1,2)
insert into Room values(default,default,‘单人套房‘,3,2)
insert into Room values(default,default,‘单人套房‘,1,2)
insert into Room values(default,default,‘单人套房‘,3,1)
insert into Room values(default,default,‘豪华标准间‘,2,3)
insert into Room values(default,default,‘豪华标准间‘,1,3)
insert into Room values(default,default,‘豪华标准间‘,2,1)
insert into Room values(default,default,‘豪华标准间‘,1,2)
insert into Room values(default,default,‘豪华标准间‘,2,1)
insert into Room values(default,default,‘豪华标准间‘,3,1)
insert into ResideState values(‘未结账‘)
insert into ResideState values(‘已结账‘)
insert into GuestRecord values(‘郜飞‘,‘555555555555555555‘,1,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞1‘,‘444444444444444444‘,2,1,GETDATE(),DATEADD(DD,2,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞2‘,‘333333333333333222‘,1,1,GETDATE(),DATEADD(DD,3,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞3‘,‘333333333333333333‘,1,2,GETDATE(),DATEADD(DD,4,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞4‘,‘410787855123179810‘,2,1,GETDATE(),DATEADD(DD,5,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞5‘,‘123321321312321321‘,1,2,GETDATE(),DATEADD(DD,7,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞6‘,‘410787855102579810‘,3,1,GETDATE(),DATEADD(DD,8,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞7‘,‘410787855102579810‘,1,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞8‘,‘410787855102579810‘,2,1,GETDATE(),DATEADD(DD,3,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞9‘,‘410787855102579810‘,1,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞10‘,‘410787855102579810‘,3,1,GETDATE(),DATEADD(DD,5,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞11‘,‘123787855102579810‘,1,2,GETDATE(),DATEADD(DD,4,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞12‘,‘210787855102579810‘,1,1,GETDATE(),DATEADD(DD,6,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞13‘,‘440787855102579810‘,1,2,GETDATE(),DATEADD(DD,2,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞14‘,‘410787855102579810‘,1,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞15‘,‘410787855102576789‘,1,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,380.00)
insert into GuestRecord values(‘郜飞16‘,‘410787855102579810‘,1,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞17‘,‘456465464546546467‘,2,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞18‘,‘000000000000000000‘,1,2,GETDATE(),DATEADD(DD,1,getdate()),100.00,280.00)
insert into GuestRecord values(‘郜飞19‘,‘111111111111111111‘,1,1,GETDATE(),DATEADD(DD,1,getdate()),100.00,280.00)
go

时间: 2024-10-24 05:22:53

SQL创建表、数据库、约束、文件夹语法的相关文章

webform快速创建表单内容文件--oracle 数据库

使用方法 前台页面这样写就足够了 <form class="stdform" runat="server"> <div id="field_tab_content" runat="server"></div> </form> 新增编辑加载页面(改页面需要继承CreateModel类) Type type; public decimal id = 0; protected void

SQL创建表脚本

<1>SQL Server设置主键自增长列 SQL Server设置主键自增长列 1.新建一数据表,里面有字段id,将id设为为主键 www.2cto.com create table tb(id int,constraint pkid primary key (id)) create table tb(id int primary key ) 2.新建一数据表,里面有字段id,将id设为主键且自动编号 create table tb(id int identity(1,1),constrai

sql 创建表、删除表 增加字段 删除字段操作

[转]sql 创建表.删除表 增加字段 删除字段操作 下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助. 新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' null ,[字段2] ntext null ,[字段3] datetime,[字段4] money null ,[字段5] int default 0,[

mysql全备脚本,此脚本可以备份多个数据库,单独文件夹

#!/bin/bash#mysql全备脚本,此脚本可以备份多个数据库,#为每个数据建立单独的文件夹进行备份 #author:yxy#website:www.sql8.net#mail:[email protected]#created:2014-8-14 #Mysql dabase information#主机db_host="localhost"#数据库帐号db_user="root"#数据库密码db_passwd="12356789"#mys

SQL创建/修改数据库、表

--创建表 create table 表(a1 varchar(10),a2 char(2)) --为表添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '人员信息表', N'user', N'dbo', N'table', N'表', NULL, NULL --为字段a1添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N

[Nhibernate]SchemaExport工具的使用(二)——创建表及其约束、存储过程、视图

目录 写在前面 文档与系列文章 表及其约束 存储过程 视图 总结 写在前面 由于一直在山西出差,有几天没更新博客了.昨晚回到家,将博客园最近三天更新的文章搜集了一下,花费了半天的时间,看了看,有些文章也只能先躺在收藏夹里,慢慢去消化了.废话不多说了,进入正题,那么这篇文章就让我们接着学习SchemaExport工具的使用吧,如何使用SchemaExport为表添加约束,生成存储过程,生成视图? 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactor

Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间

alter table userInfo add(msn varchar2(20));   1.建表 create table userInfo ( id number(6), name varchar2(20), sex number(1), age number(3), birthday date, address varchar2(50), email varchar2(25), tel number(11) );   2.创建约束 不带约束名称的: create table userIn

sql创建表

表的创建 1.创建列(字段):列名+类型 2.设置主键列:能够唯一表示一条数据 3.设置唯一键:设计--索引/键--添加--唯一键(选择列)--确定 唯一键的内容不能重复 4.外键关系:一张表(从表)其中的某列引用另一张表(主表)中主键表 外键关系的目的是数据库更加完整更加安全. FK外键   PK主键 因为存在各种关系,所以SQL Server数据库一般称为关系数据库 设计表: 数据库的三大范式: 1.第一范式:(每一列的原子性) 每一列在某个程序中是不开拆分的最小原子 2.第二范式:(每一列

SQL SERVER 2008数据库MDF文件0字节数据恢复

SQL SERVER 2008数据库文件碎片恢复软件, 不管是MDF文件自然损坏后变0字节,还是经过删除后使用数据恢复软件找到后变成0字节均有良好的效果! 案例分析: 山东某政府机构的OA管理系统使用了SQLSERVER 2008数据库,有一天数据库置疑并无法拷贝,技术人员使用了CHKDSK/F 命令尝试修复,修复结束后17GB的MDF文件变成了0字节,经过百度搜索,联系到我们.本来使用自主开发的软件可以远程恢复,但由于用户是涉密单位,不能连外网,后来我们的工程师亲自上门去现场恢复,最终结果修复