首页 > 数据库 >Oracle知识整合----SQL概述

Oracle知识整合----SQL概述

时间:2024-07-31 14:28:21浏览次数:16  
标签:sal -- 表达式 ---- emp dual SQL Oracle SELECT

目录

一、SQL 简介

二、SQL 语言的分类

1、数据查询语言 (DQL)

2、数据操作/操纵 (DML)

3、数据定义语言 (DDL)

4、数据控制语言 (DCL)

5、事物控制语言 (TCL)

三、数据查询语言

1、查询全部

2、查询指定列

3、在 system下查询 Scott 的 dept 表,登录的用户的权限要比被查的用户的权限大

4、带有条件的查询,具体数据用单引号

5、查询中的别名 特殊字符别名

6、在查询中使用算数运算符

7、使用 distinct 去重

8、在查询中使用连接运算符(||)

四、单行函数

1、字符型单行函数

(1)lower (列\表达式)

(2)upper(列\表达式)

(3)concat(列1\表达式,列2\表达式)

(4)substr(列\表达式,m[,n])

(5)length(列\表达式)

(6)instr(列\表达式,'字符串',m[,n])

(7)replace(原字符串,被替换字符串,替换字符串)

2、数字型单行函数

(1)round(num,i)

(2)trunc(num,i)

(3)mod(num1,num2)

3、日期型单行函数

(1)sysdate

(2)add_months(时间值,添加的月份值)

五、空值和空值函数

1、空值:

2、空值函数

(1)nvl(num1,num2)

(2)nvl2(num,n,m)

六、逻辑处理函数

1、case函数

2、decode 函数

七、分组函数

1、sum() 求和

2、avg() 求平均值

3、max() 求最大值

4、min() 求最小值

5、count() 计数,列的行数

6、group by() 分组函数,分组查询

7、having :筛选(对分组之后进行二次筛选)

八、数据操作语言

1、insert:增加

2、update:修改

3、delete:删除


一、SQL 简介

SQL 结构化查询语言

二、SQL 语言的分类

1、数据查询语言 (DQL)

select

2、数据操作/操纵 (DML)

insert、update、delete

3、数据定义语言 (DDL)

create、alter、drop、truncate(截断删除,删除表然后建立一个空表结构)

4、数据控制语言 (DCL)

grant(授予权力)、revoke(回收权力)

5、事物控制语言 (TCL)

commit(提交)、rollback(回)

三、数据查询语言

语法;select * |[distinct]列名 | 表达式 as 重命名/别名 from 表名 [where 条件];

1、查询全部

SELECT * FROM dept;

2、查询指定列

SELECT deptno,dname,loc FROM dept;

3、在 system下查询 Scott 的 dept 表,登录的用户的权限要比被查的用户的权限大

SELECT * FROM scott.dept;

4、带有条件的查询,具体数据用单引号

SELECT * FROM dept where deptno=30;
SELECT * FROM dept where deptno=30 and dname='SALES';
SELECT * FROM dept where deptno=40 or dname='SALES';

5、查询中的别名 特殊字符别名

--即中文要用双引号包裹   

注: as 可以省略

SELECT deptno AS dno,dname  "部门名称" FROM dept;

6、在查询中使用算数运算符

  sal*12--表达式

SELECT ename "员工姓名",sal*12 "年薪" FROM emp;

7、使用 distinct 去重

SELECT  job FROM emp; -- 有重复
SELECT distinct job FROM emp;

8、在查询中使用连接运算符(||)

即:  ename || '是一个' || job---表达式


SELECT ename || '是一个' || job FROM emp;

四、单行函数

1、字符型单行函数

(1)lower (列\表达式)

作用:把字符串转换为小写  dual伪表,虚假的表为了满足语句需要,只能写这个

SELECT lower('ABCD') FROM dual;--表达式
SELECT lower(ename) FROM emp;--列

(2)upper(列\表达式)

作用:把字符串转换为大写

SELECT upper('aaasd') FROM dual; --表达式
SELECT upper(ename) FROM emp;--列

(3)concat(列1\表达式,列2\表达式)

作用:把两个字符串连接成一个

SELECT concat('abc','def') FROM dual;--表达式
SELECT concat(ename,job) FROM emp;--列
SELECT concat(ename,'123jjj') FROM emp;--表达式和列

(4)substr(列\表达式,m[,n])

作用:截取字符串

m代表截取的开始位置 ,n 代表截取的长度 下标从1开始

SELECT substr('abcdefg',4) FROM dual;--不指定长度
SELECT substr('abcdefg',4,2) FROM dual;--指定长度

(5)length(列\表达式)

作用:计算字符串中的字符个数,空格也算  ,返回个数

SELECT length('srdfghj') FROM dual;--表达式
SELECT length(ename) FROM emp;--列名

(6)instr(列\表达式,'字符串',m[,n])

作用:查找指定字符串的位置

