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

数据库之基本功:Where 中常用运算符

1. 运算符及优先级

 ( )优先级最高

SQL> show user;
USER is "SCOTT"
SQL> select ename, job, sal, comm from emp where job='SALESMAN' OR job='PRESIDENT' and sal> 1500;ENAME                          JOB                                SAL       COMM
------------------------------ --------------------------- ---------- ----------
ALLEN                          SALESMAN                          1600        300
WARD                           SALESMAN                          1250        500
MARTIN                         SALESMAN                          1250       1400
TURNER                         SALESMAN                          1500          0SQL> 

知识点:条件子句使用比较运算符比较两个选项,重要的是要理解这两个选项的数据类型。

2.BETWEEN AND

查询出在某一范围内的行.

-- between低值and高值, 包括低值和高值.SQL> SELECT ename, sal FROM emp WHERE sal BETWEEN 1000 AND 1500;ENAME                                 SAL
------------------------------ ----------
WARD                                 1250
MARTIN                               1250
TURNER                               1500
ADAMS                                1100
MILLER                               1300SQL> 

3. %模糊查询及其通配符:

在where字句中使用like谓词,常使用特殊符号"%"或"_"匹配查找内容

SQL> 
SQL> create table test (name char (10));
insert into test values ('sFdL');
insert into test values ('AEdLHH');
insert into test values ('A%dMH');Table created.SQL> 
1 row created.SQL> 
1 row created.SQL> 
1 row created.SQL> insert into test values('Jack');1 row created.SQL> commit;Commit complete.SQL> select * from test;NAME
------------------------------
sFdL
AEdLHH
A%dMH
JackSQL> select * from test where name like 'A%';NAME
------------------------------
AEdLHH
A%dMHSQL> select * from test where name like '%A%';NAME
------------------------------
AEdLHH
A%dMHSQL> 

4. 转义通配符\或/

使用escape \可以取消特殊符号如%的作用.

SQL> 
SQL> -- \%.将A%dMH里的%转义,或者将\换成/也可以.自定义转义符.
SQL> select * from test where name like 'A\%%' escape '\';NAME
------------------------------
A%dMHSQL> select * from test where name like '%\%%' escape '\';NAME
------------------------------
A%dMHSQL>

5. 连接符||

SQL> 
SQL> select empno||' is Scott''s empno' from emp where empno=7788;EMPNO||'ISSCOTT''SEMPNO'
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7788 is Scott''s empnoSQL> select empno||ename from emp where empno=7788;EMPNO||ENAME
------------------------------------------------------------------------------------------------------------------------------------------------------
7788SCOTTSQL>

6. Q-quote

Oracle还提供了一个Q-quote的表达式.来简化SQL或PLSQL中字符串的表示.其格式为q'[字符串]',输出为方括号中的原始字符串格式.其中方括号可以更换为其他的任意一对特殊符号.

SQL> 
SQL> select q'[God isn''t a girl]' name from dual;NAME
---------------------------------------------------
God isn''t a girlSQL> select q'\God isn''t a girl\' name from dual;NAME
---------------------------------------------------
God isn''t a girlSQL> select q'+God isn''t a girl+' name from dual;NAME
---------------------------------------------------
God isn''t a girlSQL> select q'2God isn''t a girl2' name from dual;NAME
---------------------------------------------------
God isn''t a girlSQL>

7. '' 和" "的用法:

''内表示字符或日期数据类型;
而"" 一般用于别名中有大小写、保留字、空格等场合,引用recyclebin中的《表名》也需要" ".

单引号的转义:连续两个单引号表示转义.

sql中字符串的两边是需要加单引号的.表示字符串的开始和结束.如果我们想在sql中输出一个实际的单引号’,那么需要连续输入四个单引号’’’’.其中中间的两个单引号表示一个单引号.
第一个单引号:表示字符串开始
第二个单引号:表示转义.后面接的单引号转义为真正的单引号
第三个单引号:表示实际输出的单引号
第四个单引号:表示字符串结束

