数据库和SQL初探

news2024/11/16 8:44:24

数据库和SQL初探

  • 1. 什么是数据库
  • 2. 数据库的结构
  • 3. MySQL表定义相关操作
  • 4. MySQL体系结构和存储引擎

1. 什么是数据库

  • 将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。用来管理数据库的计算机系统称为数据库管理系统 ( D a t a b a s e   M a n a g e m e n t   S y s t e m ,   D B M S ) (Database\ Management\ System,\ DBMS) (Database Management System, DBMS)
  • 那么为什么要使用数据库呢?如果使用文本文件或者类似 E x c e l Excel Excel的电子制表软件不是很简单吗?这主要是基于下面几点考虑
  • 第一是无法多人共享数据,因为你打开文件编辑的时候其他用户就没办法编辑了,因为写者之间是互斥的,这样就会导致类似购买商品的操作变得效果很差
  • 第二是无法提供操作大量数据的格式,因为如果想从数百万条或者更多数据中取到你想要的,肯定要通过某些算法比如二分、分块等进行查找,要不效率低到离谱,所以这些数据一定要有某些格式,比如都是 i n t int int类型放到一个数组里面,也就是保存数据为适当的格式,但是文本文件这种东西做不到
  • 第三是想实现读写自动化需要进行编程,用过数据库的话应该知道我们查找数据的时候只需要几条或者一些 s q l sql sql就可以了,但是试想一下把它们放在文本文件或者 E x c e l Excel Excel里面,肯定要通过编程去获取数据,所以这就为用户造成了巨大的使用门槛
  • 第四是无法应对突发事故,当文件被误删或者硬件出现故障导致无法读取的时候可能造成重要数据损失

上述问题均可通过 D B M S DBMS DBMS来解决

2. 数据库的结构

  • 使用 R D B M S ( RDBMS( RDBMS(关系数据库管理系统 ) ) )的常见系统结构如下图
    在这里插入图片描述
  • 非常简单,客户端可以有多个,它们通过网络访问服务端
  • 每个数据库都是由若干个表组成的,如下图
    在这里插入图片描述
  • 表的(垂直方向)称为字段,它代表了保存在表中的数据项目;称为记录,相当于一条数据,关系型数据库必须以行为单位进行读写

3. MySQL表定义相关操作

  • 首先下载一下MySQL数据库,然后mysql -u 用户名 -p 密码进入MySQL终端,之后我们先用create shop创建一个数据库叫做shop,之后我们使用下面的SQL来创建一下Product
