Oracle学习笔记(五)
七、查询
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学习笔记(五)的更多相关文章
- Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页
GROUP BY和HAVING子句 GROUP BY子句 用于将信息划分为更小的组每一组行返回针对该组的单个结果 --统计每个部门的人数: Select count(*) from emp group ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Typescript 学习笔记五:类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
随机推荐
- AS3 判断双击事件
//双击事件触发的时候不触发单击事件 package { import com.greensock.TweenLite; import flash.display.DisplayObjectConta ...
- Guid.NewGuid().ToString()生成唯一码js
Guid.NewGuid().ToString() 生成唯一码,用户生成随机id 生成唯一编码,版本控制对比等. //表示全局唯一标识符 (GUID). function Guid(g) { var ...
- Python 中函数和方法
函数与方法 class Foo(object): def __init__(self): self.name = 'lcg' def func(self): print(self.name) obj ...
- 使用正则表达式去除html标签
不知道大家遇到这话总情况没有,从数据库读取数据,数据参杂着html标记<p>等,在显式的时候控制字符个数,这个时候就会出现页面样式串行,使用正则表达式去除html标记就不会有还这个问题. ...
- HBuilder webApp开发 Websql增删改查操作
来源:http://blog.csdn.net/zhuming3834/article/details/51471434 这段时间公司要求我们做原生iOS和安卓的都转做H5开发APP,使用的工具HBu ...
- 从后台读取项目文件在前端iframe中展示
项目中有个需求是: 对于外部提供的前端项目,包含css.js.html.图片等的项目,将这个项目存进数据库,然后iframe中展示html,然后html中引用的js.css等文件 也能从数据库中读取并 ...
- Log4j(3)--rootLogger根配置和appender输出类型配置
参考博客:http://blog.java1234.com/blog/articles/270.html 一.rootLogger根配置: Log4j 根配置语法 log4j.rootLogger = ...
- F5 源地址保持
Virtusl Server: Web Portal 建议选择成Source_Addr(源地址保持).因为Web Portal提供WEB服务给用户访问,压力比较大,而源地址保持的方式处理速度比Cook ...
- 记一次 在 HP zbook G3 笔记本上安装Ubuntu16.04LTS 的 心(填)路(坑)旅程
背景 同事MM申请的新笔记本暂时没有用,问我需不需要用. 本着 “宇宙都是xx的”(厚颜无耻~~)思想就接受了. 拿到本本一看,HP zbook G3, 配置还不错(500G SSD, 16G mem ...
- 正规式->最小化DFA说明
整体的步骤是三步: 一,先把正规式转换为NFA(非确定有穷自动机), 二,在把NFA通过"子集构造法"转化为DFA, 三,在把DFA通过"分割法"进行最小化 ...