【MySQL基础】MySQL基本操作详解

系列文章目录

第1篇:【MySQL基础】MySQL介绍及安装
第2篇:【MySQL基础】MySQL基本操作详解


文章目录
1,数据库操作
    🔍1.1,查看数据库
    🔍1.2,创建数据库
    🔍1.3,选择数据库
    🔍1.4,删除数据库

2,数据表操作
    🔍2.1,创建数据表
    🔍2.2,查看数据表
    🔍2.3,查看表结构
    🔍2.4,修改数据表
    🔍2.5,修改表结构
    🔍2.6,删除数据库

3,数据操作
    🔍3.1,增加数据
    🔍3.2,查询数据
    🔍3.3,修改数据
    🔍3.4,删除数据

4,其他操作
    🔍4.1,安装目录位置显示
    🔍4.2,数据目录位置显示
    🔍4.3,错误日志目录查询


前言

大家好,我是小杨!今天我将详细的为大家介绍MySQL数据库的基本操作,希望大家能够从中收获多多!


MySQL基本操作

1,数据库操作

1.1,查看数据库

1)查看MySQL服务器下所有数据库

SHOW DATABASES;

具体SQL语句操作:

image-20220922094058500

  • information_schema数据库是MySQL服务器的数据字典(保存所有数据表和库的结构信息)
  • performance_schema数据库是MySQL服务器的性能字典(保存全局变量等的设置)
  • mysql 主要负责MySQL服务器自己需要使用的控制和管理信息(用户的权限关系等)
  • sys是系统数据库,包括了存储过程,自定义函数等信息

切记:这4个数据库是MySQL安装时自动创建的,建议不要随意的删除和修改这些数据库,避免造成服务器故障。


2)查看指定数据库的创建信息

SHOW CREATE DATABASE 数据库名称;

若想查看sys数据库的信息:

image-20220924105408120

  • 显示sys数据库的SQL语句,以及数据库的默认字符集

3)查看当前数据库

SELECT DATABASE();

具体SQL语句操作:

image-20220922094514121

切记:在输入当前数据库查询的SQL语句前,必须先选择数据库。


1.2,创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名称[库选项];

切记:

  • 语法内使用’[ ]'括起来的选项表示可选参数。

  • 数据库名称是由字母,数字和下划线组成的任意字符串。

  • 库选项用于数据库的相关特性,例如字符集CHARSET,校对集COLLATE。

  • 创建的数据库的默认字符集为latinl,校对集为latinl_swedish_ci。

  • 不可重复创建相同的数据库,如果创建的数据库已存在,则程序会报错。

  • 为了防止上述情况,在创建数据库时在数据库名称前添加IF NOT EXISTS,表示当指定的数据库不存在时执行创建操作,否则忽略此操作。

具体SQL语句操作:

image-20220922094802097


1.3,选择数据库
USE 数据库名称;

具体SQL语句操作:

image-20220922094847044

扩展:在用户登录MySQL服务器也可以直接选择要操作的数据库,基本语法:

mysql -u 用户名 -p 密码 数据库名;

具体SQL语句:

#方式1,在登陆时显示用户密码,选择数据库
mysql -u root -p 123456 sys;
#方式2,在登陆时隐藏用户密码,选择数据库
mysql -u root -p  sys;
Enter password:******

1.4,删除数据库
DROP DATABASE [IF EXISTS] 数据库名称;

具体SQL语句操作:

image-20220922095016648

切记:

  • 删除数据库,清除数据库中的所有数据,回收为分配的存储空间。

  • 在执行DROP DATABASE 删除数据库时,若待删除的数据库不存在,MySQL服务器会报错。

  • 若想避免上述的情况,在进行删除数据库操作时,使用IF EXISTS来进行规避待删除的数据库不存在报错情况。


2,数据表操作

