当前位置: 首页 > news >正文

OCP学习笔记-007 SQL语言之一:DQL

1. DQL - Data Query Language

命令行提示符修改

SQL> set time on
10:33:58 SQL> define        
DEFINE _DATE	       = "11-DEC-22" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR)
DEFINE _USER	       = "SYS" (CHAR)
DEFINE _PRIVILEGE      = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1202000100" (CHAR)
DEFINE _EDITOR	       = "vi" (CHAR)
DEFINE _O_VERSION      = "" (CHAR)
DEFINE _O_RELEASE      = "" (CHAR)
10:34:09 SQL> set sqlprompt "_USER'@'_CONNECT_IDENTIFIER>" 
10:34:41 SYS@orcl>

一些基本参数的永久修改

[oracle@ora-server admin]$ pwd
/u01/app/oracle/product/12.2.0/db_1/sqlplus/admin
[oracle@ora-server admin]$ vim glogin.sql set linesize 200
set pagesize 100
set time onset sqlprompt "_USER'@'_CONNECT_IDENTIFIER>"

查看历史数据

08:56:52 SYS@orcl>show parameter undo_rNAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
undo_retention			     integer	 1800		--历史数据在数据库中存放1800秒09:08:25 SYS@orcl>select * from emp
09:08:55   2  as of timestamp
09:09:05   3  to_timestamp('2023-01-02 09:01:00','yyyy-mm-dd hh24:mi:ss');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-MAR-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		ANALIST 		   7566 19-MAR-87	3000			207839 KING 		PRESIDENT			17-NOV-81	5000			107844 TURNER		SALESMAN		   7698 08-SEP-81	1500	      0 	307876 ADAMS		CLERK			   7788 23-MAY-87	1100			207900 JAMES		CLERK			   7698 03-DEC-81	 950			307902 FORD 		ANALYST 		   7566 03-DEC-81	3000			207934 MILLER		CLERK			   7782 23-JAN-82	1300			1014 rows selected.

1.1 基本语法

SELECT {* | [DISTINCT] colume | expression [alias],...} FROM table;
  • SELECT 表示需要显示那些数据列
  • FROM 表示选择的这些列是来自哪个表
SQL> set linesize 200;
SQL> select * from emp;						# 从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-MAR-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		ANALIST 		   7566 19-MAR-87	3000			207839 KING 		PRESIDENT			17-NOV-81	5000			107844 TURNER		SALESMAN		   7698 08-SEP-81	1500	      0 	307876 ADAMS		CLERK			   7788 23-MAY-87	1100			207900 JAMES		CLERK			   7698 03-DEC-81	 950			307902 FORD 		ANALYST 		   7566 03-DEC-81	3000			207934 MILLER		CLERK			   7782 23-JAN-82	1300			1014 rows selected.SQL> select ename a,sal b from emp;				# 从emp表中查看enam和sal,分别命名为a和bA			      B
-------------------- ----------
SMITH			    800
ALLEN			   1600
WARD			   1250
JONES			   2975
MARTIN			   1250
BLAKE			   2850
CLARK			   2450
SCOTT			   3000
KING			   5000
TURNER			   1500
ADAMS			   1100
JAMES			    950
FORD			   3000
MILLER			   130014 rows selected.SQL> select sal,sal*12 as nianxin from emp;			# 将sal乘以12,并以nianxin为名字展示出来,这一列数据只在内存中出现SAL    NIANXIN
---------- ----------800	 96001600	192001250	150002975	357001250	150002850	342002450	294003000	360005000	600001500	180001100	13200950	114003000	360001300	15600

SQL语句特性:

  1. 不区分大小写
  2. 可以在一行或多行内书写,以分号结尾
  3. 选择多个列时,列之间使用逗号分隔
  4. 关键字不能缩写,也不能跨行
  5. 不同的子句建议写在不同的行,一个关键字后面跟的语句叫子句
  6. 标题行都会大写,数字类型默认右对齐,字符类型默认左对齐

|| 连字符

SQL> select empno||'-'||ename||';' aa from emp;		# 将empno连接一个-然后连接empno,在连接一个分号,最后命名为aa并输出AA
--------------------------------------------------------------
7369-SMITH;
7499-ALLEN;
7521-WARD;
7566-JONES;
7654-MARTIN;
7698-BLAKE;
7782-CLARK;
7788-SCOTT;
7839-KING;
7844-TURNER;
7876-ADAMS;
7900-JAMES;
7902-FORD;
7934-MILLER;14 rows selected.

