七、查询
1、基本查询语句
select 列名字,列名字 from 表名字
例如
select user_a_id from userinfo;

2、在SQL*PLUS中设置格式
(1)设置新的字段名(更改查询结果的字段名)
column column_name heading new_name
例如:
col username heading 用户名;
查看更改
select * from userinfo;
(2)设置结果显示的格式
例如:
设置显示字段长度为10,字符类型的设置
col user_username format a10;
设置数值型字段的长度,用一个'9'表示一个数字位
col user_a_id format 9999.9;
注:格式不对的信息会显示########
col user_a_id format $9999.9;
设置日期格式同字符格式的设置

可以设置:
col user_a_id format 9999.9;
col user_username format a10;
col user_pwd format a10;
col user_email format a10;
col user_regdate format a10;

删除格式:
col user_a_id clear;

3、查询表中的所有字段及指定字段
(1)查询所有字段
a、用'*'代指所有字段
select * from userinfo;
b、写出每个字段的名字
select user_a_id,user_username,user_pwd,user_email,user_regdate from userinfo;
(2)查询指定字段
select user_a_id,user_username from userinfo;

4、给字段设置别名(针对查询结果)
(1)设置别名
注意:as可以省略,用空格隔开原来的字段名和新字段名即可
select user_a_id as 编号,user_username as 用户姓名,user_pwd as 密码,user_email as 邮箱,user_regdate as 日期 from userinfo;
col 编号 format 9999.9;
col 用户姓名 format a10;
col 密码 format a10;
col 邮箱 format a10;
col 日期 format a10;
(2)去重复别名
select distinct user_username as 用户姓名 from userinfo;

5、运算符和表达式
表达式 = 操作数 + 运算符
Oracle中的操作数可以有变量、常量和字段
算数运算符(+,-,*,/)
比较运算符(>,>=,<,<=,=,<>)
逻辑运算符(and,or,not)

6、在SELECT语句中使用运算符
(1)使用算数运算符
create table users(
id number(5,1),
username varchar2(20),
salary number(5,1)
);

insert into users values(1,'aaa',800);
insert into users values(2,'bbb',1800.5);
insert into users values(3,'ccc',5000.5);

(a)给所有员工增加200元薪水
没加薪水前:
select id,username,salary from users;
增加薪水后:
select id,username,salary+200 from users;

(2)使用比较运算符(一般放在where当中)
工资大于800
select username from users where salary>800;

(3)使用逻辑运算符
工资大于800,并不等于1800.5
select username from users where salary>800 and salary<>1800.5;
工资要么大于800,要么不等于1800.5
select username from users where salary>800 or salary<>1800.5;

7、带条件的查询
(1)单一条件的查询
查询员工姓名是'aaa'
select salary from users where username='aaa';
查询id是3的员工薪水
select username,salary from users where id=3;
(2)多条查询
查询员工姓名是'aaa'或者薪水大于2000的员工信息
select * from users where username='aaa' or salary>2000;
查询员工姓名是'aaa'或者薪水在800到2000之间的员工信息
select * from users where username='aaa' or (salary>800 and salary<=2000);
注意:
1、逻辑运算符的优先级:按not、and、or的顺序依次递减
2、比较运算符的优先级高于逻辑运算符
查询员工姓名不是‘aaa’
select * from users where not(username='aaa');

8、模糊查询(类似于搜索引擎的查询)
关键字like
(1)通配符的使用(_,%)(一个下划线代替一个字符,百分号代替零到多个字符)
查询员工姓名是'aaa'
select * from users where username like 'a%';
select * from users where username like 'a__';
查询名字第二个字符是'a'的员工
select * from users where username like '_a_';
select * from users where username like '_a%';
(2)使用LIKE查询
查询用户名中含有'a'的
select * from users where username like '%a%';

9、范围查询
between ... and 是[800,2000]闭合区间
查询800到2000之间的员工工资
select * from users where salary between 800 and 2000;
查询不在800到2000之间的员工工资
select * from users where salary not between 800 and 2000;

in/not in
查询用户姓名是aaa或者bbb的用户信息
select * from users where username in('aaa','bbb');
查询用户姓名不是aaa或者bbb的用户信息
select * from users where username not in('aaa','bbb');

