『MySQL快速上手』-②-数据库基础

在这里插入图片描述

1.什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标

数据库是一种用于存储、管理和检索数据的有组织的数据集合。它是一个电子化的信息存储系统,用于存储各种类型的数据,如文本、数字、图像、音频等。数据库系统的目的是为了有效地管理和维护数据,以便用户可以方便地访问和操作这些数据。

以下列举了一些现在主流的数据库:

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

而本系列文章所讲述的是MySQL数据库。

2.MySQL的基本使用

2.1 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语句可以分为以下几个主要类别:

  1. 数据查询语句

    • SELECT:用于从数据库中检索数据。您可以指定要检索的表、列、筛选条件和排序方式。
    • FROM:指定要从中检索数据的表。
    • WHERE:用于筛选符合特定条件的行。
    • GROUP BY:用于将数据按特定列进行分组聚合。
    • HAVING:筛选GROUP BY分组后的数据。
    • ORDER BY:用于对检索结果进行排序。
  2. 数据操作语句

    • INSERT INTO:用于向数据库表中插入新的数据行。
    • UPDATE:用于更新数据库表中现有的数据。
    • DELETE:用于从数据库表中删除数据行。
  3. 数据定义语句

    • CREATE TABLE:用于创建新的数据库表。
    • ALTER TABLE:用于修改数据库表的结构,如添加、删除或修改列。
    • DROP TABLE:用于删除数据库表。
    • CREATE INDEX:用于创建索引以提高查询性能。
  4. 事务控制语句

    • COMMIT:用于提交事务,将更改保存到数据库。
    • ROLLBACK:用于回滚事务,取消尚未提交的更改。
    • SAVEPOINT:用于在事务中创建保存点,以便在需要时回滚到特定点。
  5. 数据控制语句

    • GRANT:用于授予用户或角色对数据库对象的特定权限。
    • REVOKE:用于撤销已授予的权限。
    • CREATE USER:用于创建新的数据库用户。
    • ALTER USER:用于修改数据库用户的属性。
  6. 视图操作语句

    • CREATE VIEW:用于创建数据库中的视图。
    • ALTER VIEW:用于修改现有的视图。
    • DROP VIEW:用于删除视图。
  7. 事务控制语句

    • BEGIN TRANSACTION(或 BEGIN WORK):用于启动事务。
    • COMMIT:用于提交事务,将更改保存到数据库。
    • ROLLBACK:用于回滚事务,取消尚未提交的更改。

这些是SQL语句的一些主要类别,每个类别都用于执行不同类型的数据库操作。SQL是用于管理和操作关系型数据库的强大工具,允许用户执行各种任务,从数据检索和更新到数据库模式的管理。

4.存储引擎

4.1 什么是存储引擎

数据库的存储引擎是数据库管理系统 (DBMS) 中的一个组件,负责管理数据的存储、检索和操作不同的数据库管理系统支持不同的存储引擎,每个存储引擎都具有其独特的特性、性能特点和适用场景。存储引擎定义了如何在磁盘上存储数据、如何进行索引、如何处理事务以及如何执行查询等数据库操作。

一些常见的数据库存储引擎包括:

  1. InnoDB:InnoDB是MySQL数据库系统的一种常用存储引擎。它支持事务处理(ACID兼容)、外键约束、行级锁、并发控制等特性,适合于需要高度可靠性和事务支持的应用。

  2. MyISAM:MyISAM也是MySQL的存储引擎,它主要用于非事务性应用,如数据仓库、日志分析等。它不支持事务,但具有较快的读取性能和全文搜索功能。

  3. PostgreSQL的默认存储引擎:PostgreSQL支持多种存储引擎,但其默认存储引擎是类似于InnoDB的具有事务支持的存储引擎。

  4. SQLite:SQLite是一种嵌入式数据库引擎,常用于移动应用和嵌入式系统。它以小巧、轻量和零配置而著称。

  5. Oracle数据库的表空间:Oracle数据库使用表空间来组织和管理数据,每个表空间可以使用不同的存储引擎,如本地文件系统、ASM(Automatic Storage Management)等。

  6. Microsoft SQL Server的存储引擎:SQL Server支持多种存储引擎,包括In-Memory OLTP、Columnstore、以及传统的B-tree存储引擎。

选择合适的存储引擎对于数据库应用程序的性能和功能至关重要。不同的存储引擎适用于不同的使用场景,根据应用程序的需求来选择存储引擎可以提供最佳性能和可靠性。数据库管理员和开发人员通常需要考虑数据一致性、并发性能、事务支持、数据完整性和查询性能等因素来选择适当的存储引擎。

4.2 查看存储引擎

show engines;

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gllll_yu/article/details/134261991