三、计算机理论-关系数据库-结构化查询语言SQL

SQL概述

是一种介于关系代数与关系演算之间的语言,现成为关系数据库的标准语言

特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式(直接使用或者嵌入高级语言使用)、语言简洁,易学易用。

四大功能如下:

|-------|----------------------|
| SQL功能 | 动词 |
| 数据查询 | SELECT |
| 数据定义 | CREATE,DROP,ALTER |
| 数据操纵 | INSERT,UPDATE,DELETE |
| 数据控制 | GRANT,REVOKE |

数据定义

|-------|-------------------------------------------------------------------------------------------------------------------|
| 定义基本表 | CREATE TABLE 表名(列名 数据类型 列级完整性约束条件,......); |
| 修改基本表 | ALTER TABLE 表名,是修改表的结构的 |
| 删除基本表 | DROP TABLE 表名,若别的表应用了此表,则会被一并删除 |
| 建立索引 | 是加快查询速度的有效手段,CREATE UNIQUECLUSTER INDEX <索引名> ON TABLE UNIQUE表示该索引的每一个索引值只对应唯一的数据元组 CLUSTER表示建立的索引是聚簇索引 |
| 删除索引 | DROP INDEX <索引名>; |

数据查询

SQL提供了SELECT用于数据库的查询操作

|----------|----------------------------------------|
| WHERE | 根据WHERE的条件表达式,从FROM子句指明的表或视图中查询满足条件的元组 |
| GROUP BY | 用于按指定的列的值进行分组,该列值相等的元组为一个组 |
| HAVING | 若GROUP BY子句中带有HAVING短语,则只有满足条件的组才会被显示 |
| ORDER BY | 用于按指定列的值进行排序,默认是ASC |

单表查询

查询列的操作,对应关系代数中的投影运算;查询行的操作,对应关系代数中的选择运算

|------------|---------------------------|
| 查询指定列 | |
| 查询全部列 | |
| 查询经过计算的值 | COUNT(*)是统计元组的个数 |
| 消除取值重复的元组 | 在列名前加DISTINCT可消除查询结果中重复元组 |
| 查询满足条件的元组 | 注意:_匹配单字符,%匹配多字符 |
| ORDER BY子句 | |
| GROUP BY子句 | |
| HAVING | 作用对象是组,从中选择满足条件的组 |

连接查询(主要查询)

是指一次查询同时涉及两个及以上表

|--------|-----------------|
| 等值连接查询 | |
| 外连接查询 | |
| 自身连接查询 | 是指将一个表看成逻辑上的多个表 |

嵌套查询

将一个查询块嵌套在另一个查询块中的查询成为嵌套查询;子查询的SELECT语句中不能使用ORDER BY子句,因为其只能对最终查询结果进行排序;求解方法是自里向外处理

|---------------|---|
| 包含IN的子查询 | |
| 包含比较运算符的子查询 | |
| 包含ANY或ALL的子查询 | |

数据更新(操纵)

针对是里面的元组数据进行更新

|------|----------------------------------------------|
| 插入数据 | INSERT INTO 表名 VALUES(); |
| 修改数据 | UPDATE 表名 SET 列名 = ? WHERE ?; |
| 删除数据 | DELETE FROM 表名 WHERE?; TRUNACATE TABLE 用于清空表 |

相关推荐
一隅论数智13 小时前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
这个DBA有点耶14 小时前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G14 小时前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备14 小时前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远15 小时前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
深圳老胡15 小时前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
Because_of_Her116 小时前
并查集-听课笔记
笔记·算法·并查集
漂着的圆木16 小时前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
彧azz16 小时前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
2601_9622186116 小时前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法