【MySQL】基础SQL语句——库的操作

2023-10-26

一. 创建数据库

1.1 基础语句

最简洁的创建数据库的SQL语句是:

create database db_name;
db_name是数据库的名称

创建一个数据库,本质是在MySQL配置文件中默认的存放资源的文件中创建目录

/etc/my.cnf是MySQL的配置文件
默认存放资源的路径是/var/lib/mysql
在这里插入图片描述

所以,如果我们使用MySQL创建一个database1的数据库,那么相应的,在/var/lib/mysql/中就会创建一个database1的目录
在这里插入图片描述


接下来,介绍创建数据库的选项

create database if not exists db_name;

使用create database db_name重复创建数据库,结果如下:
在这里插入图片描述
使用create database if not exists db_name,结果如下:
在这里插入图片描述

如果使用第一种SQL语句重复创建,结果是报错
如果使用第二种SQL语句重复创建,则会忽略创建语句,不会报错
实际工作中,建议使用create database if not exists db_name 创建数据库


创建数据库时,还可以指明使用的字符集校验规则

create database db_name charset=utf8 collate=utf8_general_ci
character-set,即charset,是数据存放入数据库时使用的字符集
collation,是数据取出时使用的校验规则

同样可以在配置文件/etc/my.cnf中配置默认使用的字符集和检验规则
在这里插入图片描述

1.2 字符集和校验规则

  • 字符集
    字符集是一套用于表示和处理文本数据的编码规则。在MySQL中,字符集用于定义存储,传输和处理数据时所使用的字符集合。常见的字符集包括UTF8,GBK等。字符集主要是控制使用什么语言,比如UTF8可以使用中文
  • 检验规则
    校验规则用于定义字符集中每个字符的排序规则,决定了字符比较,排序和匹配方式。例如,在排序时是按照字母的先后顺序进行排序,还是按照字母的笔画数进行排序

查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database;'
注意单引号
在这里插入图片描述

查看数据库支持的字符集或校验规则
show charset;
show collation;

1.3 校验规则对读取数据的影响

UTF8_general_ci【不区分大小写】
UTF8_bin【区分大小写】

分别使用这两种校验规则创建两个数据库test1和test2,并建立一样的表,插入一样的数据
以下是test1的操作,test2操作相同

在这里插入图片描述

是否区分大小写,会导致不同的查询结果和排序结果

  • 查询
    在这里插入图片描述

  • 排序

二. 查看数据库

show databases;
查看所有数据库
在这里插入图片描述


show create database db_name
显示创建语句
在这里插入图片描述

  • MySQL建议关键字使用大写,但是不是必须的
  • 数据库名字的反引号,是为了防止使用的数据库名刚好是关键字
  • /*!40100 default … */ 不是注释,其含义是,如果当前MySQl版本大于4.01版本,则会执行这句语句

select database();
查看当前使用的数据库
在这里插入图片描述
表面当前正常使用test1这个数据库

三. 修改数据库

alter database db_name
其后跟修改的字符集或者校验规则

比如将test1数据库的字符集和校验规则修改为gbk
在这里插入图片描述

PS:十分不建议rename数据库,重命名数据库。原先可以rename,但之后删除了这个语句。
因为可能还有用户在使用该数据库,一旦重命名,将无法使用,上层调用接口等也将失效

四. 删除数据库及备份

4.1 删除

删除数据库的操作很简单

drop database if exists db_name

但是一旦删除数据库
数据库内部看不到对应的数据库
对应的数据库文件夹被删除,级联删除,里面的数据表全部都被删除
建议先备份,再删除

4.2 备份和还原

备份

备份的工具是在安装MySQL的同时安装的——mysqldump
使用命名:

mysqldump -P 3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
-P 3306选项是连接的mysqld服务器的端口号
-u root 选项是登录的用户
-p 密码 选项是输入密码
-B 数据库 选项是指定数据库
在这里插入图片描述

这个文件内部是对该数据库使用的所有SQL语句,包括创建数据库,使用,创建表,插入数据等


还原

还原是在mysql中执行的

source 文件路径;
在这里插入图片描述

如果只想要备份数据库中的一个表

