Oracle学习笔记(5)——查询

  • 基本查询语句

    • SELECT [DISTINCT] column_name1,...|* FROM table_name [WHERE conditions]

  • 在SQL*PLUS中设置格式

    • 更改显示字段名:COLUMN column_name HEADING new_name   (注意COLUMN可以简写成COL)

      • 例如:

col username heading 用户名;

select * from users;

  • 设置显示结果的格式:COLUMN column_name FORMAT dataformat;  (注意COLUMN可以简写成COL,字符类型只能设置显示的长度)

    • 例如

col username format a10;  注意:字符类型用a代表,a10表示设置字符类型长度为10。数值类型用9表示

select * from users;

col salary format 9999.9;  注意:数值类型用9表示

select * from users;

  • 清除之前设置过的格式:COLUMN column_name CLEAR;

    • 例如:

col username clear;

col salary clear;

  • 查询表中的所有字段及指定字段

    • 查询所有字段:SELECT * FROM table_name;
    • 查询指定字段:SELECT column1_name,column2_name... FROM table_name;

  • 给字段设置别名(*给字段设置别名是针对查询结果进行的,并没有更改字段的名字)

    • SELECT column_name AS new_name,... FROM table_name; 注意:AS可以省略,用空格隔开原来的字段名和新字段名即可。

      • 例如:

select id as 编号,username as 用户名,salary  工资 from users;

  • 运算符和表达式

    • 表达式 = 操作数 + 运算符
    • Oracle中的操作数可以有变量,常量和字段
    • 运算符
      • 算数运算符(+,-,*,/)
      • 比较运算符(>,>=,<,<=,=,<>)
      • 逻辑运算符(and,or,not)。优先级:按not、and、or的顺序依次递减。比较运算符的优先级高于逻辑运算符
  • 在SELECT语句中使用运算符(省略)
  • 带条件的查询
    • 单一条件的查询

      • 查询用户名为aaa的员工薪水:select salary from users where username=‘aaa‘;
    • 多条件的查询
      • 查询名字是aaa,或者工资在800到2000之间的员工信息

select * from users where username=‘aaa‘ or (salary > 800 and salary <=2000)

  • 模糊查询 LIKE

    • 通配符的使用( _ 、%)

      • 一个 _ 只能代表一个字符
      • %可以代表0到多个任意字符
    • 使用LIKE查询
      • 例:查询用户名以a开头的用户信息。select * from users where username like ‘a%‘;
      • 例:查询用户名的第二个字符是a的用户信息。select * from users where username like ‘_a%‘;
      • 例:查询用户名中含有a的用户信息。select * from users where username like ‘%a%‘;

  • 范围查询

    • BETWEEN ... AND  闭区间。

      • 例:查询员工薪水在800和2000之间的所有员工信息:select * from users where salary between 800 and 2000;  注意包含800和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‘);

  • 对查询结果排序

    • SELECT ... FROM ... [WHERE ...] ORDER BY column1 DESC/ASC,...;  
      DESC:降序,ASC:升序

      • 例:select * from users order by id desc;
      • 例:select * from users order by id desc,salary asc;

  • case...when语句的使用

    • 作用:就是在我们查询语句当中可以根据我们字段不同的值,还可以显示不同的结果。
    • CASE column_name WHEN value1 THEN result1,... [ELSE result] END;
      • 例子:根据不同的用户名来得到他所在的部门

select username,case username when ‘aaa‘ then ‘计算机部门‘

when ‘bbb‘ then ‘市场部门‘ else ‘其他部门‘ end as 部门 from users;

  • CASE WHEN column_name=value1 THEN result1,... [ELSE result] END;

    • 例子:

select username,case when username=‘aaa‘ then ‘计算机部门‘

when  username=‘bbb‘ then ‘市场部门‘ else ‘其他部门‘ end as 部门 from users;

    • 例子:

select username,case when salary<800 then ‘工资低‘ when salary>5000 then ‘工资高‘ end as 工资水平 from users;

  • decode函数的使用

    • decode (column_name,value1,result1,...,defaultvalue);

      • 例子:

select username,decode(username,‘aaa‘,‘计算机部门‘,‘bbb‘,‘市场部门‘,‘其他‘) as 部门 from users;

