这篇教程主要介绍了SQL基础,特别是如何从多个表中获取数据。SQL,全称为结构化查询语言,是一种用于管理和检索关系数据库的标准语言。它起源于20世纪70年代末的IBM实验室。SQL是非过程化的,使得构建关系数据库变得更加便捷。
在数据库中,例如在示例中,我们有两个表——EMP和DEPT。EMP表包含员工信息,如EMPNO(员工编号)和DEPTNO(部门编号),而DEPT表包含部门信息,如DEPTNO、DNAME(部门名称)和LOC(地点)。当需要报告涉及两个表的数据时,比如显示员工所在的部门名称和地点,就需要将这两个表联接起来。
要实现这一点,我们可以使用SELECT语句,这是SQL中最基本的语句,用于从一个或多个表中选取数据。SELECT语句由几个部分组成:指定要选取的列(可以是所有列或特定列),以及表明数据来源的FROM关键字。在联接表时,可能需要使用JOIN操作,比如INNER JOIN、LEFT JOIN、RIGHT JOIN或FULL OUTER JOIN,这取决于我们想要包含的数据范围。
例如,如果我们要显示员工姓名、部门名称和地点,可以编写如下SQL语句:
```sql
SELECT EMP.ENAME, DEPT.DNAME, DEPT.LOC
FROM EMP
INNER JOIN DEPT
ON EMP.DEPTNO = DEPT.DEPTNO;
```
这个查询会选取EMP表中的ENAME列,DEPT表中的DNAME和LOC列,并通过DEPTNO字段将两个表联接在一起。DEPTNO字段在两个表中都存在,因此可以作为联接条件。
SQL语句的书写规范很重要,虽然不区分大小写,但通常建议关键字大写,其他内容小写,以提高可读性。语句可以在一行或多行中编写,但关键字不能缩写且必须完整写在一行内。为了增强可读性,可以使用空格或缩进。
除了从多个表中获取数据,SQL还支持对数据进行限定(WHERE子句)、排序(ORDER BY子句)、使用单行函数进行计算、使用分组函数(GROUP BY和聚合函数如COUNT、SUM、AVG等)对数据进行聚集,以及使用子查询来嵌套查询。此外,SQL还包括数据操纵语言(DML)如INSERT、UPDATE和DELETE,以及创建和管理表的DDL(数据定义语言)语句。
理解并熟练掌握SQL的基础知识,尤其是从多个表中获取数据的能力,对于任何需要处理数据库的人来说都是至关重要的。