Oracle学习笔记之第八节sql语句(开发课学生指南051)

开发课 做练习 学生指南051 les01 ppt

oracle经常两表连接,叫第三范式,如带有ID性质的东西

以下是sql语句的命令

select * from departments; 部门表

select * from employees; 员工表

select employee_id,rowid,rownum from employees

where employee_id>=200;  64进制内部运算 rownum本质查询第几行

select employee_id,rowid,rownum from employees

where rownum<=5; 查看前5行

select * from employees e where e.department_id=80; 这部门里的人都有提成

select last_name,12*salary*(1+commission_pct) from employees; 查看年收入

select last_name,12*salary*(1+nvl(commission_pct,0)) from employees; 查看年收入,处理空行的显示

select * from employees where manager_id is null; 关于空的处理

select last_name,12*salary*(1+nvl(commission_pct,0)) as anaualsal  from employees;进行列别名处理

select last_name,12*salary*(1+nvl(commission_pct,0)) "Anaualsal"  from employees;如果要区分大小写要加双引号

select last_name ||‘xxxx‘|| job_id from employees; 连起来显示

select department_name || q‘[ department‘s manager id:]‘ || manager_id as "Department and Manager" from departments;    q‘#xxx# 也可以, 后面就是你想要的东西

select DISTINCT department_id from employees; 有除重必须排序(空有显示,178号员工没部门)

create table t05101_distinct (a varchar2(10),b varchar2(10));

insert into t05101_distinct values (‘A‘,‘B‘);

select * from t05101_distinct;

select distinct a,b from t05101_distinct;

insert into t05101_distinct values (‘A‘,‘B1‘);  除重是除掉整行

select distinct a,b from t05101_distinct;

select * from user_tab_cols tc where tc.TABLE_NAME=‘LOCATIONS‘; 查看用户范围内的所有表的所有列

方法2:sqlplus命令

sqlplus /nolog

conn hr/oracle_4U

describe  locations  查看表结构

小提示:选中SQL 按F5看执行计划

les02 ppt

oracle变量有6种+1形参,两种宿主

select * from employees where rownum=1;

alter session set nls_date_format=‘YYYY-MM-DD‘;修改当前会话默认格式

select last_name from employees where hire_date = to_date(‘17-JUN-07‘,‘DD-MON-RR‘);

select * from employees e where e.employee_id in (select manager_id from employees);查看多少人是老板管过人

select * from employees e where e.employee_id not in (select manager_id from employees);这个例子是错误的。不能not in 因为里头有空值取反还是空

select * from employees e where e.employee_id not in (select manager_id from employees where manager_id is not null);这样才有显示89个人

create table t05102_a (a varchar2(10));

insert into t05102_a values (‘A‘);

insert into t05102_a values (‘A1‘);

insert into t05102_a values (‘%‘);

insert into t05102_a values (‘_‘);

insert into t05102_a values (‘_1‘);

select * from t05102_a;

select * from t05102_a where a like ‘A%‘; A打头的东西

select * from t05102_a where a like ‘A_‘;查看A打头的东西

select * from t05102_a where a like ‘\%%‘ escape ‘\‘; 查看%号

select * from t05102_a where a like ‘\_%‘ escape ‘\‘;查看下划线打头的

insert into t05102_a values(‘‘‘‘);插入单引号

insert into t05102_a values(chr(39)||1); man ascii查看得来的

create table t05102_b (a number,b number);

insert into t05102_b values(1,999);

insert into t05102_b values(1,0);

insert into t05102_b values(2,999);

insert into t05102_b values(2,0);

select * from t05102_b order by a,b;先按a排列在按照b排列

select * from t05102_b order by a desc ,b desc;

select a "X", b "Y" from t05102_b order by "X" desc,"Y" desc;别名,在order by世界里无所谓是“X”还是a都可以,但是正常语句的sql语句的别名不行

替换变量

select employee_id,salary from employees where employee_id=100;

select employee_id,salary from employees where employee_id=&S_1; 可以进出弹窗,自己选择ID号

select last_name,salary from employees where last_name like ‘&S_1%‘;可以进出弹窗

sqlplus /nolog

select  salary from employees where employee_id=&&s_2;问两次后永远都是这个

define 默认在这了

undefine s_2 取消

select  &&s2,salary from employees where employee_id=&s_2;

set verify off 配置这个后就不会有旧的新的,环境变量

时间: 2024-10-13 13:34:28

Oracle学习笔记之第八节sql语句(开发课学生指南051)的相关文章

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

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

Oracle学习笔记十 使用PL/SQL

PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构,可用于创建存储过程.触发器和程序包,给SQL语句的执行添加程序逻辑,与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性.灵活性和安全性. PL/SQL 的优点 支持 SQL,在 PL/SQL 中可以使用: 1.数据操纵命令 2.事务控制命令 3.游标控制 4.

entityframework学习笔记--009-使用原生sql语句操作数据

1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: 1 public class Payment 2 { 3 public int PaymentId { get; set; } 4 public decimal Amount { get; set; } 5 6 public string Vendor { get; set; } 7 } 1.2 数据访问类: 1 public c

数据库学习笔记3--基本的SQL语句

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4028178.html [正文] 主要内容: 一.cmd命令行的常用命令 二.数据定义语言(DDL) 三.数据操纵语言(DML) 四.数据查询语言(DRL) 五.事务控制语言(TCL) 一.cmd命令行的常用命令: 当我们使用MySQL 5.5 Command Line Client这个客户端登陆时

Oracle 学习笔记 16 -- 游标(PL/SQL)

在PL/SQL程序中,对于处理多行记录的事务经常使用游标来实现.当执行查询语句或者数据操纵语句是,一般可能会产生或者处理一组记录.游标是为了处理这些记录而分配的一段内存区. 游标分为:显示游标和隐示游标.当记录集中只有单行数据时,系统自动的进行定义右边,称为隐示游标.记录集中含有多行数据时,需要用户自己定义游标,称为显示游标.下面分别进行介绍. 显示游标 显示游标的处理需四个使用步骤: 1.定义游标: 就是定义一个游标名,以及与其对应的select 语句. 格式: CURSOR cursor_n

oracle学习笔记 SQL语句执行过程剖析讲课

oracle学习笔记 SQL语句执行过程剖析讲课 这节课通过讲述一条SQL语句进入数据库 和其在数据库中的整个的执行过程 把数据库里面的体系结构串一下. 让大家再进一步了解oracle数据库里面的各个进程.存储结构以及内存结构的关联关系. 首先来讲整个体系中有客户端.实例和数据库 数据库里有三类文件 控制文件ctl.数据文件dbf.日志文件log 实例中SGA有六大池子 第一大内存区shared pool即共享池 第二大内存区buffer cache 第三块是redo log 我们主要讲上面的三

【我的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 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)

PL/SQL子程序 包括函数和过程.这里的函数指的是用户自己定义的函数,和系统函数是不同的.子程序一般是完成特定功能的PL/SQL程序块,并且具有一定的通用性,可以被不同的应用程序多次调用.Oracle提供可以把PL/SQL程序存储在数据库中,并可以再任何地方来运行它.这样就叫做存储过程或者是函数.过程和函数的唯一区别就是函数总是向调用者返回数据,而过程则不返回数据. 函数 如果用户要经常执行某些操作,并且需要返回特定的数据,那么就可以将这些操作构造成一个函数. 可以使用SQL语句定义函数. 基