实验2 表的基本操作(插入、修改、删除) 下载本文

实验2 表的基本操作 1.目的和要求

(1) 学会在对象资源管理器重对数据库表进行插入、修改和删除数据操作。 (2) 学会使用T-SQL语句对数据库表进行插入、修改和删除数据操作。 (3)了解数据库更新操作时要注意数据完整性。 2.实验内容

(1)实验题目。

分别使用对象资源管理器和T-SQL语句,向在实验1中建立的数据库YGGL的3个表Employees、Departments和Salary中插入多行数据记录,然后修改和删除一些记录。使用T-SQL语句进行有限制的修改和删除。 (2)实验准备。

首先,了解对表数据的插入、删除、修改都属于表数据的更新操作。对表数据的操作可以在对象资源管理器中进行,也可以由T-SQL语句实现。 其次,要掌握T-SQL中用于对表数据进行插入、修改和删除的命令分别是INSERT、UPDATE和DELETE(或TRANCATE TEBLE)。另外还可以使用MERGE语句根据在一个表中找到的差异在另一个表中插入、更新或删除行,可以对两个表进行信息同步。要特别注意的是:在执行插入、修改、删除等数据更新操作时,必须保证数据完整性。

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

在实验1中,用于实验的YGGL数据库中的3个表已经建立,现在要将各表的样本数据添加到表中。样本数据如表T3.1、表T3.2和表T3.3所示。

表T3.1 Employees表数据样本 编 号 姓 名 000001 010008 020010 020018 102201 102208 108991 111006 210678 302566 308759 504209

表T3.2 Departments表数据样本 表T3.3 Salary表数据样本

王林 伍荣华 王向荣 李丽 刘明 朱俊 钟敏 张石兵 林涛 李玉泯 叶凡 陈林琳 学历 大专 本科 硕士 大专 本科 硕士 硕士 本科 大专 本科 本科 大专 出生日期 1966-01-23 1976-03-28 1982-13-09 1960-07-30 1972-10-18 1965-09-28 1979-08-10 1974-10-01 1977-04-02 1968-09-20 1978-11-18 1969-09-03 性别 1 1 1 0 1 1 0 1 1 1 1 0 工作时间 8 3 2 6 3 2 4 1 2 3 2 5 住 址 中山路32-1-508 北京东路100-2 四牌楼10-0-108 中山东路102-2 虎踞路100-2 牌楼巷5-3-106 中山路10-3-105 解放路34-1-203 中山北路24-35 热河路309-3 北京西路3-7-52 汉中路120-4-12 电 话 83355668 83321321 83792361 83413301 83606608 84708817 83346722 84563418 83467336 58765991 83308901 84468158 部门号 2 1 1 1 5 5 3 5 3 4 4 4 部门号 1 2 3 4 5 部门名称 财务部 人力资源部 经理办公室 研发部 市场部 备注 NULL NULL NULL NULL NULL 编 号 000001 010008 102201 111006 504209 302566 108991 020010 020018 308759 210679 102208 收 入 2100.8 1582.62 2569.88 1987.01 2066.15 2980.7 3259.98 2860.0 2347.68 2531.98 2240.0 1980.0 支 出 123.09 88.03 185.65 79.58 108.0 210.2 281.52 198.0 180.0 199.08 121.0 100.0

3.实验步骤

(1)在对象资源管理器中初始化数据库YGGL中所有表的数据。

①在对象资源管理器中展开“数据库YGGL”结点,选择要进行操作的表“Employees”,右击鼠标,在弹出的快捷菜单上选择“编辑前200行”菜单项,进入“表数据窗口”。

在此窗口中,表中的记录按行显示,每个记录占一行。用户可通过“表数据窗口”向表中加入表T3.1中的记录,输完一行记录后将光标移到下一行即保存上一行记录。 ②用同样的方法向Departments表和Salary表中分别插入表T3.2和T3.3中的记录。 注意以下几点。

插入的数据要符合列的类型。试着在tinyint型的列中插入字符型数据(如字母),查看发生的情况。

bit类型的列在用界面方式插入数据时只能插入True或False。True表示1,False表示0。

不能插入两行有相同主键的数据。例如,如果编号为000001的员工信息已经在Employees中存在,则不能向Employees表再插入编号为000001的数据行。 【思考与练习】将3个样本数据表中的数据都存入到数据库YGGL的表中。 (2)在对象资源管理器中修改数据库YGGL中的表数据。

①在对象资源管理器中删除表Employees的第一行和Salary的第一行。注意进行删除操作为两表主键的EmployeeID的值,以保持数据完整性。

方法:在对象资源管理器中选择表Employees,右击鼠标,在弹出的快捷菜单中选择“编辑前200行”菜单项,在打开的“表数据”窗口中选中要删除的行,右击鼠标,在弹出的的快捷菜单中选择“删除”菜单项。Salary表中数据删除方法相同。

②在对象资源管理器中将表Employees中编号为020018的记录的部门号改为4.

方法:在对象资源管理器中右击表Employees,选择“编辑前200行”菜单项,在“表数据”窗口中将光标定位至编号为020018的记录的DepartmentID字段,将值1改为4。将光标移出本行即保存了修改。

(3)使用T-SQL命令插入表数据。

①向表Employees中插入步骤(2)中删除的一行数据,在“查询分析器”窗口输入以下T-SQL语句: USE YGGL GO

INSERT INTO Employees VALUSE(‘000001’,’大专’,’1966-01-23’,1,8,

‘中山路32-1-508’,’83355668’,’2’)

单击快捷工具栏中的“!执行”按钮,执行上述语句,在验证操作是否成功时,可以在对象资源管理器中打开Employees表观察数据的变化。 ②向表Salary插入步骤(2)中删除的一行数据: INSERT INTO Salary(EmployeesID, InCome, OutCome) Values(‘000001’, 2100.8, 123.09)

【思考与练习】INSERT INTO语句还可以通过SELECT子句来添加其他表中的数据,但是SELECT子句中的列要与添加表的列数目和数据类型都一一对应。假设有另一个空表Employees2,结构和表Employees相同,使用INSERT INTO语句将表Employees中数据添加到Employees2中。语句如下:

INSERT INTO Employees2 SELECT * FROM Employees 查看表Employees2中的变化。 (4)使用SQL语句修改表数据。

①使用SQL命令修改表Salary中某个记录的字段值: UPDATE Salary

SET InCome = 2890

WHERE EmployeeID = ‘000001’ 执行上述语句,讲编号为000001的职工收入改为2890。 ②将所有职工收入增加100: UPDATE Salary

SET InCome = InCome +100;

执行完上述语句,打开表Salary查看数据的变化。可见,使用SQL语句操作表数据比在界面管理工具中操作表数据更为灵活。

③使用SQL命令删除表Employees中编号为000001的职工信息: DELECT FROM Employees

WHERE EmployeesID= ‘000001’ ④删除所有女性员工的信息: DELECT FROM Employees WHERE Sex=0

⑤使用TRANCATE TARLE语句删除表中所有行: TRUNCATE TABLE Salary

执行上述语句,将删除表Salary中的所有行。 4.思考与练习

使用INSERT、UPDATE语句将实验2中所有对表的修改恢复到原来的状态,以方便在以后的实验中使用。