数据库是存储和管理数据的核心工具,SQL(Structured Query Language)是用于操作数据库的语言。本篇文档涉及了SQL的基础知识,包括数据表的创建、数据的插入、以及不同类型的数据库关联查询,同时也提到了子查询和一些性能优化的考虑。 1. 数据表创建: 在SQL中,使用`CREATE TABLE`语句创建数据表。例如,创建了一个名为`Employee`的员工数据表,包含`Em_id`(员工ID)、`Em_name`(员工姓名)、`dp_id`(部门ID)和`salary`(薪水)四列。接着,通过`INSERT INTO`语句插入了一些示例数据。 2. 部门数据表创建: 类似地,创建了`Department`数据表,包括`dp_id`(部门ID)、`dp_name`(部门名称)和`Up_DepID`(上级部门ID)。同样插入了对应的示例数据。 3. 关联查询: - `INNER JOIN`:只返回两个表中匹配的行。在例子中,它用于获取属于特定部门的所有员工。 - `LEFT JOIN`:返回左表(`Employee`)中的所有行,即使在右表(`Department`)中没有匹配项。右表的非匹配项显示为NULL。 - `RIGHT JOIN`:与`LEFT JOIN`相反,返回右表的所有行,左表中无匹配项则显示NULL。 - `FULL JOIN`:返回左右两表的所有行,如果其中一方没有匹配项,则另一方的对应值为NULL。在这种情况下,查询将返回所有员工和所有部门,无论是否有关联。 4. 自然连接和`USING`子句: - `NATURAL JOIN`:基于两个表中存在的相同列自动进行关联。结果与`INNER JOIN`相同,但仅限于共享列。 - `USING`子句:指定两个表中相同的列名作为关联条件,与`NATURAL JOIN`类似,但更明确。 5. 子查询: - `IN`子句:用于筛选满足特定条件的值,如找出属于上级部门编号为0的部门的所有员工。 - `EXISTS`子句:与`IN`类似,但更高效,因为它不返回实际值,只需检查子查询是否返回至少一行。 6. 第一章练习题: - 四种关联查询(INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN)的区别在于处理未匹配行的方式。INNER JOIN只返回匹配行,LEFT JOIN保留左表所有行,RIGHT JOIN保留右表所有行,而FULL JOIN保留两表所有行。 - 查询上级部门编号为0的部门的员工,可以通过INNER JOIN, IN子句和EXISTS子句实现。 - 插入部门信息,如创建一个部门ID为0,部门名称为“工程技术部”,上级部门编号为99的新记录。 - 查询部分未给出具体需求,可能包括查找特定条件下的数据,如员工的平均薪资、部门的员工数量等。 了解并熟练掌握这些SQL基础操作对于数据库管理和数据分析至关重要,它们构成了进一步学习更复杂查询、存储过程、触发器等高级概念的基础。
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助