### SQL自学简明教程知识点梳理 #### 一、SQL简介及历史 - **SQL简史:** - SQL(Structured Query Language,结构化查询语言)最初由IBM在20世纪70年代初开发,用于其SYSTEM R项目。 - 1986年,ANSI(美国国家标准协会)和ISO(国际标准化组织)共同制定了SQL的第一个标准版本。 - 随着技术的发展,SQL经历了多次更新和完善,包括SQL-92、SQL-99、SQL:2003等多个版本。 - **数据库简史:** - 数据库技术起源于20世纪60年代末,最初的数据库管理系统(DBMS)主要采用层次模型或网络模型。 - 1970年,E.F. Codd提出了关系模型的概念,为现代数据库技术奠定了基础。 - 关系型数据库管理系统(RDBMS)逐渐成为主流,支持SQL作为其标准查询语言。 - **设计数据库的结构:** - 在设计数据库之前,需要进行需求分析,明确数据库的目的和使用场景。 - 设计阶段涉及实体关系图(ER图)、规范化等步骤,确保数据的一致性和完整性。 - 规范化过程包括消除冗余数据、确保原子性等原则。 - **SQL总览:** - SQL是一种用于管理关系型数据库的标准语言,可以用于执行查询、更新、删除等操作。 - SQL支持多种数据类型,如字符串、数字、日期/时间等。 - SQL还可以与其他编程语言结合使用,实现更复杂的数据处理逻辑。 - **流行的SQL开发工具:** - Oracle SQL Developer:免费的图形化工具,支持多种数据库。 - MySQL Workbench:MySQL官方提供的集成开发环境。 - Microsoft SQL Server Management Studio:适用于SQL Server的强大工具。 - pgAdmin:PostgreSQL的图形化管理工具。 - DBeaver:跨平台的数据库管理工具。 - **SQL在编程中的应用:** - SQL可以通过编程语言如Java、Python、C#等进行调用,实现动态查询、批量数据处理等功能。 - 通过API接口,可以将SQL集成到Web应用程序、移动应用程序等。 #### 二、查询——SELECT语句的使用 - **一般语法规则:** - SELECT用于选择指定的列。 - FROM指定数据来源的表。 - WHERE子句用于过滤结果集。 - ORDER BY用于排序输出结果。 - **你的第一个查询:** - 示例查询:`SELECT column_name FROM table_name;` - 该查询返回指定表中的所有记录,并仅显示指定的列。 - **常用函数:** - **聚合函数**: - `COUNT(column_name)`: 计算某列非NULL值的数量。 - `SUM(column_name)`: 计算某列的总和。 - `AVG(column_name)`: 计算某列的平均值。 - `MAX(column_name)`: 返回某列的最大值。 - `MIN(column_name)`: 返回某列的最小值。 - `VARIANCE(column_name)`: 计算方差。 - `STDDEV(column_name)`: 计算标准偏差。 - **日期/时间函数**: - `ADD_MONTHS(date, num_months)`: 向日期添加月份数。 - `LAST_DAY(date)`: 返回月份的最后一日。 - `MONTHS_BETWEEN(date1, date2)`: 计算两个日期之间的月份数。 - `NEW_TIME(date, current_time_zone, new_time_zone)`: 转换时区。 - `NEXT_DAY(date, day_of_week)`: 返回指定日期后的下一个工作日。 - `SYSDATE`: 返回当前系统日期。 - **数学函数**: - `ABS(number)`: 返回绝对值。 - `CEIL(number)`, `FLOOR(number)`: 向上取整/向下取整。 - `COS(number)`, `SIN(number)`, `TAN(number)`: 三角函数。 - `EXP(number)`: 指数函数。 - `LN(number)`, `LOG(number)`: 对数函数。 - `MOD(dividend, divisor)`: 求模。 - `POWER(base, exponent)`: 幂运算。 - `SIGN(number)`: 符号函数。 - `SQRT(number)`: 平方根。 - **字符函数**: - `CHR(integer)`: 返回对应的ASCII字符。 - `CONCAT(string1, string2, ...)`: 连接字符串。 - `INITCAP(string)`: 将字符串首字母大写。 - `LOWER(string)`, `UPPER(string)`: 转换为小写/大写。 - `LPAD(string, length, pad_string)`, `RPAD(string, length, pad_string)`: 左/右填充。 - `LTRIM(string, trim_string)`, `RTRIM(string, trim_string)`: 左/右修剪。 - `REPLACE(source_string, search_string, replace_string)`: 替换字符串。 - `SUBSTR(string, start, length)`: 获取子字符串。 - `TRANSLATE(source_string, search_string, replace_string)`: 字符替换。 - `INSTR(string, substring[, start])`: 查找子字符串位置。 - `LENGTH(string)`: 返回字符串长度。 - **转换函数**: - `TO_CHAR(value, format)`: 将数值或日期转换为字符串。 - `TO_NUMBER(string[, format_mask])`: 将字符串转换为数值。 - **其他函数**: - `GREATEST(value1, value2, ...)` 和 `LEAST(value1, value2, ...)`: 分别返回最大值和最小值。 - `USER`: 返回当前用户的名称。 - **子句的综合应用:** - **WHERE子句**:用于筛选符合条件的行。 - **STARTING WITH子句**:用于字符串前缀匹配。 - **ORDER BY子句**:按指定顺序排序结果集。 - **GROUP BY子句**:将结果集分组。 - **HAVING子句**:对分组结果进行过滤。 #### 三、表的联合 - **在一个SELECT语句中使用多个表**:通过INNER JOIN、LEFT JOIN等方式将多个表组合在一起。 - **等值联合**:连接条件是相等的。 - **不等值联合**:连接条件不是简单的等于关系。 - **外部联合与内部联合**:外部联合(LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN)保留至少一侧表的所有记录;内部联合(INNER JOIN)只保留两侧表的公共记录。 - **表的自我联合**:一个表与自身连接。 #### 四、子查询 - **建立一个子查询**:子查询可以嵌套在其他查询中,用于过滤或提供数据源。 - **在子查询中使用汇总函数**:子查询可以包含聚合函数,如COUNT、SUM等。 - **子查询的嵌套**:子查询可以包含多层嵌套。 - **相关子查询**:子查询的结果依赖于外层查询的每一行。 - **EXISTS、ANY、ALL的使用**:这些关键字用于比较子查询的结果与外层查询的行。 #### 五、操作数据 - **数据操作语句**:INSERT、UPDATE、DELETE等用于增加、修改、删除数据。 - **插入语句**:`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);` - **UPDATE语句**:`UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;` - **DELETE语句**:`DELETE FROM table_name WHERE condition;` #### 六、创建和操作表 - **CREATEDATABASE语句**:创建新的数据库。 - **CREATETABLE语句**:创建新表。 - **ALTERTABLE语句**:修改现有表的结构。 - **DROPTABLE语句**:删除表。 - **DROPDATABASE语句**:删除数据库。 以上内容涵盖了《SQL自学简明教程》的主要知识点,通过学习这些内容,读者可以掌握SQL的基础知识和高级功能,为进一步的学习和发展打下坚实的基础。


















