数据库基础
基础概念
数据库(database)
我们可以把数据库想象成一个一个文件夹,里边存放着的都是Excel表格文件(也就是下面介绍的【表】),所以数据库是存放被组织好了的数据的容器
注意:很多时候,人们容易把数据库的概念和数据库软件相混淆,数据库软件准确来说是数据库管理系统,就好像我们的电脑中的文件管理器,是一个软件,在这个软件中,我们可以去操作文件夹和文件夹中的内容,例如新增,修改,删除等等。
表(table)
假如我们在电脑中创建了一个文件夹,里边增加了几个Excel表格文件,那么这个Excel表格就可以类比为数据库“表的概念。
假如我们创建了一个文件夹,名字为【三年二班】,需要把全班同学的信息存储到里边,我们会在文件夹内新建一个Excel表格,然后在表格中第一列写上序号,第二列写上姓名,以此类推,所以数据其实是一种结构化的文件。
数据库中的表是用来存储某种特定类型数据的结构化清单,一个数据库中可以存在多个表,但是同一个数据库的每一个表的表名是唯一的。
扩展:模式(schema):
列(column)和数据类型(datatype)
我们继续沿用上述的类比,可以看到表内的数据是一列一列组成的,每一列都有一个表名,表名下是一组属性相同的数据,比如第一列全部是序号,第二列全部是姓名,第三列全部存储年龄。
在数据库的表中,我们对每一列数据的类型有严格的要求,比如我们新增一个年龄列的时候,必须指明年龄这一列是用来存储整数,还是小数,抑或字符串,当我们定义好了之后,当我们想要在这一列中添加或者编辑某一个单元格的数据时,就要严格遵循规定,比如年龄列设置成整数,那么插入一个姓名就是不允许的。
行(row)
在数据表中,插入数据是以行为单位存储的,比如班级中新来了一位同学,我们要把这个同学的序号、姓名、性别、年龄信息插入一整行数据到表格中。
(实际工作语境中,很多人也会把数据库的一行数据称为一条数据库记录,其实指代的内容是一样的)
主键(primary key)
一个班级中不可能有两个完全一模一样的学生,即使两个学生是双胞胎,他们也是两个完全不同的个体,同理,同一张表中,每一行都要有一个唯一的标识帮助我们区分。
主键是一组可以唯一区分表中每一行的一列或者一组列,比如我们可以用序号或者说学号来区分,每一个学号都对应着一位不同的学生。
SQL
我们已经了解了数据库、表、行、列和数据类型以及主键的概念,那么什么是SQL呢?
概念
SQL的全称是结构化查询语言:Structured Query Language,这是一种专门用来操作数据库,和数据库交互的语言。
我们不能直接和电脑对话,于是有了编程语言帮助我们控制计算机中的软件,但是SQL不同的是,SQL的语法、关键词相对非常简洁,这样我们可以用非常简单高效的语句帮助快速做数据操作(比如读写数据)
语言特点
总的来说,SQL语言有以下几个好处:
- SQL语言是一门通用的语言,即使你用不同的软件或者不同类型的数据库,几乎都可以使用SQL语法
- 上手简单,理由已经提到,语法简单
- 非常灵活,可以用简单的语法组合进行复杂的数据库操作
注意:不同的数据产品实现的SQL不完全相同,所以有时候一些语句是不能无脑复制粘贴的,还是要注意不同产品之间的特性