MySQL入门

1.1. 数据库

最近想为找工作做几个项目实战演练一下,其中一个是基于SpringBoot搭建一个头条咨询网站。项目中用到了MySQL数据库,最近学习了一下基础知识(非科班出身有太多的课要补。。。)。

数据库主要分为两种,一种是关系型数据库,另一种是非关系型数据库。虽说现在非关系型数据库发展很快,但是关系型数据库的地位依旧不可动摇,并逐渐发展成为关系型数据为主,非关系型数据为辅的局面,所以学好关系型数据库是非常重要的。MySQL是最常用的关系型数据库之一,其定义了一个数据库管理系统(DBMS),其基本的操作语言是SQL(结构化查询语言,Structural Query Language),无论什么数据库,其操作语言基本都是基于SQL的。

1.2.关系模型

数据库中的基本构成是表,任何一个数据库都是基于关系模型的,比如:一对多、多对多、一对一关系。

数据库中可以存在多张表,每张表之间的关系来源于上述关系模型。

每一张表的组成类似于Excel表格,由行和列组成,每一列代表一个字段,这些字段是根据业务需求来具体设定的。在项目的数据库设计中,业务字段设计是第一步也是非常关键的一步,需要合理地将业务需求合理地转化为数据库中的业务字段,同时构造合适的关系模型。每一行代表一条记录(record),由不同的字段的内容组成。

1.3.主键和外键

主键是用来唯一确定表中每行记录的字段,通常主键不能采用有业务属性的字段,比如人的年龄之类的。比如在学校可以使用学号最为每一个学生的唯一识别,可以在数据库中将“student_id”设置为主键。

外键是用来构建一对多(或多对一)的关系,比如一个班级中可以有多个学生,那个班级表和学生表可以构成一对多的关系,那么可以使用班级的ID作为外键,来对学生表中的班级信息进行约束。但是使用外键会降低性能,一般使用程序的逻辑来实现外键的功能。

1.4.CRUD操作

CRUD(create、retrieve、update、delete)就是我们常说的增删改查,在SQL语言中,增删改查分别对应的是:

①INSERT INTO <表名> (字段1, 字段2, …) VALUES (值1, 值2, …);

②DELETE FROM <表名> WHERE …;

③UPDATE <表名> SET 字段1=值1, 字段2=值2, … WHERE …;

④SELECT (字段1,字段2,…) FROM <表名> WHERE <条件表达式>

基本的SQL语法可以参阅廖雪峰的官方网站:https://www.liaoxuefeng.com/wiki/1177760294764384

这里仅给出几个要点和常用的语法:

①使用SELECT 1来测试数据库是否正常连接;

②查询是SQL语言最常用的操作,关于查询有很多常见的操作,比如:

​ 排序:order by (字段) DESC(默认是增序);

​ 分页查询:SELECT id, name, gender, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0;

​ 聚合查询:SELECT count(字段)FROM <表名>