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

xiaoxiao2021-02-28  174

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)

 

转载请注明原文地址: https://www.6miu.com/read-25192.html

最新回复(0)