MYSQL基础上机练习题(二) 数据插入、修改、删除

一、实验目的:

  1. 数据插入、修改、删除
  2. 数据表的复制
  3. 字段分列

二、实验内容:

对上一章所展示的表进行数据输入、修改、删除
上一章各表的字段属性
以下为Employees,Departments,Salary表中的内容

Employees表
MYSQL基础上机练习题(二) 数据插入、修改、删除_第1张图片
MYSQL基础上机练习题(二) 数据插入、修改、删除_第2张图片

Departments表
MYSQL基础上机练习题(二) 数据插入、修改、删除_第3张图片

Salary表
MYSQL基础上机练习题(二) 数据插入、修改、删除_第4张图片

三、题目:

1. 按照Departments表的内容插入数据(知识点:数据插入)

2. 按照Employees表的内容插入数据(知识点:数据插入)

3. 修改Employees中修改李丽的DepartmentID为’4’(知识点:数据修改)

4. 创建一个与Employees结构和内容一致的表,名为Employees_Duplicated (知识点:数据表的复制)

5. 对Employees_Duplicated表中的Address字段以空格为间隔符,分列为StreetName(街道名)和RoomName(房号)(知识点:字段分列)

6. 删除Employees_Duplicated表中编号为’000001’的行内容(知识点:删除某行数据)

7. 删除Employees_Duplicated表中Address字段中所有内容(知识点:删除某字段所有数据)

8. 在Salary表中插入Employees表中所有的EmployeesID (知识点:选择性数据插入)

9. 在Salary表中插入InCome和OutCome值(知识点:带存储过程的数据插入)

10. 在Salary中,修改编号为’020018’的InCome值(知识点:带存储过程的数据修改)

###三、代码:

1. 按照Departments表的内容插入数据(知识点:数据插入)

(1)代码方式插入(注意,该表有外键Departments中的DepartmentsID来插入):

INSERT INTO Departments VALUES('1', '财务部', NULL)

Mysql 插入数据

(2)数据比较多的时候建议界面方式插入,插入后:
MYSQL基础上机练习题(二) 数据插入、修改、删除_第5张图片

2. 按照Employees表的内容插入数据(知识点:数据插入)

(1)代码方式插入:

INSERT INTO Employees VALUES('000001', '王林', '大专', '1966-01-23', 1, 8, '中山路 32-1-508', '83355668', '2')

Mysql 插入数据

(2)数据比较多的时候建议界面方式插入,插入后:
MYSQL基础上机练习题(二) 数据插入、修改、删除_第6张图片

3. 修改Employees中修改李丽的DepartmentID为’4’(知识点:数据修改)

UPDATE employees SET DepartmentID = '4' WHERE Name = '李丽'

Mysql 修改数据

4. 创建一个与Employees结构和内容一致的表,名为Employees_Duplicated (知识点:数据表的复制)

CREATE TABLE Employees_duplicated SELECT * FROM Employees

Employees_duplicated 表结构
MYSQL基础上机练习题(二) 数据插入、修改、删除_第7张图片

Employees_duplicated 数据
MYSQL基础上机练习题(二) 数据插入、修改、删除_第8张图片
(同样,如果仅仅需要复制表的结构,可以用:

CREATE TABLE Employees_duplicated2 LIKE Employees

使得创建一个新的TABLE和Employees的TABLE有同样的表结构

5. 对Employees_Duplicated表中的Address字段以空格为间隔符,分列为StreetName(街道名)和RoomName(房号)(知识点:字段分列)

首先,需要新增两个字段:StreetName和RoomName

ALTER TABLE Employees_duplicated ADD COLUMN RoomNumber VARCHAR(40) COMMENT '房号' AFTER Address
ALTER TABLE Employees_duplicated ADD COLUMN StreetName VARCHAR(40) COMMENT '街名' AFTER Address

MYSQL基础上机练习题(二) 数据插入、修改、删除_第9张图片
然后,把根据间隔符提取的字段分别插入到StreetName和RoomNumber两个字段中,其中SUBSTRING_INDEX函数的用法为SUBSTING_INDEX(需要分列的字段,’间隔符’,间隔符前(为正)/后(为负)的第几个的字符串)

UPDATE Employees_duplicated SET RoomNumber = SUBSTRING_INDEX(Address, ' ', -1);
UPDATE Employees_duplicated SET StreetName = SUBSTRING_INDEX(Address, ' ', 1);

MYSQL基础上机练习题(二) 数据插入、修改、删除_第10张图片

6. 删除Employees_Duplicated表中编号为’000001’的行内容(知识点:删除某行数据)

DELETE FROM Employees_Duplicated WHERE EmployeeID = '000001'

MYSQL基础上机练习题(二) 数据插入、修改、删除_第11张图片

7. 删除Employees_Duplicated表中Address字段中所有内容(知识点:删除某字段所有数据)

UPDATE Employees_Duplicated SET Address = '' 

MYSQL基础上机练习题(二) 数据插入、修改、删除_第12张图片

8. 在Salary表中插入Employees表中所有的EmployeesID (知识点:选择性数据插入)

INSERT INTO Salary(EmployeeID) SELECT EmployeeID FROM Employees

MYSQL基础上机练习题(二) 数据插入、修改、删除_第13张图片

9. 在Salary表中插入InCome和OutCome值(知识点:带存储过程的数据插入)

(1)代码方式插入(注意,该表有外键Departments中的DepartmentsID来插入)
因为ActInCome是通过存储过程来计算的,因此有两种插入方式,结果都一样

INSERT INTO Salary VALUES('000001', 2100.8, 123.09, 0)
INSERT INTO Salary(EmployeeID, InCome, OutCome) VALUES('000001', 2100.8, 123.09)

Mysql 插入带存储过程的数据
(插入时,插入的字段数必须和表结构一致,多一个数据或少一个数据都会导致发生#1136错误(详细点击此处))

(2)界面方式插入(刷新后,ActInCome就可以算出来)
MYSQL基础上机练习题(二) 数据插入、修改、删除_第14张图片

10. 在Salary中,修改编号为’020018’的InCome值(知识点:带存储过程的数据修改)

UPDATE Salary SET InCome = 5000 WHERE EmployeeID = '020018'

MYSQL基础上机练习题(二) 数据插入、修改、删除_第15张图片

你可能感兴趣的:(SQL练习)