0

0

Oracle数据库入门之查询基础

php中文网

php中文网

发布时间:2016-06-07 16:18:35

|

1339人浏览过

|

来源于php中文网

原创

简单的表操作 指令:创建简单表:createtable student(name varchar2(20), age number(3) ); 插入新记录:insert into studentvalues('stone',24); 查看表结构:desc student; 查询记录:select * from student; 删除表:drop table student; 删除表中的数据

  简单的表操作

  指令:创建简单表:createtable student(name varchar2(20), age number(3) );

  插入新记录:insert into studentvalues('stone',24);

  查看表结构:desc student;

  查询记录:select * from student;

  删除表:drop table student;

  删除表中的数据:delete from studentwhere 条件;

  说明:SQLPlusWorksheet中用“--”作为单行注释标记。varchar2(20)标明可变长度的字符串,上限为20

  number(3)标明age为不包含小数点的3位的整数。如果只定义成number,则系统默认为10位的整数

  单引号引起来的字符是SQL语言中字符串常量的表示方式。SQL语言中的关键字大小写是不敏感的

  数据库开发人员喜欢使用大写关键字。应用程序开发人员多数使用小写的,以实现良好的可读性

  插入记录后,其实并没有在数据库中立即永久生效,这时可以使用commit;提交数据的更新操作

  简单的Select语句

  语法格式:SELECT *|{,...} FROM ;--字段间用逗号隔开。在逗号后面添加空格可以增强可读性

  例如select * from emp;或select empno, ename, sal from emp;

  显示效果:Sql*plus的默认显示:Date和character型数据左对齐,Numeric型数据右对齐,列标题默认显示为大写

  iSql*plus的默认显示:列标题默认显示为大写,列标题缺省居中对齐

  使用算术表达式

  概述:在Select语句中,对NUMBER型数据可以使用算术运算符(+、-、*、/)创建表达式

  举例:select empno, ename, sal, sal*12 from emp;--查询emp中员工的编号姓名工资和年薪

  select empno, ename, sal, sal*12+1000 from emp;

  select empno, ename, sql, sal*(12+1000) from emp;--可以使用括号更改计算顺序

  连接运算符

  概述:即“||”可以把列与字符或其它表达式连接在一起,得到一个新的字符串,实现“合成”列的功能

  举例:select ename || ' is a ' || job from emp;

  select empno, ename ||'''s annual salary is'|| sal*12 from emp;

  说明:用一个单引号代表字符串常量的分隔标记。用两个单引号代表字符串常量中出现的一个单引号字符

  在查询的时候,也不需要转义符,直接用两个单引号代表字符串常量中出现的一个单引号即可

  使用字段别名

  概述:重命名查询结果中的字段,以增强可读性。如果别名中使用特殊字符或强制输出大小写时需使用双引号

  格式:SELECT | [[AS]],... FROM;

  举例:select empno, ename "Ename", sal*12 "年 薪" from emp;

  select empno as 员工编号, ename 员工姓名, sal*12 "年薪" from emp;

  说明:as可以不加。别名可以用双引号引起来。如果别名中不包含特殊字符,双引号可以省略

  如果别名中包含了空格,如"年 薪",就必须加双引号,否则将被解析成两个成份,导致语法上出问题

  如果Ename不加双引号,那么执行后会显示为ENAME。只有给它加上双引号之后,才会遵重大小写来显示

  空值

  概述:空值是无效的,,未指定的,未知的或不可预知的值。空值不等同于0或空格

  举例:select empno, ename, sal, comm from emp;--执行后某些记录的comm属性会显示一片空白,即空值

  insert into student(age) values(24);--插入数据时,如果没有指定name值,那么默认的name就是空值

  补充:算术表达式中如果出现空值,则整个表达式结果为空

  连接表达式中出现的空值被当作一个空的(长度为零的)字符串处理

  如select ename, sal, comm, ename || ' - ' || comm, sal+comm from emp;

  在算术表达式中如果涉及到空值的话,可以使用相应的函数对可能存在空值的字段进行缺省值的设置

  经过判断之后,如果它是空值,则返回0,如果不是空值,则返回它真正的值,然后再进行算术运算

  去除重复行

  概述:缺省情况下,查询结果中显示所有符合条件的记录行,包括重复行。可以使用DISTINCT可以清除重复行

  DISTINCT的作用范围是后面所有字段的组合,即后面的多个字段的组合不出现重复就可以了

  举例:select deptno from emp;--本意是查询部门编号的种类,显示的却是所有的编号,包括重复编号

  select distinct deptno from emp;--清除查询结果中重复的部门编号

  select distinct deptno, job from emp;--只要deptno和job组合后的结果不重复,那么就都显示输出

  说明:通常把极为简单的数据处理,包括数据的查询、组合、过滤或转换类型等操作,均交给数据库进行处理

  比如分组统计、求和、求平均值、过滤空值、过滤重复值、数据开头和结尾的空格过滤、字符串转日期型等等

仿优购鞋子商城整站 for ECSHOP
仿优购鞋子商城整站 for ECSHOP

ECSHOP仿优购鞋子商城整站源码,程序基于ECSHOP 2.7.3 UFT8版本制作,适合服装,鞋子,家居等商城使用。目前程序未添加广告位,请自行在网站后台进行添加。具体添加方法,请查看SHOPEX5站点的相关教程。 安装方法:1。访问 :域名/install2. 按照程序提示进行安装.3.安装完成后,登陆网站后台.选择数据库管理--数据库备份--数据库还原.,导入之前的数据库。4.后台-模板管

下载

  而对于复杂些的业务逻辑,或者与商业逻辑相关的内容,建议在应用程序中处理。这样也就实现了松散的耦合

  查询结果排序

  概述:查询结果缺省按照记录的插入顺序进行排列。可以使用ORDER BY子句对查询结果进行排序

  排序方式包括升序(ASC,缺省)和降序(DESC)两种。也可以使用字段别名排序或按多字段排序

  举例:select empno, ename, sal from emp order by sal;--按sal进行升序排列,ASC可以省略不写

  select empno, ename, sal from emp order by sal desc;--按sal进行降序排列

  select empno, ename, sal*12 annsal from emp order by annsal;

  select deptno, empno, ename, sal from emp order by deptno, sal;

  说明:多字段排序时,先按照deptno排序,如果在得到的排列结果中存在重复的deptno记录的话

  就将重复的deptno记录再按照sal排序。至于具体的排序方式,则需要对两个字段进行单独指定

  如deptno,sal表示二者均按升序排列。deptno,sal desc表示deptno按升序排列,sal按降序排列

  如deptno desc,sal表示deptno按降序排列,sal按升序排列。依此类推

  这种逻辑适合由数据库在查询阶段进行处理。在应用程序中通过代码来实现的话,就会困难一些

       条件查询

  说明:在查询语句中或查询条件中使用字符串或日期的时候,字符串和日期值要用单引号括起来

  字符串大小写敏感。日期值格式敏感,缺省的日期格式是DD-MON-RR

  注意:凡涉及到字符串内容的比较,大小写都是敏感的

  格式:SELECT *|{[DISTINCT]|[],...} FROM [WHERE ];

  举例:select * from emp where ename='SMITH';--这里所要查询的SMITH严格区分大小写

  select * from emp where hiredate='02-4月-81';--系统会自动将符合约定格式的字符串转换成Date型

  select sysdata from dual;--以缺省的日期格式获取当前的系统时间

  说明:表dual中只有一行一列,它本身并不保存系统时间,sysdate永远代表当前的系统时间

  通常在进行简单的查询或运算的时候,dual表起一个媒介的作用,使得形式上看起来像是查询

  dual的好处在于只有一行记录,它一般用在练习时测试某些指令。一般不在真实的开发使用它

  比如select 3+2 from dual;返回5。又如select 3+2 from emp;则会返回很多行的5

  它会对emp中每一行记录都查询,但查的不是真正保存的内容,而是逐行的计算一遍3+2

  再把得到的5作为一个唯一的结果,也是唯一的一个字段返回来,所以结果就是10多行的5

  对于Oracle数据库,即使是想让它做一个简单的常量表达式的运算,也要采用问答的形式

  即便此时所有的数据都在用户的手中,那也要装作是查询,给它一个指令,令其返回结果

  关系运算符

  符号:BETWEEN...AND...:界于两值之间,包括边界,并且必须把小的数值放在前面

  IN(set):出现在集合中。判断是否存在某字段等于集合中的值的记录

  LIKE:模糊查询,也叫通配查询

  IS NULL:判断空值

  示例:select * from emp where sal between 1600 and 2900;--查询工资界于1600和2900之间的员工的信息

  select * from emp where ename in('SMITH','KING','King');--返回姓名为set中的元素的值的记录

  select * from emp where comm is null;--返回所有comm字段的值为空的记录

  select * from emp where comm is not null;--返回非空的。注意0和空是不同的

  注意:凡涉及到字符串内容的比较,大小写都是敏感的。即in()中的值需要与ename值完全匹配方可查询出记录

  LIKE:%代表零或多个字符。_代表一个字符。可以使用ESCAPE标识特殊符号

  select * from emp where ename like 'S%';--查询以S开头的姓名的记录。这里S仍然是大小写敏感的

  select * from emp where ename like '_A%';--查询第二个字母是A的姓名的记录

  select * from emp where ename like '%_%' escape '';--返回姓名存在下划线的记录

  这里的escape标明“”起到转义符的作用。在真实的开发中,这种转义符用的并不多

  Oracle中的转义符可以随便定义,所以例句中的“”也可以换成其它的符号,如“K”

  说明:用一个单引号代表字符串常量的分隔标记。用两个单引号代表字符串常量中出现的一个单引号字符

  在模糊查询的时候,也不需要转义符,直接用两个单引号代表字符串常量中出现的一个单引号即可

  逻辑运算符

  概述:优先级由高至低:NOT→AND→OR

  举例:select * from emp where deptno=20 and sal>2000;--返回部门编号为20而且工资大于2000的记录

  select * from emp where deptno=20 or sal>2000;--返回部门编号为20的人或者工资大于2000的记录

  select * from emp where deptno not in(20,30,40);--返回部门编号没有出现在该集合中的人的信息

相关专题

更多
Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

44

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

58

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

11

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

75

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

21

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.4万人学习

Java 教程
Java 教程

共578课时 | 46.3万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号