广告
返回顶部
首页 > 资讯 > 数据库 >【MySQL】数据库的操作
  • 447
分享到

【MySQL】数据库的操作

数据库mysql 2023-09-14 12:09:20 447人浏览 八月长安
摘要

目录 前言 创建数据库 编码集和校验集 不同校验集的区别 删除数据库 确认当前数据库 查看数据库属性 修改数据库属性 备份与还原 数据库和表的备份 还原 创建表 查看列结构 查看表属性 修改表的列 修改表名称  修改列名称 删除表 前言

目录

前言

创建数据库

编码集和校验集

不同校验集的区别

删除数据库

确认当前数据库

查看数据库属性

修改数据库属性

备份与还原

数据库和表的备份

还原

创建表

查看列结构

查看表属性

修改表的列

修改表名称 

修改列名称

删除表


前言

在上一篇文章中,我们简单地讲解了有关数据库的基本概念,对于什么是数据库还不是很了解的可以翻翻上一篇文章初见数据库

本文将详细讲解关于数据库的操作及相关的概念。

创建数据库

🎃在上一篇文章中便有简单讲过这个操作,但还有一些其他的细节仍未阐述,下面就一起来看一下吧。

create database (if not exists) 数据库名 (charset = 编码集 collate 校验集)//括号中的为较上次增加的指令,实际写时并不用带上括号

🎃其中 if not exists 语句在创建对象前会先检查该对象是否已经存在,已存在便不会创建新对象

🎃比如,当前状态下我已经存在了一个叫做 alpaca 的数据库,现在我要用这个命令再创建一个叫 alpaca 的数据库。

  

🎃若我们直接创建一个同名数据库,系统便会直接报错。

编码集和校验集

🎃在数据库名后,使用者还可以指定数据库的 字符集 校验集

🎃其中字符集决定数据在写入时使用的编码,而校验集则是决定了读取时该以哪种形式进行读取。

🎃我们可以使用以下指令查看数据库支持的字符集和校验集

show charset;      //查看字符集show collation;    //查看校验集

🎃通过查询字符集,我们可以看到一系列的信息,第一列为字符集名称, 第二列为对该字符集的描述,第三列表示该字符集对应的默认校验集,最后一列表示一个字符的最大大小(单位为字节)。

  

🎃那么,当我们没有自己决定使用的字符集和校验集时,使用的是哪一对呢?

🎃我们可以直接使用命令查询,或是通过查询配置文件得到答案。

show variables like 'character_set_database';    //查看默认字符集show variables like 'collation_database';        //查看默认校验集

🎃打开 /etc/my.cnf 可以看到 mysql 的配置文件,我们可以找到默认设置的字符集为 utf8

🎃不知道你是否还有印象,查看支持的字符集时,在第三列我们便能看到字符集默认的校验集,因此这里只规定字符集即可。

不同校验集的区别

🎃前面说过,校验集决定我们如何读取数据的形式,而同一种字符集一般会有多种校验集。

🎃我们就简单感受一下两个校验集的不同,平常直接使用系统默认的设定就足够了。

🎃现在,我们创建两个数据库,字符集都为 utf8,而一个校验集为 utf8_general_ci,另一个为 utf8_bin

 

🎃之后在两个数据库中都创建一个表并插入相同的数据。

mysql> use d1;Database changedmysql> create table t1 ( c varchar(10) );Query OK, 0 rows affected (0.03 sec)mysql> insert into t1 value('a');Query OK, 1 row affected (0.00 sec)mysql> insert into t1 value('b');Query OK, 1 row affected (0.01 sec)mysql> insert into t1 value('A');Query OK, 1 row affected (0.00 sec)mysql> insert into t1 value('B');Query OK, 1 row affected (0.01 sec)mysql> use d2;Database changedmysql> create table t1 (c varchar(10));Query OK, 0 rows affected (0.03 sec)mysql> insert into t1 value('a');Query OK, 1 row affected (0.00 sec)mysql> insert into t1 value('b');Query OK, 1 row affected (0.01 sec)mysql> insert into t1 value('A');Query OK, 1 row affected (0.00 sec)mysql> insert into t1 value('B');Query OK, 1 row affected (0.00 sec)

