简单的select查询语句

1.select查询语句基本语法
使用两个关键字:
select 指定要查询的字段和内容
from 从哪张表中查询
语法:select 字段名 from 表名;

三种不同的用法:
1)查询某张表中特定的某一个字段
select 字段名 from 表名;
例如:查询员工表中所有员工的id
SQL:select id
from s_emp;
2)查询某张表中的多个字段
字段之间通过逗号分隔
select 字段1,字段2,字段3.... from 表名;
例如:查询员工表中所有员工的id、last_name?
SQL:select id,last_name
from s_emp;
查询所有员工的id、last_name、salary?
SQL:select id,last_name,salary
from s_emp;
3)查询一张表中的所有字段
1)将所有字段名全部定义出来进行查询
2)使用*符号 代表全部字段的含义
例如:查询部门表中全部字段的全部内容?
SQL:select id,name,region_id
from s_dept;
等同于:select * from s_dept;

区别:方式1)直接根据字段名取字段值
效率较高
方式2)使用*号,要先查询当前表中
有哪些字段,再根据查询的结果
去取对应的字段值。
效率较低。

2.算数运算
1)数值类型的运算
包括 加减乘除
+ - * /
例如:查询员工12个月的总收入?
select salary*12 from s_emp;

练习:员工每个月涨了200元
查询加薪之后的12个总收入?
select (salary+200)*12
from s_emp;

练习:在加薪200元的基础上,每位员工有
年终奖500元。
查询每位员工一年的薪水?
(该公司一年为员工付薪18月)
select (salary+200)*18+500
from s_emp;

2)日期类型的运算
日期类型运算只有加减法
加法代表向指定日期的未来数几天
减法代表向指定日期的过去数几天

例如:查询所有员工入职时间的前一天?
select start_date-1 from s_emp;

3.处理空值
查询所有员工的id、提成(commission_pct)?
select id,commission_pct
from s_emp;

查询所有的员工id、工资+提成?
select id,salary+commission_pct
from s_emp;

单值函数:nvl(字段名,默认值)
把有可能出现空值的字段,写在nvl函数中。
如果字段值查询结果不为空,则使用原来的值。
如果字段值为空,使用默认值。
SQL:select id,salary+nvl(commission_pct,0)
from s_emp;

错误写法:
select id,nvl(salary+commission_pct,0)
from s_emp;

4.字符串拼接
可以把多个字段的结果拼接成一个字段显示。
例子:查询员工的全名?
first_name last_name

select first_name,last_name
from s_emp;
在Oracle数据库中拼接字符串使用 ||
语法:字符串1||字符串2||字符串3.....
SQL:select first_name||last_name
from s_emp;

练习:查询所有员工的全名?
要求:姓氏和名字之间使用“-”分割。
select first_name||'-'||last_name
from s_emp;

concat:字符串拼接
select first_name||last_name
from s_emp;
等同于:
select concat(first_name,last_name)
from s_emp;

5.查询结果起别名
1)查询结果可以看作是一张表
2)这张表中的字段名取决于
select关键字后面定义的内容(默认)。

四种方式:
1)select 字段 别名 from 表名;
2)select 字段 as 别名 from 表名;
3)select 字段 "别名" from 表名;
4)select 字段 as "别名" from 表名;

方式1和方式2没区别。

例如:查询所有员工的id以及12个月的薪水?
并且12个月的薪水显示结果为Sal?
select id,salary*12 as "Sal"
from s_emp;
加双引号和不加双引号的区别:
在Oracle数据库中,查询的结果字段名默认
为全部大写字母。
如果需要使用特定的格式(例如包含小写字母)
就需要把别名用双引号包含。

6.设置查询结果的显示格式
column 修改字段显示格式
简写为col
语法:
column/col 字段名 format 格式;
例如:
把last_name字段设置为显示15个字符长度。
col last_name format a15;
a:代表要处理的数据是字符类型。
15:要显示的长度。
字段名不是特指某张表中的某个特定字段。
而是指查询结果字段。

注:例题、例题中的表格是上课时插入的表格

练习题:

1)查询员工的工资和last_name,对工资进行升序排列
select salary,last_name
from s_emp
order by salary asc;
2)查询员工的工资和last_name,对last_name进行降序排列。
select salary,last_name
from s_emp
order by last_name desc;
字符类型根据首个字母的字典顺序。ASCII码排序
65-90 A-Z 97-122 a-z

3)查询员工的工资和last_name,先对salary进行降序排列,再对last_name进行升序排列。
select salary,last_name
from s_emp
order by salary desc,last_name asc;
4)请举例说明空值的排序规则
空值在排列时视为无限大。
所以在降序排列中空值排在最前。
在升序排列中空值排在最后。

5)查询41号部门员工的信息?;
select id,last_name,salary,dept_id
from s_emp
where dept_id = 41;
6)查询工资大于1000的员工的信息?
select id,last_name,salary
from s_emp
where salary > 1000;
7)查询工资大于1000小于1500员工的信息,
使用两者方式来做?
a)select id,last_name,salary
from s_emp
where salary>1000 and salary<1500;
b)select id,last_name,salary
from s_emp
where salary between 1000 and 1500;
8)查询41或者42部门员工的信息,
使用两者方式来做?
a)select id,last_name,salary
from s_emp
where dept_id = 41 or dept_id = 42;
b)select id,last_name,salary
from s_emp
where dept_id in(41,42);

9)查询last_name包含n的员工的信息?
select id,last_name
from s_emp
where last_name like '%n%';

10)查询last_name包含n或者N的员工的信息?
select id,last_name
from s_emp
where last_name like '%n%'
or last_name like '%N%';