2.1,创建数据表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名( 
    字段1 字段1类型 [字段属性] [COMMENT 字段1注释 ], 
    字段2 字段2类型 [字段属性] [COMMENT 字段2注释 ], 
    字段3 字段3类型 [字段属性] [COMMENT 字段3注释 ],
    ...... 
    字段n 字段n类型 [COMMENT 字段n注释 ] 
) [表属性] [ COMMENT 表注释 ] ;

具体SQL语句操作:

image-20220922101450032

切记:

  • 选项TEMPORARY表示临时表,仅在当前会话中可见,并且在会话关闭时自动删除。
  • 字段名指的是数据表的列名;数据类型设置字段中保存的数据类型;可选项字段属性指的是字段的某些约束条件。
  • 可选的表选项用于设置表的相关特性,如存储引擎(ENGINE),字符集(CHARSET),校对集(COLLATE)。
  • 在操作数据表之前,应该使用“USE 数据库名”指定操作是在哪个数据库中进行,否则会抛出No database selected错误。
  • 也可以采用数据库.表名的形式,在如何数据库下访问其他数据库总的表,减少了‘USE 数据库‘的选择数据库操作。

2.2,查看数据表

1)查看数据表

SHOW TABLES [KIKE 匹配模式];

具体SQL语句操作:

image-20220922101537842

切记:

  • LINK后的匹配模式必须使用单引号或者双引号包裹。

  • 若不添加可选项“LINK 匹配模式”,表示查看当前数据库中的所有数据表;若添加则按照匹配模式来查看数据库。

  • 匹配模式符有2种,分别为“%”和“_”,前者表示匹配一个或者多个字符,代表任意长度的字符串,长度可为0,而后者仅可以匹配一个字符。


2)查看数据表的相关信息

SHOW TABLE STATUS [FROM 数据库名] [LIKE 匹配模式];

具体SQL语句操作:

image-20220922102118751

切记:

  • 查看数据表操作的相关信息包括数据表的名称,存储引擎,结构文件,存储格式,创建时间,校对集等一系列信息。
  • ’\G’是MySQL客户端可以使用的结束符的一种,用于将显示的信息纵向排列,适合字段非常多的情况。
  • Row_format 字段的值除了Dynamic外,还有Fixed(固定),Compressed(压缩),Redundant(冗余) 和 Compact(紧凑)。

2.3,查看表结构

MySQL提供的DESCRIBE语句可以查看数据表在所有字段或者指定字段的信息,包括字段名,字段类型等信息。

1)查看数据表的字段信息

#语法格式1:查看所有字段的信息
{DESCRIBE|DESC} 数据表名;

具体SQL语句操作:

image-20220922102210746

#语法格式2:查看指定字段的信息
{DESCRIBE|DESC} 数据表名 字段名;

具体SQL语句操作:

image-20220922102305879

切记:

  • Field 表示字段名称
  • Type表示字段的数据类型
  • Null表示该字段是否可以为空
  • Key表示该字段是否已设置了索引
  • Default表示该字段是否有默认值
  • Extra表示获取到的与该字段相关的附加信息

2)查看数据表的创建语句

查看创建数据表的具体SQL语句以及表的字符编码

SHOW CREATE TABLE 表名;

具体SQL语句操作:

image-20220922102004705

切记:

  • Table 表示查询的表名称
  • Create Table 表示创建该数据表的SQL语句
  • SQL语句中包含了字段信息,COMMENT(注释),ENGINE(存储引擎)以及DEFAULT CHARSET(字符集)等内容。

3)查看数据表结构

#语法格式1
SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名];

具体SQL语句操作:

image-20220922102551350

#语法格式2
SHOW [FULL] COLUMNS FROM 数据表名.数据表名;

具体SQL语句操作:

image-20220922102651194

切记:

  • 可选项FULL表示显示详细内容,在不添加的情况下查询结果与使用DESC查询的结果相同。
  • 在添加FULL选项时,不仅可以查看到DESC语句查看的字段信息,还可以查看到Privileges(权限)字段,Comment(注释)字段,Collation(校对集)字段。

2.4,修改数据表

1)修改数据表名称

#语法格式1
ALTER TABLE 旧表名 RENAME [TO|AS] 新表名;

