当前位置: 首页 > news >正文

MySQL入门基础

一、数据库基础
1. 什么是数据库
数据库 是一个有组织的集合,用于存储和管理数据的系统。它是一个软件系统,被设计用来存储、检索和管理数据,并提供数据的快速访问和处理。数据库可以被看作是一种特殊的文件系统,但与传统的文件系统不同的是:它能够更加高效的存储和管理大量结构化数据。

数据库主要由数据库管理系统(DBMS)和数据库组成:

数据库管理系统(DBMS):
数据库管理系统是数据库的核心组成部分。它是一种软件系统,用于管理数据库的创建、维护、访问和操作。DBMS提供了一组功能,允许用户定义数据结构、存储数据、检索数据、更新数据、维护数据完整性、实施安全性控制、备份和恢复数据等。常见的DBMS包括MySQL、Oracle、SQL Server、PostgreSQL、SQLite等。不同的DBMS可能支持不同的数据模型,如关系型、文档型、图形型等,以满足不同类型的应用需求。
数据库:
数据库是一个有组织的数据集合,其中包含一个或多个数据表,每个数据表存储特定类型的数据。数据库用于持久性地存储和管理数据。数据可以以结构化的方式存储,允许用户定义数据表的结构、字段和数据类型。数据库中的数据可以根据需要进行增加、修改、删除和查询。数据库可以用于存储各种类型的数据,包括文本、数字、图像、音频、视频等。
2. 数据库和文件
存储数据用文件就可以了,为什么还要弄个数据库?

文件保存数据 有以下几个缺点:

文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便
数据库相比于传统的文件存储系统具有重要的优点如下:

数据结构化和一致性: 数据库强制数据以一种结构化的方式存储,这有助于确保数据的一致性和准确性。文件存储系统通常不提供此类数据结构化支持。
数据完整性: 数据库管理系统(DBMS)提供了强大的数据完整性约束,以确保数据的有效性。这包括主键、外键、唯一性约束等。
数据共享: 多个用户或应用程序可以同时访问数据库,而不会破坏数据的完整性。数据库提供了并发控制机制来管理同时访问数据的多个用户。
数据安全性: 数据库可以提供用户身份验证和访问控制,以保护敏感数据免受未经授权的访问。文件存储通常没有这种级别的安全性。
高性能和优化查询: 数据库系统经过优化,能够高效地处理数据检索和复杂查询。文件系统通常没有这种查询优化功能。
数据冗余减少: 数据库减少了数据冗余,因为相同数据只存储一次,而且可以通过外键建立关系,从而减少了数据存储和更新的复杂性。
数据一致性维护: 数据库提供了事务处理,允许多个操作被作为一个单一的、原子性的工作单元来执行。这有助于保持数据的一致性,即使在系统出现故障的情况下。
备份和恢复: 数据库提供了备份和恢复功能,以保护数据免受丢失或损坏。文件存储通常需要手动管理备份。
数据可扩展性: 数据库系统可以根据需求进行扩展,以处理大规模数据,而不会导致性能下降。
数据查询和分析: 数据库允许执行复杂的查询和分析操作,以从数据中提取有用的信息。这是文件存储系统所不具备的功能。
3. 主流数据库(关系型数据库)
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中
mysql 是一套给我们提供数据存取的服务的网络程序。

数据库一般指的是,在磁盘或者内存中存储的特点结构组织的数据——将来在磁盘上存储的一整套数据库方案。

数据库服务——mysqld

一般文件确实提供了数据的存储功能,但是文件没有提供非常好的数据管理能力(用户角度)

数据库的本质: 对数据内容存储的一套解决方案,用户将字段或者要求交给mysql,mysql再将要求交给mysqld服务端,最后mysqld再将结果返回给mysql,然后由mysql返回给用户。

二、MySQL的基本使用
1. 连接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
AI写代码
sql
1


注意:

如果没有写 -h 127.0.0.1 默认是连接本地
如果没有写 -P 3306 默认是连接3306端口号
2. 服务器管理
执行 win+r 输入 services.msc 打开服务管理器
通过下图左侧停止,暂停,重启动按钮进行服务管理

3. 服务器、数据库、表关系
所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:

4. 使用案例


💕 创建数据库:

create database helloworld;
AI写代码
sql
1

其中,helloworld是要创建的新数据库的名称,执行该语句后,MySQL服务器将在其文件系统上创建一个新的数据库目录,并在其中存储有关该数据库的元数据信息。然后,可以使用该数据库执行其他 SQL 操作,如创建表格、插入数据等。在创建数据库时,还可以通过可选的参数来指定其他属性,例如字符集、校对规则等。

💕 使用数据库:

use helloworld;
AI写代码
sql
1
helloworld是指要使用的数据库的名称,在MySQL服务器中,可以同时存在多个数据库,使用use语句可以让用户指定当前要使用哪个数据库,从而执行该数据库中的SQL操作。在使用use语句之前,必须先创建要使用的数据库。

