mysql是数据库服务的客户端,mysqld是数据库服务的服务器端。mysql的本质就是基于CS模式下的一种网络服务。数据库一般指的是在磁盘中或内存中存储的特定结构组织的数据,将来就是在磁盘上存储的一套数据库方案。
创建数据库,本质就是在linux下创建一个目录。建表就是创建文件。这个工作实际上是mysqld服务帮我们做的。数据库本质其实也是文件,只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作。
这里也介绍一下存储引擎。 存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 MySQL的核心就是插件式存储引擎,支持多种存储引擎。
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库, 一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:
三、SQL分类
create database helloworld(数据库名);
use helloworld;
进入数据库以后就可以在数据库中创建表了。
drop database 数据库名;
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。
show variables like 'character_set_database';
show variables like 'collation_database';
show charset;
字符集主要是控制用什么语言。比如utf8就可以使用中文。
show collation;
创建一个数据库,校验规则使用utf8_ general_ ci(不区分大小写)。
create database test1 collate utf8_general_ci;
创建一个数据库,校验规则使用utf8_ bin(区分大小写)。
create database test2 collate utf8_bin;
MySQL的默认校验规则为utf8_general_ci。
show databases;
show create database 数据库名;
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
注意该条语句的执行是在命令行中执行的。这时,可以打开看看.sql文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
如果备份的不是整个数据库,而是其中的一张表:
# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql(文件存储路径)
mysql> source D:/mysql-5.7.22/mytest.sql(备份的数据库的所在路径);