### SQL 21天自学通知识点详述 #### 第一天:SQL简介 - **SQL简史**:SQL(Structured Query Language)是一种用于管理和处理数据库的标准计算机语言。它于1970年代由IBM的研究员E.F. Codd首次提出,并在1986年成为美国国家标准协会(ANSI)的标准,随后在1987年被国际标准化组织(ISO)采纳为国际标准。 - **数据库简史**:数据库技术的发展经历了从层次模型、网络模型到关系模型的转变。20世纪60年代至70年代初,层次模型和网络模型是主流,而自1970年代末以来,关系型数据库管理系统(RDBMS)因其灵活性和易于使用的特性而逐渐占据主导地位。 - **设计数据库的结构**:设计数据库结构是确保数据一致性和完整性的关键步骤。这包括定义数据类型、主键、外键以及表之间的关系等。 - **SQL总览**:SQL主要用于执行以下任务: - 数据查询(SELECT) - 数据操纵(INSERT, UPDATE, DELETE) - 数据定义(CREATE, ALTER, DROP) - 数据控制(GRANT, REVOKE) - **流行的SQL开发工具**: - Oracle SQL Developer - Microsoft SQL Server Management Studio - MySQL Workbench - phpMyAdmin - Toad for Oracle - **SQL在编程中的应用**:SQL可以与其他编程语言(如Java、Python、PHP等)集成使用,通过API或数据库连接器进行交互。 #### 第二天:查询——SELECT语句的使用 - **一般的语法规则**:SELECT语句的基本语法是`SELECT column_name(s) FROM table_name WHERE condition;`。 - **你的第一个查询**:例如,查询`employees`表中所有员工的信息可以写成:`SELECT * FROM employees;`。 - **总结**:通过SELECT语句,我们可以从数据库中提取所需的数据,这是SQL中最常用的操作之一。 #### 第三天:表达式、条件语句与运算 - **表达式**:SQL支持各种类型的表达式,包括算术表达式、字符串表达式和日期时间表达式等。 - **条件语句**:如`IF`语句,在SQL中通常通过`CASE`语句实现。 - **运算**:SQL支持基本的算术运算符(+、-、*、/),逻辑运算符(AND、OR、NOT),以及比较运算符(=、<>、>、<等)。 #### 第四天:函数——对数据的进一步处理 - **汇总函数**:这些函数用于对一组值进行统计分析,如`COUNT()`、`SUM()`、`AVG()`、`MAX()`、`MIN()`等。 - **日期/时间函数**:如`ADD_MONTHS()`、`LAST_DAY()`、`MONTHS_BETWEEN()`等,用于处理日期和时间数据。 - **数学函数**:包括`ABS()`(绝对值)、`CEIL()`和`FLOOR()`(向上/向下取整)、三角函数(`COS()`、`SIN()`等)、指数和对数函数(`EXP()`、`LN()`/`LOG()`)等。 - **字符函数**:如`CHR()`、`CONCAT()`(字符串连接)、`INITCAP()`(首字母大写)、`LOWER()`/`UPPER()`(转换大小写)等,用于处理文本数据。 - **转换函数**:如`TO_CHAR()`(将其他数据类型转换为字符型)、`TO_NUMBER()`(将字符型转换为数字型)等。 #### 第五天:SQL中的子句 - **WHERE子句**:用于指定查询条件,如`WHERE salary > 50000`。 - **ORDER BY子句**:用于对结果集进行排序,如`ORDER BY last_name DESC`。 - **GROUP BY子句**:与聚合函数一起使用,用于按特定列分组数据,如`GROUP BY department_id`。 - **HAVING子句**:与`GROUP BY`一起使用,用于筛选分组后的数据,如`HAVING COUNT(*) > 5`。 #### 第六天:表的联合 - **在一个SELECT语句中使用多个表**:可以通过`JOIN`语句实现表的联合,例如`INNER JOIN`、`LEFT JOIN`等。 - **等值联合**:两个表中基于相同的列值进行匹配。 - **不等值联合**:基于不同的列值进行匹配。 - **外部联合与内部联合**:外部联合包括`LEFT OUTER JOIN`、`RIGHT OUTER JOIN`和`FULL OUTER JOIN`,内部联合即`INNER JOIN`。 - **表的自我联合**:一个表与自身进行联接,常用于处理层次结构数据。 #### 第七天:子查询——内嵌的SQL子句 - **建立一个子查询**:子查询可以在SELECT、WHERE或FROM子句中嵌入另一个查询。 - **在子查询中使用汇总函数**:如`SELECT department_id FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);`。 - **子查询的嵌套**:子查询可以嵌套多层,以满足更复杂的查询需求。 - **相关子查询**:子查询的结果依赖于外部查询的某一行,常用于解决“每个部门的最高工资”等问题。 - **EXISTS、ANY、ALL的使用**:`EXISTS`用于检查是否存在满足条件的行;`ANY`和`ALL`用于比较单个值与子查询返回的一组值。 #### 第一周回顾 本周主要介绍了SQL的基础知识,包括SQL的历史、基本语法、查询语句、数据处理函数、子句的使用以及表的联合和子查询等内容。通过学习这些基础知识,读者能够掌握如何使用SQL进行基本的数据查询和处理。接下来的章节将继续深入探讨SQL的高级功能。
剩余567页未读,继续阅读
- 粉丝: 17
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助