数据库实验一 创建数据库和表以及表操作 实验报告

预习报告部分

实验目的

1.了解SQL Server数据库的逻辑结构和物理结构,表的结构特点;

2.了解SQL Server的基本数据类型,空值概念;

3.学会在对象资源管理器中创建数据库和表;

4.学会使用T—SQL语句创建数据库和表;

5.学会在对象资源管理器中对数据表进行插入、修改、删除数据操作;

6.学会使用T-SQL对数据表进行插入、修改、删除数据操作;

二、实验用仪器设备、器材或软件环境

联想拯救者Y9000P笔记本,MySQL软件环境

三、实验内容

    1.创建用于企业管理的员工管理数据库,数据库名为YGGL,包含员工的信息、部门信息以及员工的薪水信息。数据库YGGL包含下列3个表。

    (1)Employees:员工自然信息表。

    (2)Departments:部门信息表。

    (3)Salary:员工薪水情况表。

    各表的结构分别如表T2.1,表T2.2,表T2.3所示。

            

 

    2.分别使用对象资源管理器和T—SQL语句,向在以下实验步骤1建立的数据库YGGL的3个表Employees,DepartmentsSalary中插入多行数据记录,然后修改和删除-些记录。使用 T—SQL进行有限制的修改和删除。

 实验准备:  

    首先了解对表数据的插入、删除、修改都属于表数据的更新操作。对表数据的操作可以在对象资源管理器中进行,也可以由T-SQL语句实现。

    其次要掌握T-SQL中用于对表数据进行插入、修改和删除的命令分别是INSERT, UPDATEDELETE(或TRANCATE TABLE)。

    要特别注意在执行插入、删除、修改等数据更新操作时,必须保证数据完整性。

    此外,还要了解使用T-SQL语句在对表数据进行插入、修改及删除时,比在对象资源管理器中操作表数据更为灵活,功能更强大。

实验报告部分

  • 仪器设备型号及编号

LAPTOP-81P3TJ4L

  • 实验器材或软件环境

Microsoft SQL Server Management Stdio

实验步骤及结果

 1.1在对象资源管理器中创建数据库YGGL

    要求:数据库YGGL初始大小为10MB,最大大小为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB(默认为不限制),按1MB增长(默认是按5%比例增长)。数据库的逻辑文件名和物理文件名均采用默认值,分别为 YGGL_datae\sql\data\MSSQL\Data\YGGL.mdf,其中e:\sql\data\MSSQLSQL Server的系统安装目录;事务日志的逻辑文件名和物理文件名也均采用默认值分别为YGGL—LOG e:\sql\data\MSSQL\Data\YGGL_Log.1df

    以系统管理员Administrator是被授权使用CREATE DATABASE语句的用户登录SQL Server服务器,启动对象资源管理器->在服务器上单击鼠标右键->新建数据库->输入数据库名“YGGL->选择“数据文件”选项卡->设置增长方式和增长比例->选择“事务口志”选项卡-设置增长方式和增长比例。

    注意:在“数据文件”选项卡和“事务曰志”选项卡中可以分别指定数据库文件和日志文件的物理路径等特性。

              

 

1.2在对象资源管理器中删除创建的YGGL数据库

在对象资源管理器中选择数据库YGGL >YGGL上单击鼠标右键-删除。

                    

1.3使用T—SQL语句创建数据库YGGL

按照实验步骤1中的要求创建数据库YGGL

启动查询分析器->在“查询”窗口中输入以下T—SQL语句:

 CREATE  DAIABASE  YGGL

 ON

(    NAME=’YGGL_Data’,

    FILENAME=’e:\sql\data\MSSQL\Data\YGGL.mdf,

    SIZE=10MB,   

    MAXSIZE=50MB,

FILEGROWTH=5%)

 LOGON

(  NAME=’YGGL_Log’,

    FILENAME=’e:\sql\data\MSSQL\Data\YGGL_Log.ldf,

    SIZE=2MB,

    MAXSIZE=5MB,

FILEGROWTH=1MB)

G0

单击快捷工具栏的执行图标,执行上述语句,并在对象资源管理器中查看执行结果。

   

1.4在对象资源管理器中分别创建表Employees,DepartmentsSalary

在对象资源管理器中选择数据库YGGL->在YGGL上单击鼠标右键->新建->表->输入 Employees表各字段信息->单击保存图标->输入表名Employees,即创建厂表Employees。按同样的操作过程创建表DepartmentsSalary

 

  

