Oracle检索数据

一、Oracle用户模式与模式 对象

1.概念

模式就是数据库对象的集合,数据库对象包括表、函数、索引、视图、过程。

2.示例模式scott

SQL> select table_name from user_tables;TABLE_NAME
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DEPT
EMP
BONUS
SALGRADE

二、简单查询

1.查询所有列

1.1 查询单个表中的所有列

查询当前用户模式下的表

SQL> conn scott/tiger
已连接。
SQL> select * from dept;DEPTNO DNAME                        LOC
---------- ---------------------------- --------------------------10 ACCOUNTING                   NEW YORK40 OPERATIONS                   BOSTON20 RESEARCH                     DALLAS30 SALES                        CHICAGO

查询其他模式下的表,需要使用模式名.表名指定

SQL> conn system/123456
已连接。
SQL> select * from emp;
select * from emp*
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> select * from scott.emp;EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7369 SMITH                CLERK                    7902 17-12月-80            800                    207499 ALLEN                SALESMAN                 7698 20-2月 -81           1600        300         307521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         307566 JONES                MANAGER                  7839 02-4月 -81           2975                    207654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         307698 BLAKE                MANAGER                  7839 01-5月 -81           2850                    307782 CLARK                MANAGER                  7839 09-6月 -81           2450                    107788 SCOTT                ANALYST                  7566 13-7月 -87           3000                    207839 KING                 PRESIDENT                     17-11月-81           5000                    107844 TURNER               SALESMAN                 7698 08-9月 -81           1500          0         30已选择 10 行。

1.2 查询多个表中的所有列

表名间使用,隔开

SQL> select * from dept,salgrade;DEPTNO DNAME                        LOC                             GRADE      LOSAL      HISAL
---------- ---------------------------- -------------------------- ---------- ---------- ----------10 ACCOUNTING                   NEW YORK                            2       1201       140010 ACCOUNTING                   NEW YORK                            3       1401       200010 ACCOUNTING                   NEW YORK                            4       2001       300040 OPERATIONS                   BOSTON                              2       1201       140040 OPERATIONS                   BOSTON                              3       1401       200040 OPERATIONS                   BOSTON                              4       2001       300020 RESEARCH                     DALLAS                              2       1201       140020 RESEARCH                     DALLAS                              3       1401       200020 RESEARCH                     DALLAS                              4       2001       300030 SALES                        CHICAGO                             2       1201       140030 SALES                        CHICAGO                             3       1401       200030 SALES                        CHICAGO                             4       2001       3000已选择 12 行。

2.查询特定列

SQL> select losal,grade from salgrade;LOSAL      GRADE
---------- ----------1201          21401          32001          4
--注:忘记表中有哪些字段,可以使用desc查询
伪列

概念:伪列是一种数据类型,用于唯一标识一条记录,是基于64位编码的18个字符。不是真实存在于数据表中的列,所以被称为伪列,可以查询 但不能增删改。

作用:

①以最快的方式访问表中的一行

②能显示表的行是如何存储的

③作为表中唯一标识

常用的伪列:

rowid,数据库中每一行都有一个行地址,rowid伪列返回该行地址。可以使用rowid值来定位表中的一行。通常情况下,rowid值可以唯一标识数据库的一行。

rownum,查询结果返回的每一行,对应都有一个rownum伪列数值代表的次序。比如返回结果的第一行对应的rownum值为1,第二行为2.通过使用rownum伪列,可以限制查询返回的行数。

SQL> select rowid,rownum from emp;ROWID                  ROWNUM
------------------ ----------
AAAR2NAAHAAAAFrAAA          1
AAAR2NAAHAAAAFrAAB          2
AAAR2NAAHAAAAFrAAC          3
AAAR2NAAHAAAAFrAAD          4
AAAR2NAAHAAAAFrAAE          5
AAAR2NAAHAAAAFrAAF          6
AAAR2NAAHAAAAFrAAG          7
AAAR2NAAHAAAAFrAAH          8
AAAR2NAAHAAAAFrAAI          9
AAAR2NAAHAAAAFrAAJ         10已选择 10 行。SQL> desc emp名称是否为空? 类型----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------------------------------------------------------EMPNONOT NULL NUMBER(4)ENAMEVARCHAR2(10)JOBVARCHAR2(9)MGRNUMBER(4)HIREDATEDATESALNUMBER(7,2)COMMNUMBER(7,2)DEPTNONUMBER(2)
SQL> select * from emp where rownum<=5;EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7369 SMITH                CLERK                    7902 17-12月-80            800                    207499 ALLEN                SALESMAN                 7698 20-2月 -81           1600        300         307521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         307566 JONES                MANAGER                  7839 02-4月 -81           2975                    207654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         30

