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语句特性:
- 不区分大小写
- 可以在一行或多行内书写,以分号结尾
- 选择多个列时,列之间使用逗号分隔
- 关键字不能缩写,也不能跨行
- 不同的子句建议写在不同的行,一个关键字后面跟的语句叫子句
- 标题行都会大写,数字类型默认右对齐,字符类型默认左对齐
|| 连字符
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之解决重复输入用户名和密码(三十九)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战
Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战 目录 Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战 一、简单介绍 二、轮船人员获救预测实战 三、数据处理 1、导入数据 2、对缺失数据的列进行填充 3、属性转换,把某些列的字符串值转换为数字…...
安全相关的一些基础知识(持续更新)
目录 1. TRNG真随机数生成 2. 对称加密和非对称加密及其区别 3. Hash算法(摘要算法) 4. HTTPS、TLS、SSL、HTTP区别和关系 HTTPS的基本原理 5. PSS 1. TRNG真随机数生成 True Random Number Generator 在真随机数的生成里,把随机数的生…...
使用TensorFlow和Keras对以ResNet50模型进行微调
以下是使用ResNet50进行微调以识别特定的新东西的代码演示。将使用TensorFlow和Keras进行这个任务。 数据集下载地址,解压到工程里面去: https://www.kaggle.com/datasets/marquis03/cats-and-dogs原始代码: from keras.applications…...
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell 脚本是一种用于自动化任务和简化常见系统命令的脚本语言,通常运行在 Unix 或 Unix-like 的系统上,如 Linux 和 macOS。Shell 脚本可以直接在命令行中执行,也可以保存为文件并通过 bash、sh、zsh 等 shell 解释器来执行。 以下是一个简单的 Shell 脚本示例,它演示了如…...
移动端浏览器的扫描二维码实现(vue-qrcode-reader与jsQR方式)
1. 实现功能 类似扫一扫的功能,自动识别到画面中的二维码并进行识别,也可以选择从相册中上传。 2. 涉及到的一些插件介绍 vue-qrcode-reader 一组用于检测和解码二维码的Vue.js组件 jsQR 一个纯粹的javascript二维码阅读库,该库接收原始…...
android中调用onnxruntime框架
创建空白项目 安装Android Studio及创建空白项目参考:【安卓Java原生开发学习记录】一、安卓开发环境的搭建与HelloWorld(详细图文解释)_安卓原生开发-CSDN博客 切记:build configuration language 一定选择Groovy!官…...
【机器学习】与【数据挖掘】技术下【C++】驱动的【嵌入式】智能系统优化
目录 一、嵌入式系统简介 二、C在嵌入式系统中的优势 三、机器学习在嵌入式系统中的挑战 四、C实现机器学习模型的基本步骤 五、实例分析:使用C在嵌入式系统中实现手写数字识别 1. 数据准备 2. 模型训练与压缩 3. 模型部署 六、优化与分析 1. 模型优化 模…...
Apollo9.0 PNC源码学习之Control模块(二)
前面文章:Apollo9.0 PNC源码学习之Control模块(一) 本文将对具体控制器以及原理做一个剖析 1 PID控制器 1.1 PID理论基础 如下图所示,PID各参数(Kp,Ki,Kd)的作用: 任何闭环控制系统的首要任务是要稳、准、快的响…...
直线度测量仪发展历程!
直线度测量仪的发展历程可以概括为以下几个关键阶段: 拉钢丝法: 早期直线度测量的简单直观方法,利用钢丝受重力自然下垂的原理来测量直线度误差。 随着机械设备的大型化和测量精度要求的提高,该方法逐渐无法满足要求,正…...
09-spring的bean创建流程(一)
文章目录 spring中bean的创建流程finishBeanFactoryInitialization(beanFactory)beanFactory.preInstantiateSingletons();getMergedLocalBeanDefinition(beanName);流程实现FactoryBean接口,里面的对象实例化过程 spring中bean的创建流程 finishBeanFactoryInitialization(be…...
spring中基于setting和构造器的注入方式
Spring中可以通过setting和构造器两种方式进行依赖注入。 1.基于setting的注入方式(Setter Injection): 实现方式:在类中添加对应的属性以及对应的setter方法,在配置文件中使用<property>元素进行注入。 示例代码…...
爬虫基本原理?介绍|实现|问题解决
爬虫基本原理: 模拟用户行为: 网络爬虫(Web Crawler)是一种自动化的程序,它模拟人类用户访问网站的方式,通过发送HTTP/HTTPS请求到服务器以获取网页内容。 请求与响应: 爬虫首先构建并发送带有…...
DevOps的原理及应用详解(六)
本系列文章简介: 在当今快速变化的商业环境中,企业对于软件交付的速度、质量和安全性要求日益提高。传统的软件开发和运维模式已经难以满足这些需求,因此,DevOps(Development和Operations的组合)应运而生&a…...
手撸 串口交互命令行 及 AT应用层协议解析框架
在嵌入式系统开发中,命令行接口(CLI)和AT命令解析是常见的需求。CLI提供了方便的调试接口,而AT命令则常用于模块间的通信控制。本文将介绍如何手动实现一个串口交互的命令行及AT应用层协议解析框架,适用于FreeRTOS系统…...
Redis几种部署模式介绍
Redis 提供了几种不同的部署模式,以满足不同的使用场景和可用性需求。这些模式包括单机模式、主从复制、哨兵模式和集群模式。下面我将简要介绍每种模式的特点和用途: 单机模式: 描述:单个 Redis 服务器实例运行在一台机器上&…...
【STM32HAL库学习】定时器功能、时钟以及各种模式理解
一、文章目的 记录自己从学习了定时器理论->代码实现使用定时->查询数据手册,加深了对定时器的理解以及该过程遇到了的一些不清楚的知识。 上图为参考手册里通用定时器框图,关于定时器各种情况的工作都在上面了,在理论学习和实际应用后…...
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 …...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