💕 显示当前使用的数据库:

select database();
AI写代码
sql
1
database()是一个SQL函数,用于返回当前使用的数据库的名称。

💕 创建数据库表

create table 语句用于在关系型数据库中创建新的数据表。数据表是用于存储和组织数据的一种结构化对象,其由列和行组成。

以下是一个简单的 create table 语句的例子,创建一个名为 students 的数据表,该表包 含 id、name 和 age 三个列:

💕 显示数据库中所有表:

show tables
AI写代码
powershell
1


这里我们需要注意的是:这里的 “Tables_in_数据库名” 中的数据库名表示的是当前使用的数据库名称。

💕 向表中插入数据:

insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
AI写代码
sql
1
2
3


插入的值必须与数据表中列的数据类型匹配,否则会出现错误,同时,如果插入的值中包含单引号等特殊字符,需要进行转义处理。

💕 查询数据表:

select * from table_name;
AI写代码
sql
1


💕 获取数据表的结构信息:

desc table_name;
AI写代码
sql
1


执行该语句后,将返回一个结果集,其中包含数据表的结构信息。结果集中包含以下列:Field、Type、Null、Key、Default、Extra。\n\nField:数据表中列的名称。Type:数据表中列的数据类型。

Null:列是否允许为空。
Key:列是否为主键或索引。
Default:列的默认值。
Extra:包含有关列的其他信息。
三、数据的逻辑存储和实际存储
逻辑存储数据库的数据逻辑存储是指在数据库中,如何将数据逻辑地组织和存储的问题。它是数据库设计的一个重要方面,对数据库的性能、可靠性和可扩展性等方面都有重要影响。数据逻辑存储主要是通过表、视图、索引等方式实现的。具体来说,每个数据库包含多个数据表,每个数据表包含多个数据行和数据列,每个数据列定义了数据类型和其他属性。数据表之间可以通过关联关系进行连接,形成视图。而索引则是一种数据结构,用于快速定位和访问数据表中的数据。

实际存储

数据库的数据实际存储结构包括数据页和数据行。

数据页是数据库管理系统存储数据的最小单位,通常是固定大小的二进制文件。每个数据页通常包含多个数据行和一些元数据信息。数据库会将数据表中的数据按照数据页的大小进行分割和存储,以提高数据的访问效率。\n\n数据行是数据表中的一条记录,也是数据库中存储数据的基本单位。每个数据行包含若干个列,每个列对应一个数据类型的值。数据行可以看作是数据库中的一个对象,它具有唯一的标识符和属性。

数据库的数据实际存储结构通常是由数据库管理系统自动维护的,用户只需要使用 SQL 语句进行操作即可。不过,在进行数据库设计时,需要考虑数据的存储方式和结构,以便提高数据库的性能和可维护性。

四、MySQL的架构
MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

客户端:
客户端是 MySQL 的用户界面,它允许用户与 MySQL 服务器进行交互。MySQL 客户端可以是命令行工具,如 mysql 或 mysqladmin,也可以是可视化工具,如MySQL Workbench。
服务端:
MySQL 的服务端包括连接管理器、查询分析器、查询缓存、解析器、优化器、执行器等组件。当客户端连接到 MySQL 服务器时,连接管理器接收并处理连接请求。一旦连接建立,查询分析器将解析和分析查询语句,优化器将生成执行计划,执行器将执行查询并返回结果。
存储引擎:
存储引擎是 MySQL 的底层数据存储和检索系统。MySQL 支持多种存储引擎,包括 MyISAM、InnoDB、MEMORY 等。每种存储引擎都有其独特的特点和适用场景。例如,MyISAM 适用于静态数据,InnoDB 适用于高并发性能。
MySQL 服务器的连接管理器负责管理客户端与服务器的连接。当客户端请求连接时,连接管理器会分配一个新的线程来处理该连接。连接管理器会监控连接的活动,当连接空闲时,会关闭它们,以释放服务器资源。存储引擎层的主要作用包括

数据的物理存储:存储引擎负责将数据存储在磁盘上,包括表的数据、索引等。
数据的检索和处理:存储引擎负责将查询语句转换成对数据的检索操作,并对结果进行处理和排序等操作。
事务处理:存储引擎负责实现 MySQL 的事务特性,包括事务的开始、提交和回滚等操作。
并发控制:存储引擎负责实现并发控制机制,以保证多个用户同时访问数据库时的数据一致性和完整性。
总的来说,MySQL 的架构采用了客户端 / 服务端模式,服务端包括多个组件,存储引擎提供底层数据存储和检索服务。这种架构的优点是可以提高 MySQL 的性能和可扩展性,同时使其更加灵活和可定制。

五、SQL分类
DDL【data definition language】 数据定义语言,用来维护存储数据的结构,代表指令: create, drop, alter
DML【data manipulation language】 数据操纵语言,用来对数据进行操作,代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言,代表指令: select
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务,代表指令: grant,revoke,commit
六、存储引擎
存储引擎 是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。

