Mysql 数据库编程技术01

       

一、数据库基础

1.1 认识数据库

为什么学习数据库

  • 瞬时数据:比如内存中的数据,是不能永久保存的。
  • 持久化数据:比如持久化至数据库中或者文档中,能够长久保存。

       数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

1.2 数据库的相关概念

1.2.1 DB

       DB(英文全称database,数据库)是依照某种数据模型组织起来并存放二级存储器中的数据集合。

1.2.2 DBMS

       数据库管理系统(DatabaseManagementSystem)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。

1.2.3 SQL

       结构化查询语言(StructuredQueryLanguage)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

       SQL是一种ANSI(美国国家标准协会)的标准,但也有许多不同版本的SQL语言。SQL是关系数据库系统的标准语言。所有关系型数据库管理系统,如MySQL,SQLServer,Oracle,Sybase,postgreSQL 和 MSAccess使用SQL作为标准数据库语言。

1.2.3.1 SQL 使用

允许用户访问在关系数据库管理系统的数据。
让用户来描述数据。
允许用户定义数据库中的数据和处理数据。
允许使用SQL模块,库和预编译器的其他语言中嵌入。
允许用户创建和删除数据库和表。
允许用户创建视图,存储过程,函数在数据库中。
允许用户设置表,过程和视图的权限

1.2.3.2 SQL 命令

       标准的SQL命令进行互动使用在关系型数据库有:CREATE,SELECT,INSERT,UPDATE,DELETE 和
DROP。这些命令可分为基于其性质组。

  • DQL(Data Query Language)- 数据查询语言
  • DML(Data Manipulate Language)-数据操作语言
  • DDL(Data Define Languge)- 数据定义语言
  • DCL(Data Control Language)-数据控制语言
  • TCL(Transaction Control Language)- 事务控制语言 commit、rollback

1.2.4 数据库术语

数据库:数据库是一些关联表的集合。
数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列:一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性:参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

1.2.5 数据模型

1.2.5.1 模型
       模型是对事务、对象、过程等客观系统中的内容的模拟和抽象表达。

1.2.5.2 数据模型
       数据模型也是一种模型,它是对现实世界数据特征的抽象。
       数据模型分为两大类:概念模型、组织层数据模型也称组织模型。
组织模型分为:层次模型(用树形结构组织数据)、网状模型(用图形结构组织数据)、关系模型(用简单二维表结构组织数据)、对象-关系模型(用复杂的表格以及其他组织结构组织数据)。

       数据模型是数据库的基础,数据是对客观事物的符号表示,模型是现实世界的抽象。

       信息世界是对现实世界的抽象,人们把事物的特征和联系通过符号记录下来,并用规范化的语言描述现实世界的事物,从而构成一个基于现实世界的信息世界,这个信息世界就是概念模型。概念模型主要用来描述显示世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及数据库管理系统的具体技术问题,集中精力分析数据以及数据之间的联系。在概念模型中,最常用的设计模型就是实体—联系模型(ER模型)。

       逻辑数据模型是具体的数据库管理系统所支持的数据模型,主要有**关系数据模型、层次数据模型和网状数据模型。**关系数据模型是目前最流行的数据库模型,支持关系数据模型的数据库管理系统称为关系数据库管理系统,MySQL就属于关系数据库管理系统。关系数据模型以二维表结构来表示事物与事物之间的联系,也可以称为实体与实体之间的联系

1.3 数据库种类

       逻数据库模型主要是两种,即关系型数据库和非关系型数据库。

1.3.1 关系型数据库

       关系型数据库,是指采用了关系模型来组织数据的数据库。

  1. 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所 组成的一个数据组织。
  2. 通过SQL结构化查询语句存储数据。
  3. 强调ACID规则, 保持数据一致性,ACID规则即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

1.3.2 Nosql 数据库

       NoSQL 最常见的解释是“non-relational”, “Not Only SQL”也被很多人接受。NoSQL 仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。

       NoSQL 的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。

1、NOSQL 不是否定关系数据库,而是作为关系数据库的一个重要补充
2、NOSQL 为了高性能、高并发而生,忽略影响高性能,高并发的功能
3、NOSQL 典型产品memcached(纯内存),redis(持久化缓存),mongodb(文档的数据库)。

1.3.3 关系型数据库和非关系型数据库优缺点

       关系型数据库优缺点:
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
       非关系型数据库优缺点:
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、
图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。
缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

1.4.2 数据库存储数据的特点

       将数据放列表中,表再放到库中
       一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
