MySQL使用教程:数据库、表操作

目录

  • 1. 免密码登录MySQL
    • 1.1 免密码配置
    • 1.2 登录选项介绍
  • 2. MySQL基础配置:my.cnf
  • 3. 开机自启动设置(可选设置)
  • 4. 查看存储引擎
  • 5. 查看系统的编码规则和校验规则
  • 6. 数据库的操作
    • 6.1 查看数据库
    • 6.2 创建数据库 create database
    • 6.3 删除数据库 drop database
    • 6.4 使用数据库 use
    • 6.5 修改数据库 alter database
  • 7. 表的操作
    • 7.1 创建表 create table
    • 7.2 查看表结构 desc
    • 7.3 修改表 alter table
      • 7.3.1 修改表名称 rename
      • 7.3.2 添加字段(列)add
      • 7.3.3 修改字段属性 modify
      • 7.3.4 修改字段名称 change
      • 7.3.5 删除字段(列) drop
    • 7.3 删除表 drop table

1. 免密码登录MySQL

对于新人来说安装好的MySQL,登录是非常头疼的,因此在这里先来设置个免密码操作,后续会将登录设置,设置回来。

接下来进入正题:

1.1 免密码配置

首先免密码登录要直接对MySQL的配置文件进行修改,跳过密码认证环节,操作如下:

  • 先用 vim 打开 更目录下 etc 中的 my.cnf文件
vim /etc/my.cnf

在这里插入图片描述

  • 接下来在27行的下一行加上这么一行代码:
skip-grant-tables

在这里插入图片描述
输入:wq之后保存并且退出。

注意一定要将配置内容写对,否则无法生效。

  • 将MySQL服务(mysqld)重启,重启方式如下:
  • 方法一:终端输入两条指令,先将MySQL服务先停止,然后再启动
    systemctl stop mysqld
    systemctl start mysqld
  • 方法二:直接重启MySQL服务
    systemctl restart mysqld

1.2 登录选项介绍

接下来就是登录mysql了:

mysql -uroot -p   //这里使用的是root登录
  • -u选项的后面是登录MySQL用户名称,之间是否带空格影响都不大。
  • -p 选项表示使用密码登录

输入上述登录指令后,终端还是要你输入密码,此时只需要直接回车即可:

在这里插入图片描述
其他选项介绍:

  • -h 选项表示要指定连接的主机地址
mysql -h 127.0.0.1  -u root -p    //127.0.0.1表示本地环回地址
  • -G 选项表示访问特定主机的特定端口号
mysql -G 3306 -u root -p         //访问端口号为3306

上面提到的选项,在登录时可以不加,会有默认值。

例如:不加 -h 选项默认连接本地主机, 不加 -G 表示默认使用配置文件的端口号,配置文件会在接下来讲到。

2. MySQL基础配置:my.cnf

安装好的MySQL在使用前一些默认值是有一些问题的,在使用前我们需要将MySQL配置文件进行修改一下。

  • 用 vim 打开 etc 下的 my.cnf 文件:
vim /etc/my.cnf

在这里插入图片描述

  1. 绑定端口号:3306,这个是MySQL默认端口号
    在光标位置,加入这么一行代码:port=3306
    在这里插入图片描述
  2. 配置编码格式:utf8
    在光标位置,加入这么一行代码:character-set-server=utf8
    在这里插入图片描述
  3. 设置存储引擎:innodb
    在光标位置,加入这么一行代码:default-storage-engine=innodb
    在这里插入图片描述

配置好后重启MySQL服务即可,重启方式上面提到过这里不再赘述。

3. 开机自启动设置(可选设置)

终端输入两条指令:

systemctl enable mysqld
systemctl daemon-reload

提示:在MySql中每个语句写完后都需要带上分号。

4. 查看存储引擎

show engines;

在这里插入图片描述

5. 查看系统的编码规则和校验规则

  1. 查看编码规则:
show chaset;

在这里插入图片描述

  1. 查看校验规则:
show collation;

在这里插入图片描述

6. 数据库的操作

6.1 查看数据库

show databases;

在这里插入图片描述

  • 查看当前处于哪个数据库位置
select database();

在这里插入图片描述

  • 查看创建数据库时的细节
show create database 数据库名称;

