### 21天SQL自学通知识点详述 #### 第一天:SQL简介与历史 - **SQL简史**:SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言,首次出现在20世纪70年代初,由IBM的研究员Donald D. Chamberlin和Raymond F. Boyce开发。 - **数据库简史**:数据库技术的发展经历了层次模型、网状模型到现在的主流关系型数据库管理系统(RDBMS)。SQL随着关系型数据库的发展而逐渐成为事实上的标准。 - **设计数据库的结构**:设计数据库时需要考虑实体、属性、关系等因素,并使用ER模型进行抽象表示。通过合理的表设计和规范化,确保数据的一致性和完整性。 - **SQL总览**:SQL主要用于执行查询、更新、删除和管理数据库的操作。包括了DDL(Data Definition Language)、DML(Data Manipulation Language)、DQL(Data Query Language)等组成部分。 - **流行的SQL开发工具**:如MySQL Workbench、SQL Server Management Studio、Oracle SQL Developer等,它们提供了友好的用户界面和强大的功能支持。 #### 第二天:查询基础——SELECT语句 - **一般的语法规则**:SELECT语句的基本格式为`SELECT column1, column2 FROM table_name WHERE condition;`。 - **你的第一个查询**:示例:`SELECT name, age FROM students WHERE age > 18;` 这条语句将从`students`表中选取所有年龄大于18岁的学生的名字和年龄。 - **总结**:理解SELECT语句的基本构成和如何根据特定条件选择数据是学习SQL的基础。 #### 第三天:表达式、条件语句与运算 - **表达式**:在SQL中,可以使用各种算术运算符(+、-、*、/等)以及比较运算符(=、<、>等)来进行计算和比较。 - **条件语句**:例如`CASE WHEN`语句可用于根据不同的条件返回不同的结果。 - **运算**:掌握基本的算术运算和逻辑运算对于构建复杂的查询非常有用。 #### 第四天:函数及其应用 - **汇总函数**: - **COUNT**:计算非NULL值的数量。 - **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**、**CONCAT**、**INITCAP**、**LOWER/UPPER**、**LPAD/RPAD**、**LTRIM/RTRIM**、**REPLACE**、**SUBSTR**、**TRANSLATE**、**INSTR**、**LENGTH**。 - **转换函数**: - **TO_CHAR**:将数字或日期转换为字符串。 - **TO_NUMBER**:将字符串转换为数字。 - **其它函数**: - **GREATEST/LEAST**:分别返回一组值中的最大值和最小值。 - **USER**:返回当前用户的用户名。 #### 第五天:SQL中的子句 - **WHERE子句**:用于过滤记录,只显示满足指定条件的行。 - **STARTING WITH子句**:用于在某些SQL方言中进行模糊匹配,类似于LIKE语句。 - **ORDER BY子句**:按一个或多个列的升序(ASC)或降序(DESC)排序结果集。 - **GROUP BY子句**:用于结合聚合函数,对每一组执行计算。 - **HAVING子句**:与GROUP BY一起使用,用于过滤分组后的结果。 #### 第六天:表的联合 - **在一个SELECT语句中使用多个表**:通过INNER JOIN、LEFT JOIN、RIGHT JOIN等方式连接不同表的数据。 - **等值联合**:连接两个表中具有相同值的行。 - **不等值联合**:当连接条件不是简单的相等时使用。 - **外部联合与内部联合**:外部联合包括左外联接、右外联接等,而内部联接就是普通的联接操作。 - **表的自我联合**:即自联接,用于检索同一表中不同行的数据。 #### 第七天:子查询 - **建立一个子查询**:在另一个查询的WHERE子句或其他位置嵌入一个查询。 - **在子查询中使用汇总函数**:可以在子查询中使用COUNT、SUM等汇总函数,作为外层查询的过滤条件。 - **子查询的嵌套**:子查询可以嵌套在其他子查询中。 - **相关子查询**:子查询的结果依赖于外部查询的每一行。 - **EXISTS、ANY、ALL的使用**:这些关键字用于简化查询,特别是当需要检查某个条件是否至少满足一次或多于一次时。 #### 第八天:操作数据 - **数据操作语句**:包括INSERT、UPDATE、DELETE等,用于向表中插入、更新和删除数据。 - **插入语句**: - **INSERT VALUES语句**:直接插入具体值。 - **INSERT SELECT语句**:从一个表中复制数据到另一个表。 - **UPDATE语句**:更新表中的现有记录。 - **DELETE语句**:删除表中的记录。 - **从外部数据源中导入和导出数据**:介绍如何将数据从其他数据库系统(如Microsoft Access、SQL Server等)导入或导出。 #### 第九天:创建和操作表 - **CREATEDATABASE语句**:用于创建新的数据库。 - **建立数据库时的选项**:可以设置数据库的各种参数。 - **设计数据库**:包括确定实体、属性、关系等。 - **建立数据字典**:记录数据库中的所有对象的信息。 - **建立关键字段**:定义主键和其他唯一标识符。 - **CREATETABLE语句**:用于创建新的表,并指定表的结构。 - **ALTERTABLE语句**:修改现有的表结构。 - **DROPTABLE语句**:删除表。 - **DROPDATABASE语句**:删除整个数据库。 #### 第10天:创建视图和索引 - **使用视图**:视图可以看作是一个虚拟表,用于简化复杂查询或者保护敏感数据。 - **列的重命名**:在视图中可以重新命名列,使得查询更加直观。 - **SQL对视图的处理过程**:了解视图是如何被解析和执行的。 - **创建索引**:索引用于提高查询性能,尤其是对于大型数据库来说尤为重要。 以上内容涵盖了《21天SQL自学通》一书中前10天的主要知识点,通过系统学习这些内容,可以帮助初学者快速入门并掌握SQL的基本操作。
- 粉丝: 6
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助