实验一 创建CAP数据库
- 实验目的和要求
- 熟悉SQL Server 2008 中SQL Server Management Studio(SSMS)的环境
- 了解SQL Server 2008数据库的逻辑结构和物理结构
- 掌握创建和删除数据库的方法
- 掌握创建和删除表的方法
- 掌握简单查询
- 实验内容
设有一商品订购管理系统,其数据库名为“CAP”,初始大小为 10MB,数据库自动增长,增长方式是按1M增量方式增长;日志文件初始为2MB,按10%增长。数据库的逻辑文件名为“cap”, 物理文件名为“cap.mdf,存放路径为“d:\sql_data”。日志文件的逻辑文件名为“cap_log”, 物理文件名为“cap_log.ldf”,存放路径为“d:\sql_data”。(如果D盘没有sql_data目录,请先建立此目录)
-
- 使用SSMS创建CAP数据库。
实验步骤:
- 启动SSMS
在开始菜单中:所有程序-SQL Server 2008 -SQL Server Management Studio 。单击“连接”按钮,便可以进入SSMS窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。
建立数据库
选择“对象资源管理器”窗口,在数据库节点上右击并选择新建,建立CAP数据库。
用SSMS删除上面建立的CAP数据库。
选择“对象资源管理器”窗口,在数据库节点右击CAP数据库,在弹出的快捷菜单中选择“删除”。
使用SQL语句创建CAP数据库。
提示:使用查询分析器创建数据库
单击屏幕左侧第一个工具栏中的“新建查询”按钮,随后,在查询窗口中编写查询
创建CAP数据库的SQL语句如下:
create database CAP
on
(name=cap_data,--数据文件的逻辑名称,注意不能与日志逻辑同名
filename='d:\sql_data\cap_data.mdf' ,--物理名称,注意路径必须存在
size=10,--数据初始长度为5M
maxsize=50,--最大长度为10M
filegrowth=1)--数据文件每次增长1M
log on
( name=cap_log,
filename='d:\sql_data\cap_log.ldf ' ,
size=2 ,
maxsize=5 ,
filegrowth=1)
注意:查询创建时,要确定选择正确的数据库。由于用户配置文件中已指定了默认数据库,所以一个常见错误就是执行默认数据库中的一个查询。如果以admin或sa用户的身份登录,那么默认数据库是master数据库。为了确保查询是在正确的数据库中执行,请在查询开头使用use <databasename>;go来建立到数据库的连接。
- 使用SSMS创建customers表。
- 启动SSMS
- 连接到数据库引擎
- 展开“数据库”节点,选择CAP数据库
- 右击“表”节点,从弹出的菜单中选择“新建表”
创建客户表customers,由以下属性组成:cid char(4), cname varchar(13), city varchar(20), discnt real。其中cid是主码(右键单击cid,选择“设置主键”),且不能取空值。
点击 保存按钮,弹出:
取名customers,确定。
使用SQL语句创建products和orders表。
提示:在查询窗口中新建查询,SQL语句如下
use CAP;
go
create table agents(aid char(3) not null, aname varchar(13),
city varchar(20), per smallint, primary key(aid));
go
create table products(pid char(3) not null, pname varchar(13),
city varchar(20), quantity integer, price money, primary key(pid));
create table orders(ordno integer not null, month char(3),
cid char(4) , aid char(3), pid char(3),
qty integer, dollars money, primary key(ordno));
注意:以上创建的表是空表,表中无数据。使用use <databasename>语句,<databasename>大小写严格区分。
导入数据。
提示:右击CAP数据库,在弹出的菜单中选择“任务”,随后选择“导入数据”。
接下来选择数据源表和导入的目标表。注意:四个表都要对应,例如,产品与products对应,代理商与agents对应,订单与orders对应,客户与customers对应。
用SELECT语句完成以下查询
找出住在纽约的代理商的aid值和名字。
select aid,aname
from agents
where city='New York'
检索订货记录中所有的零件的pid值。
select pid
from products
检索有关住在Duluth或Dallas的代理商的所有信息。
select*
from agents
where city='Duluth'or'city='Dallas'
检索居住地名以“D”开始的客户的信息。
select*
from agents
where city='Duluth'or city='Dallas'
检索所有客户的最高折扣率。
select cname,discnt
from customers
求出所有的订货交易的总金额。
select sum(dollars)
from orders
求出产品p01的订购总量。
select sum(quantity)
from products
where pid='p01'
求出有顾客居住的城市的数目。
select sum(city)
from customers
思考题
MS SQL的身份验证方式是哪两种?各适用于什么情况下使用?
在创建基本表时是否可以缺省主码?
可否修改基本表的结构?如何修改?试举例说明。
根据本次实验附录的CAP数据库中的数据,建立其概念模型(用E-R图表示)。
四、出现问题及解决方案
附录(CAP数据库)