第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...