梦见你的名字 发表于 2024-8-14 12:57:24

【ORACLE】数据库的查询

https://img-blog.csdnimg.cn/direct/b251c5135e9748a885fed686d8aa87f6.png
https://img-blog.csdnimg.cn/direct/06e4f875f3b64dbaa4c0f73a38047844.png

https://img-blog.csdnimg.cn/direct/35b49c8e343f4c0a98c4be382fafdf3c.png
https://img-blog.csdnimg.cn/direct/49d302c94558418ab0525c3658dbbe48.png

一、选择列

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

SELECT <列名1> [<列名2>········]
        FORM<表名>
        ;
【例】SELECT NAME, ADDRESS, PHONENUMBER FROM EMPLOYEES WHERE SEX=0;
https://img-blog.csdnimg.cn/direct/2fc56075ade447d8bebb1781458293a0.png
SELECT*,表示选择表的所有列
【例】SELECT*  FROM EMPLOYEES;
https://img-blog.csdnimg.cn/direct/9f9749455e63488792aa09f9a589e4c4.png
2、修改查询效果的标题

可以在列名之后利用AS子句指定一个别名代替查询效果的列标题,也可以省略AS关键字
【例1】SELECT 姓名 AS NAME,地点 AS ADDRESS,电话号码 AS PHONENUMBER FROM EMPLOYEES EHERE SEX=1;
https://img-blog.csdnimg.cn/direct/fb204c10503e41d5a568585321d4b09e.png
【例2】SEECT NAME 姓名,ADDRESS 住址,PHONENUMBER 电话号码 FROM EMPLOYEES WHERE SEX=1;
https://img-blog.csdnimg.cn/direct/f77ad794748d4712a918cd9ade6f1d83.png
3、盘算列值

SELECT <表达式>[,<表达式>]
【例】SELECT EMPLOYEEID AS 编号,INCOME-OUTCOME AS 净收入 FROM SALARY;
https://img-blog.csdnimg.cn/direct/517454d738134f1cb21628a5724bbf27.png
4、消除重复行

SELECT DISTNCT <列名>[,<列名>....]
二、选择行

在利用字符串和日期数据进行比力时,应留意:
(1)字符串和日期必须用单引号括起来;
(2)字符串区域数据区分大小写;
(3)日期格式是敏感的,默认日期格式是DD-MM月-YY,可利用ALTER SESSION语句将默认日期修改为YYYY-MM-DD。
1、表达式比力

比力运算格式为:
WHERE <表达式1>{=|<|<=|>|>=|!=}<表达式2>
【例】SELECT* FROM EMPLOYEES WHERE SEX=0;
https://img-blog.csdnimg.cn/direct/2fc56075ade447d8bebb1781458293a0.png
2、模式匹配

LIKE谓词用于指定一个字符串是否与指定的字符串相匹配,运算对象可以是char、varchar2和date范例的数据,返回逻辑值TRUE或FALSE。
LIKE谓词表达格式:
<字符串表达式1> LIKE <字符串表达式2>
利用LIKE时,可以利用两个通配符“%”和“_”。在模糊条件中“%”表示多个字符,“_”表示一个字符。
【例1】查询EMPLOYEES表中名字带“容”的电话号码。
SELECT NAME,PHONENUMBERS FROM RMPLOYEES WHERE NAME LIKE '%容%';
https://img-blog.csdnimg.cn/direct/508511050b9b4dcd9f7f44932611232e.png

【例2】查询EMPLOYEES表中姓“王”且单名的员工情况
SELECT* FROM EMPLOYEES WHERE NAME LIKE '王_';
https://img-blog.csdnimg.cn/direct/4fe9039807cf4faf9313b472532beeb0.png
3、范围比力

用于范围比力的关键字有BETWEEN和IN。
要查询的条件式某个值的范围时,可以用BETWEEN。格式为:
<表达式> 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');
https://img-blog.csdnimg.cn/direct/948bb4a5e7a84df6bfbd7144efc77550.png
IN关键字可以指定一个值表,值表中列出所有可能的值,当表达式与值表中的恣意一个匹配时,即返回TRUE,否则返回FALSE。格式:
<表达式> IN (<表达式>[,....n])
【例】查询EMPLOYEES 表中邮编为“210001”,“210002”,“210003”的员工
SELECT NAME,ZIP FROM EMPLOYEES WHERE ZIP IN(210001,210002,210003);
https://img-blog.csdnimg.cn/direct/2b41457c81f44599b25e1d5c3305be08.png
 4、空值比力

https://img-blog.csdnimg.cn/direct/e1c802dd163a4f7abc2986241f2069ff.png
5、子查询

【例】在EMPLOYEES表中查找收入超过5000的员工名单
https://img-blog.csdnimg.cn/direct/57bec62724794fabb02b1a08ce3439f1.png
EXISTS子查询,用于测试子查询的效果是否为空表。
https://img-blog.csdnimg.cn/direct/78319ca1f68c4c7083b089b056178b7b.png
三、链接

1、毗连谓词

若在目的列中去除相同的字段名,则为自然毗连。
【例】查询数据库中每个员工及其收入情况。
https://img-blog.csdnimg.cn/direct/dcd84021575c40708d3dbadefb5f8fc9.png
效果表中包含编号相同的EMPLOYEES表中的姓名列和SALARY表中的所有列。
若选择的字段名在各个表中是唯一的,则可忽略字段名前的表名。
【例】
https://img-blog.csdnimg.cn/direct/681f0f55a12d469485058b4f6746fb18.png
 2、以JOIN关键字指定的链接

(1)内毗连

https://img-blog.csdnimg.cn/direct/caafa60d359d406181db6e6d0a7d5a30.png
内毗连时系统默认的,故可以省去INNER关键字。利用内毗连后仍可利用WHERE子句。
https://img-blog.csdnimg.cn/direct/84c571634972424f998f3d80d12ae728.png
内毗连还可以用于多个表的毗连
格式:FROM <表1> JOIN <表2> JOIN <表3>······
(2)外毗连

外毗连只能对两个表进行。
外毗连的效果不光包含满意毗连条件的行,还包罗相应表中的所有行。外毗连包罗以下三种。
·左外链接(LEFT OUTER JOIN):效果表中除了满意毗连条件的行外,还包罗左表的所有行。
·右外毗连(RIGHT OUTER JOIN):效果表中除了满意毗连条件的行外,还包罗右表所有行。
·完全外毗连(FULL OUTER JOIN):效果表中除了满意毗连条件的行外,还包罗两个表所有行。
以上三种毗连中的OUTER关键字可省略。
https://img-blog.csdnimg.cn/direct/e8feedcabf0347e0acbb40d92a24ef5a.png
不满意毗连条件的行显示时,相对应的列字段值为NULL。
(3)交叉毗连

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【ORACLE】数据库的查询