SQL> select '''' N from dual;N
---
'SQL> select 'God isn''t a girl'name from dual;NAME
------------------------------------------------
God isn't a girlSQL>

8. 使用逻辑操作符: AND, OR, NOT

AND 两个条件都为TRUE ,则返回TRUE
OR 两个条件中任何一个为TRUE,则返回TRUE
NOT 如果条件为FALSE,返回TRUE

SQL> 
SQL> 
SQL> SELECT empno, ename, job, sal FROM emp WHERE sal>=1100 AND job= 'CLERK';EMPNO ENAME                          JOB                                SAL
---------- ------------------------------ --------------------------- ----------7876 ADAMS                          CLERK                             11007934 MILLER                         CLERK                             1300SQL> SELECT empno, ename, job, sal FROM emp WHERE sal>=1100 OR job = 'CLERK';EMPNO ENAME                          JOB                                SAL
---------- ------------------------------ --------------------------- ----------7369 SMITH                          CLERK                              8007499 ALLEN                          SALESMAN                          16007521 WARD                           SALESMAN                          12507566 JONES                          MANAGER                           29757654 MARTIN                         SALESMAN                          12507698 BLAKE                          MANAGER                           28507782 CLARK                          MANAGER                           24507788 SCOTT                          ANALYST                           30007844 TURNER                         SALESMAN                          15007876 ADAMS                          CLERK                             11007900 JAMES                          CLERK                              9507902 FORD                           ANALYST                           30007934 MILLER                         CLERK                             130013 rows selected.SQL> SELECT ename, job FROM emp WHERE job NOT IN ('CLERK', 'MANAGER', 'ANALYST');ENAME                          JOB
------------------------------ ---------------------------
ALLEN                          SALESMAN
WARD                           SALESMAN
MARTIN                         SALESMAN
TURNER                         SALESMANSQL>

9.用IN操作符检验某值是否在某列表中

SQL> 
SQL> SELECT empno,ename,sal,mgr from emp where mgr IN (7902, 7566, 7788);EMPNO ENAME                                 SAL        MGR
---------- ------------------------------ ---------- ----------7369 SMITH                                 800       79027788 SCOTT                                3000       75667876 ADAMS                                1100       77887902 FORD                                 3000       7566SQL>

10. 交互输入变量符&和&&的用途

10.1 &两种写法

-- 输入 empnumber 的值:  7788,其中&后可以写任意字符SQL> 
SQL> select empno,ename from emp where empno=&empnumber;
Enter value for empnumber: 7788
old   1: select empno,ename from emp where empno=&empnumber
new   1: select empno,ename from emp where empno=7788EMPNO ENAME
---------- ------------------------------7788 SCOTTSQL> set verify off;
SQL> select empno,ename from emp where empno=&empnumber;
Enter value for empnumber: 7788EMPNO ENAME
---------- ------------------------------7788 SCOTTSQL> 

-- &后面是字符型的,注意单引号问题,可以有两种写法:
-- 1、 带''输入emp_name 的值:  SCOTT
SQL> select empno,ename from emp where ename='&emp_name';
EMPNO    ENAME
-----    -----
7788    SCOTT
-- 2、 不带''输入emp_name 的值要加'':  ‘SCOTT’
SQL> select empno,ename from emp where ename=&emp_name;
EMPNO    ENAME
-----    -----
7788    SCOTT

SQL> 
SQL> select empno,ename from emp where ename='&emp_name';
Enter value for emp_name: SCOTTEMPNO ENAME
---------- ------------------------------7788 SCOTTSQL>
SQL> select empno,ename from emp where ename=&emp_name;
Enter value for emp_name: 'SCOTT'EMPNO ENAME
---------- ------------------------------7788 SCOTTSQL> 

10.2 set verify off

如果不想显示"原值"和"新值"的提示,可以使用set verify on|off命令

-- 去掉 原值、新值 提示语SQL> 
SQL> set verify off;
SQL> select empno, ename from emp where ename='&emp_name';
Enter value for emp_name: SCOTTEMPNO ENAME
---------- ------------------------------7788 SCOTTSQL> 

10.3 &&存储定义

&&存储了第一次输入值,使后面的相同的&不再询问,自动取代.

-- 输入 salary 的值:sal	//&后的字符定义了要输入的查询列
SQL> select empno,ename,&&salary from emp where deptno=10 order by &salary; 
Enter value for salary: sal	-- 第一次询问,define了sal	
EMPNO 	ENAME	SAL
-----	------	-----
7934 	MILLER	1300
7782 	CLARK	2450
7839 	KING	5000
SQL> select empno, ename, &&salary from emp where deptno=10 order by &salary;
EMPNO 	ENAME	SAL			-- 第二次不在询问
-----	------	-----
7934 	MILLER	1300
7782 	CLARK	2450
7839 	KING	5000

10.4 define定义变量

-- 定义变量
SQL> 
SQL> show user;
USER is "SCOTT"
SQL> show con_name;CON_NAME
------------------------------
PDB1
SQL> define emp_num=7788
SQL> select empno,ename,sal from emp where empno=&emp_num;EMPNO ENAME                                 SAL
---------- ------------------------------ ----------7788 SCOTT                                3000SQL> 

10.5 define查询定义变量

-- 显示当前已经定义的变量(包括默认值)
SQL> 
SQL> define
DEFINE _DATE           = "07-MAR-23" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "PDB1" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1903000000" (CHAR)
DEFINE _EDITOR         = "vi" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0" (CHAR)
DEFINE _O_RELEASE      = "1903000000" (CHAR)
DEFINE SALARY          = "sal" (CHAR)
DEFINE EMP_NUM         = "7788" (CHAR)
SQL> 

10.6 define开关和解除

注:上面给的 &salary已经在当前session下存储了,可以使用undefine salary解除.
define(定义变量)和undefine命令(解除变量)

SQL> define
DEFINE _DATE           = "07-MAR-23" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "PDB1" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1903000000" (CHAR)
DEFINE _EDITOR         = "vi" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0" (CHAR)
DEFINE _O_RELEASE      = "1903000000" (CHAR)
DEFINE SALARY          = "sal" (CHAR)
DEFINE EMP_NUM         = "7788" (CHAR)
SQL> 
SQL> undefine emp_num
SQL> undefine SALARY
SQL> 
SQL> define
DEFINE _DATE           = "07-MAR-23" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "PDB1" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1903000000" (CHAR)
DEFINE _EDITOR         = "vi" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0" (CHAR)
DEFINE _O_RELEASE      = "1903000000" (CHAR)
SQL> 

相关文章:

数据库之基本功:Where 中常用运算符

1. 运算符及优先级 ( )优先级最高 SQL> show user; USER is "SCOTT" SQL> select ename, job, sal, comm from emp where jobSALESMAN OR jobPRESIDENT and sal> 1500;ENAME JOB SAL COMM …...

浅谈 Nodejs原型链污染

一直在做php的题目,对其它语言做的很少。刚好在西湖论剑2022复现时,遇到了一道原型链污染的题目,借此机会开始简单学习一下 Nodejs的洞 p🐂讲解的十分清楚,因此下面举例子就直接用p🐂的例子进行解释了 目…...

Linux系统安装Docker

目录 Linux系统安装Docker 1、如果之前安装过旧版本的Docker,可以使用下面命令卸载 2、安装docker 3、启动docker 4、配置镜像加速 Linux系统安装Docker 前提:Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10&#xff0…...

MCP2515国产替代DP2515带有SPI 接口的独立CAN 控制器

DP2515是一款独立控制器局域网络(Controller AreaNetwork, CAN)协议控制器,完全支持CAN V2.0B 技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。DP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的…...

【Kubernetes】第二十篇 - k8s 污点和容忍度

一,前言 上一篇,介绍了 k8s ConfigMap 管理服务环境变量; 本篇,介绍 k8s 污点和容忍度; 二,污点与容忍度介绍 通过污点和容忍度配置可以干预 Pod 部署到特定的节点; 比如: 不想让…...

60% 程序员大呼:我要远程办公!

近几年数字化的普及,白领们从挤地铁、打卡、开会、写日报转变成“早上9点视频会议”,企业的办公场所也从写字楼、会议室、工位变成了手机、电脑中的线上会议室,远程办公已经成为一种流行的办公形式。《财富》杂志发现,75%的员工表…...

jmeter+ant+jenkins接口自动化测试框架

大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件;Ant是基与java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具。将这三者结合起来可以搭建一套We…...

【protoc自定义插件】「go语言」实现rpc的服务映射成http的服务,protoc生成gin的插件,(详解实现原理及过程)

文章目录前言一、工程实践中如何更好的使用proto文件?二、protoc命令如何查询依赖的proto文件以及执行原理1. protoc命令如何查询依赖的proto文件2. protoc执行的插件加载原理是什么?3. proto文件中的package和go_package的作用三、protoc插件开发原理体…...

【C语言】3天速刷C语言(语句、函数)

语句分支语句if语句if语句语法结构语法结构: if(表达式)语句; if(表达式)语句1; else语句2; //多分支 if(表达式1)语句1; else if(表达式2)语句2; else语句3;表达式如果成立,则执行,不成立则弹出。switch语句语法结构:switch(…...

Linux系统中指针的详细分析与操作

文章目录 一、指针 二、指针的初始化 三、指针的运算 四、指针与数组 五、指针与字符串 六、函数指针 七、NULL 指针 八、对复杂指针的解释 C 语言指针真正精髓的地方在于指针可以进行加减法,这一点极大的提升了程序的对指针使用的灵活性,同时也…...

工程(十一)——NUC11+D435i+VINS-FUSION+ESDF建图(github代码)

博主的合并代码gitgithub.com:huashu996/VINS-FUSION-ESDFmap.git一、D435i深度相机配置1.1 SDKROS参考我之前的博客,步骤和所遇见的问题已经写的很详细了https://blog.csdn.net/HUASHUDEYANJING/article/details/129323834?spm1001.2014.3001.55011.2 相机标定参数…...

第十四届蓝桥杯三月真题刷题训练——第 4 天

目录 题目 1 :九数算式_dfs回溯(全排列) 题目描述 运行限制 代码: 题目2:完全平方数 问题描述 输入格式 输出格式 样例输入 1 样例输出 1 样例输入 2 样例输出 2 评测用例规模与约定 运行限制 代码: 题目 1 &am…...

Hadoop 运行环境搭建(开发重点)

文章目录Hadoop 运行环境搭建(开发重点)一、安装JDK二、安装配置 Hadoop1、安装 hadoop2、hadoop 目录结构3、设置免密登录4、完全分布式模式(开发重点)1)分发jdk2)集群配置(1) 集群部署规划(2) 配置文件说…...

在社交媒体上行之有效的个人IP趋势

如果您认为无论是获得一份工作、建立一家企业还是推动个人职业发展,社交媒体都是帮助您实现目标的可靠工具,那么个人IP就是推动这一工具前进的燃料。个人IP反映了您是谁,您在所处领域的专业程度,以及您与他人的区别。社交媒体将有…...

Java网络编程

网络编程 什么是网络编程? 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信) Java.net. 包下提供了网络编程的解决方案* 基本的通信架构 基本的通信架构有两种方式:CS架构(Client客户端/Se…...

PTA:L1-001 Hello World、L1-002 打印沙漏、L1-003 个位数统计(C++)

目录 L1-001 Hello World 问题描述: 实现代码: L1-002 打印沙漏 问题描述: 实现代码: 原理思路: L1-003 个位数统计 题目描述: 实现代码: 原理思路: 过于简单的就不再写题…...

构造HTTP请求

使用formform使用如下:<body><!-- 表单标签,允许用户和服务器之间交互数据 --><form action"https://www.sogou.com" method"get"><!-- 要求提交的数据以键值对的结构来组织 --><input type"text" name"stduent…...

转速/线速度/角速度计算FC

工业应用中很多设备控制离不开转速、线速度的计算,这篇博客给大家汇总整理。张力控制的开环闭环方法中也离不开转速和线速度的计算,详细内容请参看下面的文章链接: PLC张力控制(开环闭环算法分析)_plc的收卷张力控制系统_RXXW_Dor的博客-CSDN博客里工业控制张力控制无处不…...

学习笔记:Java并发编程(补)ThreadLocal

【尚硅谷】学习视频&#xff1a;https://www.bilibili.com/video/BV1ar4y1x727【黑马程序员】学习视频&#xff1a;https://www.bilibili.com/video/BV15b4y117RJ 参考书籍 《实战 JAVA 高并发程序设计》 葛一鸣 著《深入理解 JAVA 虚拟机 | JVM 高级特性与最佳实践》 周志明 著…...

HashMap底层实现原理及面试题

文章目录1. 常见的数据结构有三种结构1.1 各自数据结构的特点2. HashMap2.1 概述2.2 底层结构2.2.1 HashMa实现原理&#xff1a;2.2.1.1 map.put(k,v)实现原理2.2.1.2 map.get(k)实现原理2.2.1.3 resize源码2.2.2 HashMap常用的变量2.2.3 HashMap构造函数2.3 JDK1.8之前存在的问…...

【STM32】进阶(二):DMA+ADC实现模拟量检测

1、简述 DMA&#xff1a;Direct Memory Access&#xff0c;直接内存访问 ADC&#xff1a;Analog to Digital Converter&#xff0c;模数转换器&#xff0c;模拟信号转换成数字信号的电路&#xff08;采样-量化-编码&#xff09; 参考博客&#xff1a; STM32DMA功能详解 STM32…...

Lab2_Simple Shell_2020

Lab2: 实验目的&#xff1a;给xv6添加新的系统调用 并理解系统调用是如何工作的&#xff0c;并理解xv6内核的一些内部特征 实验准备&#xff1a; 阅读xv6的第2章以及第4章的4.3,4.3小节熟悉下面的源码 用户态相关的代码&#xff1a;user/user.h和user/usys.pl内核态相关的代…...

2023最全电商API接口 高并发请求 实时数据 支持定制 电商数据 买家卖家数据

电商日常运营很容易理解&#xff0c;就是店铺商品维护&#xff0c;上下架&#xff0c;评价维护&#xff0c;库存数量&#xff0c;协助美工完成制作详情页。店铺DSR&#xff0c;好评率&#xff0c;提升客服服务等等&#xff0c;这些基础而且每天都必须做循环做的工作。借助电商A…...

MySQL 的索引类型

1. 按照功能划分 按照功能来划分&#xff0c;索引主要有四种&#xff1a; 普通索引唯一性索引主键索引全文索引 普通索引就是最最基础的索引&#xff0c;这种索引没有任何的约束作用&#xff0c;它存在的主要意义就是提高查询效率。 普通索引创建方式如下&#xff1a; CREATE…...

< Linux > 进程信号

目录 1、信号入门 生活角度的信号 技术应用角度的信号 前台进程 && 后台进程 信号概念 用kill -l命令察看系统定义的信号列表 信号处理的方式 2、信号产生前 用户层产生信号的方式 3、产生信号 3.1、通过终端按键产生信号 3.2、核心转储core dump 3.3、调用系统函数…...

Pyspark基础入门7_RDD的内核调度

Pyspark 注&#xff1a;大家觉得博客好的话&#xff0c;别忘了点赞收藏呀&#xff0c;本人每周都会更新关于人工智能和大数据相关的内容&#xff0c;内容多为原创&#xff0c;Python Java Scala SQL 代码&#xff0c;CV NLP 推荐系统等&#xff0c;Spark Flink Kafka Hbase Hi…...

C/C++每日一练(20230307)

目录 1. 国名排序 ★★ 2. 重复的DNA序列 ★★★ 3. 买卖股票的最佳时机 III ★★★ &#x1f31f; 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 ​专栏 1. 国名排序 小李在准备明天的广交会&#xff0c;明天有来自世界各国的客房跟他们谈生意&#xff0c…...

一条SQL查询语句是如何执行的?

平时我们使用数据库&#xff0c;看到的通常都是一个整体。比如&#xff0c;你有个最简单的表&#xff0c;表里只有一个ID字段&#xff0c;在执行下面这个查询语句时&#xff1a; mysql> select * from T where ID10&#xff1b; 我们看到的只是输入一条语句&#xff0c;返…...

tcsh常用配置

查看当前的shell类型 在 Linux 的世界中&#xff0c;有着许多 shell 程序。常见的有&#xff1a; Bourne shell (sh) C shell (csh) TC shell (tcsh) Korn shell (ksh) Bourne Again shell (bash) 其中&#xff0c;最常用的就是bash和tcsh&#xff0c;本次文章介绍tcsh的…...

YOLOv5源码逐行超详细注释与解读(2)——推理部分detect.py

前言 前面简单介绍了YOLOv5的项目目录结构&#xff08;直通车&#xff1a;YOLOv5源码逐行超详细注释与解读&#xff08;1&#xff09;——项目目录结构解析&#xff09;&#xff0c;对项目整体有了大致了解。 今天要学习的是detect.py。通常这个文件是用来预测一张图片或者一…...

新手做网站设计/营销推广投放平台

https://blog.csdn.net/xuforeverlove/article/details/80842148...

顺庆区城乡规划建设局门户网站/搜索量排名

箱线图箱形图(Box-plot)又称为盒须图、盒式图或箱线图&#xff0c;是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在宏基因组领域&#xff0c;常用于展示样品组中各样品Alpha多样性的分布第一种情况&#xff0c;最大或最小值没有超过1.5倍箱体范围第二种情…...

盐山网站建设/品牌营销网站建设

T2 题解&#xff1a; x与y相交说明a[x] < b[y]且a[y] < b[x] x在y左边说明b[x] < a[y] 每条线段x还应满足a[x] < b[x] 这相当于一个拓扑排序问题&#xff0c;小的数相当于安排在前面的任务 输出的第i个数就是第i个任务&#xff0c;那么a[1]尽可能小说明任务1要…...

管理系统登录/搜索引擎优化的目标

部署了一台samba服务器了之后用windows连接有一个很普遍的问题&#xff0c;就是登陆过samba一个用户之后windows系统会自动记录上次登陆的samba用户名和密码&#xff0c;所以在下次登陆就不用重新输入账号密码&#xff0c;个人认为这是比较危险的一个地方&#xff0c;特别是在公…...

惠州响应式网站建设公司/最新热搜新闻事件

本文将介绍了最先进的深度学习优化方法&#xff0c;帮助神经网络训练得更快&#xff0c;表现得更好。有很多个不同形式的优化器&#xff0c;这里我们只找最基础、最常用、最有效和最新的来介绍。 优化器 首先&#xff0c;让我们定义优化。当我们训练我们的模型以使其表现更好…...

重庆网站建设/天津百度推广公司

一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法&#xff08;先后次序不同算不同的结果&#xff09;。 解析&#xff1a;这道题和矩形覆盖有什么区别吗&#xff1f;反正我是用矩形覆盖的思路做的 https://blog.csdn.net/q…...