1.5在对象资源管理器中删除创建的Employees,DepartmentsSalary

    在对象资源管理器中选择数据库YGGL的表EmployeesàEmployees上单击鼠标右键->删除,即删除了表Employees。按同样的操作过程删除表DepartmentsSalary           

1.6使用T—SQL语句创建表EmployeesDepartmentsSalary

    启动查询分析器,在“查询”窗口中输入以下T—SQL语句:

 USE YGGL

CREATE TABLE Employees (

  EmployeeID Char(6) NOT NULL  PRIMARY KEY ,

  Name Char(10) NOT NULL ,

  Birthday datetime NOT NULL ,

  Sex bit NOT NULL ,

  Address Char(20) NULL ,

  Zip char(6) NULL ,

  PhoneNumber char(12) NULL ,

  EmailAddress char(30) NULL ,

  DepartmentID char(3) NOT NULL ,

foreign key (DepartmentID) references Departments(DepartmentID)

)

GO

单击快捷工具栏的执行图标,执行上述语句,即可创建表Employees。按同样的操作过程创建表Departments和Salary,并在对象资源管理器中查看结果。

USE YGGL

CREATE TABLE Departments (

  DepartmentID Char(3) NOT NULL ,

DepartmentName Char(3) NOT NULL ,

Note text NULL ,

)

GO

USE YGGL

CREATE TABLE Salary (

  EmployeeID Char(6) NOT NULL ,

InCome float(8) NOT NULL ,

OutCome float(8) NOT NULL ,

)

GO

2.1在对象资源管理器中向数据库YGGL表加入数据

2.2(1)在对象资源管理器中向表Employees中加入如表T3.1所示的记录。

表T3.1数据记录  

在对象资源管理器中选择表Employees>在其上单击鼠标右键->选择“返回所有行”

->逐字段输入各记录值,输入完后,关闭表窗口。

(2)在对象资源管理器向表Departments中插入如表T3.2所示的数据记录。

表T3.2数据记录

(3)在对象资源管理器中向表Salary中插入如表T3.3所示的数据记录。

表T3.3数据记录

                                    

2.3在对象资源管理器中修改数据库YGGL表数据

(1)在对象资源管理器中删除表Employees的第2,8行和Salary的第2,11行。

注意进行删除操作时,作为两表主键的EmployeeID的值,以保持数据完整性。

在对象资源管理器中选择表Employees—>在其上单击鼠标右键->选择“返回所有行”->选择要删除的行->单击鼠标右键->删除->关闭表窗口。                    

(2)对象资源管理器中删除表Departments的第2行,同时也要删除表Employees的第

2行。操作方法同(1)。

                     

(3)在对象资源管理器中将表Employees中编号为020018的记录的部门号改为4。

  在对象资源管理器中选择表Employeesà在其上单击鼠标右键-选择“返回所有行”->将光标定位至编号为020018的记录的DepartmentID字段,将值1改为4。

2.4使用T-SQL命令修改数据库YGGL表数据

   (1)使用T-SQL命令分别向YGGL数据库Employees,Departments和Salary表中插入1行记录, 三表记录分别是(’011112’,’罗林’,’1973-5-3’,1,’解放路100号’,210002,4055663,NULL,5), (‘2’,’人资源部’,NULL), (’011112’,1200.09,50)。启动查询分析器->在“查询”窗口中输入以下T—SQL语句:

USE YGGL

    INSERT INTO Employees

    VALUES(’011112’,’罗林’,’1973-5-3’,1,’解放路100号’,210002,4055663,NULL,5)

GO

USE YGGL

    INSERT INTO Departments

    VALUES('2','人资源部',NULL)

GO

USE YGGL

    INSERT INTO Salary

    VALUES('011112',1200.09,50)

GO

    单击快捷工具栏的执行图标,执行上述语句。

    注意:在对象资源管理器中分别打开YGGL数据库Employees,DepartmentsSalary表,观察数据变化。

     

(2)使用T—SQL命令修改表Salary中的某个记录的字段值。

启动查询分析器->在“查询”窗口中输入以下T—SQL语句:

    USE YGGL

    UPDATE Salary

      SET InCome=2890

    WHERE EmployeelD=’011112’

  Go

  单击快捷工具栏的执行图标,执行上述语句,将编号为011112的职工收入改为2890。

  注意:在对象资源管理器中分别打开YGGL数据库Salary表,观察数据变化。

  

 

(3)修改表EmployeesDepartments的记录值,仍要注意完整性。

  操作过程同(2)。

