关于我的数据库——MySQL——第一篇

(叠甲:如有侵权请联系,内容都是自己学习的总结,一定不全面,仅当互相交流(轻点骂)我也只是站在巨人肩膀上的一个小卡拉米,已老实,求放过)。

什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?

文件保存数据有一下几个缺点:

1)文件安全性问题

2)文件不利于数据查询和管理

3)文件不利于储存比较大的数据

4)文件在程序中控制不方便

数据库的存储介质:磁盘、内存

为了解决上述问题,程序员就设计出了更加利于数据管理的东西——数据库

主流的数据库有哪些?

1)SQL Sever:微软产品,.Net程序员的最爱,中大型项目;

2)Oracle:甲骨文产品,适合大型项目,复杂逻辑的业务,并发一般来说不如MySQL;

3)MySQL:最受欢迎的数据库,属于甲骨文,并发性好,不合适做复杂的业务,主要用于电商,SNS,论坛,对简单的SQL处理效果好。

除此以外还有PostgreSQL、SALite、H_{2}

使用案例(基于MySQL)

创建数据库

create database test;

使用数据库

use test;

创建数据库表

create table student(
    id int,
    name carchar(32),
    gender carchar(2)
);

表中插入数据

insert into student (id,name,gender) values(1,'张三','男');
insert into student (id,name,gender) values(2,'李四','男');

查询表中数据

select *from student;

MySQL架构

MySQL是一个可移植的数据库,几乎在当前所以的操作系统上运行,如Unix/Linux、Windows、Mac和Solaris。各种系统在底层实现方面各有不同,但是MySQL基本上能保证在,每个平台上的物理体系结构的一致性。

SQL分类

1)DDL【data definition language】数据定义语言,用来维护数据的结构

代表指令:create , drop , alter

2)DML 【data manipulation language】数据操纵语言,用于对数据进行操作

代表指令:insert , delete , update

3)DCL 【data control language】数据控制语言,主要负责权限管理和事务

代表指令:grant , revoke ,commit

存储引擎

存储引擎:数据库管理系统如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法,MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看引擎
show engines

字符集和校验规则

show variables like 'character_set_databsase';
show variables like 'collation_database';

 

查看数据库支持的字符集
show charset;

字符集主要式控制用什么语言,比如utf8可以使用中文。

查看数据库支持的字符集校验规则
show collation;

校验规则对数据库的影响
1)不区分大小写

创建一个数据库,校验规则使用utf8_genneral_ci【不区分大小写】

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values ('a');
insert into person values ('A');
insert into person values ('b');
insert into person values ('B');

结果 

区分大小写

创建一个数据库,校验规则使用utf8_bin【区分大小写】

create database test2 collate utf8_bin;
use test2;
create table person(name varchar(10));
insert into person values ('a');
insert into person values ('A');
insert into person values ('b');
insert into person values ('B');

结果

结果排序

不区分大小写排序以及结果

区分大小写排序及结果

操作数据库

查看数据库
show databases;
显示创建语句
show create database 数据库名;
修改数据库

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

例:将test1数据库字符集改成gbk

alter database test1 charset = gbk;

数据库删除
drop database test1;

执行删除之后的结果:

1)数据库内部看不到对应的数据库

2)对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

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

备份和恢复

备份

语法:

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

例:将mytest库备份到文件(退出连接)

#mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

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

还原

mysql > source D:/mysql-5.7.22/mytest.sql;

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

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

同时备份多个数据库

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

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

查看连接情况

语法

show processlist;

例: 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值