distinct 去重关键字

SQL> select distinct job from emp;			# 将job列展示出来,并去重JOB
--------------------
CLERK
SALESMAN
PRESIDENT
MANAGER
ANALIST
ANALYST6 rows selected.

count 计算行数关键字

SQL> select count(distinct job) from emp; 			# 统计有多少种工作COUNT(DISTINCTJOB)
------------------6

null 空

SQL> select * from emp where comm=null;		# 等号是比较运算符,因为空值没办法进行运算,所以这个语句不会有输出no rows selectedSQL> select * from emp where comm is null;EMPNO ENAME		JOB			    MGR HIREDATE	 SAL	   COMM     DEPTNO
---------- -------------------- -------------------- ---------- --------- ---------- ---------- ----------7369 SMITH		CLERK			   7902 17-DEC-80	 800			207566 JONES		MANAGER 		   7839 02-MAR-81	2975			207698 BLAKE		MANAGER 		   7839 01-MAY-81	2850			307782 CLARK		MANAGER 		   7839 09-JUN-81	2450			107788 SCOTT		ANALIST 		   7566 19-MAR-87	3000			207839 KING 		PRESIDENT			17-NOV-81	5000			107876 ADAMS		CLERK			   7788 23-MAY-87	1100			207900 JAMES		CLERK			   7698 03-DEC-81	 950			307902 FORD 		ANALYST 		   7566 03-DEC-81	3000			207934 MILLER		CLERK			   7782 23-JAN-82	1300			1010 rows selected.

数据类型

  • number(p,s):p代表有效长度,s代表精度(小数点后多少位)
  • varchar(n):可变长字符类型,n取值0-4000,如1保存在数据库中就是1
  • char(n):定长字符类型,如果n为4,那么4保存在数据库中就是0004
  • date:日期类型
  • timestamp:时间戳类型

1.2 过滤和排序

1.2.1 过滤语句-where

where属于过滤语句,因此需要接判断语句,常见的判断如下:

操作符含义
=等于
>大于
>=大于等于
<小于
<=小于等于
<>不等于
between ... and ...在两个值之间(开区间)
in值包含在一个列表中
like模糊匹配
is null是一个空值

使用比较运算符来过滤数据

SQL> select * from emp where deptno=10;			# 查询deptno是10的数据EMPNO ENAME		JOB			    MGR HIREDATE	 SAL	   COMM     DEPTNO
---------- -------------------- -------------------- ---------- --------- ---------- ---------- ----------7782 CLARK		MANAGER 		   7839 09-JUN-81	2450			107839 KING 		PRESIDENT			17-NOV-81	5000			107934 MILLER		CLERK			   7782 23-JAN-82	1300			10SQL> select * from emp where job='CLERK';			# 字符串类型需要使用引号,因为不属于语句类型,因此需要注意大小写EMPNO ENAME		JOB			    MGR HIREDATE	 SAL	   COMM     DEPTNO
---------- -------------------- -------------------- ---------- --------- ---------- ---------- ----------7369 SMITH		CLERK			   7902 17-DEC-80	 800			207876 ADAMS		CLERK			   7788 23-MAY-87	1100			207900 JAMES		CLERK			   7698 03-DEC-81	 950			307934 MILLER		CLERK			   7782 23-JAN-82	1300			10# 在搜索时要想忽略大小写也可以,需要双向转换;
SQL> select * from emp where lower(job)=lower('sAlEsman');      EMPNO ENAME		JOB			    MGR HIREDATE	 SAL	   COMM     DEPTNO
---------- -------------------- -------------------- ---------- --------- ---------- ---------- ----------7499 ALLEN		SALESMAN		   7698 20-FEB-81	1600	    300 	307521 WARD 		SALESMAN		   7698 22-FEB-81	1250	    500 	307654 MARTIN		SALESMAN		   7698 28-SEP-81	1250	   1400 	307844 TURNER		SALESMAN		   7698 08-SEP-81	1500	      0 	30

逻辑运算符

