Sql Server数据库 实验二 数据库及数据库对象的创建和管理

实验二  数据库及数据库对象的创建和管理

 

一、实验目的

1.掌握用企业管理器(Enterprise Manager)对数据库的完整创建、修改和删除

2.掌握用企业管理器(Enterprise Manager)对常见的数据库对象如表、试图、索引等的创建、修改和删除

3.掌握用SQL语句进行创建和管理数据库、表、试图和索引

 

二、实验环境(实验的软件、硬件环境)

硬件:PC机 软件:SQL2000

 

三、实验指导说明

请复习相关的数据库及其对象的创建和管理的SQL语法知识点,并完成如下内容。

 

四、实验内容

1.数据库操作

1)用SQL语句完整创建一个订单数据库,名为OrderDB,存放路径为:E:\MyOrder,它由5MB的主数据文件、2MB的次数据文件和1MB的日志文件组成。并且主数据文件以2MB的增长速度增长,其最大数据文件的大小为15MB,次数据文件以10%的增长速度增长,其最大次数据文件的大小为10MB,事务日志文件以1MB速度增长,其最大日志文件大小为10MB

2)将主数据文件大小由5M增大到8M,并删除次数据文件。

3)为了扩大订单数据库,为它增加一个次要数据文件order3.ndf,该文件大小为4M,最大可增长到10M,以10%的速度增长。

4)删除数据库。

2.表操作

1)简单创建订单数据库orderDB

2)为订单数据库创建5张表,分别如下:(要求在创建的过程中,分别为每张表合理建立主键、外键约束)

 

员工表Employee

员工号

employeeNo

Char(8)

员工姓名

employeeName

Varchar(10)

性别

Sex

Char(1)

所属部门

Department

Varchar(30)

职务

Headship

Varchar(6)

雇佣日期

Hiredate

Datetime

出生日期

Birthday

Datetime

薪水

Salary

Number

住址

Address

Varchar(50)

电话

Telephone

Varchar(20)

 

客户表customer

客户号

CustomerNo

Char(9)

客户名称

customerName

Varchar(40)

客户住址

Address

Varchar(40)

客户电话

Telephone

Varchar(20)

邮政编码

Zip

Char(6)

建立日期

Createdate

datetime

商品信息表product

商品编号

ProductNo

Char(9)

商品名称

ProductName

Varchar(40)

商品类别

ProductClass

Varchar(20)

商品定价

ProductPrice

Number

建立日期

Createdate

datetime

订单主表orderMaster

订单编号

OrderNo

Char(12)

客户号

customerNo

Char(9)

业务员编号

SaleNo

Char(8)

订单金额

Ordersum

Numeric

订货日期

Orderdate

Datetime

出货日期

Shipdate

Datetime

发票号码

InvoiceNo

Char(10)

 

订单明细表orderDetail

订单编号

OrderNo

Char(12)

商品编号

ProductNo

Char(9)

销售数量

Qty

Int

成交单价

Price

Numeric

3)表结构的修改

Ø 修改客户表结构,要求客户名称和客户电话属性为not null

Ø 修改员工表结构,要求员工姓名和电话属性为not null

Ø 修改订单表结构,要求发票号码属性为not null

3.索引操作

在已创建的基本表的基础上,完成以下索引

1)在员工表中按所得薪水建立一个非聚集索引salaryIdx

2)在订单主表中,首先按订金金额的升序,然后按业务员编号的降序建立一个非聚集索引salenosumIdx

4.视图操作

创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、客户住址、建立日期。

5.利用企业管理器(Enterprise Manager)完成以上1~4中的操作。


实验sql语句:

--实验内容1、数据库操作

CREATE DATABASE OrderDB /*创建数据库*/

ON

(

NAME = 'OrderDB1', /*创建主数据文件*/

FILENAME = 'E:\MYOrder\OrderDB1 dat.mdf', /*注意在文件路径下,例如是E盘中新建MYOrder文件夹*/

SIZE = 5MB,

MAXSIZE = 15MB,

FILEGROWTH = 2MB

),

(

NAME = 'OrderDB2', /*创建次数据文件 */

FILENAME = 'E:\MYOrder\OrderDB2 dat.ndf',

SIZE = 2MB,

MAXSIZE = 10MB,

FILEGROWTH = 10%

)

LOG ON

