三、计算机理论-关系数据库-结构化查询语言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 用于清空表 |

相关推荐
小宇的天下3 小时前
Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)
服务器·前端·数据库
星空露珠3 小时前
速算24点检测生成核心lua
开发语言·数据库·算法·游戏·lua
历程里程碑3 小时前
Linux15 进程二
linux·运维·服务器·开发语言·数据结构·c++·笔记
what丶k3 小时前
SpringBoot3 缓存抽象深度实践:Caffeine+Redis多级缓存,穿透/雪崩/击穿防御全方案
数据库·redis·缓存
咖啡の猫3 小时前
Redis简单介绍
数据库·redis·缓存
-XWB-3 小时前
【Oracle】Oracle诊断系列(4/6):表空间与对象管理——存储优化与空间规划
数据库·oracle
山峰哥4 小时前
SQL优化全解析:从索引策略到查询性能飞跃
大数据·数据库·sql·编辑器·深度优先
葫三生4 小时前
存在之思:三生原理与现象学对话可能?
数据库·人工智能·神经网络·算法·区块链
不凉帅4 小时前
NO.6 数据库设计基础知识
数据库·分布式数据库·软考·数据库设计
TOOLS指南4 小时前
谷歌AI Gemin怎么使用?Gemini国内使用指南!
数据库·微软