简单的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. 面试题:实现call、apply、bind

    面试题:实现call.apply.bind 实现bind module.exports = function(Tcontext, ...args) { let globalThis = typeof ...

  2. 页面加载时loading效果

    页面加载时loading效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  3. 一、Json

    一.Json遍历模糊查询 你没admin 所以这句话报错. //1.写法 dynamic query = from user in jsonObject where (user.ToString(). ...

  4. 低版本vsphere部署高版本导出的OVF 报“硬件系列vmx-13不受支持“解决办法

    用文本编辑器之类的工具  打开ovf模板 然后下拉20多行左右 找到vmx-13这条报错内容 将13更改为数字较低的值 例如11,12

  5. iview table绑定双击事件

    <Table <Table ref="table" highlight-row :columns="columns" :data="new ...

  6. oracle 数据库插入中文乱码

    一. 查询数据库编码 select userenv('language') from dual; 查询服务器编码 select * from v$nls_parameters; 推出sql查询系统编码 ...

  7. vue中Template 制作模版

    一.直接写在选项里的模板 直接在构造器里的template选项后边编写.这种写法比较直观,但是如果模板html代码太多,不建议这么写. javascript代码: var app=new Vue({ ...

  8. python连接mongodb集群

    一 安装模块pymongo pip3 install pymongo 二 创建一个MongoClient conn=MongoClient('mongodb://cbi:pass@ip1:20000, ...

  9. 05-树9 Huffman Codes(30 分)

    In 1953, David A. Huffman published his paper "A Method for the Construction of Minimum-Redunda ...

  10. vue基础六

    列表渲染 1.v-for 我们用 v-for 指令根据一组数组的选项列表进行渲染. v-for 指令需要以 item in items 形式的特殊语法(也可以用of代替in), items是源数据数组 ...