分类:
2008-10-16 19:31:26
ORACLE的简单介绍
ORACLE公司是一家提供综合技术产品、方案、服务的数据库公司
ORACLE数据库设计成可大量数据,快速查询数据,保证数据的和一致性,跨网络的分布式管理及客户-的配置等。
ORACLE SQL语法符合ANSI 1986标准SQL 和数据库交流的命令式语言
SQL*PLUS ORACLE的一种工具, 用来运行SQL和PL/SQL语句
PL/SQL ORACLE的过程化编程语言
一、选择行
1. 简单的SELECT 语句
SELECT [DISTINCT] {*,COLUMN [ALIAS], ……} FROM table_name;
字段的非唯一的结果集
DISTINCT 字段名1 [ ,字段名2]
数字类型字段名之间可以进行算术运算
+ - * / 等
例如: (字段名1*字段名2)/3
合并字段内容的连接字符 ||
字段名1 || 字段名2
字段可以有别名
SELECT 字段名1 [AS] '字段名1 解释' FROM table;
2. 处理NULL
NULL 未定义,不可操作,什么都不是
NULL != 0 NULL!='空格'
和NULL的任何运算都返回NULL
ORACLE里未定义的变量值都为NULL
NVL函数可把NULL转换成其它类型的符号
NVL(EXPR1, EXPR2)函数
解释: IF EXPR1=NULL RETURN EXPR2
ELSE RETURN EXPR1
编程技巧: NVL函数在多条件模糊查询的时候比较有用
nvl('+input_value+','0')='0' or filed_name like '%+input_value+%'
NVL函数可返回多种数据类型:
返回日期 NVL(start_date,'2002-02-01')
返回字符串 NVL(title,'no title')
返回数字 NVL(salary,1000)
3. 使用SQL*PLUS
(1)登录SQL*PLUS的方法
用户名,密码,数据库连接字符串
数据库连接字符串可以用net8 easy configuration建立本地网络服务名配置,
也可以手工编辑$ORACLE_HOME/network/admin/tnsnames.ora文件。
在UNIX系统下不要用
$sqlplus username/password@dbname
这样别的用户用$ps命令能看出用户的密码
SQL> desc table; 显示表结构
SQL> select * from tab; 查看用户下所有的表
SQL> set pause on; 可以使大量结果集在用户按“Enter”(回车)后翻页
SQL> set pagesize 100; 设定SQL语句返回结果集一页的行数100, 默认值是14
SQL> set linesize 100; 设定SQL语句返回结果集一行的宽度100, 默认值是80
(2)SQL*PLUS里的编辑命令
最近一条SQL命令语句存在ORACLE内存(sql buffer)里,但SQL*PLUS命令却不会存进去。
SQL*PLUS里的编辑命令:
A[PPEND] text 把text增加到当前行后面
C[HANGE] /old/new/ 把当前行old符号替换成new符号,new为空,删除old符号
CL[EAR] BUFF[ER] 从sql buffer里删除所有的行
DEL n 删除sql buffer里第n行
I[NPUT] text 在sql buffer后面插入text
L[IST] n 显示sql buffer里第n行
n 使第n行为当前行
n text 第n行替换成text
0 text 在第一行前面插入一行
(3) SQL*PLUS里的文件命令:
SAV[E] filename [REP[LACE] | APP[END] ]
把sql buffer里的SQL命令存到OS下一个文件filename,默认的文件名后缀为.sql.
REP[LACE]替换filename里的SQL命令
APP[END] 把sql buffer里的SQL命令添加到filename后
GET filename 从filename里把SQL命令读到sql buffer
STA[RT] filename 运行上次保存到文件filename里的SQL命令
@filename 运行上次保存到文件filename里的SQL命令
EDIT 打开编辑窗口,编辑sql buffer里的SQL命令
EDIT filename 打开编辑窗口,编辑文件filename里的SQL命令
SPO[OL] filename [OFF | OUT] 把SQL命令结果输出到OS下一个文件filename OFF结束输出到文件, OUT结束输出到文件并打印文件
4. SQL*PLUS里规定字段的显示格式
规定数字的显示格式
SQL>column 字段名 format 99999999999;
SQL>column 字段名 format 999,999,999,999;
规定字符串的显示宽度
SQL>column 字段名 format a数字 [word_wrapped];
说明: 一行只显示数字位的长度, 超过长度折行,加word_wrapped后, 单词不会折行
规定long字符的显示宽度
SQL>set long 200;
规定字段名的显示内容
SQL> column 字段名 heading '字段名显示内容';
SQL> set heading off; 查询时不显示字段名称
规定字段的对齐方向
SQL> column 字段名 justify [left | right | center];
清除字段的格式
SQL> column 字段名 clear;
5. SQL*PLUS里规定字段的显示格式例子
SQL> column last_name heading 'Employee|Name' format a15;
SQL> column salary justify right format $99,999.99;
SQL> column start_date format a10 null 'Not Hired';
说明:如果start_date为null, 显示字符串'Not Hired'
6. 判断题(T/F)
(1). SQL command are always held in sql buffer. [T]
(2). SQL*PLUS command assit with query data. [T]
SQL*PLUS命令只控制SELECT结果集的显示格式及控制文件.只有SQL命令能访问数据库.
[1]