1﹑创建相应的数据库和查看数据库属性;
首先,需要创建数据库,可以有两种方式选择
(1) 在GUI的对象资源管理器界面数据库部分右击,点击创建“SPJ“数据库。
(2) 视图,打开模板资源库,选择database的create database语句,ctrl+shift+M替换数据库名,改为SPJ。以上操作都可快速创建数据库。
其次,查看数据库属性。大概分为四种方法,
(2) 使用存储过程 sp_spaceused显示数据库使用和保留的空间。sp_helpdb存储过程查看所有数据库的基本信息
(3) 使用目录视图
select * fromsys.database_files;
select * fromsys.filegroups;
select * fromsys.master_files;
select * fromsys.databases;
(4) 使用函数
USE SPJ GO
SELECT databasepropertyex(‘SPJ’,’ UserAccess’)as ‘state of SPJ’
这条语句就光光返回SPJ数据库的可以访问的用户名。还有其他很多属性。
2﹑创建基本表﹑确定表的主码和相应的约束,为主码建索引;
(1) 图形界面创建不具体。
(2) 建表的T-sql语句如下:
create table S
( SNO nchar(20) primary key,
SNAME nchar(50),
_STATUS int,
CITY nchar(30));
/*创建供应商表*/
create table P
( PNO nchar(20) primary key,
PNAME nchar(50),
COLOR nchar(20),
WEIGTH int);
/*创建零件表P*/
create table J
( JNO nchar(20) primary key,
JNAME nchar(50),
CITY nchar(20));
/*创建工程项目表J*/
create table SPJ
( SNO nchar(20),
PNO nchar(20),
JNO nchar(20),
QTY int,
primary key(SNO,PNO,JNO),
foreign key (SNO) references S(SNO),
foreign key (PNO) references P(PNO),
foreign key (JNO) references J(JNO));
/*创建供求关系表SPJ*/
在这种方式下,建表语句连同主键外码一同定义,非常省事。
--=============================================
--Create index basic template
--=============================================
USE SPJ
GO
CREATE INDEX spj_index
ON J
(
JNO
)
GO
以上为SQL-SERVER中创建索引的语句。
3﹑创建﹑查看视图;
同样的,可以参照模板库里的Create View Template
--=============================================
--Create View template
--=============================================
USE <database_name, sysname, AdventureWorks>
GO
IF object_id(N'
DROP VIEW <schema_name, sysname, dbo>.<view_name, sysname, Top10Sales>
GO
CREATE VIEW <schema_name, sysname, dbo>.<view_name, sysname, Top10Sales> AS
<select_statement, , SELECT TOP 10 * FROM Sales.SalesOrderHeader ORDERBY TotalDue DESC>
加上ctrl+shift+M,填上数据库名,模式名,视图名,以及select声明。
4﹑创建表之间的关联;
右键-关系
5﹑利用T-SQL和SQL Server企业管理器向数据库输入数据。
(1)T-SQL:insertinto 表名 values (, ,, )输完执行
(2)GUI可右键表,设计前200行。
思考:
1﹑为什么要建立索引?在你的数据库中建立多少索引合适?
这是因为,创建索引可以大大提高系统的性能。
第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三, 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四, 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五, 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
在这个SPJ数据库中,只需要对主码建立索引,因为自动对主码进行了索引。
2﹑索引和视图能否修改吗?为什么?
可以,因为索引和视图是建立在表的基础上的,修改视图以及索引并不会影响相关对象,例如,存储过程和触发器,而且用户必须要具有对OBJECT有ALERT的权限。
3﹑为什么不能随意删除被参考表中的主码?
可能会破坏数据完整性,主要是参照完整性。被参照的属性假如失去了主码的属性,可能导致外码表在该表中找不到一个元组与之属性值相等,还有可能原来主码的属性为空属性,导致与现实生活的不符。