• 【MySQL】库和表的操作


    一. 库的操作

    1. 创建数据库

    CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSET=charset_name] [[DEFAULT] COLLATE=collation_name];
    
    • SQL 中大写的表示关键字, [ ]中代表的是可选项;
    • CHARSET(charset): 用于指定数据库所采用的编码格式; 若未指定, 则使用配置文件中的默认格式;
    • COLLATE(collate): 用于指定数据库所采用的校验规则; 若未指定, 则使用配置文件中的默认规则;

    在 SQL 中不区分关键字的大小写;

    使用例:

    创建名为 t1 的数据库;

    create database t1;
    

    在这里插入图片描述

    创建使用 utf8mb4 编码格式的数据库 t2;

    create database t2 charset=utf8mb4;
    

    以下三种写法也可以

    create database t2 charset utf8mb4;
    create database t2 character set=utf8mb4;
    create database t2 character set utf8mb4;
    

    在这里插入图片描述

    创建使用 utf8mb4 编码格式和 utf8mb4_0900_ai_ci 校验规则的数据库 t3;

    create database t3 charset=utf8mb4 collate=utf8mb4_0900_ai_ci;
    

    校验规则的另一种写法也可以

    create database t3 charset=utf8mb4 collate utf8mb4_0900_ai_ci;
    

    在这里插入图片描述

    2. 删除数据库

    DROP DATABASE [IF EXISTS] db_name;
    

    在这里插入图片描述

    注: 删除数据库 会删除数据库的下级文件及目录, 级联删除, 不要轻易删除数据库;

    3. 查看数据库

    显示当前服务器的所有数据库
    SHOW DATABASES;
    

    在这里插入图片描述

    显示当前所在的数据库
    SELECT DATABASE();
    

    在这里插入图片描述

    显示指定数据库的属性
    SHOW CREATE DATABASE da_name;
    

    在这里插入图片描述

    • 数据库名的反引号是为了防止数据库名与关键字冲突;
    • /*!40100 default… */ 不是注释, 表示当前使用 MySQL 版本若大于4.01版本, 执行这里的 SQL 语句;
    显示数据库的连接情况
    SHOW PROCESSLIST;
    

    在这里插入图片描述

    4. 修改数据库

    ALTER DATABASE db_name [[DEFAULT] CHARSET=character_name] [[DEFAULT] COLLATE=collation_name];
    

    在这里插入图片描述
    数据库的修改主要是数据库的字符集和校验规则, 但数据库的修改不会影响数据库中已有表的字符集和校验规则;
    在这里插入图片描述

    数据库的更名方法推荐备份数据, 新建数据库(更名), 导入数据的方法, 并且轻易不要改名;

    5. 数据库的备份与恢复

    使用 MySQL 提供的备份工具 mysqldump 进行备份;

    mysqldump -u 用户 -p -P 端口 -B 待备份的数据库 > 目标路径(含目标文件)
    
    • -B 表示备份时, 将创建数据库的语句进行备份, 恢复时将会自行创建数据库; 若不加 -B 选项, 恢复时先 use 选择数据库, 然后才能 source;

    若当前数据库正在被使用, 需要先断开连接;
    在这里插入图片描述
    查看备份文件, 其中包含了数据库的配置信息和有效的 SQL 语句;
    在这里插入图片描述

    恢复则在 MySQL 中使用 SQL 语句;

    SOURCE 路径; 
    

    在这里插入图片描述在这里插入图片描述

    6 . 字符集和校验规则

    查看系统默认字符集及校验规则;
    show variables like 'character_set_database';
    show variables like 'collation_database';
    

    在这里插入图片描述

    查看数据库支持的字符集和校验规则;
    show charset;
    show collation;
    
    校验规则对数据库的影响

    创建 d1 数据库, 使用 utf8mb4_0900_ai_ci 校验规则, 不区分字母的大小写;
    在这里插入图片描述
    在 d1 数据库中创建 t1 表, 插入大写和小写的数据, 并查询小写数据, 结果大写和小写字母全部打印;
    在这里插入图片描述

    创建 d2 数据库, 使用 utf8mb4_bin 校验规则, 区分字母的大小写;
    在这里插入图片描述
    在 d2 数据库中创建 t2 表, 插入大写和小写的数据, 并查询小写数据, 只有小写字母打印;
    在这里插入图片描述

    二. 表的操作

    1. 创建表

    CREATE TABLE [IF NOT EXISTS] table_name(
    	field1 datatype1 [COMMENT '注释信息'],
    	field2 datatype2 [COMMENT '注释信息'],
    	field3 datatype3  [COMMENT '注释信息']
    )[CHARSET=charset_name] [COLLATE=collation_name] [ENGINE=engine_name];
    
    • field: 表示列名
    • datatype: 表示列的类型
    • CHARSET: 字符集, 若未指定则使用当前数据库的字符集;
    • COLLATE: 校验规则, 若未指定则使用当前数据库的校验规则;
    • ENGINE: 存储引擎, 若未指定则使用默认的存储引擎;

    在这里插入图片描述

    2. 删除表

    DROP [TEMPORARY] TABLE [IF EXISTS] table_name;
    // temporary 关键字暂时忽略即可;
    

    在这里插入图片描述

    3. 查看表

    显示数据库所有的表;
    SHOW TABLES;
    

    在这里插入图片描述

    显示指定表创建的详细信息
    SHOW CREATE TABLE table_name
    

    在这里插入图片描述
    也可以格式化输出内容

    SHOW CREATE TABLE table_name \G
    

    在这里插入图片描述

    显示指定表的结构;
    DESC tablename
    

    在这里插入图片描述

    • Field: 表示列名;
    • Type: 表示类型;
    • Null: 表示是否可为空;
    • Key: 表示是否存在主键/外键/唯一键约束;
    • Default: 表示是否有默认值;
    • Extra: 表示额外信息;

    4. 修改表

    新增字段
    ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
    
    • column: 表示列名;
    • datatype: 表示类型;
    • [DEFAULT expr]: 表示该列的各种属性, 例如约束, 默认值, 是否可为空等, 支持同时新增多个字段;

    新增的字段默认是在最后一个字段之后的;
    在这里插入图片描述
    当新增单个字段时, 支持插入在指定字段后, 和 “( )” 冲突;
    在这里插入图片描述

    删除字段
    ALTER TABLE tablename DROP (column), [DROP ...];
    

    在这里插入图片描述

    修改指定字段属性
    ALTER TABLE tablename MODIFY column datatype [DEFAULT expr], [MODIFY ...];
    
    • 需确保修改的字段存在, 并且要保证修改后的字段类型与表中已存在的数据类型相匹配;
    • 当修改多个字段时, 需叠加多条 MODIFY column datatype [DEFAULT expr] 语句, 通过 “,” 分隔;
    • 在修改字段后, 原字段的所有信息都会被覆盖, 包括注释;

    修改 ch 的类型为 varchar;
    在这里插入图片描述

    修改列名
    ALTER TABLE tablename CHANGE oldcolumn newcolumn datatype [DEFAULT expr];
    

    需要注意的地方和修改指定字段属性相同;
    在这里插入图片描述

    修改表名
    ALTER TABLE oldname RENAME [TO] newname;
    

    在这里插入图片描述
    修改字段名和表名是危险操作, 会影响上层使用, 不要轻易更改;

  • 相关阅读:
    JVM原理简介
    《设计模式:可复用面向对象软件的基础》——行为模式(3)(笔记)
    Redis数据持久化方式RDB和AOF的区别
    大学生餐饮主题网页制作 美食网页设计模板 学生静态网页作业成品 dreamweaver美食甜品蛋糕HTML网站制作
    Programming Differential Privacy第十五章Synthetic Data合成数据
    linux 创建全局快捷方式
    简单手段发IF=7+文章:磷酸三苯酯对鲤鱼的毒性作用及肠道微生物群落影响
    超级好用的 excel 导入导出框架:excel-import-export
    一个简单的网页制作期末作业,学生个人html静态网页制作成品代码
    注册中心服务eureka 切换到 nocas遇到的问题
  • 原文地址:https://blog.csdn.net/m0_68146877/article/details/139390894