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

数据库基础:从概念到 MySQL 实战

数据库基础:从概念到 MySQL 实战

在当今数字化时代,数据的重要性不言而喻,而数据库作为数据管理的核心工具,发挥着关键作用。对于技术爱好者和开发者来说,深入了解数据库知识是必不可少的。今天,就让我们一起走进数据库的世界,从基础概念到 MySQL 数据库的实战应用,进行一次全面的探索。

 

一、数据库的基本概念

 

1. 数据库发展历程

数据库的发展是随着数据处理量的不断增加而逐步演进的,主要经历了四个阶段:

  • 人工管理阶段(20 世纪 50 年代):当时计算机硬件存储设备有限,只有穿孔卡片、纸带和磁带,且没有操作系统。数据管理依赖用户自己编写程序,存在诸多缺点,如数据无法共享、不能单独保存,必须与程序一起存储等。
  • 文件系统阶段(上世纪 50 年代中期 - 60 年代中期):计算机引入操作系统,大容量直接存储设备如硬盘、磁鼓出现,数据以文件形式存储在外存并由操作系统统一管理。但仍存在数据未集中管理、维护麻烦、与程序依赖性强等问题。
  • 数据库系统阶段(20 世纪 60 年代后期):采用数据模型表示复杂数据结构,实现对数据的统一管理和控制。数据逻辑结构改变时,不影响物理结构和应用程序,还提供了用户接口,方便开发和使用。

 

2. 常见数据库简介

  • Oracle:超大型收费数据库,1979 年由甲骨文公司推出首个商用 SQL 关系数据库管理系统,支持多种操作系统平台。
  • DB2:同样是超大型收费数据库,IBM 在 1977 年完成 System R 系统原型,1983 年推出 DB2 for MVS V1。
  • SQL Server:大型商用收费数据库,1987 年微软与 IBM 合作,后基于 Sybase 技术开发,1989 年发布 SQL Server 1.0 版。
  • MySQL:免费的小型关系型数据库管理系统,历经多次收购,目前被甲骨文公司收购。
  • Sybase:成立于 1984 年,公司名称源于 “system” 和 “database” 的结合。
  • Access:1994 年由微软推出的微机数据库管理系统。

 

3. 数据库管理系统

数据库管理系统(DBMS)是用于操纵和管理数据库的大型软件,具备数据定义、操作、完整性保护、安全控制、并发控制、故障恢复等多种功能,还提供了存储数据的接口和工具。关系型数据库管理系统(RDBMS)是现代数据库系统的基础,数据存储在由行和列组成的表中。

 

4. 数据库系统

数据库系统(DBS)由数据、数据库、数据库管理系统、应用程序以及支撑它们的硬件和软件平台,再加上相关人员共同构成。程序员负责对数据进行增删改查操作,数据库系统管理员(DBA)则通过工具对数据库进行管理,包括数据库设计和权限控制等。

 

5. 数据模型

常见的数据模型有层次模型、网状模型和关系模型:

  • 层次模型:以树形结构组织数据,优点是结构简单、操作语句简单、查询效率高;缺点是结构缺乏灵活性,插入和删除操作受限。
  • 网状模型:用有向图表示实体关系,能表示复杂关系,操作效率较高;但结构复杂,不利于维护和重建。
  • 关系模型:使用二维表格表示实体和关系,容易理解,数据表相对独立;不过读写性能较差。

关系模型由关系数据结构、关系操作集合和关系完整性约束组成。完整性约束包括实体完整性(主属性不能取空值)、参照完整性(不允许引用不存在的实体)和用户定义完整性(用户自定义的针对具体关系的约束条件)。

 

6. RDBMS 专业术语

数据库相关术语众多,例如数据库是存储数据表的集合;数据表用于存储数据内容;列包含相同类型的数据;行是一组相关数据;主键唯一,用于查询数据;外键用于关联两个表等。

 

二、关系型数据库语言 SQL

 

1. SQL 的功能

SQL(结构化查询语言)是访问数据库的标准计算机语言,不区分大小写(字符串内除外)。它可以执行查询、插入、更新、删除数据,还能创建数据库、表、存储过程、视图,并设置权限等。

 

2. SQL 分类

  • 数据定义语言(DDL):用于创建数据库对象,如 CREATE DATABASE、CREATE TABLE 等语句。
  • 数据操纵语言(DML):负责数据的插入(INSERT)、更新(UPDATE)和删除(DELETE)操作。
  • 数据查询语言(DQL):基本结构为 SELECT <字段名表> FROM < 表或视图名 > WHERE < 查询条件 >。
  • 数据控制语言(DCL):包括 COMMIT(提交)、ROLLBACK(回滚)和 GRANT(授权,一般由 DBA 使用)。

 