具体SQL语句操作:

image-20220922111802073

具体SQL语句操作:

image-20220922111711329

#语法格式2
RENAME TABLE 旧表名1 TO 新表名1;

具体SQL语句操作:

image-20220922111854433

具体SQL语句操作:

image-20220922111613358

#批量修改多个数据库名称
RENAME TABLE 旧表名1 TO 新表名1,旧表名2 TO 新表名2,...,旧表名n TO 新表名n;

具体SQL语句操作:

image-20220922111950715

具体SQL语句操作:

image-20220922111400377

切记:

  • ALTER TABLE 修改数据表名称时,可以直接使用RENAME 或在其后添加TO或AS。
  • RENAME TABLE 则必须使用TO,该语法还可以同时修改多个数据表的名称。

2)修改表选项

数据表中的表选项字符集,存储引擎以及校对集也可以通过ALTER TABLE修改。

ALTER TABLE 表名 表选项 [=] 值;

具体SQL语句操作:

image-20220922112142800

具体SQL语句操作:

image-20220922112521316


2.5,修改表结构

1)修改字段名

ALTER TABLE 数据表名 CHANGE [COLUMN] 旧字段名 新字段名 字段类型 [字段属性];

具体SQL语句操作:

image-20220922103337747

具体SQL语句操作:

image-20220922103456697

切记:

  • 数据类型表示新字段名的数据类型,不能为空,即使与旧字段的数据类型相同,也必须重新设置。

2)修改字段类型

ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名 新类型 [字段属性];

具体SQL语句操作:

image-20220922103849058

具体SQL语句操作:

image-20220922104015177


3)修改字段位置

ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名 新类型 [字段属性] [FIRST|AFTER 字段名2];

具体SQL语句操作:

image-20220922104322234

具体SQL语句操作:

image-20220922104407784

切记:

  • 修改字段的位置就是在修改字段类型的后面添加"FIRST“或”AFTER 字段名2“。
  • 前者表示将字段名1调整为数据表的第1个字段,后者表示将字段名1插到字段名2的后面。

4)新增字段

#语法格式1:新增一个字段,并可指定其位置
ALTER TABLE 数据表名 ADD [COLUMN] 新字段名 字段类型 [字段属性] [FIRST|AFTER 字段名];

具体SQL语句操作:

image-20220922104825970

具体SQL语句操作:

image-20220922104926146

#语法格式2:同时新增多个字段
ALTER TABLE 数据表名 ADD [COLUMN] (新字段名1 字段类型1, 新字段名2 字段类型2,...,新字段名n 字段类型n)

具体SQL语句操作:

image-20220922105306321

具体SQL语句操作:

image-20220922105354521

切记:

  • 在不指定位置的情况下,新增的字段默认添加到表的最后。
  • 新增多个字段时不能指定字段的位置,字段依次添加到表的最后。

5)删除字段

ALTER TABLE 数据表名 DROP [COLUMN] 字段名;

具体SQL语句操作:

image-20220922105626888

具体SQL语句操作:

image-20220922105712365


2.6,删除数据表

删除数据表操作指的是删除指定数据库中已经存在的表。

#删除单个数据表
DROP [TEMPORARY] TABLE [IF EXISTS] 数据表1;

具体SQL语句操作:

image-20220922110406119

#删除多个数据表
DROP [TEMPORARY] TABLE [IF EXISTS] 数据表1,数据表2,...,数据表n;

具体SQL语句操作:

image-20220922110544044

切记:

  • 可选项IF EXISTS用于在删除一个不存在的数据表时,防止产生错误,规避MySQL服务器报错。
  • 在删除数据表的同时,存储在数据表中的数据都将被删除,因此在开发时应谨慎使用数据表删除操作。

3,数据操作

3.1,增加数据

1)为部分字段添加数据

INSERT [INTO] 数据表名(字段名1,字段名2,...,字段名n) {VALUES|VALUE} (值1,值2,...,值n);

具体SQL语句操作:

image-20220922224358848

