XMU数据库实验一(SQL语句初步入门)

2021-03-27 18:54:59 浏览数 (1)

实验目的: 熟悉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",点击"确定"即可。

  1. 在数据库中建立人员表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$

  1. 用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'
  1. 备份Test数据库。

在左侧的"对象资源管理器"中,选中"数据库"下的"Test",右键单击"任务"→"备份",选择路径,点击"确定"即可。

  1. 删除表Person。

编写SQL如下:

代码语言:javascript复制
DROP TABLE Person;

(7)恢复Test数据库。

在左侧的"对象资源管理器"中,选中"数据库"下的"Test",右键单击"任务"→"还原"→"数据库",选择要还原的备份集,点击"确定"即可。

  1. 删除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语言支持不尽相同,在实验过程中经常会弄混,这需要我更加清晰这之间的异同,减少这方面的错误。

0 人点赞