Oracle数据库SQL查询详解:从建表到SELECT语句
下载需积分: 32 | PPT格式 | 3.47MB |
更新于2024-08-15
| 43 浏览量 | 举报
"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中,掌握这些基本操作是进行数据管理和分析的关键。
相关推荐
![filetype](https://img-home.csdnimg.cn/images/20250102104920.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044947.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044930.png)
![filetype](https://img-home.csdnimg.cn/images/20250102104920.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044947.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044937.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044947.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://profile-avatar.csdnimg.cn/a015d3bf24c14f3ca6a175d1214e287d_weixin_42187923.jpg!1)
速本
- 粉丝: 20
最新资源
- 全国街道级别电话区号数据库表(Access格式)
- CryptoJS v3.1.2压缩包:本地调试JS加密库
- VT6530 终端仿真器开源复刻项目
- ASP+access网上人才信息管理系统设计与实现
- IKE-Core:打造一致Kubernetes集群的轻量级开源发行版
- 探索JavaScript在sabsons.github.io的应用实践
- 基于Quartz开源框架的分布式作业调度
- 深度学习基础与工程应用教程概览
- Java开发常用工具类Jar包合集,助力项目复用
- AOP注解必备包:aopalliance、aspectjrt、aspectjweaver1.6.8下载指南
- ASP BS架构下的教师档案管理系统设计与实现
- antiparser-开源工具:网络协议和文件格式的模糊测试专家
- 软件5班李彩虹谈信息素养实践课程的理解与体验
- ASP+ACCESS学生信息管理系统源代码及论文设计
- LockMySeat:实现在线事件票务与场地布局的端到端系统
- Android平台Echats统计图表实现教程