Oracle入门(十三A)之Select

一、数据查询语句
(1)select语句完整的句法
select 目标表的列名或列表达式序列
from 基本表名和(或)视图序列
[ where 行条件表达式 ]
[ group by 列名序列
 [ having 组条件表达式 ] ]

[ order by 列名[ asc|desc ],… ]

(2)SQL语句的书写方式
  • SQL 语句不区分大小写
  • 关键字不能简写或分行
  • 子句通常分行书写
  • SELECT,FROM必须有

(3)DUAL 表

select sysdate from dual;

DUAL 表具有一个称为“X”的行,一个称为“DUMMY”的列。

DUAL 表用于创建SELECT 语句并执行不与特定数据库表直接相关的命令。

(4)列别名

  • 可用来重命名列标题
  • 有助于计算
  • 紧跟在列名后面
  • 列名和别名之间可以具有可选的关键字AS
  • 如果别名包含空格、特殊字符或者区分大小写,则需要将别名放在双引号中

(5)NULL
在SQL 中,NULL 是一个有趣的词。要了解NULL,您必须先弄清楚NULL 是什么以及NULL 不是什么。
Null 指不可用、未分配、未知或不适用的值。

  • Null 不同于零或空格。在SQL 中,零是一个数字,而空格是一个字符。
  • 在条件语句中判断是否为null  is null / is not null

(6)LIKE

  • 百分比(%) 和下划线(_) 这两个符号称为通配符
  • 当需要完全匹配含有% 或_ 字符的字符串时,需要指出% 或_ 不是通配符,而是搜索项的一部分。ESCAPE 选项反斜杠(\) 用来表示_ 或% 是名称的一部分,而不是通配符值。

(7)替代变量

  • 有时,可能需要以多个不同的值运行同一查询,以获得不同的结果集。试想一下,如果您需要查一个一个的用户的信息,每次都要编写类似的语句,会不会很麻烦呢?
  • &变量名

注意:仅用于SQL *Plus或者用于原理和SQL *Plus相同的开发工具

注:Oracle中的替换变量,&变量名,&&变量名

(8)单行函数

select to_char(sysdate,'yyyy"年"mm"月"dd"日"') from dual;

注:Oracle之单行函数


二、多表格查询

定义
将两个或两个以上的表格,按照一定的关系连接起来进行查询。
多表格查询分类

  • 连接查询
  • 嵌套查询
  • 集合查询


三、连接查询

(1)等值连接查询

SELECT table1.column, table2.column,...,
 tablen.column
FROM table1, table2,..., tablen
WHERE table1.column1 = table2.column2
 ..
 and tablen-1.column1 = tablen.column2;
– 指定列所属的表格
– 列出所有要查询的表
– 表格关系在Where中指出,n个表有n-1个等值关系式

(2)两表连接查询例子

 查询商品信息,显示类型名称。

select gname,gtname,gprice,gstocks 
from t_goods,t_gtype
where t_goods.gtid=t_gtype.gtid;
(3)外连接
 查询结果包含不符合连接条件的元组
左外连接:
select pmid,pdate,sname,pstate from t_main_procure
a,t_supplier b where a.sid=b.sid(+);


四、嵌套查询

 定义:将一个查询语句嵌套在另一个查询语句的Where或Having中的查询

语法:

select select_list
from table
where expr operator
(select select_list

 from table);

查询本月有进货记录的供应商信息

select sid, sname 
from t_supplier
where sid in (select sid from
t_main_procure
where  to_char(pdate,'yyyymm')=to_char(sysdate,'yyyymm'));


五、集合查询
定义:多个SELECT语句的结果进行
集合操作
分类

  • 并操作 UNION
  • 交操作 INTERSECT
  • 差操作 MINUS

(1)并操作 UNION
得到前后两个查询结果的和
UNION-查询结果不包括重复值

select pmid, sname, pdate, pdate, pamount , ’采购’
from t_main_procure a, t_supplier b 
where a.sid=b.sid
union
select omid,uname, odate,oamount,ostate,’订单’
from t_main_order a, t_user b 
where a.uiid=b.uiid;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值