【数据库】基本知识一览

数据库基础知识(总结+摘抄) 阅读详情

眨眼工作时间都快一年了,感觉自己还是很菜。很害怕遇到 数据库的问题,对于一些基本概念都搞不太清楚,今天 认真学习下。

 

1. 数据库的分类: 关系型数据库和非关系型数据库。

1.1 关系型数据库:MariaDB、SQLite、SQL Server、 MySQL、PostgreSQL、Oracle

优点:

    1. 易于维护:都是二维表结构,格式一致;

    2. 使用方便,容易理解:SQL语言基本通用,可用于复杂查询;

    3. 复杂操作 : 支持SQL,可用于一个表以及多个表之间非常复杂的查询;

    4. 安全,存储在磁盘,基本不可能丢失。

缺点:

    1. 读写性能比较差,尤其是海量数据的高效率读写;

    2. 固定的表结构,灵活性稍欠;

    3. 高并发读写需求,传统关系型数据库来说,硬件IO是一个很大的瓶颈;

    4. 浪费空间:表中对应的字段可能没有值,但是仍然要占用空间,而且字段空间划分以最大字段字段划分,非常浪费。

1.2 非关系型数据库:HBASE、Redis、CouchDB、Cassandra、Neo4j、

  非关系型数据库严格上说不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对。

优点:

  1. 格式灵活:存储数据的格式可以是 key、value形式,文档形式、图片形式等等,应用场景广泛,而关系型数据库只支持基本类型;

  2. 速度快,效率高:nosql 可以使用硬盘或者随机储存器作为载体,而关系型数据库只能使用硬盘;

  3. 高扩展性;

  4. 成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

  1. 不提供sql 支持,学习和使用成本较高;

  2. 无事务处理;

  3. 数据结构相对复杂,复杂查询方面稍欠;

  4. 不安全(内存,断电会造成丢失);

重点学习 关系型数据库:

2. 关系型数据库是什么?

关系型数据库是一种建立在关系模型上的数据库。

关系模型:一种建立在关系上的模型,主要包含三个方面:

   数据结构:数据存储的方式,二维表(行和列)

   操作指令集合:所有的SQL语句

   完整性约束:表内数据约束(字段),表与表之间约束(外键)

3.数据库系统的结构是什么结构?

 3.1 数据库 database

 3.2 数据库系统 DBS (Database System) = DBMS( Database Management System) + DBA(Database Administrator)

 3.3 SQL( Structured Query Language) 结构化查询语言,分为三个部分: DDL、 DML 、DCL

  DDL:数据定义语言,用来维护存储数据结构,代表指令 : create 、 drop 、alter;

  DML:数据操作语言,用来对数据操作,代表指令: insert 、 delete 、 update 。其内包含DQL:select;

  DCL:数据控制语言,主要负责权限管理(对用户管理),代表指令:grant、revoke;

数据库系统分为四层:DBMS----->DB----->table------>field

bbb

4. 数据库存储引擎有哪些?

数据库存储引擎是数据库底层软件组织,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎体用不同的存储机制、存储技巧、锁定水平等功能。使用不同的存储引擎,还可以获得特定的功能。MySQL的核心就是存储引擎。

存储引擎的选择:

如果需要 提交、回滚、奔溃恢复能力的事务安全能力,并要求实现并发控制,InnoDB是一个好的选择。

如果数据库的主要作用是 插入 和 查询,可以考虑 MyISAM 引擎,具有较高的处理效率。

如果只是临时存放数据, 数据量小,并且不需要较高的安全性,可以使用 Memory 引擎,MySQL的临时表就是用该引擎。

如果只有 insert 和 select ,支持 高并发的插入操作,可以使用 Archive,但本身不是事务安全的,Archive 适合归档和记录日志。 

使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能

5. 字段设计使用定长char 还是 变长varchar?

定长 用于 身份证、手机号码等长度不变的字段,如果有某个值长度不够,会自动补充空格。效率高,但是容易出错。

变长 用于 长度可变字段,储存什么值,结果就是什么值,效率低,但是正确性高。

6. 常用的列属性约束:NULL、NOT NULL、default、primary key、unique key、auto_increment、comment、

7. 主键:Primary key。一张表只能有一个主键,用来唯一约束该记录不能重复。

