• MySQL -- 库和表的操作


    MySQL – 库和表的操作


    一、库的操作

    注意:

    • MySQL语句的关键词是不区分大小写的!
    • MySQL语句需要以 ; 结尾;

    1.创建数据库

    语法:
    在这里插入图片描述
    IF NOT EXITS:如果数据库不存在再创建,存在了就不创建了,可省略;
    CHARACTER SET:指定数据库采用的字符集
    COLLATE:指定数据库字符集的校验规则;

    create databases [if not exits]数据库名;
    
    • 1

    在这里插入图片描述
    MySQL创建一个数据库就是在/var/lib/mysql路径下创建了一个目录:
    在这里插入图片描述
    数据库名称如果和系统中的某些关键字重合,创建就会失败,需要加上反引号修饰:
    在这里插入图片描述

    • 建议创建库和表的时候,名称都加上反引号;

    补充:

    • MySQL语句中没有清屏的命令,可以通过system clear命令使用Linux中的清屏命令;
      在这里插入图片描述

    2.查看数据库

    show databases;
    
    • 1

    在这里插入图片描述
    显示创建语句:

    show create databases 数据库名;
    
    • 1

    在这里插入图片描述

    • 能够显示出来创建数据库时的语句细节,这时系统帮我们优化过的结果;
    • 后面的 /!40100 default…/不是注释,表示当前MySQL版本大于4.01时,就执行这个选项;

    3.删除数据库

    drop database 数据库名称;
    
    • 1

    在这里插入图片描述
    若删除了数据库,里面的表和数据都会一并被删除!

    4.字符集和校验规则

    创建数据库的时候,后面有选项可以指定字符集和校验规则;
    查看系统默认字符集和校验规则:

    show variables like 'character_set_database';
    show variables like 'collation_database';
    
    • 1
    • 2

    在这里插入图片描述
    查看数据库支持的字符集和校验规则:

    show charset; #查看字符集
    show collation; #查看校验规则
    
    • 1
    • 2

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

    • 如果创建数据库时没有指定字符集和校验规则,系统会以默认值为基准创建数据库;
    • 默认字符集和校验规则可以在配置文件中修改;
    • 字符集是指数据存储的时候,按照什么格式存储;
      校验规则是指在用户要取数据的时候,使用什么样的规则来校验数据库中的数据;
    • 字符集和校验规则是匹配的,一个字符集可以对应多个校验规则;

    在创建数据库时指定字符集和校验规则:
    在这里插入图片描述
    在这里插入图片描述
    打印出配置文件:
    在这里插入图片描述
    在这里插入图片描述

    5.校验规则对数据库的影响

    • 创建一个数据库,校验规则使用utf8_general_ci [不区分大小写]
      在这里插入图片描述
      向数据库中写数据:
      在这里插入图片描述
      查看数据:
      在这里插入图片描述
      在表中查询数据:
      在这里插入图片描述
      可以看出这个校验规则是不区分大小写的;

    • 创建一个数据库,校验规则使用utf8_bin [区分大小写]
      在这里插入图片描述
      向数据库中写数据:
      在这里插入图片描述
      在表中查询数据:
      在这里插入图片描述
      可以看出这个校验规则是区分大小写的;

    6.修改数据库

    修改数据库主要是修改数据库的字符集,校验规则;
    在这里插入图片描述

    7.备份和恢复

    备份:
    Linux的bash命令行,启动mysqldump服务

    mysqldump -P 3306 -u root -p -B 数据据名 > 数据库备份存储的文件路径
    
    • 1

    在这里插入图片描述

    • 查看备份完成的文件:
      在这里插入图片描述
      数据库备份就是将历史上所有的sql语句全部备份下来,恢复的时候,相当于重新创建一个相同的数据库;

    • 如果备份的不是整个数据库,而是其中的一张表:

    mysqldump -u root -p 数据据名 表名1 表名2 > 数据库备份存储的文件路径
    
    • 1
    • 同时备份多个数据库
    mysqldump -u root -p -B 数据据名1 数据据名2 > 数据库备份存储的文件路径
    
    • 1
    • 如果备份数据库是,没有带上-B参数,在恢复数据库的时候,需要先创建空数据库,然后使用数据库,再使用source来还原;
      这是因为**-B参数的意义是备份时会连着create database语句一起备份;**

    恢复:
    mysql客户端:

    source 备份文件所在的路径;
    
    • 1

    在这里插入图片描述

    8.查看连接情况

    show processlist;
    
    • 1

    在这里插入图片描述
    可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

    二、表的操作

    1.创建表

    在这里插入图片描述

    • field表示列名;
    • datatype表示列的类型;
    • character set字符集,如果没有指定字符集,则以所在数据库的字符集为准;
    • collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;
    • comment:后面的是备注;

    在这里插入图片描述

    • 查看数据库中的表:
      在这里插入图片描述
    • 查看创建表的语句:
      在这里插入图片描述
    • 不同引擎的表,文件结构不同:
      在这里插入图片描述
      在这里插入图片描述

    2.查看表结构

    查看表中元素的属性:

    desc 表名;
    
    • 1

    在这里插入图片描述
    查看表的数据:

    select * from 表名;
    
    • 1

    在这里插入图片描述

    3.修改表

    在这里插入图片描述
    增加列:

    alter table 表名 add 增加的列名 列的数据类型 comment '备注' after 在原来的哪一列后面增加;
    
    • 1

    在这里插入图片描述

    • 注:这里的NULL和空字符串是不同的,空串是有数据,但是数据是空字符串,而NULL是没有数据;

    调整列属性:

    alter table 表名 modify 需调整的列名 调整的目标类型;
    
    • 1

    在这里插入图片描述

    • 注:这里列的属性的修改是直接覆盖的,会覆盖掉之前的备注等信息,创建表的语句也会修改,因此修改的时候,最好将修改之前的其他列信息都带上;
      在这里插入图片描述

    删除列:

    alter table 表名 drop 列名;
    
    • 1

    在这里插入图片描述
    注:

    • 删除列后,列中的数据也会删除;
    • 不能删除所有的列,删到最后一列就无法删除了;

    修改列名:

    alter table 表名 change 原列名 目标列名 数据类型 comment '备注';
    
    • 1

    在这里插入图片描述

    修改表名:

    alter table 原表名 rename 目标表名;
    
    • 1

    在这里插入图片描述

    4.删除表

    在这里插入图片描述

    deop table [if exists] 要删除的表名;![在这里插入图片描述](https://img-blog.csdnimg.cn/e2198126d85843988945af579b8c1ce9.png)
    
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    如何实现流量控制和熔断降级?
    论文文献综述的题目是什么样的,应该怎么写?
    【若依vue框架学习】2.JWT的token/权限认证
    Java中static方法和普通方法的举例说明
    deque容器使用及评委打分系统
    WebStorm 2023:让您更接近理想的开发环境 mac/win版
    aws lakeformation工作流程和权限管理逻辑
    Spring Boot要如何学习?【云驻共创】
    Java 8 Time API
    HTML+CSS+JS制作一个迅雷看看电影网页设计实例 ,排版整洁,内容丰富,主题鲜明,简单的网页制作期末作业
  • 原文地址:https://blog.csdn.net/kissland96166/article/details/133946411