剩余567页未读,继续阅读



- 粉丝: 0
- 资源: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 管家婆辉煌食品版TOP+12.71.zip
- 基于COMSOL的电弧磁流体多场耦合仿真模型:电弧放电与MHD模拟分离过程研究,COMSOL电弧磁流体动网格仿真模型:电弧放电与多场耦合模拟分离过程研究,COMSOL电弧磁流体仿真模型,电弧放电仿真
- struts2ognl说明
- 企业FPGA AHB verilog全套IP源代码:ic设计验证与soc开发的学习宝库,企业FPGA AHB verilog全套源代码解析与应用级实现,学习IC设计与SOC开发的宝藏资源,企业大厂应用
- 自适应动态协议驱动的线性多智能体系统分布式一致性优化策略,线性多智能体系统的自适应动态协议分布式一致性技术研究,具有自适应动态协议的线性多智能体系统分布式一致性 ,核心关键词:自适应动态协议;线性多智
- Screenshot_2025-02-19-13-41-21-257_net.csdn.csdnplus.jpg
- 管家婆辉煌食品版TOP+12.81.zip
- 管家婆辉煌食品版TOP+12.91.zip
- 管家婆辉煌食品版TOP+13.1.zip
- 基于MATLAB的路径规划算法改进:人工势场法解决目标不可达问题详解,内含对比展示图集,改进人工势场法解决Matlab路径规划中的目标不可达问题:从斥力到引力势场的改进展示,matlab路径规划算法
- 双馈电机模型下的高效预测控制技术,双馈电机模型精准预测控制技术:策略、方法与实现,双馈电机模型预测控制 ,双馈电机; 模型预测控制; 控制系统设计; 电机控制技术,双馈电机模型预测控制技术
- 批量将视频ts格式转换为mp4格式的软件
- 最小领导者数分配问题在非线性多智能体有向网络一致性中的重要性探究,非线性多智能体有向网络一致性领导者数分配策略优化研究,非线性多智能体有向网络一致性的最小领导者数分配 ,最小领导者数分配;非线性多智能
- gradle-8.12-bin.zip
- 管家婆辉煌食品版TOP+13.22.zip
- 永磁直驱式风力发电系统Simulink仿真模型:直驱风机与光伏并网综合研究,直驱风机Simulink仿真模型与永磁直驱风力发电系统整体Matlab/Simulink分析-含2018-2021不同版本


