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工程拆分成一个个功能相对独立但相互依赖的小 ...
随机推荐
- 文件和I/O流
版权声明:本文为[博主](https://zhangkn.github.io)原创文章,未经博主同意不得转载.https://creativecommons.org/licenses/by-nc-sa ...
- 提高ASP.NET页面载入速度的方法
前言 本文是我对ASP.NET页面载入速度提高的一些做法,这些做法分为以下部分: 目录 1.采用 HTTP Module 控制页面的生命周期. 2.自定义Response.Filter得到输出流str ...
- 【转】VC++ 也有 Refactoring 功能了
原文网址:http://blog.csdn.net/yapingxin/article/details/18923095 分类: C++2014-02-04 14:00 2688人阅读 评论(0) 收 ...
- Window 查看端口进程使用
1. 查看所有端口占用 netstat -ano 2. 查看指定端口占用 netstat -ano | findstar "8080" 其中11152 对应为进程号 3. 查看进程 ...
- android单元测试 activity跳转 以及 input 输入后 测试
Android junit实现多个Activity跳转测试 分类: Android Junit测试2011-11-14 16:49 1601人阅读 评论(2) 收藏 举报 androidjunitla ...
- Android中如何使用JUnit进行单元测试 eclipse
Android中如何使用JUnit进行单元测试 在我们日常开发android app的时候,需要不断地进行测试,所以使用JUnit测试框架显得格外重要,学会JUnit可以加快应用的开发周期. Andr ...
- Data_Structure03-栈和队列
一.学习总结 1.写出你认为本周学习中比较重要的知识点关键词 ·抽象数据类型 ·栈和队列 2.思维导图 二.PTA实验作业 选题: 1.7-1 jmu-字符串是否对称(20 分) 2.7-4(选做) ...
- python 下载图片的方法
a='http://wx1.sinaimg.cn/mw600/006HOayNgy1fqjdi2nxohj32pw3o8x6s.jpg' #图片下载地址 ( 这里改成 文件txt地址)w='/U ...
- Java LinkedList 和 ArrayList
Java 手册 java.util 类 ArrayList<E> java.lang.Object java.util.AbstractCollection<E> java.u ...
- Python基础之爬虫(持续更新中)
python通过urllib.request.urlopen("https://www.baidu.com")访问网页 实战,去网站上下载一只猫的图片 import urllib. ...