# 查询deptno是10或20的数据
SQL> select * from emp where deptno=10 or deptno=20;EMPNO ENAME		JOB			    MGR HIREDATE	 SAL	   COMM     DEPTNO
---------- -------------------- -------------------- ---------- --------- ---------- ---------- ----------7369 SMITH		CLERK			   7902 17-DEC-80	 800			207566 JONES		MANAGER 		   7839 02-MAR-81	2975			207782 CLARK		MANAGER 		   7839 09-JUN-81	2450			107788 SCOTT		ANALIST 		   7566 19-MAR-87	3000			207839 KING 		PRESIDENT			17-NOV-81	5000			107876 ADAMS		CLERK			   7788 23-MAY-87	1100			207902 FORD 		ANALYST 		   7566 03-DEC-81	3000			207934 MILLER		CLERK			   7782 23-JAN-82	1300			108 rows selected.

between and

# 闭区间,包含边界值
SQL> select * from emp where sal between 1500 and 3000;EMPNO ENAME		JOB			    MGR HIREDATE	 SAL	   COMM     DEPTNO
---------- -------------------- -------------------- ---------- --------- ---------- ---------- ----------7499 ALLEN		SALESMAN		   7698 20-FEB-81	1600	    300 	307566 JONES		MANAGER 		   7839 02-MAR-81	2975			207698 BLAKE		MANAGER 		   7839 01-MAY-81	2850			307782 CLARK		MANAGER 		   7839 09-JUN-81	2450			107788 SCOTT		ANALIST 		   7566 19-MAR-87	3000			207844 TURNER		SALESMAN		   7698 08-SEP-81	1500	      0 	307902 FORD 		ANALYST 		   7566 03-DEC

相关文章:

OCP学习笔记-007 SQL语言之一:DQL

1. DQL - Data Query Language 命令行提示符修改 SQL> set time on 10:33:58 SQL> define DEFINE _DATE = "11-DEC-22" (CHAR) DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR) DEFINE _USER = "SYS" (CHAR) DEFINE _P…...

