MySQL -操作

博客主页:【夜泉_ly】
本文专栏:【暂无
欢迎点赞👍收藏⭐关注❤️

在这里插入图片描述

文章目录

  • 创建数据库
    • 格式
    • 编码集
  • 操控数据库
    • 查看数据库
    • 修改数据库
    • 删除数据库
    • 备份与还原
  • 部分表操作
    • 创建表
    • 查看表
    • 修改表

我的版本号:8.0.41-0ubuntu0.22.04.1

创建数据库

格式

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}

本质就是在 /var/lib/mysql 中创建一个目录。

其中:

  • {DATABASE | SCHEMA}
    databaseschema 选一个输就行,这两个等价。
  • [IF NOT EXISTS] (可选)
    加了这条,创建时如果存在会报错。
  • [create_option] (可选)
    • CHARACTER SET,指定默认数据库字符集。
    • COLLATE,指定默认数据库校验规则。
    • ENCRYPTION,MySQL 8.0.16引入,
      和加密有关,默认Y

注:大写的是关键字,输的时候不用管大小写。
如,要查询当前的版本号和日期,下面的输入是等价的:

mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

在这里插入图片描述

一个完整示例:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database if not exists test_db;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test_db            |
+--------------------+
5 rows in set (0.00 sec)

mysql> create database if not exists test_db;
Query OK, 1 row affected, 1 warning (0.00 sec)

上面的 (0.00 sec) 没多大意义,不用管。

编码集

创建数据库时,有两个编码集:

  1. 数据库字符集:(怎么写)
    定义数据存储格式的字符编码集,
    控制写入/读取时的解析方式。

  2. 数据库校验集:(怎么读)
    定义数据比较/排序的编码规则,
    是底层数据处理的字符编码格式。

数据库执行任何操作时,
需确保该操作涉及的编码始终与数据库编码集保持一致。

查看默认数据库字符集:

mysql> show variables like 'character_set_database';
+------------------------+---------+
| Variable_name          | Value   |
+------------------------+---------+
| character_set_database | utf8mb4 |
+------------------------+---------+
1 row in set (0.01 sec)

查看默认数据库校验集:

mysql> show variables like 'collation_database';
+--------------------+--------------------+
| Variable_name      | Value              |
+--------------------+--------------------+
| collation_database | utf8mb4_0900_ai_ci |
+--------------------+--------------------+
1 row in set (0.00 sec)

查看不同场景默认的校验集:

mysql> show variables like 'collation_%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database   | utf8mb4_0900_ai_ci |
| collation_server     | utf8mb4_0900_ai_ci |
+----------------------+--------------------+
3 rows in set (0.01 sec)

连接、数据库、服务器,都是 utf8mb4。

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

创建数据库时:

  • 没指定字符集和校验集,使用默认的
    CREATE DATABASE my_database;
    
  • 指定了,就使用指定的
    CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    

示例:
创建两个数据库,其校验集分别使用:
utf8mb4_0900_ai_ci (不区分大小写)
utf8mb4_0900_bin (区分大小写)

create database test_db1 collate utf8mb4_0900_ai_ci;
use test_db1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
create database test_db2 collate utf8mb4_0900_bin;
use test_db2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

找小写的字符 a

select * from person where name='a';
  • 对于 utf8mb4_0900_ai_ci
    在这里插入图片描述
  • 对于utf8mb4_0900_bin
    在这里插入图片描述

操控数据库

查看数据库

查看数据库:

show databases;

查看use了哪个数据库:

select database();

修改数据库

ALTER {DATABASE | SCHEMA} [db_name]
    alter_option ...

