【MySQL】数据库——库操作

03-07 1963阅读

文章目录

  • 1. 创建数据库
    • [IF NOT EXISTS] 的使用
    • 2. 删除库
    • 3. 数据库的编码问题
      • 查看系统默认支持的字符集
      • 查看系统默认支持的校验集
      • 只查看 database的校验集
      • 指定编码创建数据库
      • 修改字符集
      • 修改校验集
      • 验证规则对数据库的影响
        • utf8_general_ci ——不区分大小写
        • utf8_bin ——区分大小写
        • 4. 修改数据库
        • 5. 查看数据库
        • 6. 数据库的备份和恢复
          • 备份
          • 恢复
          • 7. 查看连接情况

            1. 创建数据库

            格式为:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,

            create_specification] …]

            create database 表示为 固定用法

            db_name 表示为 数据库名称

            [IF NOT EXISTS] 表示可选项


            在终端1中,通过 mysql -uroot -p 指令,登陆数据库

            再输入 show databases; 查看当前用户所能看到的数据库列表

            【MySQL】数据库——库操作

            创建终端2,并输入 cd /var/lib/mysql 指令,以此查看数据库的对应内容是否变化创建终端2,并输入 cd /var/lib/mysql 指令,以此查看数据库的对应内容是否变化

            【MySQL】数据库——库操作
            【MySQL】数据库——库操作

            在终端1中 再次输入 create database databases1; 指令, 创建 databases1数据库

            在终端2中 查看发现此时多了一个databases1目录

            [IF NOT EXISTS] 的使用

            【MySQL】数据库——库操作

            create database if not exists database1;

            表示 当前数据库若不存在 database1,则创建该数据库


            【MySQL】数据库——库操作

            表示 当前数据库 若存在database1,则进行告警,即数据库已经存在,没有再次创建


            2. 删除库

            【MySQL】数据库——库操作

            在终端1中,输入 drop database database1; 表示 要删除 database1 数据库

            在终端2中, 再次查看则没有database1数据库存在


            可若删除数据库,则对应的目录也被删除了,若该目录下有表存在,则也会被直接删除

            所以不建议随意删除数据库


            总结: 创建数据库 —— create database db_name(数据库名称); 本质 就是在 /var/lib/mysql 创建一个目录

            删除数据库 —— drop database db_name (数据库名称); 本质就是在 /var/lib/mysql 删除一个目录


            3. 数据库的编码问题

            创建数据库时,有两个编码集:数据库的字符集 和数据库的校验集

            数据库的字符集 —— 数据库未来存储数据

            (数据库存数据时,采用什么编码)

            create database db2 charset=utf8;


            数据库的校验集 —— 支持数据库,进行字段比较使用的编码,本质是读取数据库中数据的采用的编码格式

            ( 查找或匹配数据库,就需要进行比较字段,想要被比较,两者就需要先被读出来,此时两者的校验规则应该相同)

            create database db3 charset=uf8 collate utf8_fgenral_ci;


            查看系统默认支持的字符集

            【MySQL】数据库——库操作

            输入 show variables like ‘character_set_database’;

            字符集数据库 默认为 utf8

            查看系统默认支持的校验集

            输入 show variables like ‘collation_database’;

            校验集数据库 默认为 utf8mb3_general_ci

            只查看 database的校验集

            【MySQL】数据库——库操作

            输入 show variables like ‘collation_%’;

            只查看 database的校验集

            连接 、数据库进行常规操作、服务器 的 本身的校验规则 都是 utf8

            指定编码创建数据库

            【MySQL】数据库——库操作

            当在终端1中创建 d1数据库时,在终端2中的var/lib/mysql路径中就会产生对应的目录d1


            【MySQL】数据库——库操作

            打开d1目录下的db.opt文件,其中包含默认系统支持的编码集合和校验集合


            修改字符集

            【MySQL】数据库——库操作

            在终端1中,创建数据库d2,并指明数据库的字符集按照 uft8格式


            【MySQL】数据库——库操作

            在终端2中,此时打开d2目录下的db.opt文件,发现 字符集按照uft8格式


            【MySQL】数据库——库操作

            使用 character set utf8 与 cahrset=uft8 表示相同,都可以修改 数据库的字符集 为uft8格式


            修改校验集

            【MySQL】数据库——库操作

            在终端1中,创建数据库d4,并 使用 collate 将校验集 置为 utf8_general_ci

            在终端2中,打开目录d4中的db.opt文件,发现 校验集按照 utf8_general_ci 格式


            验证规则对数据库的影响

            utf8_general_ci ——不区分大小写

            使用 utf8_general_ci ,校验规则是不区分大小写的

            【MySQL】数据库——库操作

            在终端1中,创建数据库 test1, 并指明 对应的校验集 为 utf8_general_ci 格式

            在终端2中,打开目录test1中的db.opt文件,发现 校验集按照 utf8_general_ci 格式


            【MySQL】数据库——库操作

            输入 use test1; 即 进入test1数据库


            【MySQL】数据库——库操作

            在test1数据库中,创建 一张表 person ,内部成员为 name,类型为 20个字节


            【MySQL】数据库——库操作

            输入 insert into person (name) values ( 字符); 即向person表中插入字符


            【MySQL】数据库——库操作

            输入 select * from person; 即查看person表中1全部数据

            select 表示从表中去查

            * 表示 将表中数据全部显示出来


            【MySQL】数据库——库操作

            输入 select * from person where name =‘a’; 即从person表 拿出来 name名称为 a的信息

            由于test1数据库 的校验集按照utf8_general_ci 格式,不区分大小写

            所以当查找a信息时,会取到peson表中的A和a


            utf8_bin ——区分大小写

            【MySQL】数据库——库操作

            在终端1中,创建数据库 test2, 并指明 对应的校验集 为 utf8_bin 格式

            在终端2中,打开目录test2中的db.opt文件,发现 校验集按照 utf8_bin 格式


            【MySQL】数据库——库操作

            输入 use test2; 即使用test2数据库

            在test2数据库中,创建 一张表 person ,内部成员为 name,类型为 20个字节


            【MySQL】数据库——库操作

            输入 insert into person (name) values ( 字符); 即向person表中插入字符 a A b B


            【MySQL】数据库——库操作

            输入 select * from person where name =‘a’; 即从person表 拿出来 name名称为 a的信息

            由于test2数据库 的校验集按照utf8_bin 格式,不区分大小写

            所以当查找a信息时,只会取到peson表中的a

            4. 修改数据库

            【MySQL】数据库——库操作

            输入 alter database test2 charset=gbk collate gbk_chinese_ci;

            修改test2数据库的字符集为gbk

            修改test2数据库的校验集为gbk_chinese_ci


            在创建数据库时,所设置的创建选项

            【MySQL】数据库——库操作

            输入 show create database test2; 查看创建test2数据库时,相关的命令

            5. 查看数据库

            【MySQL】数据库——库操作

            输入 show databases; 查看数据库


            【MySQL】数据库——库操作

            select database(); 判断当前在那个数据库里面

            如:当前处于 数据库d1中

            6. 数据库的备份和恢复

            备份

            【MySQL】数据库——库操作

            在终端1中,输入 show databases; 发现 存在test1数据库


            备份关键字为 mysqldump

            -B 表示指明哪一个数据库

            在终端2中, 将 test2数据库的历史上所有做过的有效操作备份起来了

            备份到 test1.tql中


            【MySQL】数据库——库操作

            在终端1中,删除test1数据库


            【MySQL】数据库——库操作

            在终端2中,打开 var/lib/mysql 路径后,发现不存在 test1目录

            但是存在 test1.tql 即test1目录的备份


            恢复

            此时就可以通过test1.tql ,恢复一个test1目录

            【MySQL】数据库——库操作

            在终端2中,输入 pwd 指令,查询当前路径 /var/lib/mysql


            【MySQL】数据库——库操作

            在终端1中,输入 source +test1.tql所在路径 即 source /var/lib/mysql/test1.tql

            就可以使 test1.sql 中的历史命令 全部在新的mysql中执行一次


            【MySQL】数据库——库操作

            在终端1中,输入 show databases; 即又查询到test1数据库的存在


            注意事项

            如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据

            库,再使用source来还原

            7. 查看连接情况

            【MySQL】数据库——库操作

            输入 show processlist; 查看连接情况

            User 表示 用户 ,即当前用户为root

            db 表示数据库, 即当前连接的是test1数据库

            command 表示 命令

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]