数据库开发基础-Oracle-SQL基础-004

ODBC连Oracle数据库报错 SQLState IM004 阅读详情
别名:可以为查询的字段指定一个名字
这样在查询的结果集中,对应该字段
的名字就是别名。
使用别名是为了增加结果集的可读性,
因为当查询的字段含有函数或表达式的
时候,该字段在结果集就是这个函数或
表达式,可读性差。
别名不区分大小写,若希望区分大小写,
或者含有空格,需要使用双引号括起来

select ename name ,sal*12 "annual sal" from emp;

还可以使用 as 定义别名

select ename as name ,sal*12  as "annual sal" from emp;

select ename, sal from emp where sal < 2000;

select ename, sal, job from emp where deptno <> 10;

select ename, sal, job
  from emp
 where hiredate > to_date('1982-1-1', 'YYYY-MM-DD');

select ename, sal, hiredate
  from emp
 where sal > 1000
   and job = 'CLERK';

select *
  from emp
 where sal > 1000
    or job = 'CLERK';

--and 的优先级高于 or ,可以通过括号来
--提高 or 的优先级
查看工资高于1000并且职位是SALESMAN
或CLERK员工?

select ename, job, sal
  from emp
 where sal > 1000
   and (job = 'SALESMAN' or job = 'CLERK');

--like 用于模糊查询字符串
--支持两个通配符:
_:表示匹配任意一个字符
%:表示任意多个字符(0-多个)


select ename,job from emp where ename like '_A%';

--in 与 not in
in 用于判断等于列表中之一
not in 用于判断不在列表中
in 常用于子查询

select ename, job from emp where job in ('MANAGER', 'CLERK');

--and 与 all 是用于判断诸如:>,>=,<,<=
进行判断的,判断与一个列表中的内容的比较
> all:大于列表中的所有(大于最大)
>any:大于列表中其一(大于最小)
<all:小于列表中所有(小于最小)
<any:小于列表中其一(小于最大)


列表中的内容通常是一个查询的结果集(子查询:后面会讲),而
不是给定的具体值,否则实际就没意义了。

select ename, job, sal from emp where sal > any('3500', '4000', '4500');

--在 where 中使用函数或表达式的结果
--作为过滤条件:

select ename,sal,job from emp where ename = upper('allen');

select ename,sal,job from emp where sal*12>50000;


--distinct 关键字,去除其后指定
--的字段的重复行。
--distinct 可以对多个字段去除重复行,
--去重原则是这些字段值得组合没有重复。

查看公司共有多少种职位?
select distinct job,deptno from emp;


--排序
order by 字句
order by 字句会根据其后指定的
字段的进行升序或降序将结果集
进行排列后显示。
升序(asc):asc 可以不写,默认升序,
降序(desc):从小到大排列 
desc 要注意与 查看表结构的sql命令desc区分


查看工资排名:
select ename,sal from emp order by sal desc;

order by 亦可以对多列进行排序,
排序优先级从左到右。

select ename,deptno,sal from emp order by deptno desc,sal;

排序的字段中若有 null 值, null被认作最大值。
select ename,comm from emp order by comm desc;

order by 子句必须写在 select 语句的最后一个子句上。

--聚合函数
聚合函数会将指定字段查询出的每一条记录
对应的值全部进行统计,然后得出一个结果。

max,min
求指定字段在查询出的所有记录中的最大值与最小值。

select max(sal),min(sal) from emp;

avg ,sum
求平均值与总和
select avg(sal),sum(sal) from emp;

select avg(comm),sum(comm) from emp;
--上面只考虑不为null的记录,会忽略为null记录的统计
聚合函数会忽略null值。

可使用nvl解决这个问题
select avg(nvl(comm,0)),sum(comm) from emp;

count()
统计给定字段值(不为null)的
的记录数。
查看公司共多少人?(emp表的记录数)
select count(ename) from emp;
 
通常查看表中记录总数使用count(*)
select count(*) from emp;


--分组
group by 子句
group by 是配合聚合函数进行分组统计结果使用的。
group by 会根据后面的给定的字段值相同的记录进行分组,
然后配合聚合函数根据每个组再统计结果。

查看每个部门的平均工资?
select avg(sal),deptno from emp group by deptno;

当select子句中有聚合函数时,凡不在聚合函数中的其他字段
都必须出现在 group by 子句中。反过来则不是必须的。