CREATE TABLE `Product` (
  `product_id` char(4) NOT NULL,
  `product_name` varchar(100) NOT NULL,
  `product_type` varchar(32) NOT NULL,
  `sale_price` int DEFAULT NULL,
  `purchase_price` int DEFAULT NULL,
  `regist_date` date DEFAULT NULL,
  PRIMARY KEY (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
  • 如果你想查看一下shop的创建SQL,你可以使用show create table shop来查看
  • 这段代码应该比较好理解,声明了一些字段并且注明数据类型以及是否允许为空,然后PRIMARY KEY指定主键,你也可以不指定,但是一般都有主键,因为它里面含着索引,可以加快查询速度,并且具备很多性质,这个以后再说。最后你会看到一行陌生代码,里面有ENGINE, CHARSET, COLLATE这三个选项,分别表示存储引擎,编码方式和优先级,编码方式影响你中文之类的能否正常显示,优先级影响order by出来的顺序,有兴趣可深入了解一下,之后介绍MySQL的一些存储引擎,我们先说说什么是SQL
  • SQL指的是用关键字、表名、列名等组合而成的一条语句来描述操作的内容,大致分为以下三类
  1. D D L ( D a t a   D e f i n i t i o n   L a n g u a g e , DDL(Data\ Definition\ Language, DDL(Data Definition Language,数据定义语言 ) ) ),包含CREATE,DROP,ALTER三种指令,分别是创建、删除和修改数据库和表等对象
  2. D M L ( D a t a   M a n i p u l a t i o n   L a n g u a g e DML(Data\ Manipulation\ Language DML(Data Manipulation Language,数据操纵语言 ) ) ),包含SELECT,INSERT,UPDATE,DELETE四种指令,分别是查询、插入、修改和删除表中的数据
  3. D C L ( D a t a   C o n t r o l   L a n g u a g e , DCL(Data\ Control\ Language, DCL(Data Control Language,数据控制语言 ) ) ),包含COMMIT,ROLLBACK,UPDATE,DELETE四种指令,分别表示确认变更(事务提交)、取消变更(事务回滚)、赋予用户操作权限和取消用户操作权限
  • 如果使用过数据库的话,应该知道我们用的最多的是 D M L DML DML
  • SQL有一些书写规则,首先SQL是逐条执行的,每一句之后要用;结尾;然后它不分关键字的大小写,也就是SELECTselect是一样的;然后写某些常数的时候,如果是数字就直接写就行,如果是字符串要用单引号'或者双引号"括起来,还有一种反引号可用来区分关键字和普通字符串
  • 最后一个概念叫半角空格,单词和单词中间需要有半角空格或者换行来进行分隔,啥叫半角字符呢?就是只占1个字节的字符,那么全角字符指的是占两个标准字符位置的字符,大概意思是占2个字节,具体根据系统而定

4. MySQL体系结构和存储引擎

  • 首先区分一下数据库和实例的概念,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合;数据库实例是程序,相当于一个进程,是一个软件,应用程序通过数据库实例和数据库打交道
  • 体系结构如下图
    在这里插入图片描述
  • 上图展现了若干存储引擎,在MySQL8.0中默认存储引擎是InnoDB,它的设计目标主要面向在线事务处理,特点是行锁设计、支持外键,且默认读取操作不会产生锁,实现了事务的四种隔离级别,在之后的文章中会详细介绍

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

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

相关文章

Java面试题二(自用-持续更新)

本文目录如下:Java面试题(二)四、并发编程线程和进程的区别?守护线程是什么?创建线程有哪几种方式?线程有哪些状态?sleep() 和 wait() 有什么区别?线程的sleep()方法和yield()方法有什么区别?线…

我发现买不起自己出版的书了,这到底是咋回事?

大家好,我是冰河~~ 这次我是真的有点买不起自己的书了! 聊聊背景 继出版《海量数据处理与大数据技术实战》、《MySQL技术大全:开发、优化与运维实战》和《深入理解分布式事务:原理与实战》之后,冰河于2022年6月出版…

基于uni-app的小程序电子签名功能(带有笔锋)

前言 目前做的一个项目需要用到电子签名的功能,网上其实也挺多这种类型的电子签名,但是带有笔锋效果的确比较少,所以参考了一些博客,总结成了这个功能,在此分享给大家。 效果展示 代码展示 触摸开始(touc…

大数据专业需要学习python么

如果零基础入门数据开发行业的小伙伴,可以从Python语言入手。 Python语言简单易懂,适合零基础入门,在编程语言排名上升最快,能完成数据挖掘、机器学习、实时计算在内的各种大数据集成任务。 但是不会python也是没有关系的&#…

基于Vector VT系统的车身域测试方案介绍

车身域控制器作为车身主要部件的控制大脑,需要经过严苛的测试,常见的测试方式是通过搭建硬件在环测试系统实现的,测试原理是通过仿真控制器外围的传感器和执行器,实现车身域控制器的闭环仿真和测试。小怿基于国际一流的测试设备提…

Day15 C++STL入门基础知识九——list容器 基本概念-构造函数-赋值变换-大小操作-插入删除-数据存取-反转排序 【全面深度剖析+例题代码展示】

文章目录1. 基本概念1.1 功能1.2 概念1.3 组成和存储方式1.4 优缺点1.4 图解2. 构造函数2.1 函数原型2.2 代码展示2.3 测试结果3. 赋值交换3.1 函数原型3.2 代码展示3.3 测试结果4. 大小操作1.3 代码展示1.4 测试结果6. 插入删除6.1 函数原型6.2 代码展示6.3 测试结果7. 数据存…

React报错#310复盘小结

React报错#310复盘小结问题背景解决方案原理&学习引发错误情况1. 不要在循环,条件或嵌套函数中调用 Hook2. 把所有的钩子移到组件的顶层,在任何可能返回值的条件之上。总结问题背景 apm报错:Minified React error #310 https://reactjs.…

浅谈Graph Embedding(一)

Graph Embedding算法背景引入先回顾下图的概念:图(graph)由节点(vertex)和点之间连线(edge)所组成;其中,点通常被成为“顶点(vertex)”,而点与点之间的连线则被成为“边”(edge)。通常记为,G(V,E)。常见分为无向图和有向图。示例如下&#xf…

MySQL数据类型约束

文章目录数据类型MySQL中的数据类型整数类型类型介绍可选属性MUNSIGNEDZEROFILL适用场景如何选择?浮点类型类型介绍数据精度说明精度误差说明定点数类型类型介绍开发中经验位类型:BIT6. 日期与时间类型YEAR类型DATE类型TIME类型DATETIME类型TIMESTAMP类型…

小白入门pwn笔记 CPU与进程的执行

1.回顾存储在磁盘中的叫节,映射到内存的时候叫段。内存中的节根据读写执行的权限不同在内存中映像为不同的段。段视图用于进程的内存区域的rwx权限划分。节视图用于ELF文件编译链接时与在磁盘上储存时的文件结构的组织。2.代码在内存重的映射关系不可写的数据一般会…

Qt OpenGL(三十六)——Qt OpenGL 核心模式-绘制雷达坐标系

提示:本系列文章的索引目录在下面文章的链接里(点击下面可以跳转查看): Qt OpenGL 核心模式版本文章目录 Qt OpenGL(三十六)——Qt OpenGL 核心模式-绘制雷达坐标系 一、场景 在日常的项目中,我们很多时候会遇到,绘制雷达扫描图的情况,比如,你的项目是给下面的雷达…

unidbg-boot-server使用并打包jar调用

其实线上使用可以多种方式,比如pom引入spring boot自己去写一个接口实现; 但如果并发不是很高,可以使用synchronized关键字进行,若对并发有要求,建议直接使用 unidbg-boot-server开源项目; 从github下拉,https://github.com/anjia0532/unidbg-boot-server 常见问题:…

Neo-reGeorg测试

1、前言 趁着春节刚开工不太忙,把以前的坑填一下。 主要是针对反向代理、隧道工具进行学习和测试。 之前测试过FRP,HTTPTunnel,NPS,都比较简单,而且上面工具也可以用在普通需求下使用。 reGeorg和Neo-reGeorg非常适合…

常用RTOS详细说明

鸿蒙OS HarmonyOS是一款面向全场景的开源分布式操作系统,是华为自主研发的操作系统。 鸿蒙OS实现模块化耦合,可应用在不同的设备上。 鸿蒙OS架构分为三层: 第一层是内核第二层是基础服务第三层是程序框架 。 鸿蒙OS底层三部分组成&#x…

《U型理论》速读

文章目录书籍信息概览踏上发现的旅程大火带来的启示踏上 U 型之旅学习和变革的4个层次组织的盲点社会的盲点科学的哲学基础关于界点下载观察感知自然流现结晶塑造原型运行社会场域理论的 21 个命题个人行动谈话行动自然流现的原则和实践:引领深刻的创新和变革视觉记…

Windows Server 2016搭建DNS服务

1:搭建DNS服务的目的是为了解析vCenter,当初安装时候没有用DNS解析,主机名是localhost无法安装vTPM虚拟Windows 11。 2:准备一台Windows Server 2016的主机,设置好固定IP地址,DNS就是本机的IP地址。 3:在服务器管理中…

Maven知识点-关于dependencyManagement和pluginManagement

前言 dependencyManagement和pluginManagement如何使用以及什么意思?我想懂点Maven的应该都明白,无非是依赖和插件的管理(版本),一般多用于Maven项目的继承和聚合模式中。 这里不是讲解dependencyManagement和plugin…

PCB丝印的字符有哪些作用?

PCB字符也就是行业内常说的“丝印”PCB丝印在一般的PCB板子都可以看到,那么PCB丝印有那些作用呢。 1、大家都知道各种各样的电子元器件数不胜数,那么如何区分PCB这个焊盘是贴什么电子元器件的呢?实际上就是通过PCB板子上的丝印字符去判断每一…

package.json配置详解

npm 介绍 npm 是随同 Node.js 一起安装的包管理工具,能解决 Node.js 代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从 NPM 服务器下载别人编写的第三方包到本地使用;许用户从 NPM 服务器下载并安装别人编写的命令行程序到本地使用;允许用户将自己编写的包或命令行…

【云原生 | Docker 高级篇】11、Docker 私有镜像仓库 Harbor 安装及使用教程

目录 一、Harbor 介绍 二、Harbor 的优势 三、Harbor 部署安装 3.1 部署环境 3.2 为 Harbor 自签发证书 3.3 安装 Harbor 3.4 设置开机自启 四、Harbor 图像化界面使用说明 4.1 修改本地 hosts 文件 4.2 访问 harbor 4.3 创建项目 五、测试使用 harbor 私有镜像仓库…