欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

《Oracle 入门教程》 简单查询语句

程序员文章站 2022-09-06 18:32:38
本篇介绍如何在 Oracle 中使用 SELECT 语句查询单个表中的数据,包括查询指定的字段、查询全部字段、使用表达式或者函数、通过列别名设置字段标题以及在查询语句中使用注释。...

本篇介绍如何使用SELECT语句查询单个表中的数据。

4.1 查询指定字段

在 Oracle 中,使用SELECT语句查询表中的数据,基本语法如下:

SELECT column1, column2, ... 
FROM table_name;

其中,SELECT表示查询,后面是需要返回的字段,多个字段使用逗号分隔;FROM表示要从哪个表中进行查询;分号表示 SQL 语句的结束。

????SELECTFROM称为 SQL 关键字。关键字不区分大小写,建议大写,便于阅读;表名和字段名等标识符一般小写。关于 SQL 编程风格,可以参考这篇文章

例如,以下查询返回了员工表中的姓名和性别字段:

SELECT emp_name, sex
FROM employee;

EMP_NAME|SEX |
--------|----|
刘备     ||
关羽     ||
张飞     ||
...

Oracle 中存储的表名和字段名都使用大写字母表示,返回的结果也使用大写形式。

4.2 查询全部字段

如果想要查看员工的所有字段信息,可以使用以下查询语句:

SELECT emp_id, emp_name, sex, dept_id, manager,
       hire_date, job_id, salary, bonus, email
FROM employee;

EMP_ID|EMP_NAME|SEX |DEPT_ID|MANAGER|HIRE_DATE          |JOB_ID|SALARY|BONUS|EMAIL              |
------|--------|----|-------|-------|-------------------|------|------|-----|-------------------|
     1|刘备     ||      1|       |2000-01-01 00:00:00|     1| 30000|10000|liubei@shuguo.com  |
     2|关羽     ||      1|      1|2000-01-01 00:00:00|     2| 26000|10000|guanyu@shuguo.com  |
     3|张飞     ||      1|      1|2000-01-01 00:00:00|     2| 24000|10000|zhangfei@shuguo.com|
...

以上查询在 SELECT 关键字之后列出了员工表中的全部字段。

另一种快速返回全部字段的方法就是使用星号(*)表示:

SELECT *
FROM employee;

EMP_ID|EMP_NAME|SEX |DEPT_ID|MANAGER|HIRE_DATE          |JOB_ID|SALARY|BONUS|EMAIL              |
------|--------|----|-------|-------|-------------------|------|------|-----|-------------------|
     1|刘备     ||      1|       |2000-01-01 00:00:00|     1| 30000|10000|liubei@shuguo.com  |
     2|关羽     ||      1|      1|2000-01-01 00:00:00|     2| 26000|10000|guanyu@shuguo.com  |
     3|张飞     ||      1|      1|2000-01-01 00:00:00|     2| 24000|10000|zhangfei@shuguo.com|
...

Oracle 服务器在接收到星号时会自动替换为上面的全部字段。

⚠️星号可以便于快速编写一些临时查询,但是在实际项目中不要使用这种写法。因为应用程序可能并不需要所有的字段,避免返回过多的无用数据;另外,当表结构发生变化时,星号返回的信息也会发生改变。

4.3 使用表达式

除了查询表中的字段之外,SELECT 查询列表还支持基于字段的算术运算、函数和表达式等。例如:

SELECT emp_name, salary * 12 + bonus
FROM employee;

EMP_NAME|SALARY*12+BONUS|
--------|---------------|
刘备     |         370000|
关羽     |         322000|
张飞     |         298000|
...

其中,salary * 12 + bonus 是一个表达式,计算了员工一年的总收入。

以下示例是 Oracle 中常见的一种查询方式:

SELECT current_date, 1 + 1
FROM dual;

CURRENT_DATE       |1+1|
-------------------|---|
2020-11-02 20:47:08|  2|

其中,dual 是 Oracle 为了快速查找信息和进行计算提供的一个虚拟表,它只有一个字段且只包含一行数据;current_date 是一个系统函数,返回了当前的日期和时间。

4.4 设置一个新标题

Oracle 默认返回的字段标题有时候不方便理解,尤其是使用了表达式或者函数之后。为了提高查询结果的可读性,可以使用别名(alias)为字段指定一个临时的名称。我们为上一节中的示例指定一些更好理解的标题:

SELECT emp_name AS "员工姓名", salary * 12 + bonus "全年收入"
FROM employee;

员工姓名|全年收入|
------|-------|
刘备   |370000 |
关羽   |322000 |
张飞   |298000 |
...

Oracle 中使用关键字AS指定字段的别名,可以省略;别名一般通过双引号进行引用。在 SQL 语句中使用别名不会修改数据库中存储的表名或者列名,别名只在当前语句中有效。

⚠️除了字段别名之外,Oracle 还支持为查询语句中的表指定一个别名,我们将会在多表连接查询中进行介绍。

4.5 查询中的注释

在 SQL 语句中可以像其他编程语言一样使用注释;注释可以方便我们理解代码的作用,但是不会被 Oracle 服务器执行。

Oracle 中的注释分为单行注释和多行注释。单行注释以两个连字符(--)开始,直到这一行结束。例如:

-- Oracle 列别名的使用案例
SELECT emp_name AS "员工姓名", salary * 12 + bonus "全年收入"
FROM employee;

多行注释使用 C 语言风格的注释方法(/* … */),例如:

/* 备注:Oracle 列别名的使用案例
   作者:TonyDong
   日期:2020-11-02
*/
SELECT emp_name AS "员工姓名", salary * 12 + bonus AS "全年收入"
FROM employee;

多行注释之间可以嵌套其他的单行注释,但是不能嵌套其他的多行注释。

本文地址:https://blog.csdn.net/horses/article/details/109286615