#修改Employees中编号011112的员工姓名改成张三

USE YGGL

    UPDATE Employees

      SET NAME='张三'

    WHERE EmployeeID='011112'

  Go

#修改Departments中编号2的部门名称改成人事部

USE YGGL

    UPDATE Departments

      SET DepartmentName='人事部'

    WHERE DepartmentID='2'

  Go

                

 (4)使用T—SQL命令修改表Salary中的所有记录的字段值。

  启动查询分析器->“查询”窗口中输入以下 T—SQL语句:

#将所有职工的收入增加100

USE YGGL

    UPDATE Salary

  SET InCome=InCome+100

   Go  

单击快捷工具栏的执行图标,执行上述语句,将所有职工的收入增加100。

可见,使用T—SQL语句操作表数据比在对象资源管理器中操作表数据更为灵活。

    注意:输入以下T—SQL语句,观察数据变化。

    SELECT * FROM Salary

     

(5)使用TRANCATE TABLE 或DELETE TABLE语句删除表中所有行。

    启动查询分析器->在“查询”窗口中输入以下 T—SQL语句:

   #将删除Salary表中的所有行。

USE YGGL

DELETE FROM Salary

Go

    单击快捷工具栏的执行图标,执行上述语句,将删除Salary表中的所有行。

    注意:实验时-般不轻易做这个操作,因为后面实验还要用到这些数据。如要试验该命的效果,可建-个临时表,输入少量数据后进行。

   

 

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验的目的是掌握数据库存储过程和触发器的创建和应用,以及了解它们在实际应用的作用。本实验使用的数据库为MySQL。 一、实验环境 1. MySQL数据库 2. Navicat数据管理工具 二、实验步骤 1. 数据库建立实验使用的数据库为sdut,可以通过Navicat工具新建一个MySQL数据库。 2. 学生创建 学生包含学号、姓名、性别、年龄、所在班级等字段,可以通过下面的SQL语句创建: ```sql CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20), sex CHAR(2), age INT, class_id INT ); ``` 3. 学生的数据插入 可以使用下面的SQL语句向学生插入一些数据: ```sql INSERT INTO student (name, sex, age, class_id) VALUES ('张三', '男', 18, 1), ('李四', '女', 19, 2), ('王五', '男', 20, 3), ('赵六', '女', 21, 1), ('钱七', '男', 22, 2); ``` 4. 存储过程的创建 存储过程是一段预定义好的SQL语句集合,可以在需要时直接调用,可以减少数据库服务器的负担和网络传输的时间。本实验创建一个存储过程,用于统计每个班级的学生总数。 ```sql CREATE PROCEDURE count_student() BEGIN SELECT class_id, COUNT(*) AS total FROM student GROUP BY class_id; END; ``` 上面的存储过程会查询学生的数据,并按照班级进行分组,然后统计每个班级的学生总数。 5. 触发器的创建 触发器是一段SQL语句,可以在数据库的某个操作(如插入、更新、删除)发生时自动触发执行。本实验创建一个触发器,用于在学生插入数据时自动更新班级的学生总数。 ```sql CREATE TRIGGER update_class AFTER INSERT ON student FOR EACH ROW BEGIN UPDATE class SET total = total + 1 WHERE id = NEW.class_id; END; ``` 上面的触发器会在学生插入数据时自动执行,将对应班级的学生总数加1。 6. 实验结果 可以通过以下两种方式验证存储过程和触发器的正确性: (1)调用存储过程 可以使用下面的SQL语句调用存储过程: ```sql CALL count_student(); ``` 调用结果如下: ``` class_id | total ---------|------ 1 | 2 2 | 2 3 | 1 ``` 可以看到存储过程成功统计了每个班级的学生总数。 (2)插入数据 可以使用下面的SQL语句向学生插入一条数据: ```sql INSERT INTO student (name, sex, age, class_id) VALUES ('孙八', '女', 23, 3); ``` 插入数据后,可以查询班级的数据,验证触发器是否成功更新了学生总数: ```sql SELECT * FROM class; ``` 查询结果如下: ``` id | name | total ---|------|------ 1 | 一班 | 2 2 | 二班 | 2 3 | 三班 | 2 ``` 可以看到触发器成功将三班的学生总数从1更新为2。 三、实验总结 本实验通过创建存储过程和触发器,成功实现了统计班级学生总数和自动更新班级学生总数功能。存储过程和触发器可以大大减少数据库服务器的负担和网络传输的时间,提高了数据库的性能和响应速度,是数据库管理常用的技术手段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值