时间: 2024-12-10 04:03:31

Oracle学习笔记(5)——查询的相关文章

oracle学习笔记之用户管理-3

用户权限机制 1.不同用户表权限的赋予 grant select on scott.emp to software; ---当前登录用户为表所有者,则表名前不用指定所属用户 2.用software登录后 select * from scott.emp; ---software才有权限查询到scott的emp表 方案(schema) 当用户创建好后,如果该用户创建了一个数据对象(如表),此时dbms会创建一个对应的方案与改用户对应,并且该方案的名称和用户名称一致. system与scott都拥有自

【我的Oracle学习笔记(二)】----- select语句补充

一.多表查询 多表查询是指从多个有关联的表中查询数据,其语法与单表查询类似.一般来说,多表查询的表要用连接联系起来,如果没连接,则查询结果是这多个查询表的笛卡尔积(注释1). 模拟查询雇员姓名和所在部门名称: select [雇员姓名],[部门名称] from [雇员表] a,scott,[部门表] b where a.[部门编号]=b.[部门编号]; 上例中,为每一个查询表指定了别名,便于SQL语句的书写. 模拟查询在”sales“部门工作的雇员其雇员姓名 select [雇员姓名] from

Oracle学习笔记三 SQL命令

SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)               下面是这四种SQL语言的详细笔记: Oracle学习笔记三 SQL命令(二):SQL操作语言类别 Oracle数据类型 创建表时,必须为各个列指定数据类型 以下是 Oracle 数据类型的类别: 字符数据类型 CHAR类型 当需要固定长度的字符串时,使用 CHAR 数据类型. CHAR 数据类型存储字母数字值. CH

Oracle学习笔记章(一)

Oracle学习笔记一 权限分为sysdba,nomal等,系统自带有两个用户,起始密码为空. 用户为:SYSTEM,SYS. 登录SYSTEM的时候要使用sysdba权限来登录,如果忘记了密码,则打开命令行 输入:1.echo %ORACLE_SID% 2.set ORACLE_SID = orcl(orcl为所要登录数据的实例,可以自己修改) 3.sqlpuls / as sysdba  (即可采用sysdba权限进入oracle系统) 4.alter user system identif

Oracle学习笔记(1)

这是我的Oracle学习笔记系列的第一篇,主要总结了Oracle的体系结构,要学好Oracle,就要先了解Oracle的运行机制和原理.把今天学习的内容整理了一个图,备忘,点击可放大. 另外,还有几个语句(sql*plus): SYS用户登录 SQL> / as sysdba; 解锁scott用户 SQL> alter user scott identified by tiger account unlock; 切换到scott用户 SQL> conn scott/tiger; Null

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

【Oracle学习笔记】

内容主要包含: (1)三种循环及其简化 (2)游标的使用 (3)异常处理 (4)存储过程 (5)存储函数 (6)触发器 (7)其他pl/sql操作 ---------------loop循环定义变量-------------------- declare cursor c1 is select * from emp;# rec emp%rowtype;# i numeber:=1; # v_count number;begin# select count(*) into v_count from

oracle学习笔记(二)

设置归档模式(mount状态) ALTER database ARCHIVELOG; //关闭数据库 shutdown immediate //启动数据库到mount状态 startup mount alter database archivelog; //查看归档状态 archive log list; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列

oracle学习笔记之用户管理-2

案例:创建一个用户software,然后给分配权限,可以让software登录数据库.创建表.操作自己创建的表,回收角色,最后删除用户. 1.创建software用户,密码system create user software identified by system; 2.让software连接数据库,需要给其connect.resource权限 grant connect to software; grant resource to software; 3.使用software用户登录 co

oracle学习笔记 存储及raid技术概述

oracle学习笔记 存储及raid技术概述 本课以oracle数据库所运行的环境,讲一下存储和raid技术. 一)oralce生产环境里的结构 先说一下oracle所在的环境. 有一种结构: 两个服务器.两个光纤存储交换机.两个存储, 它们通过网线相互连接在一起. 每个服务器接两个交换机, 每个交换机连两个服务器同时连两个存储, 每个存储和两个交换机有连接. 这是oracle数据库相对比较典型的正规的运行环境. 每个服务器上都装Linux和oracle数据库软件, oracle数据库建在存储上