三、MySQL 数据库简介

 

1. MySQL 概述

MySQL 是免费开源的大型数据库,支持大量数据存储,使用标准 SQL 语言,可定制,遵循 GPL 协议,还支持多种编程语言。

 

2. MySQL 默认数据库

  • information_schema:保存 MySQL 服务器中其他数据库的信息,包含多个数据表,如 SCHEMATA 表提供数据库信息,TABLES 表提供表信息等。
  • mysql:存储数据库用户、权限设置、关键字等。
  • performance_schema:收集数据库服务器性能参数。
  • sys:系统库,提供基础环境。
  • test:测试数据库,可删除。

 

3. MySQL 存储引擎

MySQL 支持多种插件式存储引擎,常用的有 MyISAM、InnoDB、MEMORY、MERGE。MyISAM 是默认存储引擎,不支持事务和外键,但访问速度快;InnoDB 提供事务安全功能。

 

4. MySQL 常用命令

常用命令包括切换数据库(use 数据库名;)、列出数据库列表(show databases;)、显示当前数据库的所有表(show tables;)等。

 

5. MySQL 数据库的安装

  • 下载:可在 MySQL 官网(https://www.mysql.com/ )下载。
  • 安装:软件默认安装路径为 C:\Program Files\MySQL ,配置文件路径为 C:\ProgramData\MySQL\MySQL Server 8.0 ,具体安装详情可参考《MySQL 安装帮助文档》。
  • 图形化管理工具:可使用 MySQL Workbench、navicat、SQLyog 等工具进行图形化管理。

通过以上对数据库基础概念、SQL 语言以及 MySQL 数据库的介绍,相信大家对数据库领域有了更深入的了解。希望这篇文章能帮助你在数据库学习和实践的道路上迈出坚实的一步,后续我们还可以进一步探索数据库的高级应用和优化技巧。

相关文章:

数据库基础:从概念到 MySQL 实战

数据库基础&#xff1a;从概念到 MySQL 实战 在当今数字化时代&#xff0c;数据的重要性不言而喻&#xff0c;而数据库作为数据管理的核心工具&#xff0c;发挥着关键作用。对于技术爱好者和开发者来说&#xff0c;深入了解数据库知识是必不可少的。今天&#xff0c;就让我们一…...

Nacos统一配置管理

Nacos 统一配置管理 将一部分配置信息写到Nacos配置文件中&#xff0c;可以统一管理&#xff0c;并且这个文件支持热加载。 新建配置步骤&#xff1a;配置管理 -> 配置列表 -> 新建配置 Data ID&#xff08;配置文件名id&#xff09; 命名规范&#xff1a;服务名称-de…...

Centos7系统php8编译安装ImageMagick/Imagick扩展教程整理

Centos7系统php8编译安装ImageMagick/Imagick扩展教程整理 安装php8安装ImageMagick1、下载ImageMagick2、解压并安装3、查看是否安装成功 安装imagick扩展包 安装php8 点我安装php8 安装ImageMagick 1、下载ImageMagick wget https://www.imagemagick.org/download/ImageMa…...

android的gradle

Gradle User Manual gradle官网 这里有个gradlew很有用&#xff0c;因为这个可以在窗口中运行gradlew脚本 gradlew 和 gradlew.bat 都是 Gradle Wrapper&#xff08;Gradle 包装器&#xff09; 的一部分&#xff0c;它们的作用是让项目可以使用 Gradle 而无需提前在系统中…...

2025美赛MCM数学建模A题:《石头台阶的“记忆”:如何用数学揭开历史的足迹》(全网最全思路+模型)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ 《石头台阶的“记忆”&#xff1a;如何用数学揭开历史的足迹》 目录 《石头台阶的“记忆”&#xff1a;如何用数学揭开历史的足迹》 ✨摘要✨ ✨引言✨ 1. 引言的结构 2. 撰写步骤 &#xff08;1&#xff09;研究背景 &#…...

Python3 【高阶函数】项目实战:5 个学习案例

Python3 【高阶函数】项目实战&#xff1a;5 个学习案例 本文包含 5 个关于“高阶函数”的综合应用项目&#xff0c;每个项目都包含完整的程序代码、测试案例和执行结果。具体项目是&#xff1a; 成绩统计分析单词统计工具简易计算器工厂任务调度器数据管道处理 项目 1&#…...

ES6 类语法:JavaScript 的现代化面向对象编程

Hi&#xff0c;我是布兰妮甜 &#xff01;ECMAScript 2015&#xff0c;通常被称为 ES6 或 ES2015&#xff0c;是 JavaScript 语言的一次重大更新。它引入了许多新特性&#xff0c;其中最引人注目的就是类&#xff08;class&#xff09;语法。尽管 JavaScript 一直以来都支持基于…...

【S32K3 RTD LLD篇7】K344中心对齐PWM中心点触发ADC BCTU采样

【S32K3 RTD LLD篇7】K344中心对齐PWM中心点触发ADC BCTU采样 一&#xff0c;文档简介二&#xff0c;中心对齐PWM中心点触发ADC原理2.1 如何生成中心对齐的PWM2.2 如何生成PWM中心点触发标志 三&#xff0c; 软件配置与实现3.1 Demo CT 模块配置3.1.1 引脚配置3.1.2 时钟配置3.…...

解决日志中 `NOT NULL constraint failed` 异常的完整指南

在开发和运维过程中,日志是我们排查问题的重要工具。然而,当日志中出现类似 NOT NULL constraint failed 的异常时,往往意味着数据库约束与代码逻辑不匹配。本文将详细分析此类问题的原因,并提供完整的解决方案。 © ivwdcwso (ID: u012172506) 问题描述 在同步 AWS …...

14-6-3C++STL的list

&#xff08;一&#xff09;list的插入 1.list.insert(pos,elem);//在pos位置插入一个elem元素的拷贝&#xff0c;返回新数据的位置 #include <iostream> #include <list> using namespace std; int main() { list<int> lst; lst.push_back(10); l…...

协助工具-任意门导航

任意门导航网址&#xff1a;随意门导航-最全的实用导航网站,好用简洁宝藏网址神器...

优化使用 Flask 构建视频转 GIF 工具

优化使用 Flask 构建视频转 GIF 工具 优化后的项目概述 在优化后的版本中&#xff0c;我们将实现以下功能&#xff1a; 可设置每个 GIF 的帧率和大小&#xff1a;用户可以选择 GIF 的帧率和输出大小。改进的用户界面&#xff1a;使用更现代的设计使界面更美观、整洁。自定义…...

unity学习20:time相关基础 Time.time 和 Time.deltaTime

目录 1 unity里的几种基本时间 1.1 time 相关测试脚本 1.2 游戏开始到现在所用的时间 Time.time 1.3 时间缩放值 Time.timeScale 1.4 固定时间间隔 Time.fixedDeltaTime 1.5 两次响应时间之间的间隔&#xff1a;Time.deltaTime 1.6 对应测试代码 1.7 需要关注的2个基本…...

【趋势】《2024—2026金融科技十大趋势预测》一览

本白皮书基于新华三在金融行业的前沿实践和IDC的全球研究成果,深入分析了金融科技领域的十大关键趋势,旨在为金融机构提供前瞻性的战略指导和业务创新的参考。 导言 当前,在地缘政治冲突加剧、商业经济市场环境高度不确定、数字化业务加速发展的背景下,金融行业处于深度变…...

Qt调用ffmpeg库录屏并进行UDP组播推流

基于以下参考链接&#xff0c;采用其界面和程序框架&#xff0c;实现实时推送UDP组播视频流&#xff0c;替换原拉流功能 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows&#xff08;qt-opensource-windows-x86-5.12.9.exe&#xff09;、ubuntu20.…...

HarmonyOS:创建应用静态快捷方式

一、前言 静态快捷方式是一种在系统中创建的可以快速访问应用程序或特定功能的链接。它通常可以在长按应用图标&#xff0c;以图标和相应的文字出现在应用图标的上方&#xff0c;用户可以迅速启动对应应用程序的组件。使用快捷方式&#xff0c;可以提高效率&#xff0c;节省了查…...

mysql 学习6 DQL语句,对数据库中的表进行 查询 操作

前期准备数据 重新create 一张表 create table emp(id int comment 编号,workno varchar(10) comment 工号,name varchar(10) comment 姓名,gender char comment 性别,ager tinyint unsigned comment 年龄,idcard char(18) comment 身份证号,workaddress varchar(10) c…...

【ES实战】治理项之索引模板相关治理

索引模板治理 文章目录 索引模板治理问题现象分析思路操作步骤问题程序化方案索引与索引模板增加分片数校验管理 彩蛋如何查询Flink on Yarn 模式下的Task Manager日志相关配置查询已停止的Flink任务查询未停止的Flink任务 问题现象 在集群索引新建时&#xff0c;索引的分片比…...

springboot3 集成 knife4j(接口文档)

提示&#xff1a;文章是集成 knife4j&#xff0c;而非 swagger2 或者 swagger3&#xff0c;效果如图 文章目录 前言一、添加依赖二、如何集成1.配置文件2.注解部分1.Tag2.Operation3.Parameter4.Schema 3.使用 总结 前言 提示&#xff1a;&#xff1a;大家在开发阶段&#xff…...

51单片机开发:独立键盘实验

实验目的&#xff1a;按下键盘1时&#xff0c;点亮LED灯1。 键盘原理图如下图所示&#xff0c;可见&#xff0c;由于接GND&#xff0c;当键盘按下时&#xff0c;P3相应的端口为低电平。 键盘按下时会出现抖动&#xff0c;时间通常为5-10ms&#xff0c;代码中通过延时函数delay…...

Flutter_学习记录_Tab的简单Demo~真的很简单

1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件&#xff1a; TabBarTabBarViewTabController 这一块&#xff0c;我也不知道怎么整理了&#xff0c;直接提供代码吧&#xff1a; import package:flutter/material.dart;void main() {runApp(MyApp());…...

GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)

参考程序&#xff1a; #include <cstdio> using namespace std; const int N 2e5 5; const int mod 1e9 7; int n, a, b, c; int f[N << 1]; int ans; int main() {scanf("%d%d%d%d", &n, &a, &b, &c);f[N n] 1;for (int i n; i…...

数据结构测试题2

一、单选题&#xff08;每题 2 分&#xff0c;共20分&#xff09; 1. 栈和队列的共同特点是( A )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 2. 用链接方式存储的队列&#xff0c;在进行插入运算时( C ) A. 仅修改头指针 B. 头…...

Linux 系统服务开机自启动指导手册

一、引言 在 Linux 系统中&#xff0c;设置服务开机自启动是常见的系统配置任务。本文档详细介绍了多种实现服务开机自启动的方法&#xff0c;包括 systemctl 方式、通用脚本方式、crontab 方案等&#xff0c;并提供了生产环境下的方案建议和开机启动脚本示例。 二、systemct…...

项目概述与规划 (I)

项目概述与规划 (I) JavaScript的学习已经接近尾声了&#xff0c;最后我们将通过一个项目来讲我们在JavaScript中学习到的所有都在这个项目中展现出来&#xff0c;这个项目的DEMO来自于Udemy中的课程&#xff0c;作者是Jonas Schmedtmann&#xff1b; 项目规划 项目步骤 用户…...

【WebRTC - STUN/TURN服务 - COTURN配置】

在WebRTC中&#xff0c;对于通信的两端不在同一个局域网的情况下&#xff0c;通信两端往往无法P2P直接连接&#xff0c;需要一个TURN中继服务&#xff0c;而中继服务可以选用 COTURN 构建。 注&#xff1a;COTURN 是一个开源的 TURN&#xff08;Traversal Using Relays around…...

【HuggingFace项目】:Open-R1 - DeepSeek-R1 大模型开源复现计划

项目链接&#xff1a;https://github.com/huggingface/open-r1 概述 Open-R1 是由 HuggingFace 发布的一个完全开放的项目&#xff0c;旨在通过三个主要步骤复现 DeepSeek-R1 的完整训练流程。这个项目的目标是让更多人能够理解和使用 DeepSeek-R1 的技术方案&#xff0c;从而…...

On to OpenGL and 3D computer graphics

2. On to OpenGL and 3D computer graphics 声明&#xff1a;该代码来自&#xff1a;Computer Graphics Through OpenGL From Theory to Experiments&#xff0c;仅用作学习参考 2.1 First Program Square.cpp完整代码 /// // square.cpp // // OpenGL program to draw a squ…...

计算机毕设【开题报告】怎么写?

本文将围绕如何编写计算机专业的开题报告展开&#xff0c;结合具体的步骤、方法技巧&#xff0c;并提供一个基于SpringBoot系统的完整示例&#xff0c;帮助大家顺利完成开题报告。 一、开题报告的核心结构 开题报告通常包括以下几个部分&#xff1a; 选题背景及意义 说明项目研…...

【数据分享】2014-2025年我国水系数据(免费获取/全国/分省)

水系数据是我们在各项研究中经常使用的数据&#xff01;水系数据虽然很常用&#xff0c;但是却基本没有能下载最近年份水系数据的网站&#xff0c;所以很多人不知道如何获得水系数据。 本次我们给大家分享的是2014-2025年的全国范围的水系数据&#xff0c;包括水系线数据和水系…...