sql 21自学通

preview
需积分: 0 0 下载量 48 浏览量 更新于2015-04-23 收藏 2.54MB PDF 举报
### SQL 21自学通知识点概述 #### 一、SQL简介与历史 - **SQL简史**:SQL(Structured Query Language)是一种用于管理关系数据库的标准语言。它最初由IBM的三位研究人员于1974年提出,后来经过标准化组织如ANSI(American National Standards Institute)和ISO(International Organization for Standardization)的发展和完善。 - **数据库简史**:数据库技术始于20世纪60年代,随着计算机技术的发展,经历了层次模型、网络模型到当前广泛使用的关系模型的演变过程。 #### 二、设计数据库的结构 - **设计原则**:在设计数据库时,需考虑数据的一致性、完整性和安全性。常用的数据库设计方法包括ER(Entity-Relationship)模型、规范化理论等。 - **SQL总览**:SQL支持多种类型的数据操作,包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等。 #### 三、流行的SQL开发工具 - **主流工具**:包括MySQL Workbench、SQL Server Management Studio、Oracle SQL Developer等。这些工具提供了图形界面,方便用户进行数据库设计、查询编写以及数据管理。 - **SQL在编程中的应用**:SQL广泛应用于各种编程语言中,通过API(Application Programming Interface)与应用程序进行交互,实现数据存储、检索等功能。 #### 四、SELECT语句的使用 - **语法结构**:`SELECT`语句用于从数据库中检索数据。基本格式为`SELECT column1, column2 FROM table_name WHERE condition;`。 - **第一个查询示例**:例如,查询`employees`表中所有员工的名字和工资,可以使用如下语句:`SELECT name, salary FROM employees;`。 #### 五、表达式与条件语句 - **条件表达式**:`WHERE`子句用于过滤结果集,例如`WHERE salary > 5000`。 - **运算符**:包括算术运算符(+、-、*、/、%)、比较运算符(=、!=、<、>、<=、>=)等。 #### 六、SQL函数详解 - **汇总函数**: - `COUNT`:计算行数。 - `SUM`:计算数值之和。 - `AVG`:计算平均值。 - `MAX`:找出最大值。 - `MIN`:找出最小值。 - `VARIANCE`:计算方差。 - `STDDEV`:计算标准偏差。 - **日期/时间函数**: - `ADD_MONTHS`:添加月份。 - `LAST_DAY`:获取指定日期所在月份的最后一日。 - `MONTHS_BETWEEN`:计算两个日期之间的月份数。 - `NEW_TIME`:改变时区。 - `NEXT_DAY`:查找下一个工作日。 - `SYSDATE`:获取系统当前日期和时间。 - **数学函数**: - `ABS`:取绝对值。 - `CEIL`和`FLOOR`:向上或向下取整。 - `COS`、`SIN`、`TAN`:三角函数。 - `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子句**:用于模式匹配。 - **ORDER BY子句**:排序结果集。 - **GROUP BY子句**:分组数据。 - **HAVING子句**:对分组后的数据进行过滤。 #### 八、表的联合 - **联合类型**: - **等值联合**:连接相同列的表。 - **不等值联合**:连接不同列的表。 - **外部联合与内部联合**:外部联合包括左外联接、右外联接等;内部联合即内联接。 - **自我联合**:同一张表的不同别名之间的联接。 #### 九、子查询 - **子查询概念**:子查询是在另一个查询内部执行的查询。 - **子查询的使用**: - 在`WHERE`子句中使用子查询。 - 使用汇总函数进行子查询。 - 子查询的嵌套。 - 相关子查询。 - 使用`EXISTS`、`ANY`、`ALL`关键字。 #### 十、操作数据 - **数据操作语句**: - `INSERT`:插入数据。 - `UPDATE`:更新数据。 - `DELETE`:删除数据。 - **导入和导出数据**:支持从不同数据源导入数据,并能够导出数据到外部文件或数据库。 #### 十一、创建和操作表 - **CREATE DATABASE语句**:创建数据库。 - **CREATETABLE语句**:创建表。 - **ALTERTABLE语句**:修改表结构。 - **DROPTABLE语句**:删除表。 - **DROPDATABASE语句**:删除数据库。 #### 十二、创建视图和索引 - **视图**:视图是基于一个或多个表的虚拟表,提供了一种逻辑上的数据抽象。 - **索引**:索引用于提高数据检索的速度,常见的有B树索引、哈希索引等。 以上内容涵盖了《SQL 21自学通》的核心知识点,通过这些内容的学习,读者可以系统地掌握SQL的基本概念、语法及实际应用技巧。