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

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/796173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云添加域名后不生效

问题原因 添加域名后不生效可能是因为没有加CDN域名解析 解决步骤

MacOS Docker 可视化面板 Portainer

一、简介 Portainer 是一个可视化的容器镜像图形管理工具,使用 Portainer 可以轻松构建、管理和维护Docker 环境。 而且完全免费(portainer-ce 是免费的,portainer-ee 是需要授权的,今天安装的是 portainer-ce 版本)&…

Java多态练习2

设计金融产品类Financial,属性包括产品名称、产品介绍、起投金额、产品期限(int)、年化收益(百分数);方法包括发布、截止、投资。 设计金融产品类子类: 基金产品Fund,继承金融产品类…

Jenkins (三) - 拉取编译

Jenkins (三) - 拉取编译 通过Jenkins平台 git 拉取github上项目,通过maven编译并打包。 Jenkins 安装 git 插件 Manager Jenkins -> Plugins -> Available plugins -> Git 打包编译检验 FressStyle 风格编译 New Item输入 item name Spring-Cloud-1…

LeetCode---127双周赛

题目列表 3095. 或值至少 K 的最短子数组 I 3096. 得到更多分数的最少关卡数目 3097. 或值至少为 K 的最短子数组 II 3098. 求出所有子序列的能量和 一、或值至少k的最短子数组I&II 暴力的做法大家都会,这里就不说了,下面我们来看看如何进行优化…

1、快速上手Docker:入门指南

文章目录 Linux中安装docker防火墙端口配置web项目需要的环境安装yarn安装nodejs安装脚手架并准备项目 构建镜像启动镜像查看日志管理镜像推送镜像 发布项目准备服务器环境部署项目: PS:扩展一点小知识 这篇文章只是docker入门的第一个Docker项目&#x…

STM32使用HAL库获取GPS模块HT1818Z3G5L信息(方法1)

1、写在最前 先了解一下GPRMC的格式 格 式: GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,A*50 说 明: 字段 0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data&…

数据结构|排序总结(1)|直接插入排序

排序分类 插入排序:直接插入排序,希尔排序 选择排序:选择排序,堆排序 交换排序:冒泡排序,快速排序 归并排序 插入排序 直接插入排序 相当于摸牌,例如我们现在手上有{2,4&#xff0…

碘浊度法与红外相机联用测定食品中维生素C

🌞欢迎来到看论文的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年4月6日&…

数据库的简单查询

一、检索一列或多列1.检索单独一列 select 列名 from 表名; select order_num from orders; 2.检索多列数据 select 列 1,列 2... from 表名; select order_num,order_date from orders; select order_date,order_num from orders; 3.查询所有字段 select * from…

正排索引 vs 倒排索引 - 搜索引擎具体原理

阅读导航 一、正排索引1. 概念2. 实例 二、倒排索引1. 概念2. 实例 三、正排 VS 倒排1. 正排索引优缺点2. 倒排索引优缺点3. 应用场景 三、搜索引擎原理1. 宏观原理2. 具体原理 一、正排索引 1. 概念 正排索引是一种索引机制,它将文档或数据记录按照某种特定的顺序…

016——DHT11驱动开发(基于I.MX6uLL)

目录 一、 模块介绍 1.1 简介 1.2 电路描述 1.3 通信协议 二、 驱动程序 三、 应用程序 四、 上机实验 一、 模块介绍 1.1 简介 DHT11 是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器,会测量空气中湿度,再根据测量结果决定是否继续加…

Cortex-M7 内存映射模型

1 前言 如图1所示, Cortex-M7最大支持4GB的内存寻址,并对内存映射(memory map)做了初步的规定,将整个内存空间划分为了多个内存区域(region)。每个内存区域有着既定的内存类型(memory type)和内存属性(memory attribute),这两者决…

物理层习题及其相关知识(谁看谁不迷糊呢)

1. 对于带宽为50k Hz的信道,若有4种不同的物理状态来表示数据,信噪比为20dB 。(1) 按奈奎斯特定理,信道的最大传输数据速率是多少?(2) 按香农定理,信道的最大传输数据速度…

基于Springboot+Vue实现前后端分离酒店管理系统

一、🚀选题背景介绍 📚推荐理由: 近几年来,随着各行各业计算机智能化管理的转型,以及人们经济实力的提升,人们对于酒店住宿的需求不断的提升,用户的增多导致酒店管理信息的不断增多,…

ICLR 2024 | 联邦学习后门攻击的模型关键层

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 联邦学习使多个参与方可以在数据隐私得到保护的情况下训练机器学习模型。但是由于服务器无法…

华为分红出炉,人均超50w!

华为分红 770 亿 4 月 2 日,北京金融资产交易所官网发布了《华为投资控股有限公司关于分配股利的公告》。 公告指出:经公司内部有权机构决议,拟向股东分配股利约 770.945 亿元。 众所周知,华为并不是一家上市公司,这里…

C++从入门到精通——初步认识面向对象及类的引入

初步认识面向对象及类的引入 前言一、面向过程和面向对象初步认识C语言C 二、类的引入C的类名代表什么示例 C与C语言的struct的比较成员函数访问权限继承默认构造函数默认成员初始化结构体大小 总结 前言 面向过程注重任务的流程和控制,适合简单任务和流程固定的场…

自定义实现shell/bash

文章目录 函数和进程之间的相似性shell打印提示符,以及获取用户输入分割用户的输入判断是否是内建命令执行相关的命令 全部代码 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&#…

Day30 线程安全之窗口售票问题(含代码)

Day30 线程安全之窗口售票问题(含代码) 一、需求: 铁道部发布了一个售票任务,要求销售1000张票,要求有3个窗口来进行销售, 请编写多线程程序来模拟这个效果( 注意:使用线程类的方式…