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

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

 

一、实验目的

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

成交单价

Qty

Numeric

(3)表结构的修改

  • 修改客户表结构,要求客户名称和客户电话属性为not null
  • 修改员工表结构,要求员工姓名和电话属性为not null
  • 修改订单表结构,要求发票号码属性为not null

3.索引操作

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

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

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

4.视图操作

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

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

 

五、实验步骤

请完成实验内容,并写出具体的实验步骤

1.(1)代码:/*数据库操作()*/

create database OrderDB

on primary(

    --数据文件的具体描述

    name = 'order1_data',--主数据文件的逻辑名称

    filename = 'G:\MyOrder\order1_data.mdf',--存储地址

    size = 5MB,--主数据文件的初始大小

    maxsize = 15MB,--主数据文件的最大值

    filegrowth = 2MB--主数据文件的增长值

),

(

    --创建次数据文件

    name = 'order2_data',--次数据文件的逻辑名称

    filename = 'G:\MyOrder\order2_data.ndf',--存储地址

    size = 2MB,--次数据文件的初始大小

    maxsize = 10MB,--次数据文件的最大值

    filegrowth = 10%--次数据文件的增长率

)

log on(

    --创建日志文件

    name = 'order1_log',--日志文件的逻辑名称

    filename = 'G:\MyOrder\order1_log.ldf',--日志文件的存储地址

    size = 1MB,--日志文件的初始大小

    maxsize = 10MB,--日志文件的最大值

    filegrowth = 1MB--日志文件的增长率

试验结果图:

       
               

1.(2)代码:--()将主数据文件大小由5M增大到8M,并删除次数据文件

alter database OrderDB

modify file

(

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

    filename = 'G:\MyOrder\order1_data.mdf',--存储地址

    size = 8MB—大小变为8MB

)

 

alter database OrderDB

remove file order2_data—-删除次数据文件

试验结果图:

 

1.(3)代码:--()为了扩大订单数据库,为它增加一个次要数据文件order3.ndf,该文件大小为4M,最大可增长到10M,

--以10%的速度增长

alter database OrderDB

add file

(

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

    filename = 'G:\MyOrder\order3_data.ndf',--存储地址

    size = 4MB,--原始大小

    maxsize = 10MB,--最大值

    filegrowth = 10%--增长率

)

试验结果图:

 

1.(4)代码:--()删除数据库

drop database OrderDB

 

2.(1)代码:--简单创建数据库orderDB

create database orderDB

试验结果图:

 

2.(2)代码:--创建张表

use orderDB

--员工表Employe

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,2),--薪水

    Address varchar(50),--地址

    Telephone varchar(20)--电话

)

--客户表custome

create table customer

(

    CustomerNo char(9) primary key,--客户号为主键

    customerName varchar(40),--客户名称

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

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

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

    Createdate datetime--建立日期

)

 

--商品信息表produc

create table product

(

    ProductNo char(9) primary key,--商品编号为主键

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

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

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

    Createdate datetime--建立日期

)

 

--订单主表orderMaste

create table orderMaste

(

    OrderNo char(12) primary key,--订单编号为主键

    customerNo char(9),--客户号

    foreign key (customerNo) references customer(customerNo),--客户号为外键,引用表custom

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

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

    Orderdate datetime,--订货日期

    Shipdate datetime,--出货日期

    InvoiceNo char(10)--发票号码

)

 

--订单明细表orderDetail

create table orderDetil

(

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

    foreign key(OrderNo) references orderMaste(OrderNo),--外键引用表orderMast

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

    foreign key(ProductNo) references product(ProductNo),--外键引用表produc

    Qty int,--销售量

    OrderPrice numeric(8,2)--成交价格

)

试验结果图:

       

2.(3)代码:--()表结构的修改

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

alter table customer

alter column customerName varchar(40) not null

 

alter table customer

alter column Telephone varchar(20) not null

 

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

alter table Employee

alter column employeeName varchar(10) not null

 

alter table Employee

alter column Telephone varchar(20) not null

 

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

alter table orderMaste

alter column InvoiceNo char(10) not null

试验结果图:

 

3.(1)代码:--()在员工表中按所得薪水建立一个非聚集索引salaryIdx

create nonclustered index salaryIdx on Employee(Salary)

试验结果图:

 

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

--salenosumIdx

create nonclustered index salenosumIdx on orderMaste(Ordersum asc,SaleNo desc)

试验结果图:

 

4.代码:--创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、客户住址、建立日期

create view shanghai

as

select customerNo,customerName,Address,Createdate

from customer

where Address = '上海'

试验结果图:

 

六、思考题:

1.请思考数据库和各数据库中的对象的联系和区别?

答:

2.请思考视图和表的联系和区别?

   答:区别:1、视图是已经编译好的sql语句。而表不是
      2
、视图没有实际的物理记录。而表有。
      3
、表是内容,视图是窗口
      4
、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
      5
、表是内模式,试图是外模式
      6
、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
      7
、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
      8
、视图的建立和删除只影响视图本身,不影响对应的基本表。

              联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系

七、总结(实验过程的体会、心得和实验教与学之间还需改进的内容)

心得:

  1. 在做试验的过程中,让我学到了更多的东西,比如:删除数据库的语句各有不同,drop/delete/truncate,并且删除数据的速度,一般来说: drop> truncate > delete等;
  2. 在做试验的过程中,我加深了数据的创建以及数据库对象管理的SQL语句,并且对数据库的兴趣更浓厚了
  3. 我领会到了基础的重要性,觉得在数据库的学习和实践过程中离不开扎实的基础知识

转载于:https://www.cnblogs.com/LOB104-zhanglei/articles/3624190.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值