(

NAME = 'OrderDB_log', /*创建日志文件*/

FILENAME = 'E:\MYOrder\OrderDB log.ldf',

SIZE = 1MB,

MAXSIZE = 10MB,

FILEGROWTH = 1MB

)

ALTER DATABASE OrderDB   /* 修改数据库的操作,使用alter*/

MODIFY FILE

(

NAME = 'OrderDB1',

SIZE = 8MB  /*修改SIZE大小 */

)

ALTER DATABASE OrderDB

ADD FILE  /*对数据库OrderDB进行修改 增加文件 */

(

NAME = 'OrderDB3.ndf',

FILENAME = 'E:\MYOrder\OrderDB3 dat.mdf',

SIZE = 4MB,

MAXSIZE = 10MB,

FILEGROWTH = 10%

)

 

DROP DATABASE OrderDB  /*删除数据库 */

 

CREATE DATABASE OrderDB   /* 简单创建数据库*/

--表操作


use OrderDB --注意切换到新建数据库,不然一下创建的表将创建在主表Master之中

CREATE TABLE Employee /*创建员工表 */

(

EmployeeNo char(8) PRIMARY KEY,--员工号

EmployeeName Varchar(10),--员工姓名

Sex Char(1),--性别

Department Varchar(30),--所属部门

Headship Varchar(6),--职务

Hiredate Datetime,--雇佣日期

Birthday Datetime,--出生日期

Salary Numeric(8,3),--薪水

Address Varchar(50),--住址

Telephone Varchar(20)--电话

)

 

CREATE TABLE Customer/*创建客户表 */

(

  CustomerNo Char(9) PRIMARY KEY,--客户号

  CustomerName Varchar(40),--客户名称

  Address Varchar(40),--客户住址

  Telephone Varchar(20),--客户电话

  Zip Char(6),--邮政编码

  Createdate datetime--建立日期

)

CREATE TABLE Product /*创建商品表 */

(

ProductNo Char(9) PRIMARY KEY,--商品编号

ProductName Varchar(40),--商品名称

ProductClass Varchar(20),--商品类别

ProductPrice Numeric(8,3),--商品定价

Createdate Datetime--建立日期

)

CREATE TABLE OrderMaster/*创建订单主表 */

(

OrderNo Char(12) PRIMARY KEY,--订单编号

CustomerNo Char(9),--客户号

SaleNo Char(8),--业务员编号

Ordersum Numeric(8,3),--订单金额

Orderdate Datetime,--订货日期

Shipdate Datetime,--出货日期

InvoiceNo Char(10),--发票号码

FOREIGN KEY(CustomerNo) REFERENCES Customer(CustomerNo)

)

 

CREATE TABLE OrderDetail/*创建订单明细表 */

(

OrderNo Char(12) ,--订单编号

ProductNo char(9),--商品编号

PRIMARY KEY(OrderNo,ProductNo),  

FOREIGN KEY(OrderNo) REFERENCES  OrderMaster(OrderNo),

FOREIGN KEY(ProductNo) REFERENCES Product(ProductNo),

Qty Int,--销售数量

Price Numeric(8,3)--成交单价

)

--实验2、(3)表结构的修改

ALTER TABLE Customer  /*修改表 */

ALTER COLUMN CustomerName Varchar(40) NOT NULL

ALTER TABLE Customer /*修改表 */

ALTER COLUMN Telephone Varchar(20) not null

 

ALTER TABLE Employee /*修改表 */

ALTER COLUMN EmployeeName Varchar(10) not null

 

ALTER TABLE Employee /*修改表 */

ALTER COLUMN Telephone Varchar(20) not null

 

ALTER TABLE OrderMaster /*修改表 */

ALTER COLUMN InvoiceNo char(10) not null

--实验3、索引操作

CREATE NONCLUSTERED INDEX salaryIdx ON Employee(Salary ASC); /*创建非聚簇索引表 ,按员工表中薪水升序*/

 

CREATE NONCLUSTERED INDEX salenosumIdx ON OrderMaster(Ordersum ASC,SaleNo DESC)

 /*在订单主表中,首先按订金金额的升序,然后按业务员编号的降序建立一个非聚集索引*/

--实验4、视图操作

CREATE VIEW view_Customer /*创建视图*/

AS

SELECT CustomerNo,CustomerName,Address

FROM Customer

WHERE Address ='上海'


你可能感兴趣的:(Sql Server数据库 实验二 数据库及数据库对象的创建和管理)