Oracle学习:子查询创建表与SQL基础

需积分: 0 0 下载量 160 浏览量 更新于2024-08-15 收藏 1.82MB PPT 举报
"这篇Oracle学习文档主要介绍了如何使用子查询创建新表,以及SQL语言的基础知识,包括基本的SELECT语句、约束、排序、函数、表的管理和操纵、子查询、内置约束、视图和数据库对象的创建。文档强调了在创建新表时,子查询的作用在于提供数据源和结构,新表的完整性规则不会继承原表,只保留数据类型。" 在Oracle数据库中,使用子查询创建表是一种高效的方法,它可以一次性完成表的创建和数据的插入。如文档中的示例所示,`CREATE TABLE dept80 AS SELECT...` 这样的语句会根据SELECT子句的结果创建一个新的表dept80,并将查询结果中的数据插入新表。这里的子查询`SELECT employee_id, last_name, salary*12 ANNSAL, hire_date FROM employees WHERE department_id = 80;` 定义了新表的列和初始数据,新表的列名和数据类型与子查询返回的列对应。 创建表时需遵循一些原则: 1. 必须指定列名,且数量应与子查询中的列匹配。 2. 如果指定了列,列的定义只能包含列名和默认值。 3. 若未指定列,新表的列名将自动与子查询的列名一致。 4. 新表不会继承原表的完整性规则,只继承列的数据类型。 文档还提到了一个特殊情况,即创建与已有表结构相同但不含数据的新表,可以通过一个永假的WHERE子句实现,如`CREATE TABLE COPY_TABLE AS SELECT * FROM employees WHERE 1 = 2;` 这样的语句将创建一个与employees表结构相同但不包含任何数据的新表COPY_TABLE。 在SQL语言基础部分,文档涵盖了以下内容: 1. 基本的SELECT语句:包括选择列、行选择和连接操作。 2. 约束和排序数据:涉及数据的筛选和组织方式。 3. 单行函数:如用于处理单个数据值的函数。 4. 多表显示数据和组函数:如JOIN操作和SUM、AVG等聚合函数。 5. 创建和管理表:涉及CREATE TABLE、ALTER TABLE等语句。 6. 子查询&操纵数据:如何使用子查询进行复杂的数据操作。 7. 内置约束:如NOT NULL、UNIQUE、FOREIGN KEY等。 8. 创建视图:创建虚拟表以简化查询。 9. 其他数据库对象:可能包括索引、触发器、存储过程等。 SELECT语句的基本形式是`SELECT [DISTINCT] column|expression[alias], FROM table;` 允许选择特定的列、执行计算、过滤行等。例如,`SELECT * FROM departments;` 会选择departments表中的所有列,而`SELECT department_id, location_id FROM departments;` 则选择特定的列。SQL语句对大小写不敏感,但为了提高可读性,通常会保持关键词大写。 算术表达式是SQL中重要的一部分,允许进行加、减、乘、除等运算,同时注意运算符的优先级和空值的处理。例如,`SELECT last_name, salary, salary + 300 FROM employees;` 将显示员工姓名和薪水,并为每个员工的薪水增加300。空值(NULL)在计算中具有特殊性,它不等于0或空字符串,与空值相关的运算通常会返回NULL。 这篇文档提供了关于Oracle数据库管理和SQL查询的全面概述,对于初学者或有经验的DBA来说,都是一个宝贵的学习资源。