【ORACLE】数据库的查询

一、选择列

1、选择一个表中指定的列

SELECT <列名1> [<列名2>········]

        FORM<表名>

        [WHERE <条件表达式>];

【例】SELECT NAME, ADDRESS, PHONENUMBER FROM EMPLOYEES WHERE SEX=0;

SELECT*,表示选择表的所有列

【例】SELECT*  FROM EMPLOYEES;

2、修改查询结果的标题

可以在列名之后使用AS子句指定一个别名代替查询结果的列标题,也可以省略AS关键字

【例1】SELECT 姓名 AS NAME,地址 AS ADDRESS,电话号码 AS PHONENUMBER FROM EMPLOYEES EHERE SEX=1;

【例2】SEECT NAME 姓名,ADDRESS 住址,PHONENUMBER 电话号码 FROM EMPLOYEES WHERE SEX=1;

3、计算列值

SELECT <表达式>[,<表达式>]

【例】SELECT EMPLOYEEID AS 编号,INCOME-OUTCOME AS 净收入 FROM SALARY;

4、消除重复行

SELECT DISTNCT <列名>[,<列名>....]

二、选择行

在使用字符串和日期数据进行比较时,应注意:

(1)字符串和日期必需用单引号括起来;

(2)字符串区域数据区分大小写;

(3)日期格式是敏感的,默认日期格式是DD-MM月-YY,可使用ALTER SESSION语句将默认日期修改为YYYY-MM-DD。

1、表达式比较

比较运算格式为:

WHERE <表达式1>{=|<|<=|>|>=|!=}<表达式2>

【例】SELECT* FROM EMPLOYEES WHERE SEX=0;

2、模式匹配

LIKE谓词用于指定一个字符串是否与指定的字符串相匹配,运算对象可以是char、varchar2和date类型的数据,返回逻辑值TRUE或FALSE。

LIKE谓词表达格式:

<字符串表达式1> [NOT] LIKE <字符串表达式2> [ESCAPE'<转义字符>']

使用LIKE时,可以使用两个通配符“%”和“_”。在模糊条件中“%”表示多个字符,“_”表示一个字符。

【例1】查询EMPLOYEES表中名字带“容”的电话号码。

SELECT NAME,PHONENUMBERS FROM RMPLOYEES WHERE NAME LIKE '%容%';

【例2】查询EMPLOYEES表中姓“王”且单名的员工情况

SELECT* FROM EMPLOYEES WHERE NAME LIKE '王_';

3、范围比较

用于范围比较的关键字有BETWEEN和IN。

要查询的条件式某个值的范围时,可以用BETWEEN。格式为:

<表达式> [NOT] BETWEEN <表达式1> AND <表达式2>

【例】查询EMPLOYEES表中不在1970到1979年出生的员工情况。

SELECT NAME,BIRTHDAY,ADDRESS,PHONGNUMBER FROM EMPLOYEES WHERE BIRTHDAY NOT BETWEEN TO_DATE('19700101','YYYYMMDD') AND TO_DATE('19791231','YYYYMMDD');

IN关键字可以指定一个值表,值表中列出所有可能的值,当表达式与值表中的任意一个匹配时,即返回TRUE,否则返回FALSE。格式:

<表达式> IN (<表达式>[,....n])

【例】查询EMPLOYEES 表中邮编为“210001”,“210002”,“210003”的员工

SELECT NAME,ZIP FROM EMPLOYEES WHERE ZIP IN(210001,210002,210003);

 4、空值比较

5、子查询

【例】在EMPLOYEES表中查找收入超过5000的员工名单

EXISTS子查询,用于测试子查询的结果是否为空表。

三、链接

1、连接谓词

若在目标列中去除相同的字段名,则为自然连接。

【例】查询数据库中每个员工及其收入情况。

结果表中包含编号相同的EMPLOYEES表中的姓名列和SALARY表中的所有列。

若选择的字段名在各个表中是唯一的,则可忽略字段名前的表名。

【例】

 2、以JOIN关键字指定的链接

(1)内连接

内连接时系统默认的,故可以省去INNER关键字。使用内连接后仍可使用WHERE子句。

内连接还可以用于多个表的连接

格式:FROM <表1> JOIN <表2> JOIN <表3>······

(2)外连接

外连接只能对两个表进行。

外连接的结果不但包含满足连接条件的行,还包括相应表中的所有行。外连接包括以下三种。

·左外链接(LEFT OUTER JOIN):结果表中除了满足连接条件的行外,还包括左表的所有行。

·右外连接(RIGHT OUTER JOIN):结果表中除了满足连接条件的行外,还包括右表所有行。

·完全外连接(FULL OUTER JOIN):结果表中除了满足连接条件的行外,还包括两个表所有行。

以上三种连接中的OUTER关键字可省略。

不满足连接条件的行显示时,相对应的列字段值为NULL。

(3)交叉连接

交叉运算实际上是对两个表进行笛卡尔积运算,结果表行数等于两表行数之积。

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle数据库是一种关系型数据库管理系统,它提供了强大的查询功能来检索和操作存储在数据库中的数据。下面是一些常用的Oracle数据库查询技巧和语法: 1. SELECT语句:用于从数据库中检索数据。可以使用SELECT语句选择特定的列、过滤条件、排序和聚合函数等。 2. WHERE子句:用于在SELECT语句中添加过滤条件,以限制返回的结果集。可以使用比较运算符(如等于、大于、小于等)、逻辑运算符(如AND、OR)和通配符(如LIKE)来构建条件。 3. ORDER BY子句:用于对查询结果进行排序。可以按照一个或多个列进行升序或降序排序。 4. GROUP BY子句:用于将查询结果按照一个或多个列进行分组,并对每个组应用聚合函数(如SUM、AVG、COUNT等)。 5. HAVING子句:用于在GROUP BY子句后添加过滤条件,以限制返回的分组结果。 6. JOIN操作:用于将多个表连接在一起,以便在查询中同时检索相关的数据。常见的JOIN类型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。 7. 子查询:可以在SELECT语句中嵌套一个或多个查询,以便在查询中使用子查询的结果。 8. 联合查询:使用UNION操作符可以将多个SELECT语句的结果合并为一个结果集。 9. 视图:可以创建一个虚拟的表,该表是基于一个或多个表的查询结果。视图可以简化复杂的查询,并提供更好的数据安全性。 10. 索引:可以在数据库表上创建索引,以提高查询性能。索引可以加快数据检索速度,但会增加数据插入、更新和删除的开销。 这些只是Oracle数据库查询的一些基本技巧和语法,还有很多其他高级的查询功能和特性可以进一步探索和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值