3.查询日期列

日期列有多种显示格式:简体中文、美国英语、

3.1 以简体中文显示日期结果

=>=>通过设置会话的nls_date_language参数来实现

3.2 以美国英语显示日期结果

=>通过设置会话的nls_date_language参数来实现

SQL> alter session set nls_date_language='AMERICAN';会话已更改。
SQL> select * from scott.emp;EMPNO ENAME                JOB                       MGR HIREDATE            SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- ------------ ---------- ---------- ----------7369 SMITH                CLERK                    7902 17-DEC-80           800                    207499 ALLEN                SALESMAN                 7698 20-FEB-81          1600        300         307521 WARD                 SALESMAN                 7698 22-FEB-81          1250        500         307566 JONES                MANAGER                  7839 02-APR-81          2975                    207654 MARTIN               SALESMAN                 7698 28-SEP-81          1250       1400         307698 BLAKE                MANAGER                  7839 01-MAY-81          2850                    307782 CLARK                MANAGER                  7839 09-JUN-81          2450                    107788 SCOTT                ANALYST                  7566 13-JUL-87          3000                    207839 KING                 PRESIDENT                     17-NOV-81          5000                    107844 TURNER               SALESMAN                 7698 08-SEP-81          1500          0         30已选择 10 行。

3.3 以特定格式显示日期结果

比如xxxx年xx月xx日,xxxx-xx-xx等

=>通过设置会话的nls_date_format参数来实现

①格式化为xxxx年xx月xx日

SQL> ALTER SESSION SET NLS_DATE_FORMAT='YYYY''年''MM''月''DD''日';

②格式化为xxxx-xx-xx

SQL> ALTER SESSION SET NLS_DATE_FORMAT='YYYY''-''MM''-''DD''-';会话已更改。

3.4 to_char()自定义日期格式

语法:TO_CHAR(日期|数字|列,转换格式)

eg:使用to_char()将系统日期转换为YYYY-MM-DD格式

SQL> select to_char(sysdate,'YYYY-MM-DD') 转换后日期 from dual;转换后日期
--------------------
2025-03-14

4.排除重复列

distinct是通过排序来实现去重的,因此避免在数据量大时使用distinct

SQL> select job from emp;JOB
------------------
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN已选择 10 行。SQL> select distinct job from emp;JOB
------------------
CLERK
SALESMAN
ANALYST
MANAGER
PRESIDENT

5.带有表达式的SELECT子句

select语句中可以使用算术运算符,优先级和一般的计算一样。

SQL> select ename,sal,sal*(1+0.1) 涨薪 from emp;ENAME                       SAL       涨薪
-------------------- ---------- ----------
SMITH                       800        880
ALLEN                      1600       1760
WARD                       1250       1375
JONES                      2975     3272.5
MARTIN                     1250       1375
BLAKE                      2850       3135
CLARK                      2450       2695
SCOTT                      3000       3300
KING                       5000       5500
TURNER                     1500       1650已选择 10 行。

6.处理NULL

使用NVL函数处理null

NVL(参数,value)表示如果参数为空,则返回value,参数和value需要是相同数据类型

使用NVL2函数处理null

NVL2(参数,value1,value2)表示如果参数为空,则返回value2,不为空则返回value2

SQL> select nvl(comm,3500) from emp;NVL(COMM,3500)
--------------35003005003500140035003500350035000已选择 10 行。SQL> select nvl2(comm,comm,3500) from emp;NVL2(COMM,COMM,3500)
--------------------35003005003500140035003500350035000已选择 10 行。

8.连接字符串

使用||操作符连接字符串

使用函数CONCAT连接字符串