mysqldump -P 3306 -u root -p 密码 -B 数据库名 表 > 备份的文件路径

同时备份多个数据库

mysqldump -P 3306 -u root -p 密码 -B 数据库1 数据库2 > 存储路径(文件)

PS:如果备份时没有带上-B选项,那么在恢复数据库时,要先建立空的数据库,然后使用数据库,再source还原


show processlist
查看连接情况
在这里插入图片描述

可以告诉我们当前有哪些用户用户连接到我们的MySQL,如果查出某个用户不是正常登录的,很有可能你的数据库被人入侵了,如果自己的数据库比较慢时,可以使用这个指令查看数据库的连接情况

结束语

感谢你的阅读

如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【MySQL】基础SQL语句——库的操作 的相关文章

  • Espresso 测试单独通过,在套件中运行时失败

    我有以下浓缩咖啡测试 如果我单独运行它 它总是通过 但当我一起运行类中的所有测试时 它总是失败 还有一点奇怪的是 它曾经作为套件的一部分工作 我不知道为什么现在它停止工作了 这一定是我做过的事 但我不知道是什么 Test public vo
  • 谷歌地图中信息窗口上的 onclicklistener 按钮

    我如何在谷歌地图上的信息窗口中检测按钮 setOnClickListener 实际上 在我的信息窗口中 我有一个按钮 我想单击该按钮 可以这样做吗 Try it mMap setOnInfoWindowClickListener new O
  • 更改grep命令的分隔符

    我在用grep检测 a href xxxx something here a 当链接在输入中分成两行时 这不起作用 我想 grep 检查直到它检测到但现在它只是将输入输入到 grep 中 直到检测到新行为止 所以如果输入是这样的 a hre
  • 找不到Symbol类ActionBarActivity(Android回收视图)

    我在构建 gradle 时遇到了一些问题 我不明白问题出在哪里 我读了很多相关内容 但我找不到解决方案 我已经 下载Repository 放入依赖项和latest SDK version 我尝试做CardView in the HomeAc
  • SchedPolicy:set_timerslack_ns 写入失败:不允许操作

    当我运行 Android 应用程序时 我在 Logcat 中遇到了这个问题 有谁知道这个问题以及如何解决它 依赖项是 implementation com android support appcompat v7 25 3 0 implem
  • 如何获取旋转器中的项目数量?

    如何动态获取微调器中的项目数 你可以试试 mSpinner getAdapter getCount
  • 如何通过 MediaRecorder.start() 静音“嘟嘟声”?

    我已尝试过以下链接中提到的所有方法 如何在状态改变时关闭 MediaRecorder 播放的声音 https stackoverflow com questions 6804205 how to shut off the sound med
  • 缩放 ImageView 的图像,同时将中心点保持在同一位置

    我已将预缩放位图设置为 ImageView 的源 然后我读了矩阵ImageView并通过以下方式移动 ImageView 的位图matrix postTranslate shiftX shiftY 现在我想放大 缩小图像 同时保持中心Ima
  • Android Volley POST Json 到服务器

    我正在使用 Volley 在 Android 设备和网络服务器之间传输数据 我发现有关将数据列表发送到服务器的问题 例如 我的类将生成如下数据集 1 1 aID 5 2 aID 5 3 aID 5 4 aID 5 2 1 bID 3 2 b
  • 在 mysql 中搜索带变音符号的阿拉伯语

    所以我有一个巨大的带有变音符号的阿拉伯语书面文本数据库 变音符号是阿拉伯语中附加到其他字符的小字符 例如 带变音符号 不带变音符号 我正在使用 mysql 和 laravel 在文本中搜索没有变音符号的特定单词 如何忽略搜索中的变音符号 看
  • 找出 2 个日期之间的月数

    select age 2012 11 30 00 00 00 timestamp 2012 10 31 00 00 00 timestamp age 2012 12 31 00 00 00 timestamp 2012 10 31 00 0
  • Android 项目中缺少 Gradle 构建任务 installRelease

    Gradle 似乎在我正在处理的项目中丢失了构建类型 我可以重新创建一个最小的问题 如下所示 我有以下文件 build gradle local properties src main AndroidManifest xml 构建 grad
  • PHP:如何使浏览器点击下载文件

    PHP 初学者 文件上传成功 但我的浏览器不下载文件 而是读取文件 所以我参考了其他线程并发现下面的代码不起作用 我想在单击超链接时下载文件download 从MySQL数据库中选择路径 rows mysqli num rows resul
  • Android中线程加载的Web图像

    我在 ListActivity 中有一个扩展的 BaseAdapter private static class RequestAdapter extends BaseAdapter 以及其中定义的一些处理程序和可运行对象 Need han
  • 将 django 与邮递员一起使用{“详细信息”:“CSRF 失败:CSRF 令牌丢失或不正确。”}

    我正在使用邮递员检查来自 django rest framework 的 json 响应 当我第一次尝试通过 POST 方法将 id 电子邮件 密码发布到 AWS 亚马逊网络服务 上的 django 时 效果很好 它返回如下 key 99d
  • mysql错误1064

    我正在尝试使用以下代码创建一个表 CREATE TABLE IF NOT EXISTS entries id int 10 NOT NULL auto increment atom id varchar 512 NOT NULL title
  • 如何在sqlite中向dateTime添加时间?

    我有一张桌子 桌子上有一个日期创建日期 像这样存储时间戳 2013 12 23 10 07 42 2013 12 23 10 14 11 实际上我正在使用 mysql2sqlite sh 脚本将数据库从 mysql 转换为 sqlite 在
  • 理想的 Android Studio gitignore 文件

    我最近创建了一个 Android 项目 但这是我第一次使用 Android Studio 我将该项目放在 Git 文件夹中 以便能够通过 Git 与其他开发人员远程工作 我发现默认的 gitignore 文件包含以下内容 iml gradl
  • 如何从xml中的另一个包加载资源?

    我知道可以使用如下代码从另一个包安装资源 xml 文件 String resourceName getResources getResourceEntryName layoutResID String resourceTypeName ge
  • 使用 Appcompat v7 的抽屉式导航 - ?android:attr 标签的问题

    我在我的项目中使用操作栏和导航抽屉 使用 appcompat v7 和 v4 我已经添加了 appcompat v7 和资源 以下是我的导航抽屉列表的文本视图 直接取自位于以下位置的 Android 示例应用程序 创建抽屉式导航 http

