Oracle数据库SQL查询详解:从建表到SELECT语句

需积分: 32 3 下载量 60 浏览量 更新于2024-08-15 收藏 3.47MB PPT 举报
"Oracle数据库Sql语句详解,主要聚焦于建表语法以及SELECT查询操作" 在Oracle数据库管理系统中,创建表是构建数据模型的基础步骤。建表语法允许用户定义新的表格结构,包括列名、数据类型以及约束条件。以下是详细的建表语法: ```sql CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], ... [table_constraint]); ``` 这里,`schema` 是可选的,用于指定表所属的模式或用户,`table` 是要创建的表的名称,`column` 是表中的列名,`datatype` 是该列的数据类型,如 VARCHAR2, NUMBER, DATE 等。`DEFAULT expr` 允许为列设置默认值,如果在插入数据时没有提供,则使用这个默认值。`column_constraint` 和 `table_constraint` 分别用于定义列级约束和表级约束,如 NOT NULL(不允许为空),UNIQUE(唯一性),PRIMARY KEY(主键),FOREIGN KEY(外键)等。 在查询数据方面,`SELECT` 查询是SQL中最基础也是最常用的操作。它用于从一个或多个表中检索信息。以下是一些基本的 `SELECT` 查询示例: ```sql -- 查询s_emp表中的所有员工信息 SELECT * FROM s_emp; -- 查询s_emp表中所有员工的部门ID和工资 SELECT dept_id, salary FROM s_emp; -- 计算s_emp表中所有员工的年薪(假设salary是月工资) SELECT salary * 12 AS annual_salary FROM s_emp; ``` 在上述示例中,`*` 代表选择所有列,`AS` 关键字用于给查询结果的字段起别名,方便理解。`FROM` 后面的 `s_emp` 是要查询的表名。在计算年薪时,我们使用了算术表达式,`*` 表示乘法。注意,当有多个运算符在同一行中时,可以使用括号来控制运算的优先级。 例如,如果我们想在年薪基础上增加100,有两种不同的方法: 1. 先将工资乘以12,然后加上100: ```sql SELECT last_name, salary, 12 * salary + 100 FROM s_emp; ``` 2. 或者先将工资加上100,然后乘以12: ```sql SELECT last_name, salary, 12 * (salary + 100) FROM s_emp; ``` 这两种方法的结果可能会因为运算顺序的不同而略有差异,尤其是当涉及浮点数和精度问题时。 通过这些基本的 `SELECT` 查询和算术运算,我们可以根据需要组合复杂的查询,包括使用WHERE子句进行条件筛选,GROUP BY进行分组,HAVING进行分组后的筛选,以及JOIN操作连接多张表等。在Oracle SQL中,掌握这些基本操作是进行数据管理和分析的关键。