SQL> select 'hello'||'im addie' from dual;'HELLO'||'IMADDIE'
--------------------------
helloim addieSQL> select concat('addie','hello,im alley') from dual;CONCAT('ADDIE','HELLO,IMALLEY')
--------------------------------------
addiehello,im alley

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/73704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习------static、final、this、super关键字

1. static关键字 static修饰的变量叫做静态变量。当所有对象的某个属性的值是相同的&#xff0c;建议将该属性定义为静态变量&#xff0c;来节省内存的开销。静态变量在类加载时初始化&#xff0c;存储在堆中。static修饰的方法叫做静态方法。所有静态变量和静态方法&#xff…

一个简单的 **猜数字游戏** 的 C 语言例程

一个简单的 猜数字游戏 的 C 语言例程&#xff0c;代码包含详细注释&#xff0c;适合学习和练习基础语法&#xff1a; #include <stdio.h> #include <stdlib.h> #include <time.h> // 用于生成随机数种子int main() {int target, guess, attempts 0;srand…

Keepalived 多主模型与 LVS 高可用

一.Keepalived多主模型 Keepalived多主模型概念 如上图&#xff0c;keepalived主从架构性能损耗较严重&#xff0c;如果业务分类明确&#xff0c;则可以配置keepalived多主模型降低损耗&#xff0c;两台keepalived互为主备&#xff0c;如&#xff1a;订单业务走keepalived1&am…

RISCV虚拟化环境搭建

概要 本文记搭建 RISCV 虚拟化环境的流程。 整体架构 我们使用 QEMU 来模拟 RISCV 的各种硬件扩展环境&#xff0c;通过 QEMU 启动 Ubuntu 作为我们的 Host 来在 Host 之中通过 KVMTOOL 来运行 Guest&#xff0c;学习 RISCV 的虚拟化。 目前我的 X86_64 主机使用的是 Ubunt…

书摘 ASP.NET Core技术内幕与项目实战:基于DDD与前后端分离

IT行业的发展瞬息万变,新技术层出不穷,很多技术人员出于个人兴趣、个人职业发展等考虑而选择一些流行的新技术,他们会把各种复杂的架构模式、高精尖的技术都加入架构中,这增加了项目的复杂度、延长了交付周期、增加了项目的研发成本。有些技术并不符合公司的情况,最后项目…

神策数据接入 DeepSeek,AI 赋能数据分析与智能运营

在 AI 技术迅猛发展的浪潮下&#xff0c;神策数据正在加速推进人工智能在数据分析和智能运营领域的深度应用。近日&#xff0c;神策数据宣布全面接入 DeepSeek&#xff0c;为企业客户带来更加智能化、高效的数据分析与智能运营服务。这一举措展现了神策数据在人工智能方向的探索…

c++ 类和对象 —— 中 【复习笔记】

1. 类的默认成员函数 如果一个类什么成员都没有&#xff0c;简称空类。但实际上&#xff0c;任何类在不写成员时&#xff0c;编译器会自动生成6个默认成员函数&#xff08;用户未显式实现&#xff0c;编译器生成的成员函数&#xff09; 这6个成员函数可分为三类&#xff1a; …

数学建模:MATLAB循环神经网络

一、简述 1.循环神经网络 循环神经网络&#xff08;RNN&#xff09;是一种用于处理序列数据的神经网络。不同于传统的前馈神经网络&#xff0c;RNN在隐藏层中加入了自反馈连接&#xff0c;使得网络能够对序列中的每个元素执行相同的操作&#xff0c;同时保持一个“记忆”状态…

在windows10系统上安装docker,然后在容器中运行GPU版本的Pytorch,并使用vscode连接该容器

一 . 安装Docker Desktop 首先打开网址https://docs.docker.com/desktop/install/windows-install/ 下载完后&#xff0c;双击下面的exe文件进行安装&#xff0c;默认情况下&#xff0c;Docker Desktop 安装在C:\Program Files\Docker\Docker 出现提示时&#xff0c;请确保…

基于SpringBoot + Vue 的房屋租赁系统

基于springboot的房屋租赁管理系统-带万字文档 SpringBootVue房屋租赁管理系统 送文档 本项目有前台和后台两部分、多角色模块、不同角色权限不一样 共分三种角色&#xff1a;用户、管理员、房东 管理员&#xff1a;个人中心、房屋类型管理、房屋信息管理、预约看房管理、合…

