1.创建库
2.创建表
3.查看员工表中的姓名和性别
4.-- 查看员工表中所有的字段
5.-- 查看每个员工一年的总收入
6.-- 如何为查询结果指定别名
7.-- 查看女员工的信息
8.-- 查看月薪范围位于8000到12000之间的员工
9.-- 查看员工中叫做‘张三’、‘李四’或‘张飞’的信息
10.-- 查询员工的姓名里有个“云”字的员工信息
11.-- 有些员工有奖金(bonus),有些员工没有,怎么查看
12.-- 如何查看2010年1月1日之后入职的女员工
13.-- 查看员工信息的时候,按照薪水从高到低显示
14.-- 薪水一样多的员工,按照奖金的多少进行排序
15.-- 员工的姓名是中文,如何按照姓名的拼音顺序进行排序
16.-- 薪水最高的3位员工都有谁
17.-- 工资信息比较敏感,不宜直接显示。按照范围显示收入水平,小于10000显示为“低收入”,大于等于10000并且小于20000显示为“中等收入”,大于20000先hi为“高收入”。如何使用SQL实现
18.-- 如何统计员工的数量、平均月薪、最高月薪、最低月薪以及月薪的总和
19.-- 以下的两个count函数返回的结果是否相同
20.-- 统计每个部门的员工的数量、平均月薪
21.-- 如果只想查看平均月薪大于10000的部门,怎么实现
22. -- 查询月薪超过5000的,员工数量大于5的部门
23.-- 什么是连接查询?SQL中有哪些连接查询?
答:连接(join)查询是基于两个表中的关联字段将数据行拼接到一块,可以同时返回两个表中的数据。SQL支持以下连接:
内连接(inner join):用于返回两个表中满足连接条件的数据行。
左外连接(left outer join):返回左表中所有的数据行,对于右表中的数据,如果没有匹配值,返回空值。
右外连接(right outer join):返回右表中所有的数据行,对于左表中的数据,如果没有匹配的值,返回空值。
自连接(self join):是指连接操作符的两边都是同一个表,即把一个表和它自己进行连接。自连接主要用于处理那些对自己进行了外键引用的表。
24.-- 什么是数据库规范化,有哪些常见的数据库范式?
数据库规范化一种数据库设计的方法,于有效地组织数据,减少数据的冗余和相互之间的依赖,增加数据的一致性。由于规范化的数据库存冗余,可能导致数据的插入、删除、修改异常等问题,因此引入了规范化过程。数据库规范化的程度被称为范式(Normal Form),目前已经存在第一范式到第六范式,每个范式都是基于前面范式的增强。
第一范式(First Normal Form),表中的每个属性都是单值属性,每个记录都唯一,也就是需要主键。举例来说,如果员工存在工作邮箱和个人邮箱,不能都放到一个字段,而需要拆分成两个字段;
第二范式(Second Normal Form),首先需要满足第一范式,且不包含任何部分依赖关系。举例来说,如果将学生信息和选课信息放在一起,学号和课程编号可以作为复合主键;但此时学生的其他信息依赖于学号,即主键的一部分。通常使用单列主键可以解决部分依赖问题;
第三范式(Third Normal Form),首先需要满足第二范式,并且不存在传递依赖关系。举例来说,如果将部门信息存储在每个员工记录的后面,那么部门名称依赖部门编号,部门编号又依赖员工编号,这就是传递依赖。解决的方法就是将部门信息单独存储到一个表中;
更高的范式包括 Boyce-Codd 范式、第四范式、第五范式以及第六范式等,不过很少使用到这些高级范式。对于大多数系统而言,满足第三范式即可。
另外,反规范化(Denormalization)是在完成规范化之后执行的相反过程。反规范化通过增加冗余信息,减少 SQL 连接查询的次数,从而减少磁盘 IO 来提高查询时的性能。但反规范化会导致数据的重复,需要更多的磁盘空间,并且增加了数据维护的复杂性。
数据库的设计是一个复杂的权衡过程,需要综合考虑各方面的因素
-- 什么是实体关系图(ERD)?
实体关系图是一种用于数据库设计的结构图,它描述了数据库的实体,以及这些实体之间的相互关系。实体代表了一种对象或者概念。例如,员工、部门和职位可以称为实体。每个实体都有一些属性,例如员工拥有姓名、性别、工资等属性。
关系用于表示两个实体之间的关联。例如,员工属于部门。三种主要的关系是一对一、一对多和多对多关系。例如,一个员工只能属于一个部门,一个部门可以有多个员工,部门和员工是一对多的关系。
ERD 也可以按照抽象层次分为三种:
概念 ERD,即概念数据模型。概念 ERD 描述系统中存在的业务对象以及它们之间的关系。
逻辑 ERD,即逻辑数据模型。逻辑 ERD 是对概念数据模型进一步的分解和细化,明确定义每个实体中的属性并描述操作和事务。
物理 ERD,即物理数据模型。物理 ERD 是针对具体数据库的设计描述,需要为每列指定类型、长度、可否为空等属性,为表增加主键、外键以及索引等约束。