当前位置: 首页 > news >正文

MySQL:库表的基本操作

库操作

查看
  • 查看存在哪些数据库:
show databases;

 

  • 查看自己当前处于哪一个数据库:
select database();

 由于我不处于任何一个数据库中,此处值为NULL

  • 查看当前有哪些用户连接到了MySQL
show processlist;

 


创建
  • 创建一个数据库

语法:

create database [if not exists] 数据库名;

[if not exists]:如果数据库存在,就不创建该数据库。 一个数据库,对操作系统而言,本质就是一个目录,在我的ubuntu主机下,数据库存储在了/var/lib/mysql目录下,这个路径会因为MySQL版本以及操作系统而不同。


字符编码集

MySQL中,数据库有两种字符编码集合:

字符集:字符存储时,采用的编码方式
校验集:字符读取时,采用的编码方式

查看系统支持的字符集

show charset;

 

  • 查看系统支持的校验集
show collation;

 

可以在创建数据库时,指定使用的字符集与校验集

  • 指定字符集
create database [if not exists] 数据库名 charset=xxx;
create database [if not exists] 数据库名 character set xxx;
  • 指定校验集
create database [if not exists] 数据库名 collate xxx;

执行create database db_1 charset=utf8 collate utf8_general_ci 在数据库对应的目录中,会存在一个文件dp.opt,其内部存储了数据库对应的校验集字符集

查看系统默认的字符集

show variables like 'character_set_database';

 

  • 查看系统默认的校验集
show variables like 'collation_database';

 


删除
  • 删除数据库:
drop database [if exists] 数据库名;

 


修改

修改数据,主要是指修改数据库使用的字符集校验集

  • 修改字符集
alter database 数据库名 charset=xxx;

 

  • 修改校验集
alter database 数据库名 collate xxx;
mysqldump -B bit_index > ~/test/bit_index.sql

 


备份
  • 拷贝数据库指令
mysqldump -P 端口号-u 用户名 -p 密码 -B 数据库名 > 数据库备份存储的文件路径

注意:该指令要在bash中执行,而不是数据库中。

比如备份bit_index数据库:

mysqldump -B bit_index > ~/test/bit_index.sql

上述指令指定了一个名为bit_index 数据库,将其保存在路径~/test/bit_index.sql

查看一下sql内部的数据: 

可以发现:.sql文件并不是简单的拷贝一份数据库,而是保留了整个数据库的SQL语句。 

  • 还原数据库
source 路径.sql;

该指令要在MySQL内部执行,而不是命令行。


表操作

  • 进入/切换 数据库:
use 数据库名;

 


创建
  • 创建一个表:
create table [if not exists] 表名 (field1 datatype,field2 datatype,field3 datatype
) character set 字符集 collate 校验集 engine 存储引擎;
  • [if not exists] :可省略,如果不存在这个表,才创建
  • field:列名
  • datatype:该列的数据类型
  • character set:指定字符集,若没有指定,与数据库使用的字符集一致
    • 也可写为:charset=字符集
  • collate:指定校验集,若没有指定,与数据库使用的校验集一致
  • engine:指定存储引擎
    • 也可写为:engine=存储引擎

注意事项:

  1. 每一个列后面都有一个逗号,但是最后一个没有
  2. 整个语句末尾有分号

此时在/var/lib/mysql下的boe_he目录下,出现了三个文件:t1.frmt1.MYDt1.MYI这三个文件共同维护了t1这张表。 可见:数据库中的表的本质,就是多个文件!


查看
  • 查看当前数据库下有哪些表:
show tables;

 

  • 查看表的结构:
desc 表名;

 

  • Field:列名
  • Type:列的数据类型
  • Null:该列是否允许为空
  • Key:索引类型
  • Default:默认值
  • Extra:扩充
  • 查看建表时的语句:
show create table 表名;

 

执行语句后,展示了创建表t1时的语句,直接执行该语句,格式比较混乱,一般来说建议将末尾的分号;改为\G

show create table 表名 \G

这个\G可以将数据以更加直观的方式展示出来:

