Oracle之SELECT语句

1.SELECT语句

select * from t_c11_dxmb;

(1)SELECT关键字后面需要跟要查询的列名,如果要查询该表中的所有列,可以使用*来代替所有的列名,然后跟着FROM关键字,FROM关键字后面紧跟着要查找字段所在的表的表名,最后用分号;来结束该条SQL语句。
(2)数据库返回的所有行叫做结果集result set
(3)oracle数据库将列名全部转化为大写形式
(4)字符和日期列都是左对齐
(5)数字列默认右对齐
(6)默认情况下,Oracle数据库以DD-MON-YY的形式显示日期,DD是日,MON是月的前三个大写字母,YY是年份的最后两位,实际数据库会存储年份的4位数字,只是默认的显示最后两位。
示例如下:
这里写图片描述
2.where 子句
在SELECT后面可以加WHERE子句,用来限定查询的结果集
比如我要查询姓名为xs的学生:

select * from t_c11_zyryda where xm='xs'

3.行标识符
在ORACLE中每一行都有一个唯一的行标识符,叫做rowid,ORACLE数据库内部使用rowid来存储行的物理位置,rowid是一个18位的数字,采用了base-64编码。

select rowid from t_c11_zyryda where xm='xs'

查询的是姓名为xs的学生这行的rowid:
这里写图片描述
4.DESCRIBE命令
该命令可以用来查看数据表的结构
如下图所示:
这里写图片描述
其中也可以使用DESC命令,可以达到同样的效果,如下图所示:
这里写图片描述
所以,如果要查看某张表的表结构,可以在comman 命令里面输入DESC或者DESCRIBE命令 ,后面加上表名,就可以查看该表的结构。
5.行号
上面提到了行标识符,下面说行号,在ORACLE数据库中,每条记录都是有一个行号ROWNUM的,它返回每一行在结果集中的行号,查询返回第一行的行号是1,第二行是2,剩下的以此类推。
效果如下图:
这里写图片描述
6.算术运算
在SQL语句中也是可以进行算术运算的,加减乘除,算术表达式由两个操作数和一个操作符组成(+.-,*,/)
比如:这里写图片描述
7.日期运算
可以对日期进行加减法,数字表示加上或者减去的天数,比如:
8.dual表
有时候我们会在实践或者书上看到select sysdate from dual;但是dual表示什么意思?可能有人就会使用,但是不知道原因。
(1)dual表经常与返回值的函数和表达式连用,不需要在查询中引用基础表,但是如果某个表达式中引用了某个基础表中的列,此时就不可以再使用dual表
(2)dual表的结构
这里写图片描述
可以从截图中看出来,dual表只有一列,名字为DUMMY,类型为VARCHAR2,可以为NULL
(3)dual表的内容
这里写图片描述
从截图可以看出DUAL表中只有一个数据,DUMMY列包含了一个字符X
9.列运算
操作数可以是字面数字,可以是日期,也可以是表中的列,可以对表中的列直接进行运算,比如:

 SELECT NAME,PRICE*2 FROM PRODUCT;

10.算术运算符的优先级
(1)乘法和除法优先,然后是加减法,如果操作符的优先级相同,那么运算的顺序从左到右
(2)可以使用括号来指定操作符的执行顺序
11.使用列的别名
(1)从table中选择一列时,ORACLE在输出结果中使用该列列名的大写形式作为列的标题。
这里写图片描述
(2)如果需要在别名中使用空格并保持别名文本大小写形式,就必须使用""将别名文本括起来,比如:
这里写图片描述
12.使用连接符||合并字段
假设表结构是这样设计的,每个学校对应一个学校编码,一个学校编码对应一个学校名字,如果我在一个单元格中要显示出来学校编码和学校名称,此时应该如何达到这种效果?
可以采用||连接符,对于字段进行拼接。效果如下:
这里写图片描述
13.空值
(1)空值不是空的字符串,是一种特殊存在的值,空值表示该列的值未知。
(2)当查询一个包含空值的列的时候,看到的结果是该列中不包含任何内容。
(3)检索的时候判断是否为空可以使用IS NULL子句。

SELECT * FROM SCHOOL WHERE ADDRESS IS NULL;

14.DISTINCT关键字
如果查找的结果显示不需要有重复数据出现,可以使用DISTINCT关键字来去重,比如:

SELECT DISTINCT PRODUCT_NAME FROM PRODUCT;

在这里插入图片描述

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值