查看每个职位的最高工资是多少?
select max(sal),job from emp group by job;

group by 子句可以按照多个字段分组,
分组原则是这些记录的指定字段值的组合相同。

查看每个部门每个职位的平均工资?

select avg(sal), job, deptno from emp group by job, deptno;

--引入having

查看每个部门的平均工资,前提是该部门平均工资高于2000.
--错误写法
select avg(sal), deptno from emp where avg(sal) > 2000 group by deptno;


where 不能使用聚合函数作为过滤条件
原因在于:时机不对

having 子句
having 必须跟在 group by子句后,作用是在分组统计后,基于统计结果
再次进行过滤使用的。
having 中可以使用聚合函数的统计结果作为过滤条件来筛选分组。

select avg(sal), deptno
  from emp
 group by deptno
having avg(sal) > 2000;


查看平均工资高于2000的部门的最高薪水是多少?

select max(sal), deptno from emp group by deptno having avg(sal) > 2000;

where 的过滤时机是在第一次检索表中
数据时进行过滤的。where 决定着从表
中查询出多少数据。

having 是在分组统计后再进行过滤的,
二分组是在查询出的数据基础上进行的
所以 having 的过滤是在 where 之后进行的
having 决定着取舍那些分组。


部门最高工资大于2900的那些部门的平均工资?
select deptno,avg(sal) from emp group by deptno having max(sal)>2900;


查看30号部门的平均工资?

select avg(sal) from emp where deptno = 30;



select * from emp;
select * from dept;
--关联查询
将多张表数据联系起来,进行相关的查询工作。

查看每名员工的名字以及其所在部门的名字?

select ename, dname from emp, dept where emp.deptno = dept.deptno;

查看SALES部门的员工名字?

select ename,dname
  from emp, dept
 where emp.deptno = dept.deptno
   and dname = 'SALES';


表可以使用别名,这样字段可以用表的别名
标注以避免sql语句过于繁琐。

select e.ename, d.deptno, d.dname
  from emp e, dept d
 where e.deptno = d.deptno


select e.ename, d.loc
  from emp e, dept d
 where e.deptno = d.deptno
   and d.loc = 'CHICAGO';
关联查询必须定义连接条件,若不定义
则会出现“笛卡尔积”
笛卡尔积:一个无意义的结果集。会将
参与关联的两张表每条数据都连接一遍。
产生的数据量是两张表总数据量的乘积。

select * from emp,dept;

N张表联合查询,至少要定义N-1个连接条件

内连接:
另一种关联查询
select e.ename, d.dname
  from emp e
  join dept d
    on e.deptno = d.deptno
 where d.dname = 'SALES';

外连接:
关联查询中不会将不满足连接条件的
记录查询出来,当需要将不满足连接
条件的记录也查询出来时,要使用外连接。

外连接分为:左外连接,右外连接。和
全外连接
左外连接:以join左侧的表作为驱动表
该表中的数据全部要显示出来,那么不满足连接条件
的记录在结果集中来自右侧表中的字段全部以null作为值显示

select e.ename, d.dname
  from emp e
  left outer join dept d
    on e.deptno = d.deptno;

select *
  from emp e
 right outer join dept d
    on e.deptno = d.deptno;

select e.ename, d.dname
  from emp e
  full outer join dept d
    on e.deptno = d.deptno;

select * from emp e, dept d where e.deptno(+) = d.deptno--右连接


自连接:
自己表中的一条数据对应自己表中的
多条数据,然后进行关联查询。
自连接用来解决相同数据但是有存在
父子级关系的树状结构时使用。

查看每个员工的名字以及上司的名字?

select e.ename, m.ename from emp e, emp m where e.mgr = m.empno(+)






服务器报错:“Unhealthy status reported by this UEFI driver without specific error message”.. 记录解决过程 服务器开机报错:Unhealthy status reported by this UEFI driver without specific... 阅读详情

相关推荐

Zephyr,设备树概述

Zephyr使用设备树(DTS)描述硬件配置,通过设备树源码和绑定文件生成C头文件供开发使用。设备树采用树状结构,节点对应硬件设备,属性描述硬件特性。示例展示了I2C总线及其外设的节点层级关系,包括单元地址、兼容性标识等关键属性。构建系统将设备树转换为devicetree.h中的宏,使开发者能通过DT_前缀宏访问硬件信息,同时保留Kconfig覆盖默认值的能力。

