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

相关推荐
bug菌¹17 分钟前
滚雪球学Oracle[6.2讲]:Data Guard与灾难恢复
数据库·oracle·data·灾难恢复·guard
一般路过糸.20 分钟前
MySQL数据库——索引
数据库·mysql
Cengineering1 小时前
sqlalchemy 加速数据库操作
数据库
Cikiss1 小时前
微服务实战——平台属性
java·数据库·后端·微服务
NuyoahC1 小时前
算法笔记(十一)——优先级队列(堆)
c++·笔记·算法·优先级队列
小小不董1 小时前
《Linux从小白到高手》理论篇:深入理解Linux的网络管理
linux·运维·服务器·数据库·php·dba
无敌少年小旋风2 小时前
MySQL 内部优化特性:索引下推
数据库·mysql
柒小毓2 小时前
将excel导入SQL数据库
数据库
bug菌¹2 小时前
滚雪球学Oracle[2.5讲]:数据库初始化配置
数据库·oracle·数据库初始化·初始化配置
一休哥助手2 小时前
Redis 五种数据类型及底层数据结构详解
数据结构·数据库·redis