MySQL数据库练习集2

博客围绕数据表employee展开,包含9个题目,涉及创建、查询、修改、插入、删除视图等操作,如创建包含员工号码、姓名和职位的视图emp_view1,从视图中查询特定职位或收入的员工信息,修改视图定义及插入、删除视图记录等。

P120、121

题目

数据表employee

1. P120-1

创建视图emp_view1, 包含所有员工的号码、姓名和职位

1). 创建视图

CREATE VIEW emp_view1
AS SELECT employee.EmployeeID, employee.EName, employee.Title
FROM employee;

2). 查询刚才创建的视图

SHOW CREATE VIEW emp_view1;

SELECT * 
FROM emp_view1;


2. P120-2

从视图 emp_view1 中查询职位为"经理"的员工信息

SELECT *
FROM employee
WHERE Title = '经理';


3. P120-3

创建视图emp_view2,包含所有员工的姓名和基本收入

1). 创建视图

CREATE VIEW emp_view2
AS 
SELECT employee.EName, salary.BasicSalary  
FROM employee  
JOIN salary ON employee.employeeID = salary.employeeID;

2). 查询刚才创建的视图

SHOW CREATE VIEW emp_view2;

SELECT *
FROM emp_view2;


4. P120-4

从视图 emp_view2 中查询基本收入大于或等于5000元的员工姓名和收入

SELECT EName, BasicSalary  
FROM emp_view2  
WHERE BasicSalary >= 5000;


5. P120-5

修改视图emp_view2,将员工“王旭”的基本收入增加500元

UPDATE emp_view2  
SET BasicSalary = BasicSalary + 500  
WHERE EName = '王旭';


6. P121-6

修改视图 emp_view1 的定义,包含2010年后入职的员工号码、姓名和入职时间

并给视图加上 WITH CHECK OPTION

1). 修改视图

-- 删除旧的视图  
DROP VIEW IF EXISTS emp_view1;  
  
-- 创建新的视图并添加 WITH CHECK OPTION  
CREATE VIEW emp_view1  
AS  
SELECT EmployeeID, Ename, OnboardDate  
FROM employee  
WHERE OnboardDate > '2010-01-01'  
WITH CHECK OPTION;

2). 查询刚才创建的视图

SELECT * 
FROM emp_view2;


7. P121-7

向视图 emp_view1 中插入一条记录:(0019, 李浩, 2018-11-11)

员工蒋珂员工的员工号码重复,提前改一下

1). 插入记录

INSERT INTO emp_view1 (EmployeeID, Ename, OnboardDate)  
VALUES ('0019', '李浩', '2018-11-11');

2). 检查视图 emp_view1

SELECT * 
FROM emp_view1;


8. P121-8

删除视图 emp_view1 中姓名为“李敏”的员工

1). 先检查 emp_view1 中的所有员工

SELECT * 
FROM emp_view1;

2). 删除视图 emp_view1 中姓名为“李敏”的员工

DELETE FROM emp_view1  
WHERE Ename = '李敏';

3). 再次检查员工表

SELECT * 
FROM emp_view1;


9. P121-9

删除视图 emp_view1 和 emp_view2

1). 删除视图操作

DROP VIEW emp_view1;  
DROP VIEW emp_view2;

2). 检查是否删除成功

SELECT * 
FROM emp_view1;

SELECT * 
FROM emp_view2;

### 关系型数据库及其练习题 #### 数据库基础概念 关系型数据库是一种基于关系模型的数据管理技术,能够通过严格的结构化方式组织数据并提供强大的功能支持[^1]。其核心特点在于使用表格形式表示数据,并具备较高的安全性与稳定性。 以下是几个常见的数据库系统以及它们的应用场景: - **Oracle**: 大型企业级应用中的首选解决方案之一,适合处理复杂业务逻辑和大规模并发操作[^2]。 - **MySQL**: 广泛应用于中小型项目中,因其开源特性和易用性而受到开发者青睐[^3]。 #### 示例建表语句 为了帮助理解如何创建数据库表结构,下面提供了两个具体例子: 对于 Oracle 数据库环境下的学生信息管理系统可以这样定义相关实体之间的关联关系: ```sql -- 创建学生表 CREATE TABLE STUDENT ( ID INT PRIMARY KEY NOT NULL, STUDENT_NAME VARCHAR2(80), BIRTHDAY DATE, SEX VARCHAR2(2) ); -- 创建课程表 CREATE TABLE COURSE ( ID INT PRIMARY KEY NOT NULL, COURSE_NAME VARCHAR2(80), TEACHER_ID INT ); -- 创建教师表 CREATE TABLE TEACHER ( ID INT PRIMARY KEY NOT NULL, TEACHER_NAME VARCHAR2(80) ); -- 创建成绩表 CREATE TABLE SCORE ( ID INT PRIMARY KEY NOT NULL, STUDENT_ID INT, COURSE_ID INT, SCORE INT ); ``` 而在 MySQL 中实现相同的功能则稍有不同之处需要注意自动增长字段设置方法等方面差异如下所示: ```sql create table score( id int primary key auto_increment comment '主键自增', sno varchar(20) not null comment '学号', cno varchar(20) not null comment '课程号', degree decimal(4,1) comment '成绩' ); ``` 以上代码片段分别展示了在两种主流的关系型数据库产品里构建简单教学评估体系所需的基本组件——即四个相互联系紧密却又各自独立存在的对象合(表):`STUDENT`, `COURSE`, `TEACHER`, 和 `SCORE`. #### 练习题目建议 针对初学者或者希望巩固基础知识的人群来说,可以从以下几个方面入手设计针对性强且覆盖面广的练习题锦: 1. 插入记录到各个已建立好的表当中去; 2. 查询特定条件满足的所有行项内容返回给用户端显示出来; 3. 更新现有某些列值达到预期目标状态为止; 4. 删除不符合规定标准的数据条目彻底清除掉以免影响后续统计分析工作正常开展下去. 这些基本的操作涵盖了CRUD(Create Read Update Delete),是学习任何一种编程语言或工具都绕不开的重要环节之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨空集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值