当前位置: 首页 > 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 …...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...

LangChain【6】之输出解析器:结构化LLM响应的关键工具

文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器&#xff1f;1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...

未授权访问事件频发,我们应当如何应对?

在当下&#xff0c;数据已成为企业和组织的核心资产&#xff0c;是推动业务发展、决策制定以及创新的关键驱动力。然而&#xff0c;未授权访问这一隐匿的安全威胁&#xff0c;正如同高悬的达摩克利斯之剑&#xff0c;时刻威胁着数据的安全&#xff0c;一旦触发&#xff0c;便可…...

运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.

报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符&#xff0c;最后运行&#xff1a;npm run lint --fix...