随机推荐

  • 【线程】详解线程状态(到底是五种还是六种)

    首先我们要知道 在传统 操作系统 的线程模型中线程被分为五种状态 在java线程中 线程被分为六种状态 传统线程模型 操作系统 中线程状态 线程的五种状态 1 新建 new 创建了一个新的线程对象 2 就绪 runnable 调用线程的st
  • python 置信区间_关于置信区间的完整指南和Python示例

    python 置信区间 Confidence Interval CI is essential in statistics and very important for data scientists In this article I w
  • Python Flask 搭建微信小程序后台详解

    前言 近期需要开发一个打分的微信小程序 涉及到与后台服务器的数据交互 因为业务逻辑相对简单 故选择Python的轻量化web框架Flask来搭建后台程序 因为是初次接触小程序 经过一番摸索和尝试 个人觉得的微信小程序与后台的交互有点像aja
  • 矩阵乘法测试

    对于时间的函数 gettimeofday 函数使用方法 http blog csdn net hurmishine article details 60326345 矩阵乘法测试 代码 1 为了试验简单 两个测试矩阵均为n n 当然结果也为
  • C++中的各种进制转换函数汇总

    1 在C中 按指定进制格式输出如下 include
  • shell脚本——shell函数详解

    shell脚本 shell函数详解 一 shell函数 1 shell函数的概念 2 shell函数的格式 1 函数的定义 2 调用函数的方法 3 函数返回值 4 函数传参 5 函数变量的作用范围 6 递归 函数调用自己本身的函数 1 阶乘
  • 【MFC】列表视图控件——List Control

    01 文章目录 文章目录 01 文章目录 02 List Control介绍 03 List Control的通知消息 04 List Control的相关结构体 05 List Control的创建 06 CListCtrl类的主要成员函
  • 0-1背包问题

    题目描述 有n件物品和一个容量为v的背包 第i件物品的重量是w i 价值是p i 求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量 且价值和最大 算法分析 动态规划的题目一直是比较有难度 这种题目炸看往往连个思路都没有 往往需要数
  • expect 使用实例

    自动登录一台 服务器 代码 root localhost D151SP160 cat test1 exp bin expect set timeout 2 set user name lindex argv 0 set mypassword
  • Delphi转Java开发的辛酸

    工作已经快两年了 回想起以前的选择 真是让人不是滋味啊 通过近段时间的仔细思考和对自己以后职业规划 现在越来越想往JAVAWEB方向发展 想了许久 我还是决定辞职 放弃现在这份安逸的工作 易然的选择做JAVA这边道路 今天刚刚出来面试 就让
  • 数据结构-哈希-哈希表实现

    哈希表实现 一 哈希概念 哈希概念 常见哈希函数 哈希冲突 哈希冲突的解决 二 闭散列实现 闭散列的结构 插入 查找 删除 闭散列总结 三 哈希桶实现 哈希桶的结构 插入 查找 删除 析构 拷贝构造 赋值运算符重载 四 哈希表总结 开散列与
  • 安装windows版caffe

    MATLAB操作caffe框架 安装之前先谈谈我的电脑硬件配置 Qudra K600 的GPU 计算能力是3 0 你在安装之前也要搞清楚自己的GPU显卡是什么 看看到底支持不支持CUDA 如果支持 要查查计算能力是多少 后面配置参数要用到
  • windows环境下查看Python的安装路径

    1 windows r 进入cmd命令 2 查看python安装路径 where python
  • 常见的几种Sort排序算法

    几种常见的Sort排序算法 1 排序的基本概念 有n个记录的序列 其相应关键字的序列是 相应的下表序列是 通过排序 要求找出当前下标序列的一种排列 使得相应的关键字满足如下的非递减 或非递增 关系 这样就得到一个按关键字有序的记录序列 该文
  • ant design pro 跳转新页面 修改功能

    ant design pro 修改功能跳转新页面 背景 例子 页面跳转 背景 在官方提供的例子中 是以弹窗的形式做的修改和新增 在项目中如果遇到 采集项数较多 会在修改页面添加别的功能的情况下 弹窗满足不了此需求了 例子 页面跳转 先说修改
  • 计算机网络校园网网络设计报告,计算机网络课程设计报告-校园网的组建和应用...

    计算机网络课程设计报告 校园网的组建和应用 北 京 邮 电 大 学校园网的组建和应用 计算机网络课程设计指导老师 吴建伟老师刘亦桐老师小组成员 姓名 班级 学号王 超 06121 060648曹 振 06121 060643郭 嵩 0612
  • 我的创作纪念日

    机缘 咱记性不好 技术也差 实验过程中总是遇到奇奇怪怪的问题 有些问题找了好久也没找到完全适合自己情况的解决方案 很多情况下需要结合多篇文章进行总结 为了下次遇到类似问题能够快速解决 同时也为遇到同样问题的小伙伴们能够快速找到详细的问题解决
  • 基于HAL库的stm32f103c8t6的快速开发笔记(简易版)—— 5、STM32的PWM输出(附舵机控制)

    1 概念了解 首先了解到 PWM生成是在通用定时器的基础上配置的 每个通用定时器都有多路通道输出PWM信号 这里以TIM4 定时器4 为例 在图形配置面板找到TIM4的通道一作为PWM输出管脚 其管脚为PB6 打开左侧定时器配置面板 可以看
  • HBase工作机制

    1 图示 2 组件说明 Client hbase客户端 1 包含访问hbase的接口 比如 linux shell java api 2 除此之外 它会维护缓存来加速访问hbase的速度 比如region的位置信息 Zookeeper 1
  • 【MySQL】基础SQL语句——库的操作

    文章目录 一 创建数据库 1 1 基础语句 1 2 字符集和校验规则 1 3 校验规则对读取数据的影响 二 查看数据库 三 修改数据库 四 删除数据库及备份 4 1 删除 4 2 备份和还原 结束语 一 创建数据库 1 1 基础语句 最简洁