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

news2024/11/17 11:27:55

目录

  • 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.coloradmin.cn/o/1548499.html

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

相关文章

基于matlab仿真A*算法的多目标路径规划问题

资源文件换一下 剩下的看注释即可 很详细的哦 % 定义地图大小 十行十列 ROWS 10; COLS 10;% % 初始化地图 % grid zeros(ROWS, COLS); % % 设置固定位置的障碍物 % obstacle_positions [2, 3; 4, 5; 6, 7;]; % 障碍物位置坐标 % % 将障碍物位置设置为1 % for i 1:size(o…

数据库备份工具(实现数据定时覆盖)

数据库备份工具(实现数据定时覆盖) 永远热爱,永远执着! 工具介绍 自动化测试数据库更新调度程序 这段 Python 脚本自动化了每天定时从生产数据库更新测试数据库的过程。它利用了 schedule 库来安排并执行每天指定时间的更新任务…

【网络安全技术】——Kali Linux环境部署

📖 前言:Kali 是一个基于 Debian 的 Linux 发行版。它的目标就是为了简单:在一个实用的工具包里尽可能多的包含渗透和审计工具。Kali 实现了这个目标。大多数做安全测试的开源工具都被囊括在内。 目录 🕒 1. Kali Linux下载与安装…

latex在写算法`\For` 和 `\EndFor` 以及 `FOR` 和 `\ENDFOR` ,报错Undefined control sequence.

这里写目录标题 1. 错误原因2. 进行改正3. 爱思唯尔期刊与施普林格期刊对于算法的格式不太一样,不能直接套用总结 1. 错误原因 我在算法中使用\For,\EndFor 2. 进行改正 换成FOR,\ENDFOR 3. 爱思唯尔期刊与施普林格期刊对于算法的格式不太…

构建以太网交换网络——(生成树实验)

实验介绍 关于本实验 以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至…

图论06-飞地的数量(Java)

6.飞地的数量 题目描述 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格、1 表示一个陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边界。 返回网格中 无法…

后端基础篇- 社区 IDEA 手动 Maven 创建 SpringBoot 项目、Maven 安装与配置环境变量、IDEA 集成 Maven

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Maven 安装与配置环境变量 1.1 下载并解压安装包 1.2 配置本地仓库 1.3 配置阿里云私服 1.4 配置环境变量 2.0 IDEA 集成 Maven 2.1 首先创建一个新项目 2.2 开始…

javaWeb医院在线挂号系统

功能描述 医院挂号系统主要用于实现医院的挂号,前台基本功能包括:用户注册、用户登录、医院查询、挂号、取消挂号、修改个人信息、退出等。 后台基本功能包括:系统管理员登录、医院管理、科室管理、公告管理、退出系统等。 本系统结构如下&…

舵机烧录

舵机烧录 一、硬件连接1、准备物资2、连接(1)舵机线一侧连接舵机控制板,另一侧连接舵机(2)老安卓线一侧连接舵机控制板,一侧连接电脑(3)接上低压电池 二、软件使用1、打开舵机烧录软…

抖音小店月入三五万?真有这么赚钱吗?

大家好,我是电商糖果 在网上我们经常看到这样的帖子,或者视频博主说他自己在抖音开小店做副业。 收入比主业还高,一个月好几万。 很多人都说骗人的,要是赚钱这么容易,我不早成富一代了。 糖果是做电商的&#xff0…

electron 打包生成的latest.yml文件名字变成xxx.yml文件名

正常情况是electron每次打包会生成一个latest.yml文件和一个xxx.exe文件,但是当version的名字修改成 这样 后面添加了-beta ,然后生成的文件名字就变成了 beta.yml 更改方法: 在build配置底下添加 "detectUpdateChannel": false…

产品经理方法论——MRD文档模板】

一、 文档格式 无要求 二、文档类型 PPT 三、文档框架 1. 市场说明 市场规模:市场规模决定最终的利润。我们对于直接产生现金流的产品通过交易额衡量市场规模,如果是间接产生现金流的产品我们通过用户量衡量市场规模。市场增速:随着时间…

独享IP可以避免被封禁或限制访问的风险

在一些网站或服务中,存在对共享IP的封禁或限制访问的情况,这给用户带来了不便。而使用独享IP可以有效规避这一问题,保障用户正常访问需求。例如,在进行搜索引擎优化、社交媒体营销或广告投放时,独享IP可以确保用户的网…

spring-boot-starter-validation

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 编写程序Controller接口时,对于参数的验证非常重要,但是多个参数时,如…

刷题之贪心3

前言 大家好,我是jiantaoyab,这篇文章将给大家介绍贪心算法和贪心算法题目的练习和解析,贪心算法的本质就是每一个阶段都是局部最优,从而实现全局最优。加上这篇文章一共有30道贪心题目了,加油! 坏了的计算器 题目分析…

改造 cl_demo_output=>display支持第一行字段名显示成字段描述

1.背景: 标准的cl_demo_output=>display显示的内表第一行为字段名,不方便用户查看,故需要将第一行换成字段描述 2.方法: 2.1 建立FIELDCAT字段结构 定义包含字段名和字段描述的结构和行类型 2.2 建立类,编写相关代码 代码如下: DATA type TYPE c LENGTH 1. DAT…

怎么创建百科人物的词条?百度百科词条创建

百度百科中,创建一个属于自己的词条,不仅是个人荣誉的象征,更是对其生平事迹的官方记录,能够让更多人了解和记住一个人的成就。那么,如何创建一个高质量的百科人物词条呢?本文伯乐网络传媒将详细解答这一问…

007_how_to_start_learning_Matlab学习的启动与加速

Matlab学习的启动与加速 1. 前言 这个专题的Matlab博文系列,来到了传奇的007,我又准备放下技术工作的写作,来一点务虚和规划的内容。 这个系列的开始,也是一个随机发生的小概率事件,本来Python(PyQt&…

【MySQL】多版本并发控制

一、什么是MVCC MVCC是通过数据行的多个版本管理来实现数据库的并发控制。MVCC也就相当于是如何实现在相应的隔离级别下,更好的实现并发。 二、快照读与当前写 MVCC在InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突。 2.1、…

软件应用实例,租赁系统软件操作教程,脚手架租赁管理集装箱租赁管理系统教程

软件应用实例,租赁系统软件操作教程,脚手架租赁管理集装箱租赁管理系统教程 一、前言 以下软件操作教程以,佳易王租赁管理系统软件V17.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、软件可以记录&#x…