SELECT instr('abcdefgh','de') FROM dual;

(7)replace(原字符串,被替换字符串,替换字符串)

作用:把一个字符串中的某部分替换掉

SELECT replace('abcdefg','cd','dc') FROM dual;

2、数字型单行函数

(1)round(num,i)

作用:可以用来指定小数位数,会四舍五入

SELECT round(5.16,1) FROM dual; --5.2
SELECT round(5.14,-1) FROM dual; --10  将5四舍五入
SELECT round(4.14,-1) FROM dual;--0 将4舍去为0

(2)trunc(num,i)

作用:用来指定位数不会四舍五入

SELECT trunc(3.76,1) FROM dual; --3.7 到达指定位数,不四舍五入
SELECT trunc(26.53,-1) FROM dual; -- 20到达指定位置,不入 6 舍弃

(3)mod(num1,num2)

作用:用来计算两个数的余数,不够除时,被除数就是余数

SELECT mod(5,3) FROM dual; --2  5/3=1....2
SELECT mod(6,10) FROM dual; --6  6/10 商不了


3、日期型单行函数

(1)sysdate

作用:获取当前系统时间,可以和整数做运算,这个整数代表天数

SELECT sysdate FROM dual; --获取时,当时的时间,不同地方会有地区时差
SELECT sysdate+1 FROM dual;--2024/4/11
SELECT sysdate+31 FROM dual; --超过日,加成月  2024/5/11
SELECT sysdate+5/24 FROM dual;-- 整数/24  加上小时数
--两个日期相加减,得到相差的天数
--              日  月 年
SELECT to_date ('5-4月-24')-sysdate FROM dual;
--查看系统日期表示格式语言  
SELECT userenv('lang') FROM  dual;--ZHS 中文

(2)add_months(时间值,添加的月份值)

作用:用来在某个时间上加上 n 个月

--                日   月  年
SELECT add_months('10-4月-24',3) FROM dual;


五、空值和空值函数

1、空值:

空值是没有意义,不确定的值

在数据库中用关键字 Null 表示空值

对空值进行判断时,用 is null 或 is not null

2、空值函数

(1)nvl(num1,num2)

作用:对空值进行处理,使其可以进行运算

如果 num1 是空值 ,则返回 num2;否则返回 num1

SELECT ename,nvl(comm,1) FROM emp;

(2)nvl2(num,n,m)

作用:nvl2 是 nvl 的功能增强函数
如果 num 为空返回 m;否则返回 n

SELECT ename,nvl2(comm,comm,) FROM emp;
-- 做运算 SELECT ename,nvl2(comm,comm+100,2500) FROM emp;


六、逻辑处理函数

1、case函数

如果 i 的值 为 a 那么就得 a1 的值

对一个列的操作 格式

case i when a than a1 
       when b than b1
       when c than c1
       ...
       else n
end

作用:判断 i 和 a 是否相等,相等则返回 a1;
否则在判断 i 和 b 是否相等,相等则返回 b1;
以此类推
如果都不相等,则返回 n   

--eg
SELECT ename,job,
case job when 'ANALYST' then sal+100
         when 'SALESMAN' then sal+200
         when 'CLERK' then sal+300
         else sal
end "涨后通知"
FROM emp;

2、decode 函数

--格式
decode(i,a,a1,
         b,b1,
         ....,
         defualt
         )

decode函数和 case函数作用相同
先判断 i 和 a 是否相等,相等则返回 a1;
否则判断 i 和 b 是否相等,相等则返回 b1;
以此类推
都不相等则返回 defual 处指定的值

--eg
SELECT ename,job,
decode(job,'ANALYST',sal+100,
           'SALESMAN',sal+200,
           'CLERK',sal+300,
           sal--defualt
        )"涨后工资"
FROM emp;



       
 

七、分组函数

用于对多行数据进行处理

sum(),  avg(),  max(),  min(),  count(),  group by(),  having()

1、sum() 求和

SELECT sum(sal) FROM emp;

2、avg() 求平均值

SELECT avg(sal) FROM emp;

3、max() 求最大值

SELECT max(sal)FROM emp;

4、min() 求最小值

SELECT min(sal)FROM emp;

5、count() 计数,列的行数

SELECT count(*) "人数" FROM emp;

6、group by() 分组函数,分组查询

SELECT job,avg(sal) "平均工资"  FROM emp GROUP BY job;

7、having :筛选(对分组之后进行二次筛选)

SELECT job,avg(sal) "平均工资"  FROM emp GROUP BY job HAVING avg(sal)>2000;


八、数据操作语言

数据操作语言主要是对表中的数据进行增删改操作,非空字段添加

1、insert:增加

字段名省略表示全部列名===全部列名写出来

--语法:insert into 表名(字段名) values(字段值);

--eg
--sysdate 当前日期
INSERT INTO emp VALUES(7933,'李四','经理',7431,sysdate,3500,300,20);
INSERT INTO emp(empno,ename) VALUES(7935,'张三');

