SQL语言之数据库

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

        SQL最初是在1970年代初期在IBM开发的。最初,它被称为SEQUEL(结构化英语查询语言),后来被更改为SQL(发音为SQL)。SQL于1987年成为ISO标准。

什么是关系数据库

        关系型数据库(Relational Database)是一种基于关系模型的数据库管理系统,其核心思想是将数据组织成二维表(Table),并通过表之间的关联关系来管理数据。它是目前应用最广泛的数据库类型之一,典型的代表包括 MySQL、PostgreSQL、Oracle 和 SQL Server。

核心特点

  1. 结构化存储
    数据以表(Table)的形式存储,每张表由行(Row)和列(Column)组成:

         行:代表一条具体记录(如一个用户的详细信息);列:定义数据的属性(如用户ID、姓名、年龄等)。
-- 示例:用户表
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    email VARCHAR(100)
);

      2. 关系与约束

                主键(Primary Key):唯一标识表中的每一行(如 id)。

                外键(Foreign Key):建立表之间的关联(如订单表引用用户表的 id)。

                约束(Constraints):如唯一性、非空、默认值等,确保数据完整性。

     3.SQL(结构化查询语言)

        通过 SQL(Structured Query Language) 操作数据,支持增删改查(CRUD)和复杂分析:

-- 查询年龄大于30的用户姓名和邮箱地址
SELECT name, email FROM users WHERE age > 30;

      4.ACID事务 

        保证操作的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),适用于金融、交易等关键场景。 

关系型数据库的优缺点

优点缺点
数据一致性高(ACID支持)扩展性有限(横向扩展复杂)
复杂查询能力强(JOIN、子查询)处理海量数据时性能可能下降
支持事务和回滚预定义的表结构不够灵活
成熟度高,工具生态完善非结构化数据(如JSON)支持较弱

常见关系型数据库

数据库特点
MySQL开源、轻量级,适合Web应用
PostgreSQL支持JSON、GIS等高级特性,扩展性强
Oracle企业级功能完善,成本高
SQL Server深度集成微软生态,商业场景常用

什么是非关系数据库 

        非关系型数据库(NoSQL,Not Only SQL)是一种非结构化、分布式的数据库系统,专为应对大规模数据和高并发场景设计。与传统关系型数据库(RDBMS)不同,NoSQL 不强制使用固定的表结构,而是通过灵活的数据模型(如键值对、文档、图等)存储数据,适合处理海量、动态或半结构化数据。典型代表包括 MongoDB(文档型)、Redis(键值型)、Cassandra(列族型)和 Neo4j(图数据库)。

核心特点

  1. 灵活的数据模型

    • 支持多种数据格式:无需预定义表结构,可动态扩展字段。

    • 示例:MongoDB 的文档型存储(JSON格式):

      {
        "_id": "user123",
        "name": "Alice",
        "age": 28,
        "tags": ["tech", "music"],
        "address": { "city": "Beijing", "zip": "100001" }
      }
  2. 分布式架构

    天然支持水平扩展(通过分片和副本集),适合处理PB级数据和高并发请求。
  3. 最终一致性(BASE理论)

    弱化一致性要求,遵循 BASE(Basically Available, Soft state, Eventual consistency),以提升可用性和性能。
  4. 高性能

    针对特定场景优化(如内存数据库 Redis 可达每秒百万级读写)。

常见非关系型数据库与适用场景

类型数据模型典型产品适用场景
键值型Key-Value 键值对Redis, DynamoDB缓存、会话管理、计数器(如购物车)
文档型JSON/BSON 文档MongoDB, CouchDB内容管理、用户配置(如用户画像)
列族型列族(按列存储)Cassandra, HBase时序数据、日志存储(如物联网设备数据)
图数据库节点与关系组成的图Neo4j, ArangoDB社交网络、推荐系统(如好友关系分析)

非关系数据库的优缺点

优点缺点
高扩展性(分布式架构)不支持复杂事务(如多文档事务)
灵活适应数据结构变化查询能力有限(尤其跨文档/跨表查询)
高性能(读写优化)数据一致性较弱(最终一致性)
适合海量数据存储学习成本高(不同NoSQL类型差异大)

关系型 vs 非关系型数据库

维度关系型数据库非关系型数据库(NoSQL)
数据结构严格的表结构灵活(文档、键值、列族、图等)
扩展性垂直扩展(提升单机性能)水平扩展(分布式集群)
一致性强一致性最终一致性(BASE理论)
典型场景事务处理、复杂查询高并发读写、大数据存储
代表产品MySQL, PostgreSQLMongoDB(文档型), Redis(键值型)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值