数据库基础-数据库基本概念(1-1)

news2024/11/17 2:46:18

你好,欢迎来到数据库基础系列专栏,欢迎留言互动哦~

目录

  • 一、数据库基础
    • 1. 数据库基本概念
      • 1.1 数据库
      • 1.2 什么是数据库管理软件
      • 1.3 表
      • 1.4 行
      • 1.5 列和数据类型
      • 1.6 主键
      • 1.7 什么是 SQL

一、数据库基础

1. 数据库基本概念

1.1 数据库

数据库是一个以某种有组织的方式存储的数据集合,可以理解为一个 excel 文件。文件本身不保存具体的数据,数据是放在一个个 sheet 中的。

准确的说。数据库不等同于 mysql,数据库是物理存储方式。 mysql 其实是 DBMS(数据库管理软件)。什么是管理软件呢?只是很多时候我们习惯性将 mysql 这种管理软件叫做数据库而已。后续我们也简单这样理解吧。

1.2 什么是数据库管理软件

我要在 excel 中查询某一条记录怎么查询? 有人会说:excel 有语句可以查询,但是因为这里是因为 excel 提供了语法解析。如果没有这个解析我们怎么做?我们就需要一个中间层 - mysql

在这里插入图片描述

1.3 表

excel 文件中的一个 sheet。

1.4 行

一条完整的数据就是一行数据, 很多数据都是有指定字段的 - 比如一个用户信息包括用户名、密码、生日、年龄、性别等。

1.5 列和数据类型

excel 记录中的列,数据能按照列来存储对关系数据库非常重要,也是数据粒度小的表现、例如用户信息中的用户名、昵称、密码、年龄、生日、性别应该总是独立的列。

通过把它分解开、可有可能利用特定的列对数据进行排序和过滤,例如筛选出所有 20-30 岁的用户,按照年龄排序。如果将年龄和性别放在一起,筛选出 2-30 岁的所有女生就无法做到。

关系数据库中还有个很重要的特性 - 每个列需要指明数据类型,并且只能保存指定的类型。

数据库中每个列都需要指明数据类型,数据类型定义列可以存储的数据种类,例如,如果列中存储的为数字(年龄), 则相应的数据类型应该指明为数值类型。

如果列中存储的是日期,则应该是日期类型等。

数据类型还能帮助正确的排序数据,并在优化磁盘使用方面起重要作用。因此对数据类型要引起重视。

1.6 主键

表中每一行都应该有可以唯一标识自己的一列,比如身份证号码,一般我们把可以唯一区别某一行的数据的列称为主键。

主键用来标识一个特定的列。没有主键,更新和删除表中的指定数据很困难。

表中任何列都可以作为主键,只要满足:

  • 任意两行都不具备相同的主键值;
  • 每个行都必须具有一个主键值(不允许为 NULL)。

主键有几个潜规则:

  • 不能修改主键的值 - 就像可以改名不能修改身份证号码;
  • 已经使用过的主键不能再使用(就像已经废弃的身份证号码不能重复使用一样)。

1.7 什么是 SQL

SQL 是结构化查询语言(Structured Query Language)的缩写,SQL 是一门专门用来和数据库通信的语言。

优点:

  1. sql 不是某个特定数据库供应商专有的语言,集合所有重要的 DBMS 都支持 sql。所以学会了基本上可以用于所有数据库;
  2. sql 简单易学,它的语句全都是由英语单词构成,而且单词数目不多;
  3. sql 尽管简单,但是非常灵活,可以写出复杂的逻辑。

其实可以这样理解 sql 语言的诞生:本身是可以用库代替。没有必要去发明一门语言来增加学习难度,但是库的接口会让问题变得更复杂:

  1. 各种库之间的接口会不一样,难以统一;
  2. 如果需求越来越复杂,库会不停的升级,多个库升级会让问题变得更复杂;
  3. 不同的语言的库会让问题复杂度加倍增加;
  4. 发明一种语法可以脱离具体的库会让问题变得统一,就好比当今存在各种标准:http 协议、typec 数据线等;
  5. 这种思维在编程中大量存在:正则表达式、xpath 语句、sql 语句等都是为了解决这类问题。

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

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

相关文章

射频调试的习惯

三月开工了,一个月的调试即将开始。其实调试的重心是测试,核心的推动力是做事的习惯和思维。测试很重要,数据不对,能力和时间都浪费了上面了。测试的问题初步解完了,今天吃饭的时候碰到大领导。领导好忙,我…

SQL报错注入(上)

