### 数据库整套开发技术支持 #### 一、概述 本文档旨在总结并提炼一份由Oracle公司内部培训课程中获得的数据库开发技术参考资料的核心知识点。该资料最初为2018年的Oracle Academy培训课程编写而成,内容围绕Oracle数据库展开,同时计划增加MySQL数据库的相关内容以及深入探讨事务管理和Oracle的PL/SQL部分。 #### 二、用户和权限 - **用户管理**:介绍如何创建、修改和删除数据库用户账户。 - **权限分配**:解释不同类型的权限(如SELECT、INSERT等),以及如何将这些权限授予特定用户或角色。 - **角色管理**:介绍如何创建角色并将权限分配给角色,以及如何将角色授予用户。 #### 三、数据查询 - **简单查询**: - **查询全部数据**:使用`SELECT * FROM 表名;`来获取表中的所有列。 - **算术运算**:支持基本的算术运算符(+、-、*、/)。 - **列的别名**:使用AS关键字或直接在列名后面跟新名字,例如`SELECT 列名 AS 新名字 FROM 表名;`。 - **合并列的输出结果**:使用逗号`,`来组合多个列。 - **处理空值**:使用`IS NULL`和`IS NOT NULL`来检查空值。 - **DISTINCT关键字**:去除重复的数据行。 - **数据过滤**: - **比较运算符**:包括`=、!=、<>、>、<、>=、<=`。 - **SQL运算符**:如`IN、LIKE、BETWEEN`。 - **逻辑运算符**:如`AND、OR、NOT`。 - **数据分组**: - **组函数**:包括`COUNT、SUM、AVG、MAX、MIN`等。 - **GROUP BY子句**:按照指定列对数据进行分组。 - **HAVING子句**:对GROUP BY后的结果进行过滤。 - **数据排序**:使用`ORDER BY`子句按升序或降序排列数据。 #### 四、管理表 - **表的概念**:理解表的基本结构和组成部分。 - **命名规则**:遵循数据库命名约定,确保名称具有可读性和易于理解。 - **数据类型**:介绍常见的数据类型,如VARCHAR、INT、DATE等。 - **创建表**: - **创建标准表**:使用`CREATE TABLE`语句。 - **创建临时表**:用于存储临时数据。 - **通过查询从一个表创建另一个表**:使用`CREATE TABLE ... AS SELECT ...`。 - **查看表的系统信息**:使用`DESCRIBE`或`SHOW COLUMNS FROM 表名`。 - **更改表**: - **增加列**:使用`ALTER TABLE 表名 ADD COLUMN 列名 类型`。 - **更改列**:使用`ALTER TABLE 表名 MODIFY COLUMN 列名 新类型`。 - **删除列**:使用`ALTER TABLE 表名 DROP COLUMN 列名`。 - **添加注释**:使用`COMMENT`关键字添加列级注释。 - **重新命名表**:使用`RENAME TABLE`语句。 - **删除表**:使用`DROP TABLE`语句。 - **截断表**:使用`TRUNCATE TABLE`语句快速清空表内容。 #### 五、约束 - **数据完整性**: - **实体完整性**:确保每个表有一个主键。 - **参照完整性**:维护表之间的关系,确保引用完整性。 - **域完整性**:限制列的有效值范围。 - **用户自定义的完整性**:自定义规则来进一步限制数据的有效性。 - **维护约束条件**: - **非空约束**:使用`NOT NULL`确保列不能包含NULL值。 - **唯一性约束**:使用`UNIQUE`确保列或列组合的唯一性。 - **主键约束**:使用`PRIMARY KEY`定义主键。 - **外键约束**:使用`FOREIGN KEY`定义表间关系。 - **检查约束**:使用`CHECK`定义数据的有效范围。 - **默认约束**:使用`DEFAULT`设置默认值。 - **管理约束**:包括创建、删除、启用和禁用约束。 #### 六、操作数据 - **插入数据**:使用`INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);`。 - **默认值**:可以使用`DEFAULT`关键字指定列的默认值。 - **使用引号**:字符串值需要使用引号括起来。 - **使用`INSERT SELECT`插入数据**:从一个表中选择数据插入到另一个表中。 - **批量插入**:一次性插入多行数据。 - **更新数据**:使用`UPDATE 表名 SET 列名 = 新值 WHERE 条件;`。 - **删除数据**:使用`DELETE FROM 表名 WHERE 条件;`。 #### 七、高级查询 - **多表查询**: - **表的别名**:简化查询语句,提高可读性。 - **笛卡尔积**:如果没有指定连接条件,则两个表的每一条记录都会相互组合。 - **内连接**:仅返回两个表中匹配的记录。 - **外连接**:包括左外连接和右外连接,返回一个表的所有记录以及另一个表中匹配的记录。 - **自连接**:在一个表中根据某个条件将自己与自身进行连接。 - **子查询**: - **单行子查询**:子查询返回单个值。 - **多行子查询**:子查询返回多个值。 - **多列子查询**:子查询返回多列。 - **关联子查询**:子查询依赖于外部查询中的某个值。 - **嵌套子查询**:子查询可以嵌套在其他子查询中。 - **分页查询**:使用`LIMIT`和`OFFSET`来实现数据分页。 #### 八、常用函数 - **日期函数**: - **获取时间**:使用`CURRENT_TIMESTAMP`等函数获取当前时间。 - **查询时区**:使用`SESSION_TIME_ZONE`等函数查询时区。 - **日期转换**:使用`TO_DATE`、`TO_CHAR`等函数进行日期格式转换。 - **日期计算**:使用`DATE_ADD`、`DATE_SUB`等函数进行日期加减运算。 - **单行函数**: - **单行数学函数**:如`ABS`、`CEIL`等。 - **单行字符函数**:如`LENGTH`、`SUBSTR`等。 - **单行转换函数**:如`TO_CHAR`、`TO_NUMBER`等。 - **其他单行函数**:如`NVL`、`DECODE`等。 - **组函数**:如`COUNT(*)`统计记录总数等。 #### 九、其他对象 - **序列**: - **创建序列**:使用`CREATE SEQUENCE 序列名 START WITH 初始值 INCREMENT BY 步长;`。 - **使用序列**:使用`NEXTVAL`和`CURRVAL`获取序列的下一个值和当前值。 - **更改序列**:使用`ALTER SEQUENCE`语句修改序列属性。 以上内容覆盖了数据库整套开发技术的主要方面,从基本的数据查询到复杂的表管理、数据操作和高级查询技巧,旨在帮助读者全面掌握数据库开发的关键技能。
剩余63页未读,继续阅读
- 粉丝: 31
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- x64dbg-development-2022-09-07-14-52.zip
- 多彩吉安红色旅游网站-JAVA-基于springBoot多彩吉安红色旅游网站的设计与实现
- 本 repo 包含使用新 cv2 接口的 OpenCV-Python 库教程.zip
- 更新框架 (TUF) 的 Python 参考实现.zip
- Qos,GCC,pacing,Nack
- 章节1:Python入门视频
- 无需样板的 Python 类.zip
- ESP32 : 32-bit MCU & 2.4 GHz Wi-Fi & BT/BLE SoCs
- 博物馆文博资源库-JAVA-基于springBoot博物馆文博资源库系统设计与实现
- 旅游网站-JAVA-springboot+vue的桂林旅游网站系统设计与实现