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

MySQL(库的操作)

目录

1.增删数据库

2.认识数据库编码

3.指定编码创建数据库

4.验证不同校验编码的影响

5.库的删改查

数据库删除

查看数据库

想知道自己在哪个数据库

修改数据库

6.备份和操作

备份

还原


1.增删数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]


create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

创建

create database xxx;

mysql> create database database1; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | database1 | | helloworld | | mysql | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec)

删除

drop database database1;

mysql> drop database database1; Query OK, 0 rows affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | helloworld | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

cd /var/lib/mysql

show databases;

创建数据库:create database db_name; ---本质就是在/var/lib/mysql创建一个目录
删除数据库: drop database db_name; ---删除目录

create database if not exists database1;

2.认识数据库编码

创建数据库的时候,有两个编码集:
1.数据库编码集 --数据库未来存储数据
2.数据库校验集 --支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式

数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!

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

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则 是:utf8_ general_ ci
》 查看数据库支持的字符集
show charset;

字符集主要是控制用什么语言。比如utf8就可以使用中文。
》 查看数据库支持的字符集校验规则
show collation;

3.指定编码创建数据库

创建名为db1的数据库

create database db1;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci

创建一个使用utf8字符集的 db2 数据库

create database db2 charset=utf8;

创建一个使用utf字符集,并带校对规则的 db3 数据库。

create database db3 charset=utf8 collate utf8_general_ci;

[root@iZ5waahoxw3q2bZ mysql]# cat d5/db.opt default-character-set=gbk #编码规则 default-collation=gbk_chinese_ci #校验规则

4.验证不同校验编码的影响

不区分大小写

创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]

create database test1 collate utf8_general_ci;

区分大小写

创建一个数据库,校验规则使用utf8_ bin[区分大小写]

create database test2 collate utf8_bin;

使用test1

mysql> use test1; Database changed

create table if not exists person (name varchar(20));

show tables;

desc person;