具体SQL语句操作:

image-20220922224705774

INSERT [INTO] 数据表名 SET 字段名1 = 值1 [,字段名2 = 值2,...,字段名n = 值n]
  • 字段名1,字段名2表示待添加数据的字段的字段名称;值1,值2表示添加的数据。
  • 若在SET关键字后,为表中多个字段添加数据,在每对”字段名=值“之间使用逗号相隔即可。e

具体SQL语句操作:

image-20220922225000179

具体SQL语句操作:

image-20220922225122476

切记:

  • 指定的字段名可以是数据表中的全部字段,也可以是部分字段。
  • 字段名列表和值列表中,多个字段名之间使用逗号相隔,多个值之间也使用逗号相隔。
  • 字段名的编写顺序可与表结构(字段位置)不同,只需保证与后面的值列表中的值对应即可。
  • 字段的名称在使用时不需要用引号包裹,未添加的数据的字段系统会自动为该字段添加默认值NULL(空的)。

2)为所有字段添加数据

INSERT [INTO] 数据表名 {VALUES|VALUE} (值1,值2,...,值n);

具体SQL语句操作:

image-20220922225429507

具体SQL语句操作:

image-20220922225517027

切记:

  • 在为所有字段添加数据时,可以省略字段名称,严格按照数据表结构(字段的位置)插入对应的值。
  • INTO 为可选择项;VALUE 和VALUES可以任选一种,通常情况下使用VALUES;值列表中值之间用逗号隔开。
  • 在插入数据时,插入的数据顺序必须与创建数据表时对应的字段位置顺序相同,不可搞乱顺序,规避数据顺序错误情况。

3)批量添加多行数据

INSERT [INTO] 数据表名 [字段列表] {VALUES|VALUE} (值列表1) [,(值列表2),...,(值列表n)];

具体SQL语句操作:

image-20220922225930193

具体SQL语句操作:

image-20220922230025852

切记:

  • 在同时插入多行数据时,多个值列表之间使用逗号相隔。

4)扩展知识

问题:在MySQL中,若创建的数据表未指定字符集,则数据表及表中的字段将使用默认的字符集latinl,因此再插入数据中含有中文,则会出现错误提示,那么如何解决以上中文插入的问题?

解答:为了解决以上中文插入的问题,通常在创建数据表时添加表选项,设置数据表的字符集。

CREATE TABLE 数据表名(
	字段...
)DEFAULT CHARSET utf8;
  • DEFAULT CHARSET 表示设置字符集,utf8 字符集支持世界上大多数国家的字符,通常推荐使用此字符集。
  • 对于已经添加数据的数据表,则可以通过ALTER TABLE …CHANGE/MODIFY完成对表字段字符集的设置,在使用时需注意语法不同。
ALTER TABLE user MODIFY name VARCHAR(10) CHARSET SET utf8;

3.2,查询数据

1)查询表中全部数据

SELECT * FROM 数据表名;

具体SQL语句操作:

image-20220922230114708

切记:

  • 查询数据表中所有字段的数据,星号”*“通配符代表数据表中的所有字段名。

2)查询表子部分字段

SELECT {字段名1,字段名2,字段名3,...,字段名n} FROM 数据表名;

具体SQL语句操作:

image-20220922230304101

切记:

  • 字段列表中若列出数据表中所有字段名,则表示查询表中所有的全部数据。

3)简单条件查询数据

SELECT * FROM 数据表名 WHERE 条件表达式;

具体SQL语句操作:

image-20220922230450243

SELECT * FROM 数据表名 WHERE 字段名 = 值;

具体SQL语句操作:

image-20220922230625086

SELECT * {字段名1,字段名2,字段名3,...,字段名n} FROM 数据表名 WHERE 字段名 = 值;

具体SQL语句操作:

image-20220922230849883

切记:

  • WHERE 字段名 = 值 表示获取字段名对于指定值的数据记录,数据内容可以是表的部分字段,也可以是全部字段。

3.3,修改数据