C++特性——智能指针

为什么需要智能指针 对于定义的局部变量&#xff0c;当作用域结束之后&#xff0c;就会自动回收&#xff0c;这没有什么问题。 当时用new delete的时候&#xff0c;就是动态分配对象的时候&#xff0c;如果new了一个变量&#xff0c;但却没有delete&#xff0c;这会造成内存泄…

C语言之 循环语句:程序运行的核心动力(上)

个人主页&#xff1a;strive-debug 在 C 语言中&#xff0c;分支结构可以通过 if、switch 语句来实现&#xff0c;循环结构则可以通过 for、while、do while 语句来实现。 if 语句 if 语句的语法形式如下&#xff1a; if (表达式)语句; 如果表达式成立&#xff08;为真&am…

FreeRTOSBug解析:一个任务printf打印一半突然跳转另一个任务,导致另一个任务无法打印

bug现象&#xff1a; key任务&#xff1a; 默认任务&#xff1a; 此时两个任务的优先级相同&#xff0c;抢占式调度&#xff0c;时间片轮转&#xff0c;空闲任务让步。 但是会出现一个问题&#xff0c;key任务在发送完队列之后不会立即跳转到默认任务的队列接收函数后的print…

操作系统八股文整理(一)

操作系统八股文整理 一、进程和线程的区别二、进程与线程的切换过程一、进程切换进程切换的步骤&#xff1a; 二、线程切换线程切换的步骤&#xff1a; 三、进程切换与线程切换的对比四、上下文切换的优化 三、系统调用一、系统调用的触发二、从用户空间切换到内核空间三、执行…

卷积神经网络(CNN)之 EfficientNet

在深度学习领域&#xff0c;模型的计算效率与性能之间的平衡一直是一个核心挑战。随着卷积神经网络&#xff08;CNN&#xff09;在图像分类、目标检测等任务中取得显著成果&#xff0c;模型的复杂度和计算需求也急剧增加。2019年&#xff0c;Google Research 提出的 EfficientN…

学生选课管理系统数据库设计报告

学生选课管理系统数据库设计报告 一、需求分析 &#xff08;一&#xff09;项目背景 学生选课管理系统是高校教学管理的重要组成部分&#xff0c;旨在实现学生选课、课程管理、成绩录入与查询等功能的自动化和信息化。通过该系统&#xff0c;学生可以方便地选择课程&#xf…

工具介绍《Awsome-Redis-Rogue-Server 与 redis-rogue-server》

1. 核心功能与攻击场景 redis-rogue-server 基于Redis主从复制漏洞&#xff08;CVE未公开&#xff09;&#xff0c;针对Redis 4.x~5.0.5版本设计&#xff0c;通过伪造恶意主节点强制同步恶意模块&#xff08;.so文件&#xff09;实现远程代码执行&#xff08;RCE&#xff09;。…

Razor C# 变量

Razor C# 变量 引言 在ASP.NET MVC和Razor视图引擎中,变量是构建动态网页的基础。理解Razor C#变量的使用对于开发者来说至关重要。本文将详细介绍Razor C#变量的概念、类型、作用域以及如何在实际项目中有效使用它们。 一、Razor C# 变量的概念 Razor C# 变量是存储在Raz…

【QA】模板方法模式在Qt中有哪些应用?

在 Qt 框架中&#xff0c;模板方法模式&#xff08;Template Method Pattern&#xff09;被广泛应用于框架的设计中&#xff0c;通过定义算法骨架并允许子类在不改变结构的情况下重写部分步骤。以下是 Qt 中典型的应用场景及示例&#xff1a; 1. 事件处理&#xff08;Event Ha…

有趣的算法实践:整数反转与回文检测(Java实现)

题目描述&#xff1a;整数反转与回文检测 要求实现两个功能&#xff1a; 将输入的整数反转&#xff08;保留符号&#xff0c;如输入-123返回-321&#xff09;判断反转后的数是否为回文数&#xff08;正反读相同&#xff09; 示例&#xff1a; 输入&#xff1a;123 → 反转结…