2、update:修改

--语法:update 表名 set 字段名=值,字段名=值  [where 条件];

--eg
UPDATE emp SET job='副总裁' WHERE empno=7933; 

3、delete:删除

--语法:delete from 表名 [where 条件];

--eg
DELETE FROM emp where ename='李四';

标签:sal,--,表达式,----,emp,dual,SQL,Oracle,SELECT
From: https://blog.csdn.net/weixin_69190490/article/details/140798178

相关文章

  • 服务注册中心+配置中心-Nacos-微服务核心组件【分布式微服务笔记07】
    服务注册中心+配置中心-Nacos-微服务核心组件【分布式微服务笔记07】服务注册中心+配置中心-NacosNacos有两大功能:注册中心[替代Eureka]+配置中心[替代Config]架构理论基础:CAP理论(支持AP【高可用、分区容错性】和CP【分区容错性和数据一致性】,可以切换)Nacos结构......
  • 浏览器弹出“您与此网站的建立的连接不安全”怎么办——三步消除此提示
     上网看剧、购物等等已经成为我们生活中不可缺少的一部分,但有时我们打开浏览器浏览一些网站时,会弹出“网站连接不安全”的显示。这是为什么?该怎么办?其实,这是由于该网站使用了HTTP协议传输数据,浏览器警告用户谨慎访问此网站。之所以会有此“不安全”警告,是因为使用HT......
  • 洛谷题单指南-前缀和差分与离散化-P3406 海底高铁
    原题链接:https://www.luogu.com.cn/problem/P3406题意解读:1-n个城市共了n段路,第i段路不买卡票价a[i],买卡票价b[i](卡本身花费c[i]),给定一个路程顺序,计算最少的通行费用。解题思路:根据路程,计算每段路各走了多少次,然后对于每段路,计算买卡和不买卡两种花费,取较小的累加即可。如何......
  • Java泛型的高级应用
    引言Java泛型是Java5引入的一项强大特性,它允许开发者在编写代码时指定类型参数,从而提高代码的复用性和安全性。尽管泛型在表面上看起来简单,但它的工作原理和高级应用却涉及许多复杂的主题,如类型擦除、类型推断、以及泛型在集合和自定义类中的应用。本文将深入探讨这些高......
  • 注解(Annotation)在Java开发中的应用
    注解(Annotation)在Java开发中的应用引言注解(Annotation)是Java语言的一个特性,用于为代码提供元数据。注解可以被编译器或运行时环境用来处理代码,例如编译时检查、运行时处理等。Spring框架广泛使用了注解来简化配置和提高开发效率。本文将讲解注解的基本概念、如何自定义注......
  • 当下流行的AI搜索工具测评
    行业背景:AI搜索行业依托于其强大的技术基础和广泛的应用场景,市场规模持续扩大。据中研普华产业研究院发布的《2024-2029年中国智能搜索行业市场前瞻分析及投融资战略咨询报告》分析,我国搜索引擎用户规模已达到8.41亿人,占网民整体的78.0%,显示出庞大的用户基数和市场需求。这一......
  • 使用 LCEL 构建简单的LLM应用程序
    摘要:本文是对自己学习基于LangChain学习LLM开发的记录,根据LangChain官网使用LCEL构建了一个简单的LLM应用程序。1.获取各个LLM模型的api。比如OPENAI、讯飞星火大模型等。本文使用讯飞星火大模型进行开发。使用OPENAI的api显示超额,但是明明有18美元的余额,如果读者知道的话请解......
  • 浅谈取样器之SSH Command
    浅谈取样器之SSHCommandJMeter的SSHCommand取样器是一个强大的功能,允许用户在JMeter测试计划中执行远程SSH命令。这对于需要与Linux/Unix服务器交互以执行系统命令、脚本或者进行性能测试验证的场景尤为有用。通过这个取样器,您可以集成服务器端操作到您的负载测试中,进一......
  • 北斗/GNSS高精度数据处理暨GAMIT/GLOBK v10.75软件应用
    目录第一部分、UBUNTU操作系统介绍与基本使用第二部分、GAMIT/GLOBK软件安装第三部分、数据获取与预处理第四部分、分步式“玩转”GAMIT软件第五部分、应用GAMIT+网平差软件进行高精度北斗/GNSS工程控制网数据处理与精度评估第六部分、“玩转”TRACK软件第七部分、分步......
  • 浅谈取样器之HTTP请求
    浅谈取样器之HTTP请求HTTP请求(HTTPRequest)是进行Web应用负载测试时最常用的取样器类型,允许用户模拟各种HTTP请求,如GET、POST等,以评估服务器在不同负载条件下的表现。添加HTTP请求线程组:在刚创建的线程组上右键>“添加(Add)”>“取样器(Sampler)”>“HTTP请求(H......