汽车电子软件领域知识分享 724

如何通过合理的学习规划,快速入门大数据开发

对于很多初级开发者,或者还没什么实际开发经验的人来说,大数据相关技能看起来特别吓人,因为一堆特别复杂的英文名词,以及听起来难度极高的各种“架构”。 但真正去学习上手,你就会发现,这个被传得神乎其技的技术,并没有想象中的那么难,甚至还有点有意思。 对于每一个想往更高层次发展的技术人来说,后台数据处理,数据架构的搭建、数据性能的优化,都是绕不过去的技能。而且,随着企业数据量的快速增加,后台数据架构...

大数据基础入门教程 2016

【PostgreSQL】Windows11下的PostgreSQL数据库安装tds_fdw扩展及使用(图文记录详细步骤)

【详解】【PostgreSQL】Windows11下的PostgreSQL数据库安装tds_fdw扩展及使用

tttzzzqqq2018的博客 2458

数据库入门开发案例,真的是入门级别的!!看了不后悔。

首先我们先讨论实体之间的联系怎么表示 1.数据库中一对一的实现方式: (如一个学生对应一个档案,一个档案对应一个学生。学生表为A表,档案表为B表) 唯一外键方式:在A和B任意一表中添加唯一外键(注意是添加完外键后,再点唯一键,进行设置)具体方式点此。 主键关联方式:当A和B的主键相同时,我们就认为是一组数据。(注意是“我们就认为”,数据库中并没有提供主键关联的约束方式。) 中间关系表:创建一张新表作为中间关系表,两个列分别记录A和B,并且每一列的取值中,值均不能重复(即将这两列均设置为唯一外键,注意:将这

日拱一卒,功不唐捐 5589

学Simulink——基于Simulink的AUTOSAR架构下电机控制软件组件建模

本文详细介绍了在Simulink中基于AUTOSAR架构开发电机控制软件组件(SWC)的全流程。主要内容包括:首先阐述了AUTOSAR架构对汽车电子系统开发的价值,包括提高软件复用率、降低集成成本和改善验证环境。然后重点讲解了在Simulink中构建电机控制SWC的具体步骤:从创建AUTOSAR组件模型、定义数据端口和服务端口,到搭建FOC控制算法、配置运行实体,最后生成AUTOSAR描述文件和验证RTE接口。文章还提供了与基础软件(BSW)的集成方案、工程实践要点和常见问题解决方案,并以大众MEB平台等实

amy_mhd的博客 68

后仿真中的关于延时问题(物理特性角度)

大家都知道,后仿真讲究仿真时序。那么,在网表阶段,接触到后仿延时问题。今天总结一下。

那么菜的博客 1772

.NET 数据库入门

首先需要url 设置string url="Provider=SQLOLEDB;user id=**;password=***;initial catalog=****;server=**;connect timeout=60"    Provider 指定数据库的 OLE DB 提供程序。例如,下面分别是 Access、SQL Server 和 Oracle 数据库的常用 OLE DB 提供程 ...

Andrew的博客 379

【图像去噪】论文精读:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image

论文题目:FM2S: Self-Supervised Fluorescence Microscopy Denoising With Single Noisy Image —— FM2S:单噪声图像自监督荧光显微镜去噪arXiv 2024!显微图像去噪!通过可视化详细的细胞结构和生物过程,荧光显微镜具有显着先进的生物学研究。然而,由于难以精确建模固有噪声和获取干净图像进行训练,这种图像去噪任务往往面临挑战,这限制了大多数现有方法。在本文中,我们提出了一种有效的。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 412

0基础入门大数据开发需要学习什么内容?Hadoop体系

0基础入门大数据开发需要学习什么内容?Hadoop体系 大数据开发学习需要的基础知识,接下来继续介绍大数据技术学习的重点之一:Hadoop。 Hadoop技术体系 (1)简介: Hadoop是Apache开源组织的一个分布式基础框架,提供了一个分布式文件系统 (HDFS)、分布式计算(MapReduce)及统一资源管理框架(YARN)的软件架构。用户可以在不了解分布式底层细节的情况下,开发...

大数据基础框架学习教程汇集 6472

在 Android Studio 中接入 DeepSeek:加速 Android 开发进程

通过在 Android Studio 中接入 DeepSeek,Android 开发者能够充分利用人工智能技术带来的强大优势,显著提升开发效率和代码质量。从前期的安装准备,到具体的接入步骤,再到使用过程中的技巧和注意事项,每一个环节都为打造高效、智能的开发环境提供了有力支持。希望本文能帮助你顺利将 DeepSeek 融入到 Android Studio 的开发工作流程中,让你在 Android 开发的道路上更加得心应手,创造出更优质的 Android 应用。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4176

21天教你学会PCIe专栏(21)--总结和展望

回顾整个课程的主要内容和知识点总结PCIe技术的发展历程和现状展望PCIe技术的未来发展趋势和应用方向分享学习心得和实践经验1.1 课程回顾基础知识:了解了PCIe的基本概念、发展历程、标准和规范。分层结构:学习了PCIe的物理层、数据链路层和事务层的结构和功能。功能和特性:掌握了PCIe的热插拔、电源管理、多功能设备等高级功能。高速接口技术:学习了PCIe 4.0、5.0和未来趋势。实际案例分析:分析了GPU加速器和存储设备的PCIe设计和优化。常见问题和解决方案。

xiaoheshang_123的博客 673

数据库开发基础-Oracle-SQL基础-004,面试的经验与分享怎么写

having 必须跟在 group by子句后,作用是在分组统计后,基于统计结果。group by 会根据后面的给定的字段值相同的记录进行分组,当select子句中有聚合函数时,凡不在聚合函数中的其他字段。反过来则不是必须的。–上面只考虑不为null的记录,会忽略为null记录的统计。的记录在结果集中来自右侧表中的字段全部以null作为值显示。所以 having 的过滤是在 where 之后进行的。求指定字段在查询出的所有记录中的最大值与最小值。查看平均工资高于2000的部门的最高薪水是多少?

2401_87555420的博客 339

OpenClaw小白使用全攻略

OpenClaw全能技能解锁指南:从基础到进阶 摘要: 本文提供OpenClaw AI智能体的完整使用教程,帮助用户从安装后"不知道如何用"到熟练掌握核心功能。教程包含:1)控制台5大区域详解和3个必做初始化设置;2)文件管理、浏览器自动化、文档生成等5大基础功能实操,每个功能配有详细操作步骤、指令模板和效果演示;3)10+高频场景解决方案,如整理文件、搜集资料、写总结等;4)进阶技巧和常见问题解答。通过清晰的图文指引,即使电脑小白也能快速上手,实现办公自动化、提升工作效率。

