MySql:库的操作

目录

一、基础操作

二、两种编码

不同校验规则对数据库的影响

三、其他基础操作


一、基础操作

  • 创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

大写的表示关键字,因为MySql推荐大写,但是小写也支持,这个无关紧要

[] 是可选项

两个关键字:

        CHARACTER SET: 指定数据库采用的字符集
        COLLATE: 指定数据库字符集的校验规则
create database 名字;
  • 删除一个数据库
drop database 名字;

        实际项目中,不建议删除数据库,也不建议给一个数据库重命名,否则相关的代码也得修改

  • 查看一个数据库有几张表
show tables;
  • 查看表的详细信息。
select * from 表;
  • 查看表的列信息。
desc 表;
  • 查看当前所在的数据库 
select database();
  • 查看所有的数据库 
show databases;

二、两种编码

  • 查看系统默认字符集以及校验规则
show variables like 'character_set_database';//字符集
show variables like 'collation_database';//校验规则
  • 查看当前数据库支持的所有字符集
show charset;
  • 查看当前数据库支持的所有校验规则
show collation;

        两种编码分别是字符集校验规则

        字符集:又叫数据库编码集向数据库插入数据时的编码格式

        校验规则:又叫数据库校验集,用来支持数据库进行字段比较时使用的编码格式,本质是读取数据库中数据时采用的一种编码格式。

        不严谨地讲,插入和查找时的编码方式是两种编码格式。

        需要提醒的是,数据库对数据做任何操作,都必须保证用户的操作需求和编码的结果是一致的,否则,会出现操作预期和编码不匹配的情况。


  • 默认编码
create database 名字;
默认字符集编码为utf8
校验集编码为utf8_general_ci
  • 创建特定编码格式的数据库
create database 名字 charset=utf8;
  • 创建使用utf 字符集,并指定校对规则的 数据库。
create database 名字 charset=utf8 collate utf8_general_ci;

不同校验规则对数据库的影响

  • 区分大小写

        由于utf8_bin是区分大小写字符的,因此,创建一个校验规则为utf8_bin的数据库。

create database test collate utf8_bin;
use test

        建立一张表。

create table person(name varchar(32));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

        做条件查询。

mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
+------+
2 rows in set (0.01 sec)
  • 不区分大小写

        由于utf8_general_ic编码不区分字符大小写,创建一个校验规则为utf8_general_ic的数据库

        具体建库建表的操作就不展示了,直接查看做条件查询的结果。

mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
| A |
+------+
2 rows in set (0.01 sec)

        由于不区分大小写,a、A本质上是同一个字符。

三、其他基础操作

  •  查看创建数据库时的信息
show create database 库名;

        比如 

mysql> show create database mytest;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mysql | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+

         MySQL 建议我们关键字使用大写,但是不是必须的。

        数据库名字的反引号 `` , 是为了防止使用的数据库名刚好是关键字。
         /*!40100 default.... */ 这个不是注释,表示如果当前 mysql 版本大于 4.01 版本,也会执行后面的这句话 "CHARACTER SET utf8"
  • 修改数据库

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

ALTER DATABASE db_name [alter_spacification ]...
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

           比如

mysql> alter database mytest charset=gbk;
Query OK, 1 row affected (0.00 sec)
mysql> show create database mytest;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mytest | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+
  • 数据库备份和恢复

        备份:

mysqldump -P3306 -uroot -p -B 数据库名 > 数据库备份存储的文件路径
        示例:将mytest 库备份(退出连接)
mysqldump -P3306 -u root -p -B mytest > ./mytest.sql

        这时,可以打开看看 mytest.sql 文件里的内容,其实是把我们创建数据库,建表,导入数据的q全部语句都装载到了这个文件中。

        还原:

source ./mytest.sql;

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

mysqldump -uroot -p 数据库名 表名1 表名2 > ./mytest.sql

        同时备份多个数据库。

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

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

  • 查看数据库服务器的连接情况
show processlist;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值