alter_option: {
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name
  | [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
  | READ ONLY [=] {DEFAULT | 0 | 1}
}

刚刚不是创建了数据库吗,
如果发现有 alter_option 写错了,这里可以改。

但需注意:字符集和校验集,
你改了其中一个,另一个可能会被影响。

在这里插入图片描述
注:

  • 数据库名的反引号'',防止数据库名是关键字。
  • /**/在这里不是注释:
    版本大于 4.01 执行第一个 /**/ ,大于 8.0016 执行第二个 /**/

删除数据库

不要随意删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

本质就是在 /var/lib/mysql 中删除对应目录。
而Linux中,你删一个东西,一般贼难恢复,所以慎用。

备份与还原

这里只演示一种较简单的方法:

备份:

mysql> mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

-B 参数的作用是备份整个数据库,
包括我们历史上的所有操作,
比如数据库的创建语句。

还原:

mysql> source 数据库备份存储的文件路径;

如果不带 -B,需要先创建数据库,再还原。

部分表操作

创建表

用法:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

选项还有很多,可以去手册看。

示例:

mysql> create table if not exists user1(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户的密码',
    -> birthday date comment '用户的生日'
    -> )engine MyIsam;
Query OK, 0 rows affected (0.01 sec)

comment 表示描述
创建表时,最后一个字段不要加逗号。

用不同的存储引擎,创建的文件不同,
且不同的MySQL版本,创建的文件可能也不同(5.6之前,每个数据库表都会生成一个 .frm 文件)

由于用的是 MyIsam 存储引擎,此时的数据库中会创建三个文件:
在这里插入图片描述
如果用默认的 InnoDB 存储引擎,会创建一个文件:
在这里插入图片描述

查看表

查看有哪些表:

show tables;

查看详细信息:

desc 表名;

在这里插入图片描述
查看创建表时的详细信息:

show create table user1 \G

\G 用于格式化输出结果,和代替分号 ;
在这里插入图片描述

查看表中所有信息:

SELECT * FROM 表名;

在这里插入图片描述

修改表

改名字

RENAME TABLE
    tbl_name TO new_tbl_name
    [, tbl_name2 TO new_tbl_name2] ...

或者

ALTER TABLE old_table RENAME new_table;

rename 不同于 alter ,可以一次改多张表。

插入信息

INSERT INTO 表名 (列名) VALUES (值);

在这里插入图片描述
插入时理论上要在 values 前带上对应的列名称,
如果不带,默认所有列都要插入。

插入新的列

alter table user1 add image_path varchar(128) comment '这个是用户的头像路径' after birthday;

在这里插入图片描述
修改列的属性

alter table user1 modify name varchar(60);

在这里插入图片描述
以前的comment不见了。
说明是覆盖改。这一列的属性都被改。

在这里插入图片描述


希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!
本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20系统下conda虚拟环境下安装文件存储位置

在 Conda 虚拟环境中执行 pip install 安装软件后,安装的文件会存储在该虚拟环境专属的 site-packages 目录中。具体路径取决于你激活的 Conda 环境路径。以下是定位步骤: 1. 确认 Conda 虚拟环境的安装路径 查看所有环境: conda info --env…

Blazor-路由模板(上)

Blazor 的路由模板是定义应用中不同页面或组件访问路径的一种方式。通过路由模板&#xff0c;你可以管理应用程序的导航结构&#xff0c;支持基本路由、参数路由、子路由和区域路由等功能。 我们为访问组件使用page 指令指定路由 URL page "/demoPage" <h3>&l…

OpenObserve开源高性能云原生平台本地部署与远程监控数据攻略

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;人工智能教程 文章目录 前言1. 安装Docker2. 创建并启动OpenObserve容器3. 本地访问测试4. 公网访问本地部署的OpenObserve4.1 内网穿透工具安装…

鸿蒙HarmonyOS-Navagation基本用法

Navagation基本用法 Navigation组件是路由导航的根视图容器&#xff0c;一般作为Page页面的根容器使用&#xff0c;其内部默认包含了标题栏&#xff0c;内容栏和公工具栏&#xff0c;其中内容区默认首页显示导航内容&#xff08;Navigation的子组件&#xff09;或非首页显示&am…

相控阵扫盲

下图展示天线增益 在仰角为0度的情况下随着方位角的变化而变化。需要注意到的是在天线视轴方向上的高增益主瓣上还有几个低增益旁瓣 阵列因子乘以新的阵元方向图会形成指向性更强的波速

CDefView::_OnFSNotify函数分析

进入CDefView::_OnFSNotify函数时状态栏 _UpdateStatusBar函数之后增加一个对象&#xff0c;变成7个对象。 LRESULT CDefView::_OnFSNotify(LONG lNotification, LPCITEMIDLIST* ppidl) { LPITEMIDLIST pidl; LPCITEMIDLIST pidlItem; // we may be registered for no…

人工智能之数学基础:矩阵的秩

本文重点 矩阵的秩,作为矩阵理论中的一个核心概念,是连接矩阵性质与应用的重要桥梁。本文我们将学习矩阵秩的概念,通过矩阵的秩可以判断矩阵是否可逆等等,所以矩阵的秩是非常重要的一个概念。 矩阵秩的概念 秩定义为矩阵A的线性独立的行(或列)的最大数目。也就是说,如…

告别GitHub连不上!一分钟快速访问方案

一、当GitHub抽风时&#xff0c;你是否也这样崩溃过&#xff1f; &#x1f621; npm install卡在node-sass半小时不动&#x1f62d; git clone到90%突然fatal: early EOF&#x1f92c; 改了半天hosts文件&#xff0c;第二天又失效了... 根本原因&#xff1a;传统代理需要复杂…

安装微软最新原版系统,配置好系统驱动并保留OOBE全新体验

记录一种安装原版系统&#xff0c;并在用户使用前安装好所有驱动&#xff0c;以及配置好网络和工作环境&#xff0c;但不影响用户全新体验的方法。 前言 有的时候我们可能会遇到这样一种情况&#xff1a; 需要给别人安装一个微软官网正版的全新系统&#xff0c;用户开机要有OO…

《导游职业资格考试:巧用答题技巧,实现分数飞跃》

《导游职业资格考试&#xff1a;巧用答题技巧&#xff0c;实现分数飞跃》 在导游职业资格考试中&#xff0c;掌握答题技巧能显著提升成绩。选择题方面&#xff0c;运用排除法是关键。对于考查导游基础知识的题目&#xff0c;如果选项中出现与历史事实不符、地理常识错误等明显…

嵌入式L6计算机网络

Telnet不加密 socket是应用层和下面的内核

C++、C#、python调用OpenCV进行图像处理耗时对比

C、C#、python调用OpenCV进行图像处理耗时对比 一、前言二、环境介绍三、耗时对比3.1读写jpg、bmp图片耗时对比3.2灰度化、阈值分割、膨胀腐蚀耗时对比 附录&#xff08;1&#xff09;imread函数以不同模式读取图片&#xff08;2&#xff09;OpenCV读取图片格式与PIL读取图片格…

【ubuntu20】--- 搭建 gerrit 最新最详细

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【ubuntu20】--- 搭建 gerrit 最新最详细…

制服小程序的“滑手”:禁用页面左右滑动全攻略

哈哈&#xff0c;看来你已经很聪明地发现了小程序中左右滑动的“顽皮”行为&#xff01;&#x1f604; 没错&#xff0c;我们可以通过设置 disableScroll 属性来“管教”它&#xff0c;同时结合 CSS 样式让页面既禁得住横向“乱跑”&#xff0c;又能顺畅地上下滚动。你的方案已…

ASP .NET Core 学习(.NET9)Serilog日志整合

Serilog 是一个功能强大的 .NET 日志库&#xff0c;以其简洁的配置和灵活的输出方式而受到开发者喜爱。支持多种日志输出目标&#xff08;如控制台、文件、数据库等&#xff09;&#xff0c;并且可以通过结构化日志的方式记录丰富的上下文信息&#xff0c;便于后续的日志分析和…

**NET400协议网关全系型号:多场景·全兼容工业物联解决方案**

行业痛点 工业现场需适配多样场景、差异化PLC协议、弹性扩展需求&#xff1a; 单一型号无法覆盖小规模车间到大型工厂的复杂组网&#xff1b;老旧系统升级需硬件兼容与数据平滑迁移&#xff1b;设备点位从数十到上千&#xff0c;需灵活选型控制成本。 NET400系列部分型号 按…

excel vlookup的精确查询、模糊查询、反向查询、多列查询

目录 入门 精确查询 模糊查询 反向查询 (搭配 if 函数) 多列查询 (搭配 match 函数) 入门 精确查询 需求: 查找 学生编号是008 所在的班级 操作: 在I2单元格输入公式如下,VLOOKUP(H2,B1:E12,4,FALSE), 得出结果 看一下vlookup 公式每一个参数应该怎么写? 语法: vlookup…

计算机组成原理:计算机系统层次结构

文章目录 计算机系统的组成计算机硬件冯诺依曼计算机主要特点 组成部分冯诺依曼计算机结构现代计算机结构 计算机软件计算机程序语言的发展 软件和硬件功能的逻辑等价性计算机系统的层次结构 计算机系统的组成 硬件系统和软件系统共同构成了一个完整的计算机系统。 硬件是指有…

探秘基带算法:从原理到5G时代的通信变革【二】Viterbi解码

文章目录 二、关键算法原理剖析2.1 Viterbi 解码2.1.1 卷积码与网格图基础**卷积码****网格图****生成多项式****理想情况下解码过程** 2.1.2 Viterbi 算法核心思想2.1.3 路径度量与状态转移机制2.1.4 算法流程与关键步骤详解2.1.5 译码算法举例与复杂度分析2.1.6 算法代码示例…

uniapp对接打印机和电子秤

uniapp对接打印机和电子秤 连接电子秤和打印机&#xff0c;最难的不是连接蓝牙和电子成&#xff0c;而是打印机。因为打印机涉及到向打印机写数据操作&#xff0c;然后这个写的数据需要做一个编码转换。难就难在编码转换。如果是java那就是一句代码的事情&#xff0c;而js就没有…