SQL的全称是Structured Query Language,翻译成中文就是:结构化查询语言。是一种特定目的编程语言,用于管理关系数据库管理系统(RDBMS)。
/ˈɛs kjuː ˈɛl/
/ˈsiːkwəl/
/ˈsərk(ə)l/ #没有这个类似circle的发音
所谓数据库,按字面意思无非就是存储数据的仓库嘛。比如可以使用一个txt文件存出一段文字、MicroSoft Office Word来存储一篇论文,如果数据多了为了可以用 Excel 来管理一些行和列明确的数据。然后数据量大的话,就衍生出了数据库这么个东西。你的txt文件、Word文件、Excel文件都可以认为是一种简单的数据库。比如常见的数据库有Redis、MySQL、Oracle、SQLServer、MongoDB等。
既然我们都把数据库都存储到了数据库中,随之而来肯定会有取数据的需求,怎么取,从哪儿取,取哪些数据,这就需要定义一种语言来操作这些数据,比如添加(Create)、查询(Retrieve)、修改(Update)、删除(Delete)操作。
我们主要讲的是关系型数据库(Relational Database)。
关系型数据库是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
举个简单的例子,我们希望使用数据库来存储学生、班级信息,那么我们就可以抽象出两个数据模型:关于学生的模型和关于班级的模型,关于学生的抽象我们可以定义成student
,它有一些属性:id,student_age,student_name,class_id
分别代表这个学生的唯一编号、年龄、姓名和所在班级,同样班级我们也可以定义为class
,它也有一些属性:id,class_name,teacher_name
分别代表班级的唯一编号、班级的名字(比如七年级四班等)、班主任名字。从我们的定义中,student
模型的class_id
(简单表示成student.class_id
)与class.id
是有关联关系的,即student.class_id
存储的是class.id
.
我们用Excel对这两个抽象出来的结构做一下简单的表示:
学生表
班级表
其实在关系数据库中也是类似的存储结构,在数据库中,存储每一类信息的叫表,比如学生表、班级表。每一个属性叫做“列”,而每一行的数据叫做“行”。
另外,既然SQL是语言,那么语言肯定会有语法,所谓语法就是定义语言的规则,我们下一节要讲的就是查询语法。比如一个Word文件里的数据你可以直接使用Ctrl+F
来查找,而数据库你就需要使用指定的语法进行查询了。
我们先学几个装逼词汇,首先在气势上震住程序员,这样需要他们帮忙的时候,说不行会对你刮目相看!