MySQL 的核心基础语法
MySQL 的核心基础语法
Everett Rain前言
用来记录一下 MySQL 的主要代码,方便初步学习和后续复习。。。专业人士路过就当看个乐子好了。
以下的所有操作都以新数据库 Example 为例进行。
本教程测试环境
硬件与系统:MacOS Sequoia 15.1 MacBook Pro 2024
软件:MySQL Workbench 8.0.41 Community
创建与添加
创建数据库
1 | CREATE DATABASE Example; |
同名(不区分大小写)数据库只能创建一次,重复执行同一条创建代码会报错。
进入数据库
1 | USE Example; |
当根目录中含有多个数据库时,需要选定数据库执行下一步操作。在 MySQL Workbench 中,你可以通过上面的 USE
代码来进入指定数据库,也可以直接双击进入。
创建表格
数据库的下一级是表格,可以使用 CREATE TABLE
命令来创建表格。创建时需要指定创建表格的列名,以及每个列名对应的数据类型(类似于声明变量)。
在这里假设需要创建一个学生信息登记表,要用到的数据有 学生 ID,姓名,出生日期,代码如下:
1 | USE Example; |
这里设置了三个变量:INT 类型的 id,VARCHAR(15) 类型的 std_name,DATE 类型的 birthday。
INT
表示整数类型,VARCHAR(15)
代表长度为 15 的字符串类型,DATE
代表日期类型,对应格式为 年-月-日 (yyyy-mm-dd)。
AUTO_INCREMENT
代表这个 INT 类型的数值可以自动增加(类似索引),后期添加数据时可以直接使用 DEFAULT
来设为使用自动增加。NOT NULL
和 NULL
指定该值是否可以为空值。
其中,id
代表学生个人 ID,每个人的 ID 都是唯一的,可以通过 ID 快速找到相应学生,所以这里设置为 PRIMARY KEY
来作为索引,通过索引可以快速找到该行数据。同时,索引数据一定不为空,所以这里可以省略掉 NOT NULL
的设置。
插入数据
创建出来的表格是没有数据的,要想存入数据,需要使用 INSERT INTO
命令。插入数据需要同时指定要插入的列名和每个列名的对应值。
在这里我们给创建出的表格的每一列都插入数据,代码如下:
1 | USE Example; |
这里插入了三名学生的数据,每个数据使用的语法都不一样。
比如,当你需要向表格中的每一列都添加数据时,指定列名的 (id, std_name, birthday)
就可以选择省略。同时,指定了 AUTO_INCREMENT
的变量可以直接使用 DEFAULT
来实现自动递增;指定了 NULL
的变量可以直接设为空值。
修改数据
现在我们想要向表格中添加一列,用来存放每个学生的班级名称。我们可以使用 ALTER TABLE
来修改创建完成的 Student_Info 表格。类似于创建表格,在表格中新建一列也需要指明新列的列名和对应的数据类型。
现在来添加“班级名称”一列,代码如下:
1 | ALTER TABLE Example.Student_Info |
这里新增了一个存储 10 个 字符的字符串类型变量,用来存储班级名称,且可以为空值。
修改完表格后,我们就需要更新之前的数据,这个时候就需要用到 UPDATE-SET-WHERE
指令了。这里的 UPDATE 后接表格名称,SET 后接设置的值,WHERE 后接需要设置的数据索引(如 id)。
现在来给每个学生添加一个班级名称,代码如下:
1 | UPDATE Example.Student_Info |
需要注意的是,MySQL 中单个等号在不同条件下,同时具备相等判断和赋值功能,不需要使用双等号来判断是否相等。
删除数据
我们先从删除单个数据开始。假如 James Well 同学离开了学校,这里就需要删除掉 id = 1
的整条数据。我们可以使用 DELETE FROM
指令来删除相应的数据。
现在我们来删除 James Well 的全部信息,代码如下:
1 | DELETE FROM Example.Student_Info |
接下来,如果需要删除整个表格(比如学校倒闭了),就直接使用 DROP TABLE 数据库名.表格名
指令;如果需要删除整个数据库,就直接使用 DROP DATABASE 数据库名
指令即可。代码如下:
1 | DROP TABLE Example.Student_Info; |
注意:使用 DROP 命令删除数据库之前不会有任何确认提醒,所以请务必确保保存有重要数据的数据库不会被误操作删除。
查询数据
查询数据之前需要有数据,这里我们使用 b 站 up 主“技术蛋老师”提供的新冠感染人数数据库为例。你可以在下面的网址中复制全部代码,然后粘贴到你的 Workbench 的 Query 代码行中,执行即可生成需要的数据库。
数据库网址:https://gitee.com/eggtoopain/my-sql-introductory-courseware/blob/master/Egg_database.sql
查询全部数据
接下来我们使用 SELECT
指令来查看数据,查询的两种方式如下:
1 | USE Egg_database; |
这个数据库包含两个表格:Covid_month 和 Covid_total。在 SELECT
后使用 *
即代表查询该表格中的全部数据,相当于 Excel 中的全选;而输入特定列的列名即可查询该列的全部数据,相当于 Excel 中的选中一列。
这里,由于统计的是不同地区的新冠病例情况,所以查询的 Country 和 Continent 会出现大量重复的数据(国家名称、大洲名称),如果想要查看哪些国家有病例,而不想被重复的国家名称影响,可以在 SELECT
后使用 DISTINCT
。
排序查看数据
如果需要在查看数据时对数据进行排序,需要使用 ORDER BY
关键字,以下是排序的所有语法内容:
1 | USE Egg_database; |
过滤查看数据
如果需要对查看的数据进行过滤,需要使用 WHERE
关键字,以下是过滤的部分语法内容:
1 | USE Egg_database; |
合并查看数据
如果需要合并两个表格的数据,需要使用 JOIN
关键字,通过交集合并使用 INNER JOIN
,而通过并集合并使用 UNION
,详细代码如下:
1 | USE Egg_database; |