电影mysql设计_电影院数据库设计(案例)

//邱于涵 2017年5月5日13:26:43 QQ:1031893464

use master

go

---创建电影数据库filmDB

--查询是否有filmDB这个数据库

if exists(SELECT * FROM sysdatabases where name='filmDB')

drop database filmDB

CREATE DATABASE filmDB

ON

(

----主数据文件的描述

name='fileDB_data',--逻辑名称

filename='D:\SQLDB\filmDB\fileDB_DATA.mdf',--物理名称

size=10MB,--数据文件初始大小

filegrowth=15% --增长率

)

LOG ON(

---日志文件的描述

name='fileDB_log',

filename='D:\SQLDB\filmDB\fileDB_log.ldf',

size=5mb,

filegrowth=10%

)

--

use filmDB

go

--创建电影信息表

CREATE TABLE filmInfo(

filmID char(16) not null primary key , --电影编号

filmName nvarchar(50) not null, --n unicode 电影名称

typeID char(2) not null, --电影类别编号

advFile nvarchar(255), ---varchar 是可变长度 char 不可变

actor nvarchar(255),

director nvarchar(50),

ticketPrice numeric(6,2) not null --一共六位,有两位是小数,四位是整数,也就是上千

)

--电影类别表

CREATE TABLE filmType(

typeID char(2) primary key,

typeName varchar(20) not null

)

--为电影信息表创建外键

alter table filmInfo

add constraint FK_filminfotypeid

FOREIGN KEY(typeID) references filmType(typeID)

--为filminfo 创建约束

alter table filmInfo

add constraint ck_filmInfo1

check(filmID like 'GH[1-3][0-9][0-9][0-9][0-9][0-9][0-9][0-9][1-5][0-9][0-9][0-9][0-9][0-9]') --GHYYYYMMDDxxxxxx(GH年月日(八位),级别(1位),库存编号(5位))

--广告文件字段添加check约束

alter table filmInfo

add constraint ck_filmInfo_2

CHECK(advFile like '%.jpg' or advFile like '%.gif')

--设置 票价的 default 约束

alter table filmInfo

add constraint ck_filmInfo_3

default(100) for ticketPrice

--设置票价50到300(需求)

alter table filmInfo

add constraint ck_filmInfo_4

CHECK(ticketPrice>=50 and ticketPrice<=300)

--电影类别表 增加check约束

alter table filmType

add constraint ck_filmType3

CHECK(typeID like '[A-Z][A-Z]')

--创建放映信息表

CREATE TABLE playInfo

(

playID int primary key identity(1,1),

filmID char(16) not null,

startTime DATETIME NOT NULL,

endTime DATETIME NOT NULL

)

--为playInfo创建外键

alter table playInfo

add constraint FK_playinfo_1

FOREIGN KEY(filmID) REFERENCES filmInfo(filmID)

--出票信息表

CREATE TABLE ticketInfo

(

seatID varchar(8) not null,

playID int NOT NULL,

finalPrice numeric(6,2) NOT NULL

)

--ticketInfo最终票价约束

alter table ticketInfo

add constraint ck_ticketInfo2

CHECK(finalPrice >=0 and finalPrice <=300)

--默认值约束

alter table ticketInfo

add Constraint ck_ticketInfo3

default(100) for finalPrice

--插入数据 电影类别表

INSERT INTO filmType(typeID,typeName)VALUES('AQ','爱情片')

INSERT INTO filmType(typeID,typeName)VALUES('DH','动画片')

INSERT INTO filmType(typeID,typeName)VALUES('GF','功夫片')

INSERT INTO filmType(typeID,typeName)VALUES('XJ','喜剧片')

INSERT INTO filmType(typeID,typeName)VALUES('ZZ','战争片')

INSERT INTO filmType(typeID,typeName)VALUES('QT','其他')

--电影信息表

INSERT INTO filmInfo (filmID,filmName,typeID,advFile,actor,director,ticketPrice)VALUES('GH20070518300005','唐伯虎点秋香','XJ','qiuxiang.gif','周星驰,巩俐等','李力持',80.00)

INSERT INTO filmInfo (filmID,filmName,typeID,advFile,actor,director,ticketPrice)VALUES('GH20080318300005','猫和老鼠','DH','cat.jpg','','威廉·汉纳及约瑟夫·巴',80.00)

--update filmInfo set ticketPrice=60.00 where filmID='GH20080318300005'

INSERT INTO filmInfo (filmID,filmName,typeID,advFile,actor,director,ticketPrice)VALUES('GH20080618400001','倚天屠龙记','GF','tulong.gif','李连杰,邱淑贞','王晶',198.00)


版权声明:本文为weixin_39603537原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。