在这里插入图片描述
/*!40100 DEFAULT CHARACTER SET gbk */ 这串代码大致意思为:

  1. !40100:如果当前数据库版本大于 40100 那么就执行后边代码。
  2. CHARACTER SET gbk:数据库创建时使用的编码规则为 gbk。

6.2 创建数据库 create database

  • 在Linux下,创建一个数据库实际上就是在 /var/lib/mysql 目录中创建了一个目录
  1. 简单创建数据库
create database 数据库名称;

在这里插入图片描述

  1. 防止重复创建数据库
create database if not exists 数据库名称;

表示当前数据库如果不存在,那么就会创建该数据库;否则不会创建。(带上该选项也是为了安全考虑,防止重复创建数据库造成数据库内容丢失)

在这里插入图片描述

  1. 创建数据库时指定编码集和校验集
  • 数据库编码集:未来数据库存储的编码集
  • 数据库校验集:支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式

数据库编码集和校验集的设置,是为了数据库无论对数据做任何操作时,都必须保证编码是一致的。

  • 指定 编码集 创建数据库

方法一:

create database student charset=utf8; //指定 utf8 为编码集

方法二:

create database student character set utf8; //指定 utf8 为编码集
  • 指定 编码集 和 校验集 创建数据库
create database student charset=utf8 collate utf8_general_ci; //指定 utf8 为编码集,utf8为校验集(不区分大小写)
create database student charset=utf8 collate utf8_bin; //指定 utf8 为编码集,utf8为校验集(区分大小写)

6.3 删除数据库 drop database

  • 在Linux下,删除数据库相当于在/var/lib/mysql 删除目录操作
drop database 数据库名称;

在这里插入图片描述
不建议随随便便删除数据库,因为删除数据库对应的级联、数据表的内容会被全部删除!!!

6.4 使用数据库 use

use 数据库名称;

这里输入 use 操作好比在 Linux 文件系统中 cd 进入一个目录下操作类似:
在这里插入图片描述

6.5 修改数据库 alter database

  • 修改数据库的 编码集 和 校验集
alter database 数据库名 charset=编码 collate 校验集;

在这里插入图片描述
将数据库的编码集设置为 gbk ,校验集设置为 gbk_chinese_ci。

7. 表的操作

7.1 创建表 create table

  • Linux下,在数据库内部创建表,实际上就是在当前目录(数据库)下创建一个文件(数据库表)

语法

create table if not exists 表名 (filed1 datatype comment 描述内容,filed2 datatype comment 描述内容,filed3 datatype comment 描述内容,... 
)charset=字符集 collate=校验规则 engine=存储引擎; #注意最后加分号
  1. if not exists 表示该表存在时不会创建,不存在才创建
  2. filed 表示列名
  3. datatype 表示表的列的类型
  4. comment 表示对字段内容进行描述

注意:字符集和校验集在没有指定时,会默认使用 my.cnf 配置文件里设置的。

创建表时,使用不同的存储引擎会在对应数据库目录下创建不同的表结构

举个例子:

  1. 首先在mysql中创建一个 student 学生表,然后进到 /var/lib/mysql/ 路径(需要获得权限),此时可以看到刚刚创建的 student 数据库:
    在这里插入图片描述
    在这里插入图片描述
    进入 student 目录:
    在这里插入图片描述

  2. 此时在 mysql 中创建分别使用不同的存储引擎创建表:
    第一张表使用 MyIsam 存储引擎
    在这里插入图片描述
    查看对应 student 目录下内容,对应 stu1 出现了 .MYD.MYI(表示这两个文件都是 MyIsam 存储引擎创建的)
    在这里插入图片描述

第二张表使用 InnoDB 存储引擎
在这里插入图片描述
查看对应 student 目录下内容,对应 stu2 出现了只有一个 .ibd(.idb 表示使用InnoDB存储引擎创建的文件)
在这里插入图片描述

7.2 查看表结构 desc

  • 表结构
desc dbases;

desc 表示单词(描述)的前四个字母
在这里插入图片描述
在这里插入图片描述

  • 查阅创建表时的详细信息
show create table 表名称 \G;

在这里插入图片描述

\G格式化显示,过滤分隔符。

7.3 修改表 alter table

7.3.1 修改表名称 rename

alter table 表名称 rename 新表名称

现在有这样的一张表:
在这里插入图片描述
将表名称修改为 student :
在这里插入图片描述

