Oracle笔记

发布 2021-05-11 22:05:28 阅读 8022

第1页1. oracle 的使用

1.1. sqlplus 的命令

初始化表的位置:

set nls_lang=american_ (设置编码才可以使用下面脚本)

cd $oracle_home/rdbms cd demo

我们目前使用的是oralce 9i 9201 版本

select * from v$version;

恢复练习表命令:

sqlplus **shell要在这个文件的位置。

登陆 oracle的命令:

sqlplus 用户名/密码

show user 显示当前登陆的身份。

set pause on

set pause off 分页显示。

oracle 中默认日期和字符是左对齐,数字是右对齐

table or view does not exist ; 表或示图不存在

edit 命令用于自动打开vi 修改刚修执行过的 sql 的命令。

修改方法二:

l 3 先定位到行 c /旧串/新串

执行出错时,利用错误号来查错误:

oerr ora 942 (装完系统后会装一个 oerr 工具,用于通过错误号来查看错误的具。

体信息) 想在 sql 中执行 unix 命令时,把所有的命令前加一个!就可以, 或者 host( 用于。

从 sql 从切换至unix环境中去)

***初次使用时注意 **

运行角本时的命令:

先切换到 unix环境下,cd $oracle_home cd sqlplus cd demo 下面有两个角本。

建表语句。 第2页

sqlplus nanjing/nanjing 直接运行角本,后面跟当前目录或者是绝对。

路径 保存刚才的 sql 语句: s**e 命令第二次保存时要替换之前的角本 s**e

文件名 replace

把刚才保的 sql 重新放入 buffer 中

spool on 开启记录

spool off 关闭记录

spool 文件名此命令会把所有的操作存在某个文件中去

常见缩写:

nls national language support 国家语言支持

1.2. sql 的结构

|ddl 数据库定义

dml 数据库管理

sql――commit rollback

|dcl 数据库控制

|grant+revoke 权限管理

表分为:系统表(数据字典),用户表

注:知道数据字典可以更便于使用数据库。

1.3. sql 语句

1.3.1. 纵向投影操作 select

select * from student;

select name||’id||’employee from employee;

select name,salary*13 from employee;

nvl function

如果原来的数值是null的话,由指定数值替代。

select last_name,title,salary*nvl(commission_pct,0)/100 comm from s_emp; 第3页

1.3.2. column 使用

column(col) columnname clear/format/heading/justify format

column salary format $9999999.00 设置数字显示形式

column name fromat a15; 设置字符串显示 15 个字符

column salary justify left/right/center 输出格式

column salary heading text 设置显示的字段名

column clear 清除格式

column last_name;显示该字段名所用的格式

column salary justify left format $99,999.00 ( 定义工资的显示形式 )

1.3.3. order by

order by 排序升序和降序 asc 升序(默认) desc 降序

select * from s_emp order by dept_id , salary desc

部门号升序,工资降序

关键字 distinct 也会触发排序操作。

select * from employee order by 1; /按第一字段排序

null被认为无穷大。order by 可以跟别名。

1.3.4. where 选择操作(横向投影)

where 条件一定是根据某个字段来进行过滤操作。

select * from s_emp where dept_id=42; 查看部门号为42 的所有员工

select * from s_emp where salary>1000 查看工资高于 1000 的所有员工

select salary from s_emp where first_name='geroge' 找出名字为 geroge 的员。

工的工资数

select table_name from user_tables where table_name='s_emp'; 查某个具。

体表名时,表名的字符串必须要为大写

或者采用 upper(table_name)

select * from user_talbes where table_name like ‘s\_%escape ‘\

使用转义字符对关键字进行转义。

逻辑运算:

between and 在什么之间第4页

not between and 注意区间:[ 是一个闭区间

in( list) 在某个集合中

not in (list) 空值会有影响 (等于 list 其中任何一个就行,

为提高效率常把比例高的放在前面)

like 模糊配置

not like 通配比较

is null 是空

and or

not 练习 3:(查出 s_emp表中所有员工的一年的总收入)

select first_name , salary*12*( 1+nvl(commission_pct/100 , 0 ) year salary "

from s_emp;

nvl 函数专用于处理空值的影响。

练习 4:(找出表名以 s_开头的所有表)对于一些特殊字符,要用到 escape 转义,并。

不是一定要用\,escape 后面定义是什么字符为转义字符,那就用哪个字符

select table_name from user_tables where table_name like 's\_%escape '\

1.3.5. 单行函数

单行函数: (dual 哑表 )

字符函数:

lower 转小写 select lower('sqlplus') from dual;--对纯字。

符串处理的时候

upper 转大写 select upper('sqlplus') from dual;

initcap 首字符大写 select initcap('tarena') from dual;

concat 连接字符串 select concat(first_name , last_name) from

s_emp;等效于||

substr 求子串 select substr('tarenasd0603' ,1,6) from dual; (取前。

六个字符) select substr('tarenasd0603',-2) from dual; (取后两个字符)

length 求字符长度

select length('tarena') from dual;

nvl 空值函数两个参数的类型要匹配,统一的,表示:如果有,则。

返回前面的参数,如果没有就返回后面的参数

eg:select first_name,salary from s_emp where lower(first_name)='george';

select first_name , substr(first_name , 2 ) from s_emp; (查出s_emp 表中所有。

用户名字的最后两个字符)

默认的是从左向右,如果是-2 则表示从右向左数

练习 5 : select first_name , salary from s_emp where 第5页

lower(first_name)='george';

数值函数:

round 函数(四舍五入) select round(45.935, 2) from dual; 不带参数时默认。

为 0 位小数

trunc 函数(截取,不管后面的数字) select trunc(45.995, 1) from dual;

oracle笔记

1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...

oracle笔记

clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...

Oracle笔记

oracle开发笔记。1.建立自增id字段 a.先建表,将要建自增id字段为number类型 b.建序列sequences c.建立触发器,一定要是before类型的。d.到此自增id字段就建立完成了。2.存储过程,写法,循环,异常实例。create or replace procedure dat...