06-Oracle简单查询

SQL简单查询

Oracle Select语句的作用是在表单中查询数据,SELECT语句非常复杂,由许多子句组成,如ORDER BY,GROUP BY,HAVING,JOIN。 为了简单起见,在本章节中,我们只关注SELECT和FROM子句的用法

语法

select  列名1 , 列名2  , .......  from  表名;
查询     列名1 , 列名2  , .......  从    数据表/数据源;

SELECT
  column_1, 
  column_2, 
  ...
FROM
  table_name;
  
  在这个SELECT语句中:

   	● 首先,需要指定要查询数据的表名。

   	● 其次,指定想要返回数据的列。 如果需要返回多个列,则需要用逗号(,)将这些列分隔。

关键字

select 子句:

​	可跟数据源中的某些具体的字段,函数,常量,*,在子句中的内容决定了要查询结果的内容,列数等,但不会影响函数,期中 “ *  ” ,代指数据源中所有的列。

from  子句:

​	可跟数据源,数据源包括表,子查询,视图等

示例

为了方便大家更加了解和掌握Oracle Select语句,下面为大家带来一些示例代码。

查询单个数据

select empno from emp;

image-20210722094602565

查询多个数据

select empno,SAL,JOB from emp;

image-20210722094657816

select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp; -- 查询所有的列
select * from emp;  -- 为了方便可以使用 * 代表所有的列

image-20210722094534730

image-20210722093850573

Tips:请注意,应尽量避免使用星号(*)进行测试。 在实践中,即使想要从表的所有列中检索数据,也应该明确指定要从中查询数据的列。

这是因为业务变化,表格未来可能会有更多或更少的列。 如果在应用程序代码中使用星号(*),并假定该表有一组固定的列,但应用程序可能不处理其他不相关的列或访问已删除的列。

数据类型

Oracle中的数据类型有:字符型、数字型、日期型等。

数值类型

数值型:可用于存储整数、浮点数。

--例:123 ,12.2566

日期类型

date:包含Year(年)、Month(月) 、Day(天)、Hour(时)、Minutes(分)、Second(秒)。

--例:2021/8/2

字符类型

字符:键盘上可输入的值,英文输入法的字符占一位,汉字在utf-8字符集中,占3个字符。

字符串:多个字符连起来的值如:a,b,abc,abc123。

常量:一经定义,它的值不会被改变,用单引号包含。

'常量'  -- 常量   
select '常量' from emp; --查询后,字段名带有引号 , 表内容为常量名

image-20210802161418283

null值

​NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,NULL并不是一个确定的值。

​因为NULL值表示未知,所以不能比较两null值的大小,并且对null的算数运算得出的结果也是不确定的值,也为null(空值)

所以,很多时候会这样总结NULL,除了IS NULL、IS NOT NULL以外,对NULL的任何操作的结果还是NULL。

隐式转化

在Oracle中,字符类型的数字会自动与数值类型相互转化

select * from emp where empno = '7499'; -- empno为数字类型 '7499'纯数字的字符类型 两者会自动转换

image-20210803151732279

隐式转换是ORACLE自己去处理的,有一些规则:(了解)

--1、对于INSERT和UPDATE操作,oracle会把插入值或者更新值隐式转换为字段的数据类型。

/*2、对于SELECT语句,oracle会把字段的数据类型隐式转换为变量的数据类型,例如:假设id列的数据类型为varchar2 ,
     select * from t where id=1,
     这里的id会自动转为number型。一个字符型和一个number型比较,ORACLE会把字符型转换成number,
     当一个字符型和一个日期型比较,ORACLE会把字符型转换成日期型(如果可以,即字符的格式符合session定义的nls_date_format),不然会报错。*/

--3、如果调用函数或过程等时,如果输入参数的数据类型与函数或者过程定义的参数数据类型不一致,则oracle会把输入参数的数据类型转换为函数或者过程定义的数据类型。

--4、赋值时,oracle会把等号右边的数据类型转换为左边的数据类型。

--5、用连接操作符(||)时,oracle会把非字符类型的数据转换为字符类型。

--6、如果字符类型的数据和非字符类型的数据(如number、date、rowid等)作算术运算,则oracle会将字符类型的数据转换为合适的数据类型,
     即这些数据类型可能是number、date、rowid等。如果CHAR/VARCHAR2 和NCHAR/NVARCHAR2之间作算术运算,则oracle会将她们都转换为number类型的数据再做比较

--7、比较CHAR/VARCHAR2 和NCHAR/NVARCHAR2时,如果两者字符集不一样,则默认的转换方式是将数据编码从数据库字符集转换为国家字符集。

