选择 SQL 还是 NoSQL,不是一个谁更好的问题,而是一个 “更适合” 的问题。
《1》当你需要构建一个关键业务系统(如银行、电商、ERP),其中数据的准确性和一致性是生命线,并且业务逻辑复杂、涉及大量关联查询时,SQL 数据库是毋庸置疑的首选。
《2》当你需要处理海量非结构化数据、要求极高的写入速度和无限的水平扩展能力(如日志记录、社交媒体的动态流、物联网传感器数据),并且可以接受最终一致性时,NoSQL 数据库是更好的选择
数据库是现代信息系统的核心它可以用在很多情况下它无处不在:
《1》电子商务:存储商品、用户、订单信息。
《2》银行系统:管理账户、交易记录。
《3》社交网络:存储用户资料、好友关系、动态信息。
《4》物联网:收集和处理海量传感器数据。
《5》企业ERP系统:整合企业的人力、财务、供应链等数据。
首先,我们SQL语言的全称是结构化查询语言,它分为四类DDL(数据定义语言),DML(作用: 操作表的数据),DQL(作用: 查询表中的数据),DCL
一,DDL(数据定义语言)
创建数据库:create database [if not exists] 库名;
创建表(含字段):create table [if not exists] 表名(
字段名 字段类型 [字段约束] ,
...
);
二,DML(作用: 操作表的数据)
插入数据:insert into 表名(字段名...) values (字段值...) ;
更新数据:update 表名 set 字段名 = 新值 [where 条件];
删除数据:delete from 表名 [where 条件] ;
三,DQL(作用: 查询表中的数据)
基础查询:select 字段名 from 表名;
条件查询:select 字段名 from 表名 where 条件(比较,逻辑运算符,范围查询,模糊查询,非空判断);
聚合查询:select 聚合函数(字段名) from 表名;
分组查询:select 分组字段名,聚合函数(字段名) from 表名 [where 非聚合条件] group by 分组字段名 [having 聚合条件];
排序查询:select 字段名 from 表名 where 条件 order by 排序字段名 asc | desc;
limit查询:select 字段名 from 表名 where 条件 order by 排序字段名 asc | desc limit x,y;
SQL顺序:书写顺序:select -> 聚合函数 -> from -> where -> group by -> having ->order by -> limit
执行顺序:from -> where -> group by -> 聚合函数 -> having -> select -> order by -> limit
多表查询:本质就是先把多个表连接(join)成一个表,再去查询