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两者的区别是什么呢?下面对两者的区别进行说明。
- DELETE语句是DML,TRUNCATE语句通常被认为是DDL语句。
- DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式可以只删除满足条件的部分记录,而TRUNCATE语句只能删除表中的所有记录,不能加WHERE子句。
- 使用TRUNCATE语句清空数据表后,AUTO_INCREMENT(字段数值自增)计数器会被重置为初始值。而使用DELETE语句清空数据后,AUTO_INCREMENT计数器不会恢复为初始值。
小结
DDL学习了:
- 数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库。
- 数据表的基本操作:创建数据库、查看数据表、修改数据表、删除数据表。
DML学习了:
- 向表中添加记录时用INSERT语句。
- 向表中更新记录时用UPDATE语句。
- 向表中删除记录时用DELETE语句。
- 清空数据表可以使用DELETE语句或TRUNCATE语句。
【重点】在对表操作的时候,必须要进入对应的数据库才能操作!!!
以上是关于MySQL基础图解的主要内容,如果未能解决你的问题,请参考以下文章