10、对查询结果排序
(1)按照id降序排列
select * from users order by id desc;
(2)按照多个字段排序(第一个orderby位置字段第一个需要相等)
insert into users values(4,'aaa',1000);
select * from users order by username desc,salary asc;

11、case...when语句的使用
(1)在姓名是'aaa'显示'计算机部门','bbb'显示'市场部门',剩下的是'其他部门'
select username,case username when 'aaa' then '计算机部门'
when 'bbb' then '市场部门' else '其他部门' end as 部门
from users;
(2)在姓名是'aaa'显示'计算机部门','bbb'显示'市场部门',剩下的是'其他部门'
select username,case when username='aaa' then '计算机部门'
when username='bbb' then '市场部门' else '其他部门' end as 部门
from users;

(3)显示薪水小于800的为工资低,大于5000的为工资高
select username,case when salary<800 then '工资低'
when salary>5000 then '工资高' end as 工资水平
from users;

12、decode语句使用
对字段中的名字进行一个条件的判断
select username,decode(username,'aaa','计算机部门','bbb','市场部门','其他') as 部门
from users;

总结:
1、用户与表空间
(1)如何查看某个用户的默认表空间和临时表空间
(2)如何管理表空间:创建、修改、删除表空间
2、表与约束
(1)数据类型、字符类型(char(N)、Nchar(n)、varchar2(n)、nvarchar2(n))、数值型:NUMBER(p.s)、float(n)、日期型:DATE、TIMESTAMP、其他类型:BLOB、CLOB
(2)对表中数据的操作
添加数据insert、修改数据update、删除数据delete
(3)非空约束、主键约束、外键约束、唯一约束、检查约束
3、查询语句
(1)查询所有字段和指定字段
(2)为字段设置别名
(3)在查询语句中使用运算符和表达式
(4)在查询语句中加入条件where
(5)范围查询
(6)模糊查询:LIKE关键字,通配符_和%
(7)case ...when语句和decode函数

Oracle学习笔记(五)的更多相关文章

  1. Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页

    GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  4. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  5. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  6. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

随机推荐

  1. 【转】Linux下的文本dos格式转Unix格式,去除^M符号

    原文网址:http://blog.csdn.net/kobejayandy/article/details/13291525 问:我在Windows中通过FTP传一个文本文件到Linux中,但是打开文 ...

  2. Java多线程编程核心技术,第三章

    1,notify的同步块完了,才会运行wait的同步块 2,interrupt()不是静态方法,用在wait的线程上会有InteruptException,锁也会被释放 3,notify()唤醒的线程 ...

  3. php 文件上传$_FILES中error返回值详解

    用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[field ...

  4. 【nodeJS】webstorm中设置nodej智能提示

  5. 黄聪:WIN7下回收站不小心删除的文件怎么恢复,免费数据恢复软件下载

    上网找了半天,大多数是收费的,总算找到一款免费的,已经帮我恢复了数据了,在此分享给大家. 注意:只能恢复7天内的,而且数据误删了,就尽量不要再修改你那个盘符的数据了,免得覆盖了! 我用的数据恢复软件R ...

  6. Linux下搭建企业共享目录方案之------samba

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通 ...

  7. Linux知识温习

    进程间通信(IPC)介绍 mmap - 用户空间与内核空间 linux 进程地址空间的一步步探究 mmap 还是 shmget ? linux C/C++服务器后台开发面试题总结 Trie树详解及其应 ...

  8. Python3 使用requests请求,解码时出错:'utf8' codec can't decode byte 0x8b in position 1: invalid start byte

    requests请求的响应内容能够通过几个属性获得: response.text 为解码之后的内容,解码会根据响应的HTTP Header中的Content-Type选择字符集.例如 "'C ...

  9. python的requests模块

    使用python进行接口测试得时候可以使用requests模块,是基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库 安装requests是模块 pip instal ...

  10. Hyberledger-Fabric 1.00 RPC学习(2)尝试建立一个network

    本文参考:http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html 这里我们学习建立第一个Hyperledger Fa ...