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

SQL概述

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

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

四大功能如下:

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

数据定义

|-------|-------------------------------------------------------------------------------------------------------------------|
| 定义基本表 | CREATE TABLE 表名(列名 数据类型 列级完整性约束条件,......); |
| 修改基本表 | ALTER TABLE 表名,是修改表的结构的 |
| 删除基本表 | DROP TABLE 表名,若别的表应用了此表,则会被一并删除 |
| 建立索引 | 是加快查询速度的有效手段,CREATE [UNIQUE][CLUSTER] 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 用于清空表 |

相关推荐
猫林老师5 分钟前
HarmonyOS线程模型与性能优化实战
数据库·分布式·harmonyos
沃达德软件6 分钟前
视频图像数据库基础服务
数据库·图像处理·人工智能·计算机视觉·视觉检测
唐古乌梁海6 分钟前
【python】在Django中,执行原生SQL查询
python·sql·django
摇滚侠27 分钟前
Spring Boot 3零基础教程,WEB 开发 自定义静态资源目录 笔记31
spring boot·笔记·后端·spring
摇滚侠28 分钟前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 遍历 笔记40
spring boot·笔记·thymeleaf
派可数据BI可视化36 分钟前
商业智能BI 浅谈数据孤岛和数据分析的发展
大数据·数据库·数据仓库·信息可视化·数据挖掘·数据分析
yong999038 分钟前
C#驱动斑马打印机实现包装自动打印
java·数据库·c#
野犬寒鸦1 小时前
从零起步学习MySQL || 第五章:select语句的执行过程是怎么样的?(结合源码深度解析)
java·服务器·数据库·后端·mysql·adb
Chloeis Syntax1 小时前
接10月12日---队列笔记
java·数据结构·笔记·队列
QT 小鲜肉1 小时前
【个人成长笔记】Qt 中 SkipEmptyParts 编译错误解决方案及版本兼容性指南
数据库·c++·笔记·qt·学习·学习方法