简单的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. 面相对象编程 扩充之封装、访问机制、 property

    封装: 封装指的是可以将一堆属性和方法,封装到对象中 ps : 对象就好比一个 “袋子/容器”, 可以存放一堆属性和方法 ps : 存不是目的,目的是为了取,可以通过“对象” d的方式获取属性或方法 ...

  2. etcd扩展使用

    etcd我已经提到很多次了,前面的可以自己查看.v3版本改用grpc接口,很简单,非常简单,易上手易学习. etcd有集群部署方式,那么就涉及部署的地址,可以动态添加部署节点,这样再应用中不可能都去关 ...

  3. JQuery通过URL获取图片宽高

    var img_url ='https://www.baidu.com/img/bd_logo1.png'; // 创建对象 var img = new Image(); // 改变图片的src im ...

  4. PostgreSQL的学习-序列

    序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表.一个序列对象通常用于为行或者表生成唯一的标识符.下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安 ...

  5. 六、Redis五种类型 - hash(散列)类型

    1.介绍 (1).hash也是一种字典结构,存储了字段(field)和字段值(value)的映射,字段值只能是字符串,不支持其他类型.(2).适合存储对象,对象列表和ID构成键名,字段表示对象的属性, ...

  6. jQuery效果-隐藏与显示 小方块的移除

    html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...

  7. 【leetcode】207. Course Schedule

    题目如下: There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have ...

  8. 【和孩子一起学编程】 python笔记--第二天

    第六章 GUI:用户图形界面(graphical user interface) 安装easygui:打开cmd命令窗口,输入:pip install easygui 利用msgbox()函数创建一个 ...

  9. vue 前后端数据交互问题解决

    先在vue项目中配置好路由组件路由 然后写相应组件 2 后端 写接口赔路由 第三  解决跨域问题 处理数据交互 这样前端就拿到了数据

  10. 火狐插件火狐黑客插件将Firefox变成黑客工具的七个插件

    目前很多插件不支持 Firefox 3.5 哦1. Add N Edit Cookies 查看和修改本地的Cookie,Cookie欺骗必备. 下载:http://code.google.com/p/ ...