【ORACLE】数据库的查询

打印 上一主题 下一主题

主题 495|帖子 495|积分 1485







一、选择列

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)交叉毗连

交叉运算现实上是对两个表进行笛卡尔积运算,效果表行数便是两表行数之积。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表