实验目的: 熟悉SQL SERVER2000的操作, 实践表的基本操作
实验环境: WINDOWS SERVER2003, MS SQL SERVER2000
实验1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理数据库
1 实验内容:
(1) 使用SSMS(SQL Server Management Studio)加入实验数据库。
(2) 使用SSMS可视化建立、修改和删除数据库、表。
(3) 使用SSMS对数据库进行备份和恢复。
(4) 使用SSMS对表进行查询、插入、修改、删除。
2 实验步骤:
(1) .加入School数据库。
在左侧的"对象资源管理器"中,选中数据库,单击右键选择"附加"。在"附加数据
库"对话框中单击"添加"按钮,选择School_Data.MDF文件,点击"确定"即可。
(2) 建立Test数据库。
在左侧的"对象资源管理器"中,选中数据库,单击右键选择"新建数据库",输入数
据库名称为"Test",点击"确定"即可。
- 在数据库中建立人员表PERSON(P#,Pname,Page)。更改表设置P#为主键,增加属性Ptype(类型是CHAR,长度是10)。
编写代码如下:
代码语言:javascript复制USE test;
DROP TABLE Person;
CREATE TABLE Person(
p$ CHAR(18) NOT NULL,
Pname CHAR(20),
Page SMALLINT
);
ALTER TABLE Person
ADD PRIMARY KEY (p$);
ALTER TABLE person ADD Ptype CHAR(10);
注:由于这里使用的是mysql,开发工具为sqlyog #字符为注释关键字 所以这里修改主键为p$
- 用SSMS的查询功能(新建查询)对PERSON表进行查询、插入、修改、删除等操作:首先插入两条记录;修改第二条记录;删除第二条记录。
插入两条记录:
代码语言:javascript复制INSERT INTO person VALUES(
'229174',
'glm',
20,
'student');
INSERT INTO person VALUES(
'229xxx',
'xhs',
20,
'worker');
修改第二条记录:
代码语言:javascript复制UPDATE person
SET pname='xu hui san',
page=21
WHERE p$='229xxx'
- 备份Test数据库。
在左侧的"对象资源管理器"中,选中"数据库"下的"Test",右键单击"任务"→"备份",选择路径,点击"确定"即可。
- 删除表Person。
编写SQL如下:
代码语言:javascript复制DROP TABLE Person;
(7)恢复Test数据库。
在左侧的"对象资源管理器"中,选中"数据库"下的"Test",右键单击"任务"→"还原"→"数据库",选择要还原的备份集,点击"确定"即可。
- 删除Test数据库。
在左侧的"对象资源管理器"中,选中"数据库"下的"Test",右键单击"删除",点击"确定"即可。
实验1.2 数据定义
1、使用SQL语句创建关系数据库表: 人员表Person(P#, Pname, Page)、房间表Room(R#, Rname, Rarea)、表Pr(P#, R#, Date)。其中: P#是表Person的主键,具有唯一性的约束: Page具有约束"大于18": R#是表Room的主键,具有唯一性约束。
表Pr中的P#、C#是外键。编写的SQL脚本如下:
代码语言:javascript复制USE test;
DROP TABLE Person;
CREATE TABLE Person(
p$ CHAR(10) UNIQUE PRIMARY KEY,
pname CHAR(10),
page SMALLINT,
CONSTRAINT check_age CHECK(page>18)
);
DROP TABLE Room;
CREATE TABLE Room(
r$ CHAR(3) UNIQUE,
rname CHAR(20),
rarea REAL
);
DROP TABLE pr;
CREATE TABLE pr(
p$ CHAR(10) REFERENCES Person(p$),
r$ CHAR(3) REFERENCES Room(r$),
DATE DATE
);
USE test;
ALTER TABLE Person
ADD ptype CHAR(10)
2、更改表Person,增加属性Ptype(类型是CHAR,长度是10),取消Page大于18的约束。把表Room中的属性Rname数据长度改成40。
代码语言:javascript复制ALTER TABLE Person
DROP CONSTRAINT check_age;
ALTER TABLE room
MODIFY COLUMN rname CHAR(40);
3、删除表Room中的一个属性Rarea。
代码语言:javascript复制ALTER TABLE Room
DROP COLUMN Rarea;
4、取消表Pr。
代码语言:javascript复制DROP TABLE Pr;
5、为表Room创建按R#降序排列的索引。
代码语言:javascript复制CREATE INDEX Roomno ON Room(R# DESC);
6、为表Person创建按P#升序排列的索引。
代码语言:javascript复制CREATE INDEX Personno ON Person(P#);
7、创建表Person的按Pname升序排列的唯一性索引。
代码语言:javascript复制CREATE UNIQUE INDEX Personno1 ON Person(Pname);
8、取消表Person的表P#升序索引。
代码语言:javascript复制DROP INDEX Person.Personno;
实验1.3 VS2008
在Visual Studio中新建网站。在Defualt.aspx.cs中,编写如下程序:
代码语言:javascript复制using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication2
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
NowTime.Text = DateTime.Now.ToString();
}
}
}
在Default.aspx中编写如下程序:
代码语言:javascript复制<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>22920182204xxx xxx <asp:Label ID="NowTime" runat="server" Text="NowTime.text"></asp:Label></p>
</div>
</form>
</body>
</html>
实验总结:
通过本次实验,我熟悉了SSMS的基本使用方法(增删改查)。
一开始是采用老师给的sql server2008 但是由于电脑c盘内存过少,为了节省内存,就下载了轻量级的mysql配合着sqlyog用还是足以满足要求的。很重要的一点就是要注意sql selver和mysql语法上有差异,经常写完一句sql语句就会报错。需要经常查百度、谷歌来解决。
这给我一个教训就是:由于数据库管理系统纷繁复杂,各种版本的SQL语言支持不尽相同,在实验过程中经常会弄混,这需要我更加清晰这之间的异同,减少这方面的错误。