🎃现在,我们分别对表中的数据进行查询,会发现出现的结果不一样。同样是对 字符的查找,其中第一个数据库却连大写的 A 也查找出来了。这是因为,对于 utf8_general_ci 校验集来说,在读取时是不会进行大小写区分的,因此在他看来 aA 是等价的。

 

🎃不同的校验集读取同样的数据可能会得到不同的结果,更多的性质还需要自己去了解。 

🎃但数据库无论对数据做任何操作,都必须保证编码一致

删除数据库

🎃一般投入使用的数据库最好不要删除,仅作为了解。

drop database 数据库名

确认当前数据库

🎃我们都知道,在对数据库的表进行操作前,需要确保当前正处于目标数据库下。

🎃那我们该如何确定当前位于哪个数据库下呢?

select database();

🎃这个 database() 是一个函数,本质上就是我们通过 select 调用了这个函数,从而获取当前的位置。

查看数据库属性

🎃对于一个数据库,我们想要查看一下它的相关属性,了解他用了什么字符集和校验集,便可以使用。

show create database 数据库名

 

修改数据库属性

🎃当我们对于当前数据库的属性不满意时,相对其进行修改就可以使用这个命令。

alter database ... (后与create相同)

🎃create 的区别就只有第一个关键字不同而已,后面的语句我们就可以根据需要对字符集和校验集进行设置。 

🎃如此,便完成了对数据库相应属性的修改。

备份与还原

🎃在使用数据库时,为了避免数据丢失会经常对数据库或表进行备份,接下来就一起来学习该如何进行数据库的备份吧。

数据库和表的备份

[注意]:  这个命令是借用了 Mysql 的备份工具,即这个命令是在 linux 命令行使用的,而不是 mysql 命令行。

mysqldump -P ... -u ... -p ... -B 数据库名1 数据库名2 ... > 存储备份的文件路径      //备份数据库mysqldump -u ... -p ... 数据库名 表名1 表名2 ... > 存储备份的文件路径     //备份表

 

🎃这样我们就完成了数据库的备份,打开备份生成的文件,我们可以看到,其中的操作我们都十分熟悉,就是建立这个数据库时进行的操作。

🎃因此,数据库的备份本质上就是将建立该数据库的方法备份起来,恢复时只需要再使用一遍这些操作即可。

🎃值得注意的一点是,若备份时没有带上 -B选项,则恢复前需要先创建空的数据库并使用。

还原

🎃而还原的操作是在 mysql 命令行下使用的,只要输入备份文件的路径便可进行还原。

source 备份文件的路径
mysql> drop database d1;Query OK, 1 row affected (0.01 sec)mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || alpaca             || d2                 || mysql              || performance_schema || sys                |+--------------------+6 rows in set (0.00 sec)mysql> source /root/MySQL/d1.sql;Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Database changedQuery OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.03 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 4 rows affected (0.00 sec)Records: 4  Duplicates: 0  Warnings: 0Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)mysql> show databases;+--------------------+| Database           |+--------------------+| infORMation_schema || alpaca             || d1                 || d2                 || mysql              || performance_schema || sys                |+--------------------+7 rows in set (0.00 sec)

创建表

🎃创建完数据库后,还要创建表才能插入对应的数据,而表的创建还需要涉及数据库的数据结构,会进行一下简单的介绍。

