MySQL基础图解

Posted Guarding and trust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL基础图解相关的知识,希望对你有一定的参考价值。

不为失败找理由,只为成功找方法。所有的不甘,因为还心存梦想,所以在你放弃之前,好好拼一把,只怕心老,不怕路长。

学习目标:

  • 熟练掌握SQL语言的DDL和DML语法。

学习内容:

1、简介

    本章的主要学习内容是关于mysql中SQL语句里的定义与操作语言,只有熟练掌握了这两种语法后面才能干大事,那么废话不多说,直接撸起袖子干活。

2、DDL

关于DDL如果看了上一篇初识MySQL的话就不陌生了。它是对数据的结构和形式进行定义,一般用于数据库和表的创建、删除、修改等。 而涉及到是命令是CREATE、ALTER、DROP。那么接下来进行详解:

2.1 CREATE对数据库和表的操作

① 创建数据库

CREATE DATABASE 数据库名称;

我们使用这条语句创建一个数据库:mydb,如图:

如果出现了Query OK则操作成功。

【注意】每一句以英文的分号‘ ; ’结束。
【多学一招】创建成功后,我们可以使用 SHOW DATABASES来查看数据库,如图:

如上图所示,刚刚创建的mydb已经出现在列表中。

② 创建数据表

#在创建数据表之前首先要进入数据库
USE mydb;
#创建数据表
CREATE TABLE 数据表名称(
	字段名1 数据类型1[完整性约束条件],
	字段名2 数据类型2[完整性约束条件],
	字段名3 数据类型3[完整性约束条件],
	...
);

【说明】中括号"[ ]"是可选参数,如图:

    以上就是操作就是先进入数据库mydb,然后在mydb里创建了一个fruit表,表的字段分别是水果id、水果类型、水果名字和水果描述。
【多学一招】创建成功后,我们也可以使用 SHOW TABLES来查看数据库里是所有表,如图:

由于我们在数据库mydb中只创建了一个表,所有就只能有一个fruit表。以上就是对于数据库和表的基本创建。

2.2 ALTER对数据库和表的操作

① 修改数据库的编码方式

ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码方式 COLLATE 排序规则

在上述格式中,“数据库名称”指的是要修改的数据库,“编码方式”指的是修改后的数据库编码。
我们先来查看一下数据库mydb的编码方式是什么,使用命令 SHOW CREATE DATABASE mydb;

由图所示我这里使用的编码格式是utf8mb4的,排序规则是utf8mb4_0900_ai_ci,那么我们使用命令把编码格式改为utf8,排序规则是utf8_bin:

如上图所示已经把数据库的编码方式修改了,但是这里需要注意的是:这种修改方式只能修改当前数据库的编码方式不是全局性的,如图:

如上图所示,创建了一个数据库stu,查看编码方还是ut8mb4。如果想要全局性的,那么可以修改数据库配置文件my.ini(这里就不作详解了)。

② 修改数据表
    修改数据表在这里主要介绍三种,a.修改表名 b.修改字段的数据类型 c.修改字段名和数据类型,下面也刚才创建的fruit表来一一分解:

#语法格式
ALTER TABLE 旧表名 RENAME [TO] 新表名; #修改表名 to可选
ALTER TABLE 表名 MODIFY 字段名 新数据类型; #修改数据类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; #修改字段名和数据类型


如上图,已经把fruit表改名为student表


【说明】使用命令DESC可以查看数据表的结构。如上图所示,可以发现字段name的数据类型从varchar修改为char类型。


如上图所示,把字段type和它的数据类型更改为字段名age,数据类型int。

【拓展】 有时候会出现数据表已经添加完成了,但是后期发现还需要在该表添加字段,那么就需要使用命令:ALTER TABLE 表名 ADD 字段名 数据类型[完整性约束条件] [FIRST | AFTER]。 其中FIRST和AFTER分别表示在哪个位置添加。默认添加到表尾**(这里不做演示)**
    FIRST:把该字段设置为表的第一个字段
    AFTER:把该字段添加到指定字段(已存在)字段名后面。

2.3 DROP对数据库和表的操作

这个操作就比较简单了,删除数据库和删除表就可以了,两条命令

DROP DATABASE 数据库名称; #删除数据库
DROP TABLE 表名; #删除数据表

我们先操作删除数据表,在mydb数据库里面有一个student表,使用DROP命令删除:

因为mydb数据库里只有一个数据表,所有查看之后会发现里面已经空空如也。

执行数据库删除命令删除stu数据库,如上图所示,已经彻底删除了。

3、DML

DML是对数据库中的数据进行处理,一般用于数据项(记录)的插入、删除和修改。涉及的命令有INSERT、UPDATE、DELETE,下面就以数据库mydb来进行一一分解:
    由于这些语句是对表里的数据操作,所有一定要USE到数据库里才能操作的。由于目前mydb没有数据表,所以再创建一个fruit表,然后进行下面的步骤。

3.1 INSERT对表的数据插入操作

# 插入数据记录语法
INSERT [INTO] 表名 [(字段名列表)] VALUES (值列表1),(值列表2),...(值列表3);

【说明】这个命令可以插入一条或多条记录,多条记录以英文的分号隔开。不添加指定的字段名列表,默认必须赋全部值。中括号“[]”可选就不用多废话了。

【多学一招】使用SELECT命令可以查询数据表的记录,这个命令是DQL的,下篇会详细讲解。

如上图可以看到数据已经添加到表中了。

3.2 UPDATE对表的数据修改操作

# 修改数据记录语法
UPDATE 表名 SET 字段名 = value1 [,value2...] [WHERE 条件表达式];

【说明】value:为指定的字段赋予新值。新值可以是表达式或者数据;
WHERE条件表达式: 指定要修改记录的条件,可选。虽然可选,但是建议写上。

由于没有写WHERE条件语句,所有导致这种整表修改的情况,那么在开发项目的时候肯定是不允许有这种事情发生的,所有WHERE条件必须加上:

此次根据条件id修改数据就不会造成全局修改了。

3.3 DELETE对表的数据删除操作

DELETE [FROM] 表名 [WHERE条件表达式];

【说明】WHRER条件表达式:指定表中要删除记录的条件,可选。这里也建议开发的时候写上。

这个和修改操作类似,不加WHERE条件删除整表记录的操作就不在这演示了。

【拓展】在MySQL数据库中,还有一种方式删除表中所有的记录,请看语法:

TRUNCATE [TABLE] 表名;


那么SELECT和TRUNCATE两者的区别是什么呢?下面对两者的区别进行说明。

  1. DELETE语句是DML,TRUNCATE语句通常被认为是DDL语句。
  2. DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式可以只删除满足条件的部分记录,而TRUNCATE语句只能删除表中的所有记录,不能加WHERE子句。
  3. 使用TRUNCATE语句清空数据表后,AUTO_INCREMENT(字段数值自增)计数器会被重置为初始值。而使用DELETE语句清空数据后,AUTO_INCREMENT计数器不会恢复为初始值。

小结

DDL学习了:

  • 数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库。
  • 数据表的基本操作:创建数据库、查看数据表、修改数据表、删除数据表。

DML学习了:

  • 向表中添加记录时用INSERT语句。
  • 向表中更新记录时用UPDATE语句。
  • 向表中删除记录时用DELETE语句。
  • 清空数据表可以使用DELETE语句或TRUNCATE语句。

【重点】在对表操作的时候,必须要进入对应的数据库才能操作!!!

以上是关于MySQL基础图解的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基础图解

Java基础学习笔记二十四 MySQL安装图解

MySQL基础图解

MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解

图解MySQL 记录

面试官:MySQL 是怎么加锁的?