Git之解决重复输入用户名和密码(三十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…...

Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战

Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战 目录 Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战 一、简单介绍 二、轮船人员获救预测实战 三、数据处理 1、导入数据 2、对缺失数据的列进行填充 3、属性转换,把某些列的字符串值转换为数字…...

安全相关的一些基础知识(持续更新)

目录 1. TRNG真随机数生成 2. 对称加密和非对称加密及其区别 3. Hash算法&#xff08;摘要算法&#xff09; 4. HTTPS、TLS、SSL、HTTP区别和关系 HTTPS的基本原理 5. PSS 1. TRNG真随机数生成 True Random Number Generator 在真随机数的生成里&#xff0c;把随机数的生…...

使用TensorFlow和Keras对以ResNet50模型进行微调

以下是使用ResNet50进行微调以识别特定的新东西的代码演示。将使用TensorFlow和Keras进行这个任务。 数据集下载地址&#xff0c;解压到工程里面去&#xff1a; https://www.kaggle.com/datasets/marquis03/cats-and-dogs原始代码&#xff1a; ​ from keras.applications…...

Shell脚本要点和难点以及具体应用和优缺点介绍

Shell 脚本是一种用于自动化任务和简化常见系统命令的脚本语言,通常运行在 Unix 或 Unix-like 的系统上,如 Linux 和 macOS。Shell 脚本可以直接在命令行中执行,也可以保存为文件并通过 bash、sh、zsh 等 shell 解释器来执行。 以下是一个简单的 Shell 脚本示例,它演示了如…...

移动端浏览器的扫描二维码实现(vue-qrcode-reader与jsQR方式)

1. 实现功能 类似扫一扫的功能&#xff0c;自动识别到画面中的二维码并进行识别&#xff0c;也可以选择从相册中上传。 2. 涉及到的一些插件介绍 vue-qrcode-reader 一组用于检测和解码二维码的Vue.js组件 jsQR 一个纯粹的javascript二维码阅读库&#xff0c;该库接收原始…...

android中调用onnxruntime框架

创建空白项目 安装Android Studio及创建空白项目参考&#xff1a;【安卓Java原生开发学习记录】一、安卓开发环境的搭建与HelloWorld&#xff08;详细图文解释&#xff09;_安卓原生开发-CSDN博客 切记&#xff1a;build configuration language 一定选择Groovy&#xff01;官…...

【机器学习】与【数据挖掘】技术下【C++】驱动的【嵌入式】智能系统优化

目录 一、嵌入式系统简介 二、C在嵌入式系统中的优势 三、机器学习在嵌入式系统中的挑战 四、C实现机器学习模型的基本步骤 五、实例分析&#xff1a;使用C在嵌入式系统中实现手写数字识别 1. 数据准备 2. 模型训练与压缩 3. 模型部署 六、优化与分析 1. 模型优化 模…...

Apollo9.0 PNC源码学习之Control模块(二)

前面文章&#xff1a;Apollo9.0 PNC源码学习之Control模块&#xff08;一&#xff09; 本文将对具体控制器以及原理做一个剖析 1 PID控制器 1.1 PID理论基础 如下图所示&#xff0c;PID各参数(Kp,Ki,Kd)的作用&#xff1a; 任何闭环控制系统的首要任务是要稳、准、快的响…...

直线度测量仪发展历程!

直线度测量仪的发展历程可以概括为以下几个关键阶段&#xff1a; 拉钢丝法&#xff1a; 早期直线度测量的简单直观方法&#xff0c;利用钢丝受重力自然下垂的原理来测量直线度误差。 随着机械设备的大型化和测量精度要求的提高&#xff0c;该方法逐渐无法满足要求&#xff0c;正…...

09-spring的bean创建流程(一)

文章目录 spring中bean的创建流程finishBeanFactoryInitialization(beanFactory)beanFactory.preInstantiateSingletons();getMergedLocalBeanDefinition(beanName);流程实现FactoryBean接口,里面的对象实例化过程 spring中bean的创建流程 finishBeanFactoryInitialization(be…...

spring中基于setting和构造器的注入方式

Spring中可以通过setting和构造器两种方式进行依赖注入。 1.基于setting的注入方式&#xff08;Setter Injection&#xff09;: 实现方式&#xff1a;在类中添加对应的属性以及对应的setter方法&#xff0c;在配置文件中使用<property>元素进行注入。 示例代码&#xf…...

爬虫基本原理?介绍|实现|问题解决

爬虫基本原理&#xff1a; 模拟用户行为&#xff1a; 网络爬虫&#xff08;Web Crawler&#xff09;是一种自动化的程序&#xff0c;它模拟人类用户访问网站的方式&#xff0c;通过发送HTTP/HTTPS请求到服务器以获取网页内容。 请求与响应&#xff1a; 爬虫首先构建并发送带有…...

DevOps的原理及应用详解(六)

本系列文章简介&#xff1a; 在当今快速变化的商业环境中&#xff0c;企业对于软件交付的速度、质量和安全性要求日益提高。传统的软件开发和运维模式已经难以满足这些需求&#xff0c;因此&#xff0c;DevOps&#xff08;Development和Operations的组合&#xff09;应运而生&a…...

手撸 串口交互命令行 及 AT应用层协议解析框架

在嵌入式系统开发中&#xff0c;命令行接口&#xff08;CLI&#xff09;和AT命令解析是常见的需求。CLI提供了方便的调试接口&#xff0c;而AT命令则常用于模块间的通信控制。本文将介绍如何手动实现一个串口交互的命令行及AT应用层协议解析框架&#xff0c;适用于FreeRTOS系统…...

Redis几种部署模式介绍

Redis 提供了几种不同的部署模式&#xff0c;以满足不同的使用场景和可用性需求。这些模式包括单机模式、主从复制、哨兵模式和集群模式。下面我将简要介绍每种模式的特点和用途&#xff1a; 单机模式&#xff1a; 描述&#xff1a;单个 Redis 服务器实例运行在一台机器上&…...

【STM32HAL库学习】定时器功能、时钟以及各种模式理解

一、文章目的 记录自己从学习了定时器理论->代码实现使用定时->查询数据手册&#xff0c;加深了对定时器的理解以及该过程遇到了的一些不清楚的知识。 上图为参考手册里通用定时器框图&#xff0c;关于定时器各种情况的工作都在上面了&#xff0c;在理论学习和实际应用后…...

3588麒麟系统硬解码实战

目录 安装rockchip-mpp deb 查找头文件 .pro文件添加 检查库是否已安装 error: stdlib.h: No such file or directory ffmpeg 查找ffmpeg路径: 查找FFmpeg库和头文件的位置 使用pkg-config工具查找FFmpeg路径 ok的ffmpeg配置: ffmpeg查看是否支持libx264 ffmpeg …...

十二 nginx中location重写和匹配规则

十二 location匹配规则 ^~ ~ ~* !~ !~* /a / 内部服务跳转 十三 nginx地址重写rewrite if rewrite set return 13.1 if 应用环境 server location -x 文件是否可执行 $args $document_rot $host $limit_rate $remote_addr $server_name $document_uri if …...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...