### SQL语句大全知识点概述 #### 一、SQL简介与历史 - **SQL简史**:SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。它最初由IBM的Raymond Boyce和Donald Chamberlin在1970年代提出,并在1986年被国际标准化组织(ISO)采纳为标准。 - **数据库简史**:数据库技术的发展经历了从层次模型到网络模型再到当前广泛使用的关系模型的过程。SQL是关系型数据库管理系统中最常用的语言。 #### 二、SQL总览 - **基本概念**:SQL主要用于执行以下几种主要功能: - 数据查询(SELECT) - 数据定义(CREATE, ALTER, DROP) - 数据操纵(INSERT, UPDATE, DELETE) - 数据控制(GRANT, REVOKE) #### 三、SELECT语句详解 - **一般语法规则**:SELECT语句的基本格式为`SELECT column_name(s) FROM table_name WHERE condition;`。其中,`column_name(s)`表示要选择的列名,`table_name`是要查询的数据表名,`condition`是查询条件。 - **第一个查询示例**:例如,查询员工表中的所有记录可以使用如下SQL语句:`SELECT * FROM employees;` #### 四、表达式、条件语句与运算 - **表达式**:SQL中的表达式可以包含数值、字符串、变量或常量以及算术、比较、逻辑等运算符。 - **条件语句**:使用`WHERE`子句来指定查询条件。例如,查询工资大于5000的员工信息:`SELECT * FROM employees WHERE salary > 5000;` #### 五、函数:对数据的进一步处理 - **汇总函数**: - `COUNT`: 计算行数。 - `SUM`: 计算数值列的总和。 - `AVG`: 计算数值列的平均值。 - `MAX`与`MIN`: 分别计算数值列的最大值和最小值。 - `VARIANCE`与`STDDEV`: 计算数值列的方差和标准差。 - **日期/时间函数**: - `ADD_MONTHS`: 向日期添加月份数。 - `LAST_DAY`: 返回月份最后一天的日期。 - `MONTHS_BETWEEN`: 计算两个日期之间的月份数。 - `NEW_TIME`: 转换时区。 - `NEXT_DAY`: 返回下一次指定日期的日期。 - `SYSDATE`: 获取当前系统日期。 - **数学函数**: - `ABS`: 绝对值。 - `CEIL/FLOOR`: 向上/向下取整。 - `COS/COSH/SIN/SINH/TAN/TANH`: 三角函数。 - `EXP`: 指数函数。 - `LN/LOG`: 对数函数。 - `MOD`: 取模运算。 - `POWER`: 幂运算。 - `SIGN`: 符号函数。 - `SQRT`: 平方根。 - **字符函数**: - `CHR`: ASCII码转字符。 - `CONCAT`: 字符串连接。 - `INITCAP`: 首字母大写。 - `LOWER/UPPER`: 转换大小写。 - `LPAD/RPAD`: 左右填充。 - `LTRIM/RTRIM`: 删除左右空白。 - `REPLACE`: 替换字符或子串。 - `SUBSTR`: 字符串截取。 - `TRANSLATE`: 字符串替换。 - `INSTR`: 查找子串位置。 - `LENGTH`: 字符串长度。 - **转换函数**: - `TO_CHAR`: 将数字或日期转换为字符串。 - `TO_NUMBER`: 将字符串转换为数字。 - **其他函数**: - `GREATEST/LEAST`: 最大/最小值函数。 - `USER`: 获取当前用户名。 #### 六、SQL中的子句 - **WHERE子句**:用于过滤结果集。 - **STARTING WITH子句**:特定于Oracle数据库,用于模式匹配。 - **ORDER BY子句**:根据指定的列排序结果集。 - **GROUP BY子句**:将结果集按一个或多个列进行分组。 - **HAVING子句**:对GROUP BY的结果进行过滤。 #### 七、表的联合 - **在一个SELECT语句中使用多个表**:通过JOIN关键字实现表的联合。 - **等值联合**:连接条件为等式的联合。 - **不等值联合**:连接条件为不等式的联合。 - **外部联合与内部联合**:分别对应外连接和内连接。 - **表的自我联合**:同一表的不同实例之间的联合。 #### 八、子查询 - **建立一个子查询**:在SELECT、WHERE或其他子句中嵌入的查询。 - **在子查询中使用汇总函数**:例如`SELECT * FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);` - **子查询的嵌套**:子查询可以嵌套在另一个子查询中。 - **相关子查询**:子查询依赖于外层查询中的某个值。 - **EXISTS、ANY、ALL的使用**:这些关键字用于简化子查询的编写。 #### 九、操作数据 - **数据操作语句**:主要包括插入(INSERT)、更新(UPDATE)、删除(DELETE)操作。 - **插入语句**: - `INSERT VALUES`:向表中插入单行或多行数据。 - `INSERT SELECT`:从一个表复制数据到另一个表。 - **更新语句**:修改表中已有的数据。 - **删除语句**:删除表中的数据。 - **从外部数据源中导入和导出数据**:支持多种格式的数据导入导出。 #### 十、创建和操作表 - **CREATEDATABASE语句**:创建新的数据库。 - **CREATETABLE语句**:创建新表。 - **ALTERTABLE语句**:修改现有表的结构。 - **DROPTABLE语句**:删除表。 - **DROPDATABASE语句**:删除整个数据库。 #### 十一、创建视图和索引 - **使用视图**:视图可以看作是一个虚拟表,其结果来自由定义视图的查询所提取的数据。 - **列的重命名**:通过AS关键字重新命名视图中的列名称。 - **SQL对视图的处理过程**:视图的创建并不实际存储数据,而是存储了查询语句本身。 以上内容详细介绍了SQL的基础知识及进阶技巧,涵盖了从简单的数据查询到复杂的表操作等多个方面,适合初学者和有一定基础的学习者深入学习。
剩余567页未读,继续阅读
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言和汇编语言的简单操作系统内核.zip
- (源码)基于Spring Boot框架的AntOA后台管理系统.zip
- (源码)基于Arduino的红外遥控和灯光控制系统.zip
- (源码)基于STM32的简易音乐键盘系统.zip
- (源码)基于Spring Boot和Vue的管理系统.zip
- (源码)基于Spring Boot框架的报表管理系统.zip
- (源码)基于树莓派和TensorFlow Lite的智能厨具环境监测系统.zip
- (源码)基于OpenCV和Arduino的面部追踪系统.zip
- (源码)基于C++和ZeroMQ的分布式系统中间件.zip
- (源码)基于SSM框架的学生信息管理系统.zip