修改数据操作是对数据表中的部分数据记录进行修改。

UPDATE 数据表名 SET 字段名1 = 值1 [,字段名2 = 值2,...] [WHERE 条件表达式];

具体SQL语句操作:

image-20220922231256389

具体SQL语句操作:

image-20220922231220299

切记:

  • 数据表名指定要执行修改操作的表,WHERE条件为可选参数,用于设置修改的条件,满足修改条件的数据的字段就会被修改。
  • 在进行修改数据操作时未指定WHERE条件,数据表中的所有对应的字段都会被修改成统一的值,因此在修改数据时需谨慎操作。

3.4,删除数据

删除数据操作是对数据表中存在的数据记录进行删除。

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

具体SQL语句操作:

image-20220922232014742

具体SQL语句操作:

image-20220922231920420

切记:

  • 数据表名指定要执行删除操作的表,WHERE条件为可选参数,用于设置删除的条件,满足删除条件的数据记录就会被删除。
  • 在进行删除数据时未指定WHERE删除条件时,系统就会自动删除数据表中的所有数据记录,因此在进行删除数据时需谨慎操作。

4,其它操作

4.1,安装目录位置显示
SHOW VARIABLES LIKE 'BASEDIR';

具体SQL语句操作:

image-20220924212929144


4.2,数据目录位置显示
SHOW VARIABLES LIKE 'DATADIR';

具体SQL语句操作:

image-20220924213245186


4.3,错误日志目录查询
SHOW VARIABLES LIKE 'log_error';

具体SQL语句操作:

image-20220924214021169


总结

以上就是数据库的MySQL基本操作的所有内容,希望能够对大家有帮助。如果大家有什么解决不了的问题,欢迎大家评论区留言或者私信告诉我。如果感觉对自己有用的话,可以点个赞或关注鼓励一下博主,我会越做越好的,感谢各位的支持,我们下期见。

在这里插入图片描述


  • 177
    点赞
  • 813
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 71
    评论
MySQL 表分区是一种将大型表水平分成多个部分的技术,这有助于提高查询和数据管理的效率。在 MySQL 中,可以使用 RANGE、LIST、HASH 和 KEY 四种分区类型来定义分区方式。 下面是 MySQL 表分区的详细操作步骤: 1. 创建表时定义分区方式 在创建表的时候,可以指定表的分区方式。例如,使用 RANGE 分区方式将表按照数值范围进行分区: ``` CREATE TABLE mytable ( id INT, value INT ) PARTITION BY RANGE (value) ( PARTITION p0 VALUES LESS THAN (10), PARTITION p1 VALUES LESS THAN (20), PARTITION p2 VALUES LESS THAN (MAXVALUE) ); ``` 2. 插入数据 向表中插入数据时,MySQL 会自动将数据插入到正确的分区中。例如,插入一个 value 值为 5 的数据: ``` INSERT INTO mytable (id, value) VALUES (1, 5); ``` 3. 查询数据 在查询数据时,MySQL 可以仅查询特定的分区,而不必扫描整个表。例如,查询 value 值在 10 到 20 之间的数据: ``` SELECT * FROM mytable PARTITION (p1); ``` 4. 修改分区 可以使用 ALTER TABLE 语句修改表的分区方式,例如,将表从 RANGE 分区方式修改为 HASH 分区方式: ``` ALTER TABLE mytable PARTITION BY HASH(value) PARTITIONS 4; ``` 5. 合并分区 可以使用 ALTER TABLE 语句将相邻的分区合并为一个分区,例如,将分区 p1 和 p2 合并为一个分区: ``` ALTER TABLE mytable COALESCE PARTITION p1, p2 INTO p3; ``` 6. 删除分区 可以使用 ALTER TABLE 语句删除表的某个分区,例如,删除分区 p0: ``` ALTER TABLE mytable DROP PARTITION p0; ``` 以上就是 MySQL 表分区的详细操作步骤,可以根据实际需求选择不同的分区方式来提高查询和数据管理的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 71
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨MiManchi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值