InnoDB 和 MyISAM 的对比

事务支持:InnoDB 是支持事务的,而 MyISAM 不支持事务。
锁机制:InnoDB 采用行级锁,而 MyISAM 采用表级锁。
💕 查看存储引擎

show engines;

第一章 MySQL数据库简介
一、数据库的概念
数据库是【按照数据结构来组织、存储和管理数据的仓库】。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

数据对于公司来说是最宝贵的财富之一,而程序员的工作就是对数据的管理,包括运算、流转、存储、展示等,数据库的最重要的功能就是【存储数据】,绝大部分的数据需要进行持久化,长期保存,而数据库就可以很好的帮助我们完成这个工作。

二、mysql介绍
MySQL是一个【关系型数据库管理系统】,由瑞典【MySQL AB】公司开发,属于 【Oracle】旗下产品。MySQL 是最流行的【关系型数据库管理系统】之一,在 【WEB】应用方面,MySQL是最好的 【RDBMS】 (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 【SQL 语言是】用于访问【数据库】的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是【开放源码】这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

三、简单安装
下载后我们可以自定义安装:

选择安装server和两个客户端进行体验:

之后安装navicat

连接地址:链接: https://pan.baidu.com/s/163QqSeR4xgcu0SdgjiQULA?pwd=5zws 提取码: 5zws 复制这段内容后打开百度网盘手机App,操作更方便哦

四、基本概念
1、数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。在mysql中可以创建多个数据库,一个数据库可以管理很多张表。

我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下,两条sql等效:

CREATE DATABASE 数据库名;
CREATE SCHEMA 数据库名
AI写代码
sql
查看所有数据库:

SHOW DATABASES;
AI写代码
sql
使用数据库:

USE 数据库名;
AI写代码
sql
2、表
表(TABLE)是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。第二章、SQL
SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。一、SQL语句分类


DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。功能:创建、删除、修改库和表结构。

DML(Data Manipulation Language):数据操作语言,用来定义数据库记录:增、删、改表记录。

DQL(Data Query Language):数据查询语言,用来查询记录。也是本章学习的重点。

二、DCL(数据控制语言)语法(不重要)
该语言用来定义【访问权限和安全级别】,理解即可,直接使用命令控制权限的场景不多,更多情况是使用图形化界面进行操作。

mysql中的权限无非是针对不同的用户而言,不同的用户的权限提现在以下几点:可否链接mysql服务 、可否访问数据库 、可否访问某张数据库表 、可否对表进行一些操作等。

三、DDL(数据定义语言)语法
DDL主要是用在定义或改变表(TABLE)的结构,主要的命令有CREATE、ALTER、DROP等:

1、创建表的基本语法
create table 表名 (

字段名1(列名) 类型(宽度) 约束条件,

字段名2 类型(宽度) 约束条件,

字段名3 类型(宽度) 约束条件,

.......

http://www.dtcms.com/a/326331.html

相关文章:

  • 【排序算法】⑥快速排序:Hoare、挖坑法、前后指针法
  • UE 保存游戏
  • 牛客.空调遥控二分查找牛客.kotori和气球(数学问题)力扣.二叉树的最大路径和牛客.主持人调度(二)
  • 数集相等定义凸显解析几何几百年重大错误:将无穷多各异点集误为同一集
  • 免费好用的数字人API
  • 使用dockge 安装 photoprism
  • 最短路问题从入门到负权最短路
  • elasticsearch的高可用
  • 【van-field 会记录上次选择并以悬浮弹窗再次展示】
  • 18.5 BERT评估指标终极指南:HuggingFace实战提升文本分类效果
  • office卸载不干净?Office356卸载不干净,office强力卸载软件下载
  • 爬虫与数据分析结合案例学习总结
  • Note4:Self-Attention
  • AI Agent平台大PK:Dify与开源Coze的差异化对比分析
  • 机器学习-决策树(DecisionTree)
  • Hot100合集
  • 金蝶云星空 × SRM 深度集成实战(附完整接口清单)
  • 关于线性DP模板
  • 《汇编语言:基于X86处理器》第13章 高级语言接口(1)
  • [Ubuntu] xrdp共享连接 Ubuntu 屏幕 | xfce4
  • 建筑兔零基础python自学记录119|数据处理(4)-23
  • 需求列表如何做层级结构
  • Redis类型之Hash
  • 重学前端009 --- 响应式网页设计 CSS 伪选择器
  • 订单簿价格冲击模型与机器学习在大单策略中的融合
  • 元数据管理与数据治理平台:Apache Atlas 基本搜索 Basic Search
  • Apache Ignite分片线程池:高并发保序新方案
  • MCU 软件断点注意事项!!!
  • 【数据结构入门】树
  • 基于Go-Zero框架实现的小demo