目录
1. 什么是数据库
2. 基本使用
2.1 进入 mysql
2.2 服务器、数据库以及表的关系
2.3 使用案例
2.4 数据逻辑存储
3. SQL 语句分类
4. 存储引擎
4.1 查看存储引擎
4.2 存储引擎的对比
1. 什么是数据库
安装完 MySQL 之后,会有 mysql 和 mysqld。
MySQL 是一个基于 CS 模式的网络服务,是一套提供数据存取服务的网络程序。mysql 是客户端,mysqld 是服务端。
数据库 -- 一般指的是在磁盘或内存中存储的特定结构组织的数据文件。
数据库服务 -- mysqld。
存储数据用文件即可,为什么还要用数据库呢?
一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据内容管理功能。数据库的本质是对数据内容存储的一套解决方案,给其字段或者要求,直接返回结果。
文件保存数据有以下几个缺点:(1)文件不利于数据查询和管理。(2)文件不利于存储海量数据。(3)文件在程序中控制不方便。
2. 基本使用
2.1 进入 mysql
mysql -h 127.0.0.1 -P 3306 -u root -p
h:指定 mysql 服务端的 ip 地址。
P:指定 mysql 服务端的端口号。
u:指定登录的用户。
p:使用密码进行登录。
执行上述命令之后,输入 mysql 的用户密码即可进入 mysql。
2.2 服务器、数据库以及表的关系
数据库服务器只是在电脑上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,用于保存程序中实体的数据。
如上图所示,用户用 mysql 客户端连接上 mysql 服务端,然后这个程序对主机中的数据库文件 DB 进行管理,而每个数据库(文件)中存在多个表结构,用于存储程序中的实体数据。
2.3 使用案例
(1)创建数据库 -- 本质就是在 Linux 对应的目录下创建一个目录。
create database helloworld;
如上图所示,创建了一个 helloworld 的数据库,则是在这台主机的 /var/lib/mysql 下创建了一个 hello world 的目录。
(2)进入数据库 -- 本质就是进入到数据库目录里面。
use helloworld;
(3)创建数据库表 -- 本质就是在数据库目录下创建文件。
如上图所示,在进入 helloworld 数据库之后,创建一张 student 表,该表有三个表项(name,age,gender),每一个表项后面跟的是该表项的数据类型,表项之间使用 "," 隔开。
2.4 数据逻辑存储
如上图所示,数据库中的每一张表在逻辑上是以行列的关系进行存储的。 查询的时候会以上述形式进行显示,物理上在磁盘中存储的时候会以特定的形式进行存储。
3. 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。
4. 存储引擎
存储引擎:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。
4.1 查看存储引擎
show engines;
4.2 存储引擎的对比
常用的存储引擎为 MyISAM 和 InnoDB。