主键的设置方法:

  7.1 在创建表的同时,直接在某个字段后面添加 primary key,指定主键。非常直接,但是只能使用一个字段作为主键。

  7.2 在创建表的同时,在语句结束出,添加 primary key (number,course) 可以指定多个字段作为主键,成为联合主键。

  7.3 当表已经创建完成,再次额外追加主键。

8. 主键分为 业务主键 和 逻辑主键,业务主键 使用真实的业务数据,逻辑主键使用没有实际意义的字段做主键。

8. 唯一键: 一张表只能有一个主键,但可以有多个唯一键,唯一键用 unique key修饰。保证值唯一,不重复。特点是允许空。

 

9.范式: 数据库的设计应该满足第三范式。Noraml Foramt 是一种离散数学中的知识,是为了解决一种数据存储和优化的问题。

分为6层,范式为了节约空间而产生,范式越高,效率越低,所以基本满足第三范式就是合格的设计。

第一范式:1NF(保证原子性) 从表中取出的数据在使用之前,不需要再做额外的处理,表示数据不可再拆分。

第二范式:2NF(避免部分依赖)当表中存在复合主键时,有某些字段不是全部依赖主键确定,而依赖部分主键就能确定,成为部分依赖。

解决方法: 取消复合主键,使用逻辑主键。

第三范式:3NF(避免非主键依赖)表中存在字段不直接依赖主键确定,就称为非主键依赖。

解决方法: 将存在传递依赖的字段,以及依赖的字段本身单独取出,形成一个独立的表,然后将对应的实体主键添加到旧表中。

逆范式化:如果一个表中某些字段需要从其他表中获取值,效率低。可以将其值直接存储到当前表中,这样查询操作比较方便和直接,但是可能会导致数据冗余。

 

 

 

 

数据库的字符集问题:  set names 字符集;(三码合一)

 

 

 

 

浅析数据库(DB)、操作数据存储(ODS)和数据仓库(DW)的区别与联系 文章背景:相信大部分刚接触上面三个概念的同学,都多多少少会有些迷惑,现在我就给大家简单分析下这三者的关系,希望大家对这三者的概念理解有所帮助吧。本文主要从下面两类关系来叙述上面三者的关系: 数据库(DB)和数据仓库(DW)的区别与联系 操作数据存储(ODS)和数据仓库(DW)的区别与联系 数据库与数据仓库的区别与联系数据库与数据仓库基础概念:数据库:传统的关系型数据库的主要应用,主要是基本的、日常的 阅读详情

相关推荐

Azure数据库服务比较:SQL Database vs Cosmos DB

结构化数据场景:如订单管理、用户认证等需要强事务支持的业务非结构化/半结构化场景:如物联网设备日志、社交网络数据、实时推荐系统:基于传统关系型数据库(SQL Server)的云原生服务,支持ACID事务和复杂SQL查询Cosmos DB:全球分布式NoSQL数据库,支持多模型(文档、键值、图、宽列)和弹性扩展两者的架构设计哲学有何本质区别?数据建模和查询语言的差异如何影响开发体验?一致性、可用性、吞吐量的权衡模型如何选择?典型业务场景下的选型决策依据是什么?技术原理对比。

AI云原生与云计算技术学院 1970

db2删除大量数据_SQL 基础知识- 数据库与 SQL

