数据库实验

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理实验指导

实验前准备:

请设计一个企业销售管理据库,其中需要保存的信息如下:

员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期;

客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码;

产品信息,包括:产品编号,产品名称;

员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。

此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期;要求:

(1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型;

(2)将ER图转换为关系模型;

实验一

实验名称:数据定义(2课时)

一、实验目的

1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。模式为人事表、客户表、销售表、销售明细表、产品表。熟悉SQL SERVER 企业管理器的使用,并将得到的表生成脚本,然后保存。

2、理解上述基本表之间的关系,建立关系表。

3、掌握修改表结构的基本方法

4、掌握索引和视图的创建方法

二、实验环境

MS SQL SERVER或者My Sql。

三、实验内容与步骤

1、建立一个数据库和五张表的表结构。

(1)/*员工人事表employee */

Create datebase sale;

create table employee(

emp_no char(5) Not null primary key,

emp_name char(10) Not null,

sex char(1) Not null,

dept char(4) null,

title char(6) null,

date_hired datetime null,

birthday datetime null,

salary int null,

addr char(50) null,

Mod_date datetime Default 0,

constraint c1 check(性别 in('男','女')) );

(2)/*客户表customer */

create TABLE customer(

cust_id char(5) Not null primary key,

cust_name char(20) Not null,

addr CHAR(40) Not null,

tel_no char(10) Not null,

zip char(6) null

);

(3)/*销售主表sales */

create TABLE sales(

order_no char(5) Not null primary key,

cust_id char(5) Not null,

sale_id CHAR(5) Not null,

tot_amt numeric(9,2) null,

order_date datetime null,

ship_date datetime null,

invoice_no char(10) null

);

(4)/*销货明细表 sales_item*/

create TABLE sales_item(

order_no char(5) Not null ,

prod_id char(5) Not null,

primary key(order_no,prod_id),

qty INT Not null,

unit_price numeric(9,2) Not null,

order_date datetime null,

CONSTRAINT FK_1 FOREIGN key(order_no) REFERENCES sales(order_no),

CONSTRAINT FK_2 FOREIGN key(prod_id) REFERENCES product(prod_id)

);

(5)/*产品名称表product */

create TABLE product(

prod_id char(5) Not null primary key,

prod_name char(20) Not null

);

2、建立5张表的关系图

3、修改表结构,通过SQL语句修改表约束。

①在表employee加入CHECK约束:输入的员工编号必须以E开头的5位数编号,性别只能为M/F。//check对于MySQL不起作用,只能在插入数据的基础上修改

use sale;

ALTER TABLE employee add CHECK(sex LIKE 'E%');

UPDATE employee

SET sex='F'

WHERE sex='女'

;

UPDATE employee

SET sex='M'

WHERE sex='男'

;

②为销售主表sales中的发票编号字段建立UNIQUE约束。

ALTER TABLE sales MODIFY invoice_no CHAR(10) UNIQUE NULL;

③所有性别属性,限制取值为f或m

4、员工表建立唯一索引:emp_no属性、升序;员工表建立聚集索引:emp_name属性、升序;CREATE UNIQUE INDEX emp_index ON employee(emp_no ASC);

//MYSQL不支持此类语法

5、创建视图:

①视图只含上海客户信息,即客户号、客户姓名、住址。

CREATE VIEW 上海客户信息AS

SELECT cust_id,cust_name,addr

FROM customer

WHERE addr LIKE '上海%';

②有两个基本表employee和sales,创建一个视图,该视图包含相同业务员的编号、姓名、订单号、销售总金额。

CREATE VIEW emp_sales AS

SELECT sale_id,emp_name,order_no,tot_amt

FROM employee,sales

WHERE employee.emp_no=sales.sale_id;

相关文档
最新文档