文章目录
- 1.什么是数据库
- 2.MySQL的基本使用
- 2.1 MySQL的安装
- 2.2 连接MySQL服务器
- 2.3 服务器、数据库与表的关系
- 2.4 使用案例
- 3.SQL语句分类
- 4.存储引擎
- 4.1 什么是存储引擎
- 4.2 查看存储引擎
1.什么是数据库
存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点
:
- 文件的
安全性问题
; - 文件
不利于数据查询和管理
; - 文件
不利于存储海量数据
; - 文件
在程序中控制不方便
;
为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库
,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标
。
数据库是一种用于存储、管理和检索数据的有组织的数据集合
。它是一个电子化的信息存储系统,用于存储各种类型的数据,如文本、数字、图像、音频等。数据库系统的目的是为了有效地管理和维护数据,以便用户可以方便地访问和操作这些数据。
以下列举了一些现在主流的数据库:
SQL Sever
: 微软的产品,.Net程序员的最爱,中大型项目。Oracle
: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。MySQL
:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。PostgreSQL
:加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。SQLite
: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。H2
: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
而本系列文章所讲述的是MySQL
数据库。
2.MySQL的基本使用
2.1 MySQL的安装
- 『MySQL快速上手』-①-Centos 7安装MySQL详解;
2.2 连接MySQL服务器
$ mysql -h 127.0.0.1 -P 3306 -u root -p
- 注意,此处的
-h 127.0.0.
1省略不写的话默认是本地连接
; -P 3306
省略不写的话默认是连接3306
端口;- 输入你的密码,如果配置免密码登入则无需输入直接回车;
2.3 服务器、数据库与表的关系
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库
。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:
2.4 使用案例
接下来,简单演示一下数据库的使用,其中相关的语法会在后续的章节中讲到。
- 创建数据库,命名为
db1
;
create database db1
- 使用数据库;
use db1;
- 创建数据库表,命名为
student
;
create table student(-> id int,-> name varchar(32),-> gender varchar(2)-> );
- 表中插入数据;
insert into student (id,name,gender) values (1,'张三','男');
insert into student (id,name,gender) values (2,'李四','男');
insert into student (id,name,gender) values (3,'王五','女');
- 查询表中的数据;
select * from student;
3.SQL语句分类
SQL(结构化查询语言)是用于与关系型数据库系统进行交互的标准查询语言。SQL语句可以分为以下几个主要类别:
-
数据查询语句
:- SELECT:用于从数据库中检索数据。您可以指定要检索的表、列、筛选条件和排序方式。
- FROM:指定要从中检索数据的表。
- WHERE:用于筛选符合特定条件的行。
- GROUP BY:用于将数据按特定列进行分组聚合。
- HAVING:筛选GROUP BY分组后的数据。
- ORDER BY:用于对检索结果进行排序。
-
数据操作语句
:- INSERT INTO:用于向数据库表中插入新的数据行。
- UPDATE:用于更新数据库表中现有的数据。
- DELETE:用于从数据库表中删除数据行。
-
数据定义语句
:- CREATE TABLE:用于创建新的数据库表。
- ALTER TABLE:用于修改数据库表的结构,如添加、删除或修改列。
- DROP TABLE:用于删除数据库表。
- CREATE INDEX:用于创建索引以提高查询性能。
-
事务控制语句
:- COMMIT:用于提交事务,将更改保存到数据库。
- ROLLBACK:用于回滚事务,取消尚未提交的更改。
- SAVEPOINT:用于在事务中创建保存点,以便在需要时回滚到特定点。
-
数据控制语句
:- GRANT:用于授予用户或角色对数据库对象的特定权限。
- REVOKE:用于撤销已授予的权限。
- CREATE USER:用于创建新的数据库用户。
- ALTER USER:用于修改数据库用户的属性。
-
视图操作语句
:- CREATE VIEW:用于创建数据库中的视图。
- ALTER VIEW:用于修改现有的视图。
- DROP VIEW:用于删除视图。
-
事务控制语句
:- BEGIN TRANSACTION(或 BEGIN WORK):用于启动事务。
- COMMIT:用于提交事务,将更改保存到数据库。
- ROLLBACK:用于回滚事务,取消尚未提交的更改。
这些是SQL语句的一些主要类别,每个类别都用于执行不同类型的数据库操作。SQL是用于管理和操作关系型数据库的强大工具,允许用户执行各种任务,从数据检索和更新到数据库模式的管理。
4.存储引擎
4.1 什么是存储引擎
数据库的存储引擎是数据库管理系统 (DBMS) 中的一个组件,负责管理数据的存储、检索和操作
。不同的数据库管理系统支持不同的存储引擎,每个存储引擎都具有其独特的特性、性能特点和适用场景
。存储引擎定义了如何在磁盘上存储数据、如何进行索引、如何处理事务以及如何执行查询等数据库操作。
一些常见的数据库存储引擎包括:
-
InnoDB
:InnoDB是MySQL数据库系统的一种常用存储引擎。它支持事务处理(ACID兼容)、外键约束、行级锁、并发控制等特性,适合于需要高度可靠性和事务支持的应用。 -
MyISAM
:MyISAM也是MySQL的存储引擎,它主要用于非事务性应用,如数据仓库、日志分析等。它不支持事务,但具有较快的读取性能和全文搜索功能。 -
PostgreSQL
的默认存储引擎:PostgreSQL支持多种存储引擎,但其默认存储引擎是类似于InnoDB的具有事务支持的存储引擎。 -
SQLite
:SQLite是一种嵌入式数据库引擎,常用于移动应用和嵌入式系统。它以小巧、轻量和零配置而著称。 -
Oracle
数据库的表空间:Oracle数据库使用表空间来组织和管理数据,每个表空间可以使用不同的存储引擎,如本地文件系统、ASM(Automatic Storage Management)等。 -
Microsoft SQL Server的存储引擎
:SQL Server支持多种存储引擎,包括In-Memory OLTP、Columnstore、以及传统的B-tree存储引擎。
选择合适的存储引擎对于数据库应用程序的性能和功能至关重要。不同的存储引擎适用于不同的使用场景,根据应用程序的需求来选择存储引擎可以提供最佳性能和可靠性
。数据库管理员和开发人员通常需要考虑数据一致性、并发性能、事务支持、数据完整性和查询性能等因素来选择适当的存储引擎。
4.2 查看存储引擎
show engines;