每一列后面都有一个DEFAULT NULL,表示默认值为NULL,这个也是MySQL的优化,如果我们不指定默认值,就会自动设置默认值为NULL。 


删除
  • 删除一个表:
drop table [if exists] 表名 [, 表名, ...];

 

 

修改
  • 修改表名:
alter table 旧表名 rename [to] 新表名;

 

  • 插入新的列
alter table 表名 add 列名 类型 comment 描述 after xxx;
  • comment:相当于备注,用于表示这一列数据的含义
  • after:指定新增的列插入到哪一列后面,如果不指定,默认插入到最后一列

对比前后的desc table_1,确实多出了age列。

  • 删除列
alter table 表名 drop 列名;

 

  • 修改列
alter table 表名 change 旧列名 新列名 类型;

id列改为stu_id列,并把类型从int改为了smallint。由于我把数据类型变小了,此时有可能会发生数据精度丢失,一般不建议这样操作。

 

 

        

 

 

 

 

 

 

 

 

 

 

相关文章:

MySQL:库表的基本操作

库操作 查看 查看存在哪些数据库: show databases;查看自己当前处于哪一个数据库: select database(); 由于我不处于任何一个数据库中,此处值为NULL 查看当前有哪些用户连接到了MySQL: show processlist; 创建 创建一个数据库 语…...

JS领域的AI工程利器分享

JavaScript,这个在网页开发中广为人知的脚本语言,正逐渐在AI工程领域展现出其独特的魅力。对于那些希望将大语言模型(LLM)融入项目的开发者来说,以下五个JavaScript工具将是关键资源。 1. TensorFlow.js TensorFlow.…...

2024/9/20 使用QT实现扫雷游戏

有三种难度初级6x6 中级10x10 高级16x16 完成游戏 游戏失败后&#xff0c;无法再次完成游戏&#xff0c;只能重新开始一局 对Qpushbutton进行重写 mybutton.h #ifndef MYBUTTON_H #define MYBUTTON_H #include <QObject> #include <QWidget> #include <QPus…...

09.20 C++对C的扩充以及C++中的封装、SeqList

SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h>using namespace std;//typedef int datatype; //类型重命名 using datatype int;//封装一个顺序表 class Seq…...

Git提交类型

说明&#xff1a;Git提交类型指的是代码commit时&#xff0c;写在comment前面的标志&#xff0c;表示此次commit的提交类型&#xff0c;如下&#xff1a; Git提交类型 常见的Git提交类型有&#xff1a; feat&#xff1a;新特性、新功能或优化&#xff1b; fix&#xff1a;修复…...

C++速通LeetCode简单第18题-杨辉三角(全网唯一递归法)

全网唯一递归法&#xff1a; vector<vector<int>> generate(int numRows) {vector<int> v;vector<vector<int>>vn;if (numRows 1){v.push_back(1);vn.push_back(v);v.clear();return vn;//递归记得return}if (numRows 2){v.push_back(1);vn.p…...

Redis作为单线程模型,为什么效率高、速度快呢?

前言&#xff1a; 效率高、速度快是相较于数据库来说的&#xff08;MySQL、Orcale、SQL server&#xff09; 文章目录 一、单线程模式的工作流程二、为什么快&#xff1f; 一、单线程模式的工作流程 这里我们所说的单线程是指&#xff1a;Redis只使用一个线程&#xff0c;来处…...

人工智能——猴子摘香蕉问题

一、实验目的 求解猴子摘香蕉问题&#xff0c;根据猴子不同的位置&#xff0c;求解猴子的移动范围&#xff0c;求解对应的过程&#xff0c;针对不同的目标状态进行求解。 二、实验内容 根据场景有猴子、箱子、香蕉&#xff0c;香蕉挂天花板上。定义多种谓词描述位置、状态等…...

对ViT 中Patch Embedding理解

借鉴了这个博主的ViT Patch Embedding理解-CSDN博客&#xff0c;再加了一些理解。 就通过代码来理解吧 假设输入图像的维度为HxWxC&#xff0c;分别表示高&#xff0c;宽和通道数。 PatchEmbed 的类&#xff0c;它继承了 nn.Module&#xff0c;实现了将输入的2维图像&#…...