7.3.2 添加字段(列)add

alter table 表名称 add 字段名 字段类型(大小) comment '字段描述' after 指定列的所在位置;

这里 comment 和 after 不是必须设置,不加 after 创建的字段会生成到表的最后位置

举个例子,表中内容如下:
在这里插入图片描述
此时增加一个出生年月日的字段,要求加到年龄字段的后面

在这里插入图片描述
新增列内容是不存在的,所以显示NULL

7.3.3 修改字段属性 modify

alter table 表名称 modify 字段属性(大小) comment '字段描述';

提示:修改字段属性不会对表中已有的数据进行修改。修改字段属性实际上是覆盖(将新的字段属性覆盖原有的字段属性)

修改字段属性前 student 表的信息如下:
在这里插入图片描述

student 表字段属性:
在这里插入图片描述

将 student 表中的name字段属性 varchar(20) 更改为 varchar(50),不加comment进行字段修饰
在这里插入图片描述

此时再来查看一下student表的信息,会发现 name 字段的描述不见了。
在这里插入图片描述

在修改字段属性时,建议将原来的描述字段的信息也加上,避免修改后字段属性覆盖了原来描述字段的内容

在这里插入图片描述

7.3.4 修改字段名称 change

alter table student change 字段名 新字段名 字段类型(大小) comment '字段描述';

修改字段名称时也时要将原有的字段描述带上

student 表:
在这里插入图片描述

将表中的 name字段修改成 xingming :
在这里插入图片描述

7.3.5 删除字段(列) drop

alter table 表名称 drop 字段名称;

student 表:
在这里插入图片描述

将 age 字段删除:
在这里插入图片描述

注意:删除一个表中的字段会将表中对应字段的所有内容都删除,在进行删除操作时要慎重!!!

7.3 删除表 drop table

drop table 表名;

示例:

在这里插入图片描述

删除 person表:
在这里插入图片描述

数据库是所有业务中最靠近底层的后端的,修改表字段操作往往也会影响到上层软件,对表中的内容修改也需要将上层软件代码进行修改。因此,对数据库的表进行修改或是删除时都要认真考虑,慎重!

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

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

相关文章

【[NOIP1999 普及组] Cantor 表】

题目描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 我们以 Z 字形给上表的每一项编号。第一项是 1 / 1 1/1 1/1,然后是 1 / 2 1/2 1/2, 2 / 1 2/1 2/1, 3 / 1 3/1…

腾讯云2核4G服务器最大能承载多少人访问?

腾讯云轻量应用服务器2核4G5M配置性能测评,腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?并发数10,支持每天5000IP人数访问,腾讯云百科txybk.com整理2核4G服务器支持多少人同时在线?并发数测试、CPU性能、内存性能、…

python入门题:输入输出练习