表具有一些特性,这些特性定义了数据在表中如何存储,类似C++中“类”的设计表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似C++中的“属性”。
       表中的数据是按行存储的,每一行类似于C++中的“对象”。

对于学员管理系统数据库中的表设计有如下:
(1) 学生档案信息表
(2) 班级设置信息表
(3) 院系信息表
(4) 寝室信息表
(5) 用户信息表

在这里插入图片描述

二、初始化MySQL

2.1 MySQL 产品介绍

2.1.2 平台及软件支持

       支持各种平台,常搭配Linux。组成的LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的网站架构方案。

2.1.3 体系结构

       MySQL 体系结构
在这里插入图片描述
       MySQL 由以下几部分组成:
连接池组件、管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组
件、插件式存储引擎、物理文件。
连接者:不同语言的代码程序和mysql的交互(SQL交互)

1、连接池 管理、缓冲用户的连接,线程处理等需要缓存的需求
2、管理服务和工具组件 系统管理和控制工具,例如备份恢复、Mysql复制、集群等
3、sql 接口 接受用户的SQL命令,并且返回用户需要查询的结果
4、查询解析器SQL命令传递到解析器的时候会被解析器验证和解析(权限、语法结构)
5、查询优化器 SQL语句在查询之前会使用查询优化器对查询进行优化
select id,name from user where age = 40;
       a.这个select 查询先根据where语句进行选取,而不是先将表全部查询出来以后再进行age过滤
       b.这个select查询先根据id和name进行属性投影,而不是将属性全部取出以后再进行过滤
       c.将这两个查询条件联接起来生成最终查询结果
6、缓存如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据
7、插入式存储引擎存储引擎说白了就是如何管理操作数据(存储数据、如何更新、查询数据等)的一种方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也 可以称为表类型(即存储和操作此表的类型)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新一代AI架构实践:数字大脑AI+智能调度MCP+领域执行APP的黄金金字塔体系

新一代AI架构实践:数字大脑智能调度领域执行的黄金金字塔体系 一、架构本质的三层穿透性认知 1.1 核心范式转变(CPS理论升级) 传统算法架构:数据驱动 → 特征工程 → 模型训练 → 业务应用 新一代AI架构:物理规律建…

macOS可视化桌面配置docker加速器

