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

【MyQSL】库 表—基操

【MyQSL】库 & 表—基操

  • 前言
      • mysql启动
      • 数据库默认路径
  • SQL语句_库的基操(db_name:数据库名,table_name:表名)
      • 创建 / 删除 / 修改(SQL语句)
      • 查看OS默认字符集 / 校验规则(SQL语句)
      • 显示数据库(SQL语句)
      • 其他常用_警告 / 清屏 / 连接情况(SQL语句)
      • 备份 / 还原(先退出mysql,非SQL语句)
  • SQL语句_表的基操
      • 创建
      • 查看表结构(desc table_name;)
      • 删除整个表 (drop table table_name;)
      • 修改表(add列 / modify列类型 / drop删除列 / rename重命名列名)

前言

mysql启动

sudo systemctl start mysql # 启动mysql
sudo systemctl restart mysql # 重新启动
sudo systemctl status mysql # 查看mysql状态
sudo systemctl stop mysql # 停止
sudo systemctl enable mysql # 设置 MySQL 开机自启动

数据库默认路径

数据库文件(库文件)的默认存储目录通常是:/var/lib/mysql/
每个数据库在该目录下以文件夹形式存在,文件夹名称与数据库名一致
文件夹中包含该数据库的表结构文件(.frm)和数据文件,如.ibd。

SQL语句_库的基操(db_name:数据库名,table_name:表名)

创建 / 删除 / 修改(SQL语句)

  1. create database db_ name; # 创建名为 db_ name 的数据库
  2. create database db_ name charset=utf8mb4 collate utf8mb4_general_ci; # 创建并指定数据库的字符集和校验规则
  3. drop database [if exists] db_ name; # 数据库删除,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
  4. alter database db_ name charset=gbk; # 对数据库的修改主要指的是修改数据库的字符集 / 校验规则

查看OS默认字符集 / 校验规则(SQL语句)

  1. show variables like ‘character_set_database’; #字符集
    show variables like ‘collation_database’; # 校验规则

显示数据库(SQL语句)

  1. show databases; # 展示所有数据库
  2. select database(); # 查看当前位于数据库,MySQL 终端执行
  3. show create database db_name;# 显示创建语句,可借助来查看数据库默认字符集
    在这里插入图片描述
    /*!40100 DEFAULT CHARACTER SET utf8mb3 /:这是一个条件注释,只有当 MySQL 版本大于或等于 4.01.00 时才会生效。它指定了数据库的默认字符集为 utf8mb3。
    /
    !80016 DEFAULT ENCRYPTION=‘N’ */:这也是一个条件注释,只有当 MySQL 版本大于或等于 8.00.16 时才会生效。它指定了数据库的默认加密方式为 N(即不加密)。

其他常用_警告 / 清屏 / 连接情况(SQL语句)

  1. show processlist # 查看连接情况,当前有哪些用户连接到我的MySQL
  2. show warnings; #查看sql语句警告
  3. system clear; # MySQL 终端中使用 system 命令调用 Ubuntu 系统的清屏命令

备份 / 还原(先退出mysql,非SQL语句)

  1. 备份:mysqldump -P3306 -u root -p -B db_ name > D:/db_ name.sql
    #备份其实就是把创建这个数据库以及在数据库内进行的一系列操作都备份到文件( D: \ db_ name.sql)中,恢复的时候就再执行以前关于该数据库的操作

  2. 还原: source D: \ db_ name.sql;

  3. 备份的不是整个数据库,而是其中的一张表
    mysqldump -u root -p db_ name table1_name table_name2 > 存放路径

  4. 同时备份多个数据库
    mysqldump -u root -p -B db_ name1 db_ name2 … > 数据库存放路径

注意:如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据
库,再使用source来还原;
也就是说未带-B那么备份的文件中至少无create database db_name; 这条语句

SQL语句_表的基操

创建

  1. create table table_name(
    name varchae(20),
    age int,
    birthday char(30)
    ) charset=字符集 collate=校验规则 engine=存储引擎;

不同的存储引擎,创建表的文件不一样。
users 表存储引擎是 MyISAM ,在/var/lib/mysql目录中有三个不同的文件,分别是:
users.frm:表结构(mysql5.7版本)
users.MYD:表数据
users.MYI:表索引
在这里插入图片描述

查看表结构(desc table_name;)

  1. desc table_name # 查看表的结构
  2. show tables; # 展示所有表
  3. show create table table_name;# 显示创建语句,可借助来查看创建表的细节
    在这里插入图片描述

删除整个表 (drop table table_name;)

  1. drop table table_name; #删除
    例如:
    drop table t1;

修改表(add列 / modify列类型 / drop删除列 / rename重命名列名)

(1). alter table table_name add column1 datatype, column2 datatype… # 增加一列或多列
例如:
alter table table_nmae add age varchar(100) comment ‘图片路径’ after birthday; # 在birthday列后增加age列

(2). alter table table_name modify column1 datatype, column2 datatyp… # 修改一列或多列的 datatype
例如:
alter table table_name modify birthday varchar(50), modify age int; # 将列birthday的类型修改为varcahr,age列类型改为 int

(3). alter table table_name drop column1, drop column2… # 删除表的一列或多列
例如:
alter table table-name drop age, drop birthday; # 删除表的 age 和 birthday 列

(4). alter table table_name1 rename [to] table_name2; # 将表面 1 改为表名 2;to 可省
例如:
alter table age rename to AGE varchar(100); # 新字段需要完整定义

http://www.dtcms.com/a/319716.html

相关文章:

  • 性能优化——GPU的影响
  • [C++20]协程:语义、调度与异步 | Reactor 模式
  • Kafka原理--主题、分区、消费者的关系
  • windows内核研究(内存管理-线性地址的管理)
  • 【PHP 中的 `use` 关键字完全指南】
  • Linux图文理解进程
  • fiddler实用用法,抓包内容导入到apipos
  • 数据库管理系统:入门需要了解的内容
  • Modbus核心参数,调试工具,接线注意事项
  • Mongodb常用命令简介
  • C++线程库的学习
  • 从Centos 9 Stream 版本切换到 Rocky Linux 9
  • MongoDB数据存储界的瑞士军刀:cpolar内网穿透实验室第513号挑战
  • IDEA-Research推出的一系列检测、分割模型:从DINO(改进版DETR)、Grounding Dino、DINO-X到Grounded SAM2
  • 串联所有单词的子串-leetcode
  • 计算机基础·linux系统
  • Linux线程学习
  • pytorch学习笔记-最大池化maxpooling的使用、搭建多层网络并验证、sequential的使用
  • golang的面向对象编程,struct的使用
  • 2.8 逻辑符号
  • Linux怎么查看时区信息?(Linux时区)(tzselect)
  • Java中接口与抽象类
  • 处理失败: module ‘fitz‘ has no attribute ‘open‘
  • 传统防火墙与下一代防火墙
  • 华为 2025 校招目标院校
  • 【2025最新】在 macOS 上构建 Flutter iOS 应用
  • 嵌入式学习---在 Linux 下的 C 语言学习 Day10
  • 可执行文件的生成与加载执行
  • 超高车辆如何影响城市立交隧道安全?预警系统如何应对?
  • [论文阅读] 软件工程 | 软件工程中的同理心:表现、动机与影响因素解析