通俗易懂学IT 3061

Oracle数据库 | 基于SQL基础分析

Oracle开发的关系数据库产品因性能卓越而闻名,Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统,是世界最好的数据库产品。此外,Oracle公司还开发其他应用程序和软件。同时,Oracle在英语里还是“神谕”的意思,意为“替神说话的”,寓指Oracle公司的发展目标和决心地位

wei_shuo的博客 2160

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

MySQL基础学习_第004章节_DB、DBMS、SQL之间的关系

DB、DBMS、SQL之间的关系 DB: DataBase(数据库)—>数据库实际上在硬盘中以文件的形式存在 DBMS: DataBase Management System(数据库管理系统)—>常见的DBMS有:MySQL、Oracle、DB2、SyBase、SqlServer SQL: (1)SQL是结构化查询语言,是一门标准通用的语言。标准的SQL适合于所有的数据库产品; (2)SQL属于高级语言; ...

沧海黎明 560

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

oracle和sql数据库,SQL与ORACLE异同

001、SQL与ORACLE的内存分配ORACLE的内存分配大部分是由INIT.ORA来决定的,一个数据库实例可以有N种分配方案,不同的应用(OLTP、OLAP)它的配置是有侧重的。SQL概括起来说,只有两种内存分配方式:动态内存分配与静态内存分配,动态内存分配充许SQL自己调整需要的内存,静态内存分配限制了SQL对内存的使用。002、SQL与ORACLE的物理结构总得讲,它们的物理结构很相似,S...

weixin_39560657的博客 612

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【SQL必知必会】004-基础篇:学会用数据库的方式思考SQL是如何执行的