目录What's 数据库数据库结构SQL 概要创建数据库与表删除和更新表一、What's 数据库  1.数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。如:大型-银行存储的信息,小型-电话簿。  2.数据库管理系统(Batabase Management System,DBMS):用来管理数据库的计算机系统。  3.关系型数据库(Relatio...

weixin_39809793的博客 1355

数据仓库基本知识

1.BI的含义 BI(Business Intelligence):商业智能。技术层面上讲,是将数据仓库、联机分析处理工具(OLAP)、数据挖掘等技术结合在一起分析数据。业务层面上讲,是将企业数据进行清洗、分析、挖掘,以获得企业经营所需的决策数据。 2.BI的发展 第一阶段:业务报表。静态信息。 第二阶段:数据仓库。建立数据仓库存储业务数据、建立数据集市解决特定专题分析、提供OLAP和统计分析。 第三阶段:商务智能解决方案。客户中心型数据仓库和数据集市、集成复杂的管理工具(OLAP、数据挖掘、评估

huazhongjinguancheng的博客 1782

mysql基础1(基本概念)

概述  数据库(Database,简称DB)   数据库技术是计算机应用领域中非常重要的技术,它产生于20世纪60年代末,是数据管理的最新技术,也是软件技术的一个重要分支。   简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据。更简单的形象理解,数据库和我们生...

weixin_30363817的博客 368

数据库与数据仓库

数据库是一种逻辑概念,用来存放数据的仓库,通过数据库软件来实现。 数据仓库是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,从数据量来说,数据仓库要比数据库更庞大的多。数据仓库主要用于数据挖掘和数据分析,辅助做决策。 数据库 Database (Oracle, Mysql, PostgreSQL)主要用于事务处理,数据仓库 Datawarehouse (Amazon Redshift, Hive)主要用于数据分析。用途上的不同决定了这两种架构的特点不同。 各自特点 数据库(Database)的特点

qq_29258377的博客 6745

SQL高级语句-CREATE DATABASE 用于创建数据库。

CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库。 SQL CREATE DATABASE 语法 CREATE DATABASE database_name SQL CREATE DATABASE 实例 现在我们希望创建一个名为 "my_db" 的数据库。 我们使用下面的 CREATE DATABASE 语句: CREATE

qq_35144470的博客 2861

数据库基础(超详细版)

简介: 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种 用户或应用共享的数据集合。 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软 件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。 用户通过数据库管理系统访问数据库中的数据。 数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。 数据库:存储、维护和管理数据的集合。 三大范式:

m0_60563771的博客 4万+

数据库和数据仓库的区别

数据库是一种用于存储、管理和处理结构化数据的软件系统。它的设计目的是支持大规模的数据持久化和高效的数据检索、插入、更新和删除操作。数据库中的数据通常以表格形式存储,可以通过SQL等查询语言进行访问和操作。数据库通常用于在线事务处理(OLTP)场景,例如管理用户账户、订单、库存等业务数据。

优快云 精品推荐 1686

数据库基础知识

数据库可以实现数据的持久化数据库可以存储的数据量非常庞大数据库中存储的数据类型多变常见的数据库:Oracle,MySQL,SQL Server,DB2,PGSQL;MySQL由瑞典的MySQL AB创立,1995年开发出的MySQL开源的,关系型数据库支持千万级数据量的存储,大型的数据库DB:database,看做是数据库文件,(类似于:.doc,.txt,.mp3,.avi)DBMS:数据库管理系统(类似于word工具,wps工具)

qq_72405586的博客 2788

数据库的基本知识

数据库是用于存储和管理数据的系统,常见类型包括关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB)。在SQL中,数据表的创建使用 CREATE TABLE 语句,插入数据用 INSERT INTO,查询数据常用 SELECT。数据查询涉及七个重要关键词:SELECT(查询)、FROM(指定表)、WHERE(筛选条件)、GROUP BY(分组)、HAVING(筛选分组)、ORDER BY(排序)和 JOIN(连接表)。

u012121721的博客 3370

[Unity实战]热更新如何预防过度裁剪

假设你现在有一个游戏客户端,客户端只打包了入口场景,游戏场景都存放在了AB包。

u012587406的博客 1605

database.db 文件详解:数据库文件在 SQLite 中的作用与使用

本文解析了Python项目中自动生成的database.db文件的作用和使用方法。该文件是SQLite数据库的默认存储文件,包含表结构、数据记录和索引等信息。文章详细介绍了SQLite的存储原理、查看和操作方法(命令行与可视化工具)、备份策略及常见问题解决方案,并强调数据库管理需严谨,避免数据丢失。掌握.db文件的特性能帮助开发者更高效地进行项目调试和数据库维护。

聚焦学生开发者需求,分享课设毕设项目实战经验、系统开发技巧、数据库设计规范及文档排版实用方法。 2399

解决相同型号USB设备在Windows系统中重复枚举问题

本文详细解析了Windows系统中相同型号USB设备重复枚举问题的成因及解决方案。通过修改注册表、使用PsTools工具清除设备记录以及编程实现自动化处理等方法,有效解决设备识别混乱问题,特别适用于自动化测试和工业设备管理场景。

weixin_42561040的博客 565

Redis 单机16个db,集群只有一个的基本知识

Redis 默认提供了 16 个数据库(索引 0 到 15),彼此独立,用于数据隔离

码农研究僧的博客 1909

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5

H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享!

m0_74823947的博客 3096

5分钟搞定阿里云千问大模型API申请:手把手教你获取API Key

本文提供了一份高效的阿里云通义千问大模型API Key获取实战指南。通过清晰的步骤,帮助开发者在五分钟内完成从账号准备、精准导航控制台到创建并验证API Key的全过程,并强调了密钥安全管理和基础调用测试的重要性,助力快速集成AI能力。

ol789012345的博客 1345

AI Meets Database: AI4DB and DB4AI

数据库和人工智能可以相互受益。一方面,人工智能可以使数据库更加智能(AI4DB)。例如,传统的经验数据库优化技术(例如,成本估算、连接顺序选择、旋钮调整、索引和视图顾问)无法满足大规模数据库实例、各种应用程序和多样化用户的高性能要求,尤其是在云上。幸运的是,基于学习的技术可以缓解这个问题。另一方面,数据库技术可以优化人工智能模型(DB4AI)。例如,人工智能很难部署,因为它需要开发人员编写复杂的代码和训练复杂的模型。数据库技术可用于降低使用人工智能模型的复杂性,加速人工智能算法,并在数据库内提供人工智能能力

Syntactic Sugar 3560

Macbook Pro Bootcamp 安装触控板驱动mac-precision-touchpad在Windows系统下实现更好的触控板操作

由于很多软件的限制,所以不得不在Windows和MacOS之间进行切换,然而,Windows下虽然Bootcamp提供了触控板的驱动,然而只能实现简单的上下滑动和点击等操作,而且在滑动页面的时候滑动非常不流畅,体验极差。 今天无意间发现了一款第三方撰写的驱动,可以较为完美地实现Macbook笔记本在Windows系统下的触控板操作支持,通过在我的2015款Macbook Pro(A1502)进行安装测试,感觉体验很不错,在这里分享给大家。 驱动来自于Github上的imbushu,他的项目地址如下: htt

博客 1万+

数据库与数据仓库的区别及关系

数据库是为捕获数据而设计,数据仓库是为分析数据而设计**。数据库和数据仓库都有各自的优势和局限性,它们各自适用于不同的场景。数据库更适合用于快速处理事务性操作,而数据仓库则更适合用于进行复杂的数据分析和查询。它们各自有不同的用途和优化方式,可以根据实际需求选择使用。

qq_43605229的博客 7845

前端埋点的实践

1、前言 开始正文前先介绍一下埋点的概念~,(熟悉的朋友可以略过) 前端埋点: 是一种手段,它的目的是上报相关行为数据,相关人员以数据为依据来分析产品在用户端的使用情况,根据分析出来的结果辅助产品优化、迭代。 BI:商业智能,公司内部做数据分析相关的部门。 2、背景 在流量红利逐渐消失的现在,数据的采集、分析和精细化的运营显得更加重要,所以埋点的需求在互联网产品中是很常见的,目的上面也提到了。我们的追求就是又快又好的做好埋点工作,但是现实却不那么美好;目前我们团队在前端埋点方面存在一些痛点: 在构造埋点字段

Arui_0的博客 1772

FPGA 学习笔记:Vivado 工程更改FPGA 型号

FPGA 学习笔记:Vivado 工程更改FPGA 型号

坚韧与专注 1万+

数据库DB与数据仓库DW区别和联系

数据库(DB)和数据仓库(DW)的区别与联系 数据库与数据仓库基础概念: 数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。 数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLTP和OLAP概念补充: 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line

信竞星球_少儿编程题库 2471

CSP - 2024 普及组初赛试题及解析

CSP - 2024 普及组初赛试题及解析

QD_Jason的博客 2910

5、MySQL修改数据库:ALTER DATABASE用法简介

在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。 在 MySQL 中,可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为: ALTER DATABASE [数据库名] { [ DEFAULT ] CHARACTER SET <字符集名> | [ DEFAULT ] COLLATE <校对规则名>} 语法说明如下: A

you can you up up up的博客 2711

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数据仓库与数据库Day3

面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做 准备。:也称为细节层,DW层的数据应该是一致的、准确的、干 净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。,也可以称面向用户交易的 处理系统,它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。:前端应用直接读取的数据源;仅仅是删除元数据,存储的业务数据并不会被删除。

2301_77954571的博客 2066

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 【leetCode】83.删除排序链表中重复的元素
下一篇: 【数据库】索引知识
jy0921_
博客等级 码龄11年 329粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值