字符与日期类型转化

字符转日期

--字符转日期to_date(字符类型的参数,日期格式)--查询在1981年5月1日之后入职的员工select * from emp where hiredate > to_date('1981/05/01' , 'yyyy/mm/dd')

image-20210803111537650

日期转字符

--日期转字符to_char(日期类型的参数,日期格式)--查询在1981年5月1日之后入职的员工select * from emp WHERE to_char(hiredate, 'yyyy/mm/dd') > '1981/05/01';

image-20210803111803694

在查询语句中加入常量

select 'Oracle',empno,ename,job from emp; -- 常量为单引号
  1. 查询语句中加入常量,在查询结果中将会在属性中添加该常量。
  2. 字符类型需要单引号,双引号将会报错,数字类型则不需要。
  3. 数字类型的常量与字符类型的常量不能混用,并且该属性的值都为常量名。
  4. 常量以数字开头后接字符且不加单引号,则会以字符为字段名数字为值反之则报错
  5. 多个常量用英文逗号给开。

image-20210722103603189

image-20210722110913258

起别名

类似于给别人起外号,当列名或表名过长时,可以重新对其起名字,方便后续的操作。

--语法:[ ]代表框内的值可省略	select 列名1 [as] 别名1 ,列名2 [as] 别名2,...... from 表名 表别名;

image-20210722112501308

给列起别名

select empno as "员工编号",ename,job from emp;select empno "员工编号",ename,job from emp; --省略as

image-20210722112724309

给表起别名

select empno "员工编号",ename,job from emp "员工表";  --给表起别名不加as,别名可以不加双引号,中文别名最好加双引号。

image-20210722113103913

注意事项

  1. 无论是列别名还是表别名,都仅作用与该SQL语句范围内(以分号结尾的SQL语句),且别名并不会改变并本名
  2. 别名中不建议出现“ _ ”以外的特殊字符,如果非要用,要在别名两侧引用双引号
  3. 别名中不建议出现中文,如果非要用,要在别名两侧引用双引号,提高可读性。
  4. 起别名不可以数字,特殊符号开头

单引号与双引号的区别

单引号

  1. 引用一个字符串常量,界定一个字符串的开始与结束
  2. 转义字符,对紧随其后出现的字符进行转义

双引号

  1. 关键字,对象名,字段名,别名加双引号,则示意Oracle严格区分大小写,否则Oracle都默认大写(主要用于起名字)

伪表(dual)

dual表是一张不存在的表,虚拟的表,供测试使用,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。

--例:	
--1、查看当前用户,可以在 SQL Plus中执行下面语句	    
  select user from dual;      
--2、用来调用系统函数     
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;--获得当前系统时间     
--3、得到序列的下一个值或当前值,用下面语句  
  select your_sequence.nextval from dual;--获得序列your_sequence的下一个值  
  select your_sequence.currval from dual;--获得序列your_sequence的当前值  
--4、可以用做计算器   
  select 7*9 from dual;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载DBD-Oracle,你可以按照以下步骤进行操作: 首先,你需要访问Perl的CPAN(Comprehensive Perl Archive Network)网站,该网站是一个Perl模块的维护和分发知名网站。 在CPAN网站的搜索框,输入“DBD-Oracle”。然后,点击“搜索”按钮,以查找DBD-Oracle模块。 在搜索结果,选择适当的DBD-Oracle模块版本,然后点击模块名称,进入模块页面。 在模块页面,你可以找到模块的基本信息、依赖关系、使用文档等。确保你选择与你的Perl版本和操作系统相匹配的版本。 一旦你确认了版本,你可以找到一个“下载”按钮或下载链接,点击它来下载DBD-Oracle模块的压缩文件。 下载完成后,解压缩压缩文件到你选择的目录。 进入解压缩后的目录,你将找到一个名为“Makefile.PL”的文件。使用文本编辑器打开该文件,并根据需要进行任何自定义配置。 保存并退出文件后,打开终端或命令提示符窗口,并导航到DBD-Oracle模块目录。 在命令提示符下,运行以下命令来安装DBD-Oracle模块: ``` perl Makefile.PL make make install ``` 等待安装过程完成,如果没有错误,说明DBD-Oracle模块已经成功安装。 最后,你可以在你的Perl脚本使用DBD-Oracle模块,通过连接到Oracle数据库并执行SQL查询等操作。 希望以上步骤对你有所帮助,祝你顺利下载和安装DBD-Oracle模块!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值