mysql> insert into person (name) values('a'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('b'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('A'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('B'); Query OK, 1 row affected (0.01 sec) mysql> insert into person (name) values('C'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('D'); Query OK, 1 row affected (0.01 sec) mysql> select * from person; +------+ | name | +------+ | a | | b | | A | | B | | C | | D | +------+ 6 rows in set (0.00 sec)
mysql> select * from person where name='a'; +------+ | name | +------+ | a | | A | +------+ 2 rows in set (0.00 sec)

这就可以说明这个校验规则utf8_ general_ ci不区分大小写

mysql> insert into person (name) values('a'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('A'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('b'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('B'); Query OK, 1 row affected (0.00 sec) mysql> insert into person (name) values('c'); Query OK, 1 row affected (0.01 sec) mysql> insert into person (name) values('C'); Query OK, 1 row affected (0.01 sec) mysql> select * from person; +------+ | name | +------+ | a | | A | | b | | B | | c | | C | +------+ 6 rows in set (0.00 sec)
mysql> select * from person where name='a'; +------+ | name | +------+ | a | +------+ 1 row in set (0.00 sec)

这就可以说明这个校验规则utf8_ bin区分大小写

校验集同时也会影响比较结果

test1

test2

5.库的删改查

数据库删除

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库

查看数据库

show databases;

想知道自己在哪个数据库

select database();

修改数据库

语法:

ALTER DATABASE db_name

[alter_spacification [,alter_spacification]...]

alter_spacification:

[DEFAULT] CHARACTER SET charset_name

[DEFAULT] COLLATE collation_name

说明:

对数据库的修改主要指的是修改数据库的字符集,校验规则

mysql> use test2; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> alter database test2 charset=gbk collate gbk_chinese_ci; Query OK, 1 row affected (0.00 sec)
修改前 [root@iZ5waahoxw3q2bZ mysql]# cat test2/db.opt default-character-set=utf8 default-collation=utf8_bin 修改后 [root@iZ5waahoxw3q2bZ mysql]# cat test2/db.opt default-character-set=gbk default-collation=gbk_chinese_ci

查看数据库时相对应的命令

mysql> show create database test2; +----------+---------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------+ | test2 | CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET gbk */ | +----------+---------------------------------------------------------------+ 1 row in set (0.00 sec)
mysql> alter database test2 charset=utf8 collate utf8_general_ci; Query OK, 1 row affected (0.00 sec) [root@iZ5waahoxw3q2bZ mysql]# cat test2/db.opt default-character-set=utf8 default-collation=utf8_general_ci mysql> show create database test2; +----------+----------------------------------------------------------------+ | Database | Create Database | +----------+----------------------------------------------------------------+ | test2 | CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+----------------------------------------------------------------+ 1 row in set (0.00 sec)

6.备份和操作

备份

语法:

# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

[root@iZ5waahoxw3q2bZ MySQL]# pwd /root/linux/MySQL [root@iZ5waahoxw3q2bZ MySQL]# mysqldump -P3306 -uroot -p -B test1 > test1.sql Enter password: [root@iZ5waahoxw3q2bZ MySQL]# ll total 4 -rw-r--r-- 1 root root 1968 May 21 18:43 test1.sql

现在删除了

mysql> drop database test1; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | d1 | | helloworld | | mysql | | performance_schema | | sys | | test2 | +--------------------+ 7 rows in set (0.00 sec)

还原

source /root/linux/MySQL/test1.sql

mysql> source /root/linux/MySQL/test1.sql Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected, 1 warning (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 1 row affected (0.00 sec) Database changed Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 6 rows affected (0.00 sec) Records: 6 Duplicates: 0 Warnings: 0 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected, 1 warning (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | d1 | | helloworld | | mysql | | performance_schema | | sys | | test1 | | test2 | +--------------------+ 8 rows in set (0.01 sec)

注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库

# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

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

查看连接情况

语法:

show processlist;

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

感谢你的观看,期待我们下次再见!

http://www.jsqmd.com/news/860348/

相关文章:

  • 2026太阳能庭院灯厂家实力测评:优质品牌推荐 高配置长寿命首选 - 资讯纵览
  • egrep、sed、awk 简介与用法
  • python高校学生党员信息管理系统_829h59n3
  • 2026微软大规模钓鱼攻击深度解析:AiTM令牌劫持如何绕过MFA?附企业级防御代码与配置
  • CISA KEV 2026年5月重磅更新:5个“活化石“漏洞+2个Defender零日,政企内网面临双重暴击
  • 从一道NOI题目看凯撒密码的实战:手把手教你用C++解密‘加密的病历单’
  • 为什么你需要英雄联盟Akari助手:3个步骤提升游戏效率的完整指南
  • 别再死记硬背快捷键了!用这5个Blender 4.0核心操作,10分钟上手你的第一个模型
  • 2026年四川成都市政护栏厂家排名推荐:五大精选优质供应商全面对比 - 资讯纵览
  • 用树莓派+USB摄像头+总线舵机,手把手教你做个能自动抓取小球的机械臂(附完整Python代码)
  • 故障停机降为零:变频器厂家助力化工企业年省百万 - 资讯纵览
  • 稳定运行8年无故障:光纤收发器厂家标杆案例解析 - 资讯纵览
  • 从零到出版级作品,包豪斯风格AI绘图全流程拆解,含12个可复用提示模板与字体/网格参数表
  • CLK 400米标准跑道声光系统圆满交付
  • 毕业论文神器!高效论文写作全流程AI论文写作工具推荐(2026 最新)
  • BWH Hotels 6个月暗线入侵:全球4000+酒店预订系统沦陷的技术复盘与行业警示
  • 别只画排针了!用嘉立创专业版给你的STM32板子加个酷炫Logo(丝印图片导入全指南)
  • 变频器厂家常见问题解答(2026最新专家版) - 资讯纵览
  • 别被忽悠了!2026实测好用的AI写作辅助平台|实测必入避坑版
  • IPBan服务器防护解决方案:智能拦截恶意IP的实战指南
  • 2026年雨水收集模块品牌推荐:全场景适配头部品牌综合测评 - 资讯纵览
  • AI写作辅助网站的使用规范:如何让AI生成内容通过严格学术审查
  • 如何在浏览器中快速构建专业的BIM查看器:xeokit-bim-viewer终极指南
  • 想试AI做千川素材又怕花冤枉钱?易元AI“千川专版”免费生成50条,跑量再付费
  • 华三交换机上配置静态黑洞路由,5分钟搞定DDoS攻击流量丢弃
  • (良心整理)亲测靠谱的AI论文网站,毕业生收藏备用
  • 2026微信投票制作指南,中正投票+腾讯投票双平台详细指南 - 资讯纵览
  • IPPE数据传输APO--传输PDS到APO
  • 【2026】同等学历-计算机-人工智能
  • IDEA 如何设置保存时自动去除无用导入和格式化代码?