从零开始学SQL ---- 1.1关系数据库和SQL简介

关系数据库是什么构造?
简而言之关系数据库由多张表格组成。表格分行和列,又可以被称为记录(records)和区域(fields)。
表格通常围绕一个实体/概念制作,比方说单据、名册、供货方......
表格里的列代表这个实体/概念的一些属性(attribute),行则记录一个实例的具体属性值
大多数表格有一列主键(primary key)来标识不同行,用到多列来起到同样作用的叫复合主键(composite primary key)。

上图为一张员工表格,第一深色行即为员工属性,从左至右依次为员工工号,姓,名,电话,办公地,项目1、2、3。每一行即一位员工的记录,每个单元格里对应一个员工属性的具体值。表格大都以第一列为主键设计,通常为独特的编号或自动生成的行数。
多张表格间如何联系?
表格间是通过键列(key columns)联系起来的。表格A的主键可以被表格B当作外来键(foreign key)引用,并且不需要保持外来键的单一性,即表格A主键的一个值可以在表格B中重复引用。
表格间常见的关系有单对多(one-to-many relationship),单对单(one-to-one),多对多(many-to-many)。

上表格是一张学生选课表格,下表格是课程信息表。通过课程编号(courseId),两张表格建立了联系。课程编号在下表格为表格主键,而在上表格中为外来键,学生编号(studentId)为上表格的主键。图为单对多案例,按图所示,一门课有多名学生。然而现实中往往更为复杂,学生和课程间大都是多对多关系,因为学生大多会同时修习多门课程。

了解了数据库后,我们就要了解和数据库沟通的语言 ---- SQL。

SQL 简介
SQL 语句可以按功能分为两种:数据操纵语言(data manipulation language, DML)和数据定义语言(data definition language, DDL)。
从运用场景来看,数据操纵语言和其他编程语言很像常用于增、删、改、查具体的数据。而数据定义语言通常是和整张表格或整个数据库进行交互。