【SQL必知必会】004-基础篇:学会用数据库的方式思考SQL是如何执行的 本文介绍了 sql 语句在 Oracle 和 MySQL 中的执行过程! 文章目录【SQL必知必会】004-基础篇:学会用数据库的方式思考SQL是如何执行的一、Oracle 中的 SQL 是如何执行的1、执行过程图示2、语法检查3、语义检查4、权限检查5、共享池检查6、优化器7、执行器二、MySQL 中的 SQL 是如何执行的1、执行过程图示2、连接层3、SQL 层缓存查询解析器优化器执行器4、存储引擎层InnoDB 存储引擎M

訾博(ZiBo)的博客 375

【Oracle数据库进阶】004.SQL基础查询_聚合、分组、过滤、排序

课 程 推 荐。

weixin_50296259的博客 1337

Oracle/MySQL数据库 SQL语句基础知识学习及整理

由于学习需要,从今天起开始学习数据库的基础知识以及SQL语句的编写及使用,因此在这里记录我的学习历程,以此来督促自己,巩固已学过的知识,并且也希望能够帮助到更多入门的同学。 1、建立数据库 create database db_name;//db_name为数据库的名称。 由于我已经打开了数据库,再次创建数据库会提示“失败,数据库已装载”。 2、显示数据库 show databases; 3、创建数据表 //创建学生表 学号、姓名、年龄、性别 create table ...

qq_38498224的博客 2568

SQL与ORACLE的对比

function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyit=window.open(http://www.365key.com/storeit.as

MaoMao_1983的专栏 2823

SQL与Oracle对比

网上已经有很多SQL与ORACLE的对比 ,但本人要讲的即不是单纯的SQL,也不是单纯的ORACLE,更不是评价谁好谁坏(意思不大),而是两种数据库之相同和异同,本人曾讲授过SQL与ORACLE的课程,讲SQL时说SQL好,讲ORACLE时又说ORACLE棒,现在终于可以平心而评啦。估计有人现在会嘿嘿冷笑(又一个误人子弟的骗子),老实说,当初每次讲完课,就有这种感觉—教的人不得其法,学的人不得其道

昊的专栏 1522

ODBC连Oracle数据库报错,SQLState=IM004

Window7下使用ODBC连Oracle数据库(11g的),然后报下边的错误:Unable to connectSQLState=IM004[Microsoft][ODBC 驱动程序管理器]驱动程序的 SQLAllocHandle on SQL_HANDLE_ENV 失败解决方法:原来是Oracle_Home指向错了,我连得是Oracle11g的数据库,但环境变量里指定的Oracle_Home为

田攀的日志 1万+

【转】SQL与Oracle对比

【转】SQL与Oracle对比 网上已经有很多SQL与ORACLE的对比 ,但本人要讲的即不是单纯的SQL,也不是单纯的ORACLE,更不是评价谁好谁坏(意思不大),而是两种数据库之相同和异同,本人曾讲授过SQL与ORACLE的课程,讲SQL时说SQL好,讲ORACLE时又说ORACLE棒,现在终于可以平心而评啦。估计有人现在会嘿嘿冷笑(又一个误人子弟的骗子),老实说,当初每次讲完课,就有这种感觉

我心编程 1629

oracle与sql比较,SQL 与 ORACLE 的比较 (转)

01、SQL与ORACLE的内存分配ORACLE的内存分配大部分是由INIT.ORA来决定的,一个数据库实例可以有N种分配方案,不同的应用(OLTP、OLAP)它的配置是有侧重的。 SQL概括起来说,只有两种内存分配方式:动态内存分配与静态内存分配,动态内存分配充许SQL自己调整需要的内存,静态内存分配限制了SQL对内存的使 用。002、SQL与ORACLE的物理结构总得讲,它们的物理结构很相似,...

weixin_42358409的博客 690

odbc sqlstate:IM004

 ODBC连不上数据库关键词: ODBC    IM004    SQLAllocHandle    on    SQL_HANDLE_ENV                                          今天突然发现程序死活连不上oracle数据库,我是采用ODBC连接的,我以为是oracle的原因,把oracle的服务重启了也不行,后来干脆把机子也重启了还是不行

htyy521的专栏 7949
上一篇: 数据库开发基础-Oracle-SQL基础-003
下一篇: 数据库开发基础-Oracle-SQL基础-005
Coder_Boy_
博客等级 码龄10年 2804粉丝 819原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值