create table (    ...    //eg. name varchar(20) comment '用户名',    ...) charset = ... collate = ... engine = ...;

🎃这里我们在数据库中创建了一个表,而列的数据类型分别为字符串整型

🎃其中 comment 起到类似于注释的作用,之后可以查询到

🎃创建数据库时,我们可以指定字符集和校验集,创建表时同样也可以指定。当创建数据库时未指定字符集和校验集时,则使用系统的默认选项,而创建表时若未指定,则默认使用当前数据库设定的字符集和校验集

查看列结构

🎃创建了一个表,是否我们需要查看一下其中的列结构,验证一下创建的表满足我们的预期。

desc 表名

 

🎃我们可以看到各列的信息:

  • Field: 该列的名称
  • Type: 该列的数据类型
  • Null: 该列是否能为空
  • Key: 该列是否为特殊键
  • Default: 该列的默认值

查看表属性

🎃上面的操作是查看列结构,而关于表属性则需要用下面这个操作。

show create table 表名

 

🎃而我们在创建表使用的 comment 在这里便可以查询到,不仅如此还能查询到该表使用的存储引擎字符集校验集

修改表的列

alter table 表名 add (datatype ... comment ...)  //添加列alter table 表名 modify 列名 ...  (与 add 相同)      //修改列alter table 表名 drop 列名            //删除列

🎃当表中的列无法满足我们的使用需求时,便可以使用列修改操作进行修改。

🎃如下,我们对一列进行了增加修改和删除操作,可以跟着流程体会一下。

mysql> alter table t1 add hobby varchar(20);Query OK, 0 rows affected (0.04 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> desc t1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| name  | varchar(20) | YES  |     | NULL    |       || id    | int(11)     | YES  |     | NULL    |       || hobby | varchar(20) | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec)mysql> alter table t1 modify hobby int ;Query OK, 0 rows affected (0.05 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> desc t1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| name  | varchar(20) | YES  |     | NULL    |       || id    | int(11)     | YES  |     | NULL    |       || hobby | int(11)     | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec)mysql> alter table t1 drop hobby;Query OK, 0 rows affected (0.04 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> desc t1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| name  | varchar(20) | YES  |     | NULL    |       || id    | int(11)     | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+2 rows in set (0.00 sec)

[注意]: 修改成员属性/大小时,会覆盖掉原来的comment,若不新写comment,则该列将不会有注释。

修改表名称 

alter table 旧名称 rename to 新名称

🎃修改表名称,本质上还是修改表,因此开头的关键字还是使用 alter,而后使用 rename to 进行名称的修改。 

 

修改列名称

🎃有修改表名称自然也有修改列的名称,第二个关键字替换成 change,而新字段需要完整定义,因此要再写一遍要设定的数据类型。

alter table 表名 change 旧名称 新名称 ...(数据类型)
mysql> desc t1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| name  | varchar(20) | YES  |     | NULL    |       || id    | int(11)     | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+2 rows in set (0.00 sec)mysql> alter table t1 change id id1 int;Query OK, 0 rows affected (0.00 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> desc t1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| name  | varchar(20) | YES  |     | NULL    |       || id1   | int(11)     | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+2 rows in set (0.00 sec)

删除表

🎃删除表十分简单,使用 drop 关键字并指定表明即可。

drop table 表名

 


🎃好了,今天【MySQL】数据库的操作 的相关内容到这里就结束了,如果这篇文章对你有用的话还请留下你的三连加关注。

来源地址:https://blog.csdn.net/Lin_Alpaca/article/details/132780484

您可能感兴趣的文档:

--结束END--

本文标题: 【MySQL】数据库的操作

本文链接: https://www.lsjlt.com/news/407261.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【MySQL】数据库的操作
    目录 前言 创建数据库 编码集和校验集 不同校验集的区别 删除数据库 确认当前数据库 查看数据库属性 修改数据库属性 备份与还原 数据库和表的备份 还原 创建表 查看列结构 查看表属性 修改表的列 修改表名称  修改列名称 删除表 前言...
    99+
    2023-09-14
    数据库 mysql
  • mysql-数据库的操作
    系统数据库执行如下命令,查看系统所有的数据库mysql> show databases;+--------------------+| Database           |+---...
    99+
    2023-01-30
    操作 数据库 mysql
  • 【MySQL】数据库——库操作
    文章目录 1. 创建数据库[IF NOT EXISTS] 的使用 2. 删除库3. 数据库的编码问题查看系统默认支持的字符集查看系统默认支持的校验集只查看 database的校验集指定编码...
    99+
    2023-10-20
    数据库 mysql
  • 操作MySQL数据库
    SQL是什么    SQL是结构化查询语言,这是一种计算机语言,用于存储,操纵和检索存储在关系数据库中的数据。    SQL是关系数据库系统的标准语言。所有关系型数据...
    99+
    2022-10-18
  • MySql数据库操作
    MySql数据库操作 –登录MySql:——–Windows环境进入cmd后输入mysql –h localhost –u root –p,再输入密码就可以启动mysql;其中localhost是...
    99+
    2022-10-18
  • C# MySQL数据库的操作
    文章目录 前言一、MySQL数据库二、使用步骤 1.引入库2.操作方法总结 前言 记录一下MySQL数据库一些简单操作 一、MySQL数据库 MySQL数据库也不用过多介绍,使用非常广泛。优点就是体积小,速度快,非常适合我们...
    99+
    2023-09-05
    c#
  • MySQL 操作数据库、数据表
      通过mysql-client连接到mysql-server,sql语句要以分号结尾,这样按Enter才会执行sql语句。 mysql关键字不区分大小写 字符串、时间日期类型的值要引起来     数据库操作 show data...
    99+
    2016-11-30
    MySQL 操作数据库 数据表
  • nodejs操作MySQL数据库
    1、操作数据库的步骤 安装操作 MySQL 数据库的第三方模块(mysql)通过 mysql 模块连接到 MySQL 数据库通过 mysql 模块执行 SQL 语句   2、安装与配置 mysql 模块 2.1、安装 mysql 模块 m...
    99+
    2023-10-06
    数据库 javascript node.js mysql 前端
  • Python 操作 MySQL 数据库
    Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...
    99+
    2023-09-01
    adb
  • Python——操作MySQL数据库
    😊Python——操作MySQL数据库 🚀前言🔍数据库编程🍭数据库编程基本介绍🍭数据库编程接口🍭...
    99+
    2023-09-15
    数据库 python mysql
  • Python 操作 MySQL数据库
    开发环境与配置 win_x64 Ubuntu14.04 Python3.x pip安装pymysql模块 直接使用pip安装 pip install pymysql win64上直接在cmd中执...
    99+
    2022-05-30
    Python 操作 MySQL python MySQL
  • python操作mysql数据库
    一、数据库基本操作 1. 想允许在数据库写中文,可在创建数据库时用下面命令 create database zcl charset utf8; 2. 查看students表结构 desc students;...
    99+
    2022-06-04
    操作 数据库 python
  • Python3操作MySQL数据库
    在Python3中操作MySQL数据库 在Python3中使用mysql数据库需要安装pymysql库 pip install pymysql 操作MySQL 导包 import pymysql 第一步:打开数据库连接 db = pymys...
    99+
    2016-12-01
    Python3操作MySQL数据库
  • python 操作MySQL数据库
    1.connect def conn(ip,user,password,database): con = mdb.connect(ip,user,password,database) cur = con.cursor() ...
    99+
    2023-01-31
    操作 数据库 python
  • Python3 操作Mysql数据库
    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,而Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQ...
    99+
    2023-01-31
    操作 数据库 Mysql
  • PHP操作MySQL数据库
    PHP操作MySQL数据库的步骤如下:1. 连接数据库:使用`mysqli_connect()`函数或者`PDO`类来建立与MySQ...
    99+
    2023-09-05
    php
  • 【MySQL】数据库——表操作
    文章目录 1. 创建表2. 查看表3. 修改表修改表名add ——增加modify——修改drop——删除修改列名称 4. 删除表 1. 创建表 语法: create table ...
    99+
    2023-10-26
    数据库 mysql
  • 【Mysql】改数据库库名操作
    MySQL在5.1引入了一个rename database操作,但在MySQL5.1.23后又不支持这个命令。可以说是一个实验性的功能,没有在生产中支持过(mysql-5.1 release在mysql...
    99+
    2022-10-18
  • mysql数据库的常用操作
    这篇文章主要讲解了“mysql数据库的常用操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql数据库的常用操作”吧!mysql的常用操作(添加用户)...
    99+
    2022-10-18
  • MySQL数据库集群的操作
    本篇内容主要讲解“MySQL数据库集群的操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库集群的操作”吧! 2台服务...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作