快速了解MySQL数据库基础(1)

1.什么是数据库

早期使用文件存储数据,既不安全,又不便于查询数据和管理,并且无法有效的存储大量数据,也不好使用程序来进行控制;为了解决这些问题,数据库诞生了,它能够更加有效的管理数据。

数据库存储的介质主要有两种,分别是磁盘与内存。

数据库的水平是衡量一个程序员水平的重要指标。

而在此我们将学习当下主流的数据库之一的MySQL,基此所有操作都是在ubuntu系统下进行。

2.连接服务器

MySQL 采用客户端 / 服务端架构,我们日常使用的通常是客户端。客户端与服务端之间通过网络进行通信,从而实现对服务端的连接与访问。

sql 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p

参数说明:

-h 127.0.0.1,指定要连接的主机地址,127.0.0.1是本机回环地址,指向当前主机,外人无法访问你。

-p 3306,指定端口号,3306是MySQL默认绑定的端口,可以按需修改绑定端口并替换。

-u root,以root账号登录,root是超级权限用户的身份。

-p,提示输入密码,无论哪个用户登录都需要登录密码,当然你可以去MySQL配置文件中设置免密码登录。

如果你只是想登录连接本机的MySQL,可以如下这样简写。

sql 复制代码
mysql -u root -p

因为省略了-h和-P,这里MySQL就会使用默认值,即3306端口号以及连接本机localhost。

3.服务器,数据库,表关系

所谓的数据库服务器,其实只是在机器上安装了一个数据库管理系统程序,它可以管理多个数据库,我们一般会针对每一个应用来创建一个数据库。

为了保存应用中实体的数据,会在数据库中创建多个表,来保存程序中实体的数据。

4.SQL的分类

DDL,数据定义语言,用来维护存储数据的结构,代表指令,create,drop,alter。

DML,数据操控语言,用来对数据进行操控,代表指令,insert,delete,update.

DML中又单独分了一个DQL,数据查询语言,代表指令,select

DCL,数据控制语言,主要负责权限管理和事务,代表指令,grant,revoke,commit

一句话,DDL建表改结构,DML增删改数据,DCL管权限,DQL查数据

5.创建和使用数据库

sql 复制代码
create database 数据库名;

创建数据库的本质上就是在linux下创建一个目录。

写的每一句SQL指令结尾后面必须要带上分号。

sql 复制代码
use 数据库名;

因为MySQL中有多个数据库,你想要建表存数据就要先选择在哪个数据库里,就像是文件存数据你要选则是放在C盘还是D盘。

sql 复制代码
create table student(
id int,
name varchar(32),
gender varchar(2)
);

以上创建了一张名为 student 的学生基础信息表,包含 id、姓名、性别三个字段。字段的数据类型和格式规范后面会详细讲解。

在数据库内建表,本质上是在linux目录下创建文件。

sql 复制代码
insert into student (id,name,gender) values(1,'hhh','男');
insert into student values(2,'ccc','女');
insert into student (id,gender) values(3,'女');

写法一是指定全部字段按顺序插入

写法二是省略字段列表,按建表顺序插入

写法三是只插入指定字段,其余字段留空

sql 复制代码
select * from student;

*代表全部,查询student表中所有的数据。

6.MySQL架构

MySQL是一个可移植的数据库,几乎能够在当前所有的操作系统上运行,尽管各种系统在底层实现方面各有不同,但是MySQL基本能保证在各个平台上的物理体系结构的一致性。

7.存储引擎

存储引擎是数据库管理系统如何存储数据,如何为存储数据建立索引如何更新,查询数据等技术的实现方法。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

sql 复制代码
show engines;

查看当前使用的是什么存储引擎。