方法二:
select id,last_name
from s_emp
where upper(last_name) like '%N%';

select id,last_name
from s_emp
where lower(last_name) like '%n%';

upper函数:可以把指定字符串转换成全部大写的形式。

11)查询last_name第二个字母为g的员工的信息?
select id,last_name
from s_emp
where last_name like '_g%';

12)查询last_name最后一个字母为o的员工的信息?
select id,last_name
from s_emp
where last_name like '%o';

13)查询last_name以N开头的员工的信息?
select id,last_name
from s_emp
where last_name like 'N%';

14)先插入这条数据
insert into s_emp(id,last_name)
values(999,'_briup');
commit;
然后查询以_开头的员工的信息?
select id,salary
from s_emp
where last_name like 'a_%' escape 'a';
15)找出部门41中所有经理和部门43中的所有办事员的详细资料
职称字段为:Title
经理职称为:Warehouse Manager
办事员的职称为:Stock Clerk
select id,last_name,salary,dept_id
from s_emp
where dept_id=41
and title='Warehouse Manager'
or dept_id=43 and title='Stock Clerk';

Oracle上课学习笔记<1>的更多相关文章

  1. Oracle RAC学习笔记:基本概念及入门

    Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章]    oracle 10g real applica ...

  2. Oracle RAC学习笔记01-集群理论

    Oracle RAC学习笔记01-集群理论 1.集群相关理论概述 2.Oracle Clusterware 3.Oracle RAC 原理 写在前面: 最近一直在看张晓明的大话Oracle RAC,真 ...

  3. Oracle RAC学习笔记02-RAC维护工具集

    Oracle RAC学习笔记02-RAC维护工具集 RAC维护工具集 1.节点层 2.网络层 3.集群层 4.应用层 本文实验环境: 10.2.0.5 Clusterware + RAC 11.2.0 ...

  4. [Oracle]OWI学习笔记--001

    [Oracle]OWI学习笔记--001 在 OWI 的概念里面,最为重要的是 等待事件 和 等待时间. 等待事件发生时,需要通过 P1,P2,P3 查看具体的资源. 可以通过 v$session_w ...

  5. Oracle基础学习笔记

    Oracle基础学习笔记 最近找到一份实习工作,有点头疼的是,有阶段性考核,这...,实际想想看,大学期间只学过数据库原理,并没有针对某一数据库管理系统而系统的学习,这正好是一个机会,于是乎用了三天时 ...

  6. Oracle cursor学习笔记

    目录 一.oracle库缓存 1.1.库缓存简介 1.2.相关概念 1.3.库缓存结构 1.4.sql执行过程简介 二.oracle cursor 2.1.cursor分类 2.2.shared cu ...

  7. oracle从零开始学习笔记 三

    高级查询 随机返回5条记录 select * from (select ename,job from emp order by dbms_random.value())where rownum< ...

  8. Oracle数据库学习笔记

    创建表的同时插入数据:create table zhang3 as select * from zhang1;create table zhang3(id,name) as select * from ...

  9. oracle从零开始学习笔记

    查询现有数据库:select name from V$database; 解锁用户scott:alter user scott account unlock; 普通用户连接:conn scott 默认 ...

随机推荐

  1. 搜狗拼音、QQ拼音输入法、2345拼音输入法、百度输入法 、手心输入法对比。(个人体会)

    搜狗拼音.QQ拼音输入法.2345拼音输入法.百度输入法 .手心输入法对比. 这几个输入法对比的感觉,做个记录.自己记录一下,如果恰巧有朋友也遇到类似的情况,仅供参考. 词库量 搜狗 > 百度 ...

  2. Windows Server 2008 R2 官方简体中文免费企业版/标准版/数据中心版

    Windows Server 2008 R2是一款微软发布的Windows服务器操作系统,和之前发布的Windows Server 2008相比功能更为完善运行更为稳定,提升了系统管理弹性.虚拟化.网 ...

  3. SpringBoot-技术专区-异步编程

    最近在实现一个聚合搜索的需求时,由于需要从五个索引中查询数据,然后再将搜索结果组合返回给前端app展现,显然这个地方不能再用同步的方式来操作了,如果有一个索引查询出现耗时较长,那么其余的请求都会排同步 ...

  4. 使用autoconf和automake生成Makefile

    使用环境: 我的是Ubuntu 16.04,需要用到autoconf和automake,没有的话自行安装. 以helloworld为例: 1.首先新建一个文件夹然后进去没的说:然后自然得先写出那个著名 ...

  5. db2表

    生成列: CREATE TABLE t1 (c1 INT,                 c2 DOUBLE,                 c3 DOUBLE GENERATED ALWAYS ...

  6. springcloud费话之Eureka基础

    目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...

  7. ajax基本原理实现

    function ajax(method,url,data,success){ try{ var xhr=new XMLHttpRequest(); }catch(e){ xhr=new Active ...

  8. 第五组postmortem报告

    为期近半年的软工课程顺利收工了.这一个学期的网站制作中, 憧憬过.懊恼过.兴奋过,回顾整个制作过程,我们按老师的要求来一份验尸报告. 1. 每个成员在beta 阶段的实践和alpha 阶段有何改进? ...

  9. go语言从例子开始之Example20.错误处理

    Go 语言使用一个独立的·明确的返回值来传递错误信息的.这与使用异常的 Java 和 Ruby 以及在 C 语言中经常见到的超重的单返回值/错误值相比,Go 语言的处理方式能清楚的知道哪个函数返回了错 ...

  10. openwrt 编译支持sqlite3

    编译版本加载lib库 ------------------------------Libraries----------------------------------- Filesystem  -- ...