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

news/2024/11/17 0:00:02/

文章目录

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

  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;

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


http://www.ppmy.cn/news/1201880.html

相关文章

SwissArmyTransformer瑞士军刀工具箱使用手册

Introduction sat(SwissArmyTransformer)是一个灵活而强大的库,用于开发您自己的Transformer变体。 sat是以“瑞士军刀”命名的,这意味着所有型号(例如BERT、GPT、T5、GLM、CogView、ViT…)共享相同的backo…

知行电子口岸EDI端口介绍

电子口岸或者其他物流企业需要确保能够生成和解析符合交通部要求的EDI数据格式。这可能需要进行一些EDI数据映射工作,以确保数据的正确传输和处理。为了支持此需求,我们的开发人员将这些功能模块集成在电子口岸端口中,这个端口的主要功能是将…

2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序

2021年电工杯数学建模 B题 光伏建筑一体化板块指数发展趋势分析及预测 原题再现: 国家《第十四个五年规划和 2035 年远景目标纲要》中提出,将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体…

北方寒流来袭,供暖已至,你家的暖气热了吗?

如果说诗句“忽如一夜春风来,千树万树梨花开”来形容春天的到来,那么“夜凉如水,寒风乍起添衣裳”就可以形容现在北方的天气了,11月初的早晨,伴随着萧瑟秋风卷动着枯黄落叶的声音,感觉就像是在落魄时买了一…

AD教程 (九)导线及NetLabel的添加

AD教程 (九)导线及NetLabel的添加 添加导线 绘制导线 点击放置,选择线,或者直接CtrlW快速绘制注意要与绘图工具中的线区别开来,导线是具有电气属性的,绘图工具中的线没有电气属性,只是辅助线绘制导线过程…

SpringBoot基础(六)-- 辅助功能之一 -- 内嵌tomcat

目录 1. 内嵌Tomcat定义位置 2. 内嵌Tomcat运行原理 3. 更换内嵌Tomcat 在前面,我们做的SpringBoot入门案例(SpringBoot基础(一)-- 使用idea(2022版)创建一个Springboot项目(联网开发))勾选了Spirng-web的功能&#

C/S架构的医学影像PACS系统源码,应用于放射、超声、内窥镜、病理等影像科室

C/S架构的PACS系统,采用DICOM3.0国际标准设计,以大型关系型数据库作为数据和图像的存储管理工具,是集医学影像的采集、传输、存储、查询、诊断、报告、综合信息管理等于一体的综合应用系统。 系统主要进行病人信息和影像的获取、处理、存储、…

vue3 自定义loading

使用antdv 后发现只有button支持loaidng属性&#xff0c;而其他元素不能使用loading来显示是否加载中&#xff0c;需要套一层 a-spin 才能支持&#xff0c;非常不方便。 所以写了个自定义的指令来进行处理 新建loading.vue文件用来页面显示 <template><div class&q…