Redis基本命令详解

1. 基本命令 命令不区分大小写&#xff0c;而key是区分大小写的 # select 数据库间的切换 数据库共计16个 127.0.0.1:6379> select 1# dbsize 返回当前数据库的 key 的数量 127.0.0.1:6379[1]> dbsize# keys * 查看数据库所有的key 127.0.0.1:6379[1]> keys *# fl…...

Java之线程篇四

目录 volatile关键字 volatile保证内存可见性 代码示例 代码示例2-&#xff08;volatile&#xff09; volatile不保证原子性 synchronized保证内存可见性 wait()和notify() wait()方法 notify() 理解notify()和notifyAll() wait和sleep的对比 volatile关键字 volati…...

计算机毕业设计之:基于微信小程序的校园流浪猫收养系统

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

SpringBoot:关于Redis的配置失效(版本问题)

我们使用redis时发现yaml配置中的redis相关配置不生效&#xff0c;后面发现将配置修改甚至删除所有相关redis的配置&#xff0c;springboot依然能使用redis里面默认的db0并且不报错。上网查阅了一些文章&#xff0c;也都没有解决今天分享下&#xff0c;我的处理方法, SpringBo…...

halcon 快速定义字典

定义一个名为params的字典 Params : dict{} 等价于用 create_dict (Params ) 为字典添加键值对&#xff0c;在halcon中箭只能是字符串&#xff0c;值可以是任何类型的obj或者tuple Params.remove_outer_edges : true Params.max_gap : 150 等价于用 set_dict_object (true,…...

Sublime text3怎么关闭提示更新

问题 sublime text 3有新版本后,会不停地在每次启动后弹窗提示更新版本 第一步 软件安装之前&#xff0c;切记是软件安装之前&#xff01;&#xff01;&#xff01;需要在hosts中添加以下内容(屏蔽官网联网检测)&#xff1a;hosts的位置一般在C:\Windows\System32\drivers\etc…...

生成式语言模型技术栈

生成式语言模型的最新技术栈正在快速发展&#xff0c;尤其是随着大规模预训练模型&#xff08;LLMs&#xff09;和生成式AI的应用不断扩展。以下是当今最前沿的生成式语言模型技术栈&#xff0c;涵盖从模型开发到优化、推理和部署的各个环节。 1. 基础模型开发 基础模型开发包…...

进程分析工具Process Explorer使用

进程分析工具Process Explorer使用 Process Explorer让使用者能了解看不到的在后台执行的处理程序&#xff0c;能显示目前已经载入哪些模块&#xff0c;分别是正在被哪些程序使用着&#xff0c;还可显示这些程序所调用的DLL进程&#xff0c;以及他们所打开的句柄。Process Expl…...

vue 中如何实现鼠标拖动出发滚动条的跟随移动?

使用场景 在做弹窗、表单或 tab 切换需求的时候&#xff0c;有时候因为内容过长会导致出现滚动条&#xff0c;但是只能拖动滚动条时会导致操作不便&#xff0c;我们会希望实现通过拖动内容区实现滚动条的滑动。这样操作就会简单多了。 实现思路 如果要实现鼠标辅助触发滚动条…...

【Java EE】文件IO

Author&#xff1a;MTingle major:人工智能 --------------------------------------- Build your hopes like a tower! 目录 一、文件是什么&#xff1f; 二、针对文件系统操作的API 1.文件路径&#xff0c;文件名&#xff0c;文件是否存在 2. 创建文件 3.删除文件&#…...

使用 React、Material-UI、Spring、MySQL、MyBatis 以及高德 API 模拟实时位置信息

要使用 React、Material-UI、Spring、MySQL、MyBatis 以及高德 API 模拟实时位置信息&#xff0c;你可以按以下步骤来实现&#xff1a; 目录 1. 前端 (React Material-UI) 2. 后端 (Spring Boot MyBatis MySQL) 3. 模拟实时位置数据 4. 前后端联调 1. 前端 (React Mat…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...