SQL报错注入报错注入概述报错注入的前提条件Xpath型函数(需要数据库版本>5.15)extractvalue()extractvalue()实操![在这里插入图片描述](https://img-blog.csdnimg.cn/5c7bfbc6565045d4bb352448c17f0869…

docker搭建redis集群、哨兵

集群搭建 本机IP 192.168.1.149 分别采用映射 192.168.1.149 的6379 6380 6381 三个端口模拟三台服务器。搭建三主无从的集群 首先可以在本机上创建三份redis.conf配置文件,分别命名为redis1.conf, redis2.conf, redis3.conf ,我这里放在/opt/redis/conf/中 redis*.…

MyBatis学习笔记(九) —— 自定义映射resultMap

9、自定义映射resultMap 9.1、resultMap处理字段和属性的映射关系 若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射 resultType 是一个具体的类型。 resultMap 是resultMap的标签。 id 是处理主键和属性的映射关系; result 是处…

FirePower X2 14.0.1 for RAD Studio Alexandria

介绍 FirePower X2 FirePower X2 集成了 RAD Studio 11.0 Alexandria 中的新功能,并预览了我们的新特色组件 TwwDataGrouper。 FirePower X2 还允许您为 Apple 的新 M1 芯片构建应用程序,这样您就可以进一步利用 M1 芯片来提高本机应用程序的性能&#x…

set和map的基本使用

目录 关联式容器 要点分析 键值对 pair介绍 set 模板参数列表: set的构造: 常用接口 操作 multiset map map的构造 插入 make_pair map的迭代器 operator[] multimap multimap中为什么没有重载operator[] 关联式容器 关联式容器也是用…

(五十六)针对主键之外的字段建立的二级索引,又是如何运作的?

上一次我们已经给大家彻底讲透了聚簇索引这个东西,其实聚簇索引就是innodb存储引擎默认给我们创建的一套基于主键的索引结构,而且我们表里的数据就是直接放在聚簇索引里的,作为叶子节点的数据页,如下图。 而且我们现在也对基于主键…

日志框架以及如何使用LogBack记录程序

使用日志框架可以记录一个程序运行的过程和详情,同时便捷地存储到文件里面,并且性能和灵活性都比较好。日志的体系结构包括两类日志规范接口:Commons Logging,简称:JCL;Simple Logging Facade for Java&…

JavaScript高级程序设计读书分享之8章——8.2创建对象

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 创建Object的实例 let person new Object(); person.name "Nicholas"; person.age 29; person.job "Software Engineer"; person.sayName function() { console.log(this…

增长乏力?创造产品和项目需求的6大方法【一杯咖啡谈项目】

我这里所说的创造需求,类似于PMI在《需求管理实践指南》中所写的专业术语“需要评估”(needs assessment),这个需要评估,没有写进PMI的《项目管理知识体系指南(PMBOK指南)》(以下称为…

fork()出来一个进程,这个进程的父进程是从哪来的?

基本概念fork() creates a new process by duplicating the calling process. The new process is referred to as the child process. The calling process is referred to as the parent process.fork()是一个系统调用,不是一个函数。详细信息可以,man…

day(22) Echarts和nacos

day(22) Echarts和nacos一、Echarts和nacos1.1 数据展示1.2 查询日期之间的数据二、配置中心2.1 配置中心spring cloud config2.1.1 缺点2.1.2 其他配置中心2.2 nacos2.2.1 pom2.2.2 配置文件2.2.3 Data id是微服务名称2.2.4 优先级2.2.5 动态刷新2.2.6 namespace2.2.7 多配置文…

Symbiosis Nest 共生巢token跨链兑换协议

参考文献: Getting Started with Symbiosis - Symbiosis Documentation Relayers Network | Symbiosis - Symbiosis Documentation Symbiosis V1 vs. V2 - Symbiosis Documentation Symbiosis protocal 基于稳定币的跨链兑换协议. Symbiosis protocol 组成结构…

pyechart绘制多图(三图及以上)的overlap叠加

pyechart github页面:https://github.com/pyecharts/pyecharts 首先要明确多图叠加到一个图的规则,即多个图只能有一个公共的轴: 比如,横坐标含义相同(如时间维度)或者,纵坐标取值含义相同 文…

Web3中文|把Web3装进口袋,Solana手机Saga有何魔力?

2月23日,Solana Web3手机Saga发布新的消息,将推出NFT铸造应用程序Minty Fresh。在Minty Fresh,用户仅需轻点并完成拍摄,就可以直接在手机中进行NFT铸造,并在几秒钟内将其转换为链上NFT,NFT还可以发布在 Ins…

STM32学习笔记-SPI

文章目录硬件连接协议层STM32-SPISTM32 SPI框架图SPI初始化结构体SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求…

NCRE计算机等级考试Python真题(十一)

第十一套试题1、以下选项对于import保留字描述错误的是:A.import可以用于导入函数库或者库中的函数B.可以使用from jieba import lcut 引入 jieba库C.使用import jieba as jb,引入函数库jieba,取别名jbD.使用import jieba 引入jieba库正确答案…

明明硬件比软件难,但为什么硬件工程师待遇还不如软件?

前言 大家好,最近在知乎上看到一个很有意思的问题: 硬件明明比软件更难,国内的硬件技术也不如软件,为什么硬件工程师待遇还不如软件? 下面分享几位网友的回答,有一定的参考价值,欢迎大家留言讨论…

Dell服务器组Raid + 重装Ubuntu20.0.4

文章目录1. 组建Raid2. 从U盘启动3. 系统安装4. 硬盘分区查看5.后续步骤:1. 组建Raid 1.1. 开机后按CtrlR进入Raid管理界面; 1.2. 选中现有群组后按F2弹出菜单,选择删除现有群组; 1.3. 删除后会列出所有磁盘,仍选…

DSP_TMS320F28377D_ePWM学习笔记

前言 本人需要使用ePWM来控制一个永磁同步电机(PMSM), 本文记录了对于TMS320F28377D ePWM模块的学习笔记。主要内容是FOC PMSM控制的ePWM配置,同时包含ADC触发源的配置,关于ADC的学习笔记,请参考DSP_TMS320F28377D_AD…