以下是Python基础语法的练习,项目要求和代码如下: """ 例3:小精灵:你好,欢迎古灵阁,请问您需要帮助吗?需要or不需要? 你:需要 小精灵:请问你需…

图片照片怎么做成二维码?图片快速生成二维码的简单教学

随着互联网的快速发展,二维码作为现在很常用的一种内容载体方式,可以应用的场景越来越多,不管是用于企业宣传、产品介绍、问卷调查等类型的内容,都能够使用二维码的形式展示。二维码能够提供更加快捷的有效的推广效果,…

高阶数据结构 <红黑树>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 目录 前言正文红黑树简介红黑树整体结构红黑树节点的定义红黑树主体类设计红黑树的插入函数情况一:变色情况二:变色旋转单旋情况双旋情况 完整插入代码 关于红黑树红黑树检…

系统安装(kuntaiR522 kvm安装)

(1)通过PC1 web连接Server2,给Server2安装rocky-arm64 CLI系统(语言为英文)。 首先是访问server2的IPMI口,访问192.168.2.10, 用户为Admin,密码为Admin@123 登录进去 以HTML5 集成控制台方式打开 插入U盘修改启动项安装系统

Floyd算法:浅显外表下的动态规划内核

很久没遇到Floyd算法的题目了,2642. 设计可以求最短路径的图类刚好是一个典型。在实现核心算法之余,顺便整理一下算法的内核。 Floyd-Warshall’s Algorithm Floyd-Warshall算法,简称Floyd算法,是“有向图非负权图的多源最短路”…

Selenium自动化测试面试题全家桶

1、什么是自动化测试、自动化测试的优势是什么? 通过工具或脚本代替手工测试执行过程的测试都叫自动化测试。 自动化测试的优势: 1、减少回归测试成本 2、减少兼容性测试成本 3、提高测试反馈速度 4、提高测试覆盖率 5、让测试工程师做更有意义的…

10个你必须知道的浏览器指纹检测工具,保护你的隐私安全

在当前的数字时代,个人隐私保护变得越来越重要,特别是对于互联网用户来说。有一种叫做“浏览器指纹”的技术,它能悄悄收集我们使用的浏览器和设备的各种细节信息。这本是为提供个性化服务,但对那些需要在不同平台同时管理多个账号…

python项目子模块配置

创建模块子应用 1.在项目中新建一个apps的目录,用于存放所有子模块应用 2.在apps包下创建所需应用 注册模块子应用 1.在主模块里面寻找到配置文件 2.在配置文件中找到 INSTALLED_APPS,添加相应路径apps.users Tips: 由于每次添加都要输入前缀apps.会…

C++|类封装、类的分文件编写练习:设计立方体类、点和圆的关系

文章目录 练习案例1:设计立方体类CPP代码 练习案例2:点和圆的关系CPP代码 代码总结类的分文件编写 练习案例1:设计立方体类 设计立方体类(Cube) 求出立方体的面积和体积 分别用全局函数和成员函数判断两个立方体是否相等。 CPP代码 class Cube { pub…

kubernetes名称空间和资源配额

名称空间 一.名称空间概念二.Namespace使用场景三.名称空间基本操作1.创建Namespace两种方式2.Namespace资源限额 一.名称空间概念 Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。 命名空间namespace是k8s集群级别的资…

Thread类中start方法和run方法的源码简单解读,联系和区别

我们可以打开idea,按住ctrl将光标移至所查方法上,单击右键,即可查看这两个方法的源码: 1. start方法源码 我们从上至下分析一下: 这个threadStatus是一个int型的变量来表示线程是否开始,0为没有开始,非0为开始,因此当threadStatus不为0时,会抛出非法开始线程的异常. group对象…

可怜的百度人

可怜的百度股民 注意,这里说的是持有百度股票的股民,不是百度,百度没啥好可怜的。 前天(3月25日)中午,财联社爆料百度和 Apple 达成合作,百度将为苹果今年发布的 iPhone16、Mac 系统和 iOS18 提…

气体放电的基本物理过程

本篇为本科课程《高电压工程基础》的笔记。 和固体液体介质相比,气体绝缘有不老化的有点,而且击穿后具有完全的绝缘自恢复特性,是绝缘部分的重点。 带电质点的产生与消失 中性气体不到点,但是由于宇宙射线和地壳中的放射性物质…

如何做好位移计保养和维修工作

当涉及到保养和维修位移计时,我们需要考虑一系列的因素,包括正确的使用方法、定期的保养程序以及必要的维修步骤。位移计是一种用于测量物体相对位置变化的仪器,因此其准确性和可靠性对于许多工程和科学应用至关重要。以下是一些关于如何保养…

【前端面试3+1】01闭包、跨域、路由模式

一、对闭包的理解 定义: 闭包是指在一个函数内部定义的函数,并且该内部函数可以访问外部函数的变量。闭包使得函数内部的变量在函数执行完后仍然可以被访问和操作。 特点: 闭包可以访问外部函数的变量,即使外部函数已经执行完毕。…

2023最新版Android studio安装入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

目录 JDK安装与配置 一、下载JDK 二、JDK安装 三、JDK的环境配置 四、JDK的配置验证 Android studio安装 Android studio连接手机真机调试(以华为鸿蒙为例) 一、新建一个android项目 二、进入项目面板 三、配置Android Studio 四、安装手机驱…

抽象类和接口(1)(抽象类部分)

抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 此外还有抽象方法这个概念 …

拿到今日现货白银价格 如何开始分析?

很多投资者看到近期现货白银的强劲涨势,并且开户入场。但入场之后,他们发现对如何找到机会还不甚了解。比方说我们拿到今日现货白银价格要如何开始分析呢,很多新入场的投资者根本没有头绪,下面我们就来讨论一下相关的方法。 我们可…