macOS可视化桌面配置docker加速器 在镜像settings->docker Engine改为国内镜像修改为国内镜像重启docker(可视化界面启动或者使用命令行)使用命令重启可视化界面重启 在镜像settings->docker Engine改为国内镜像 修改为国内镜像 {"registry-mirrors": ["…

Nginx 基础使用(2025)

一、Nginx目录结构 [rootlocalhost ~]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # POST 大文件暂存目录 ├── conf # Nginx所有配置文件的目录 │ ├── fastcgi.conf # fastcgi相…

用spring-webmvc包实现AI(Deepseek)事件流(SSE)推送

前后端: Spring Boot Angular spring-webmvc-5.2.2包 代码片段如下: 控制层: GetMapping(value "/realtime/page/ai/sse", produces MediaType.TEXT_EVENT_STREAM_VALUE)ApiOperation(value "获取告警记录进行AI分析…

基于Python的招聘推荐数据可视化分析系统

【Python】基于Python的招聘推荐数据可视化分析系统(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 🚀🌟 基于Python的招聘推荐数据可视化分析系统!&#x1…

使用注解开发springMVC

引言 在学习过第一个springMVC项目建造过后&#xff0c;让我们直接进入真实开发中所必需的注解开发&#xff0c; 是何等的简洁高效&#xff01;&#xff01; 注&#xff1a;由于Maven可能存在资源过滤的问题&#xff0c;在maven依赖中加入 <build><resources>&l…

linux专题3-----禁止SSH的密码登录

要在linux系统中禁止密码登录&#xff0c;您可以通过修改 SSH 配置来实现。请按照以下步骤操作(此处以 Ubuntu为例)&#xff1a; 1、SSH 登录到您的服务器&#xff08;或直接在命令行模式下&#xff09;。 2、备份 SSH 配置文件&#xff1a; 在终端中运行以下命令以备份现有的…

基于LangChain和通义(Tongyi)实现NL2SQL的智能检索(无需训练)

在数据驱动的时代,如何高效地从数据库中获取信息成为了一个重要的挑战。自然语言到SQL(NL2SQL)技术提供了一种便捷的解决方案,使用户能够用自然语言查询数据库,而无需深入了解SQL语法。本文将探讨如何利用LangChain和通义(Tongyi)实现NL2SQL的智能检索,具体步骤如下: …

深度学习处理文本(10)

保存自定义层 在编写自定义层时&#xff0c;一定要实现get_config()方法&#xff1a;这样我们可以利用config字典将该层重新实例化&#xff0c;这对保存和加载模型很有用。该方法返回一个Python字典&#xff0c;其中包含用于创建该层的构造函数的参数值。所有Keras层都可以被序…

机器视觉3D中激光偏镜的优点

机器视觉的3D应用中,激光偏镜(如偏振片、波片、偏振分束器等)通过其独特的偏振控制能力,显著提升了系统的测量精度、抗干扰能力和适应性。以下是其核心优点: 1. 提升3D成像精度 抑制环境光干扰:偏振片可滤除非偏振的环境杂光(如日光、室内照明),仅保留激光偏振信号,大…

线程同步的学习与应用

1.多线程并发 1).多线程并发引例 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <pthread.h>int wg0; void *fun(void *arg) {for(int i0;i<1000;i){wg;printf("wg%d\n",wg);} } i…

写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?

VB.NET 写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码? 分享 1. 在 VB.NET 中指定运行 Sub Main 在 VB.NET 里&#xff0c;你能够指定 Sub Main 作为程序的入口点。下面为你介绍两种实现方式&#xff1a; 方式一&#xff1a;在项目属性…

【AI插件开发】Notepad++ AI插件开发实践(代码篇):从Dock窗口集成到功能菜单实现

一、引言 上篇文章已经在Notepad的插件开发中集成了选中即问AI的功能&#xff0c;这一篇文章将在此基础上进一步集成&#xff0c;支持AI对话窗口以及常见的代码功能菜单&#xff1a; 显示AI的Dock窗口&#xff0c;可以用自然语言向 AI 提问或要求执行任务选中代码后使用&…

关联容器-模板类pair数对

关联容器 关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。 关联容器支持高效的关键字查找和访问。 两个主要的关联容器(associative-container),set和map。 set 中每个元素只包…

京东运维面试题及参考答案

目录 OSPF 实现原理是什么? 请描述 TCP 三次握手的过程。 LVS 的原理是什么? 阐述 Nginx 七层负载均衡的原理。 Nginx 与 Apache 有什么区别? 如何查看监听在 8080 端口的是哪个进程(可举例:netstat -tnlp | grep 8080)? OSI 七层模型是什么,请写出各层的协议。 …

输入框输入数字且保持精度

在项目中如果涉及到金额等需要数字输入且保持精度的情况下&#xff0c;由于输入框是可以随意输入文本的&#xff0c;所以一般情况下可能需要监听输入框的change事件&#xff0c;然后通过正则表达式去替换掉不匹配的文本部分。 由于每次文本改变都会被监听&#xff0c;包括替换…

使用 requests 和 BeautifulSoup 解析淘宝商品

以下将详细解释如何通过这两个库来实现按关键字搜索并解析淘宝商品信息。 一、准备工作 1. 安装必要的库 在开始之前&#xff0c;确保已经安装了 requests 和 BeautifulSoup 库。如果尚未安装&#xff0c;可以通过以下命令进行安装&#xff1a; bash pip install requests…

C#调用ACCESS数据库,解决“Microsoft.ACE.OLEDB.12.0”未注册问题

C#调用ACCESS数据库&#xff0c;解决“Microsoft.ACE.OLEDB.12.0”未注册问题 解决方法&#xff1a; 1.将C#采用的平台从AnyCpu改成X64 2.将官网下载的“Microsoft Access 2010 数据库引擎可再发行程序包AccessDatabaseEngine_X64”文件解压 3.安装解压后的文件 点击下载安…

【文献阅读】Vision-Language Models for Vision Tasks: A Survey

发表于2024年2月 TPAMI 摘要 大多数视觉识别研究在深度神经网络&#xff08;DNN&#xff09;训练中严重依赖标注数据&#xff0c;并且通常为每个单一视觉识别任务训练一个DNN&#xff0c;这导致了一种费力且耗时的视觉识别范式。为应对这两个挑战&#xff0c;视觉语言模型&am…

【Kubernetes】StorageClass 的作用是什么?如何实现动态存储供应?

StorageClass 使得用户能够根据不同的存储需求动态地申请和管理存储资源。 StorageClass 定义了如何创建存储资源&#xff0c;并指定了存储供应的配置&#xff0c;例如存储类型、质量、访问模式等。为动态存储供应提供了基础&#xff0c;使得 Kubernetes 可以在用户创建 PVC 时…