oracle基础知识Word文档下载推荐.docx
《oracle基础知识Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《oracle基础知识Word文档下载推荐.docx(35页珍藏版)》请在冰豆网上搜索。
setpauseon;
可以使大量结果集在用户按“Enter”(回车)后翻页
setpagesize100;
设定SQL语句返回结果集一页的行数100,默认值是14
setlinesize100;
设定SQL语句返回结果集一行的宽度100,默认值是80
4.SQL*PLUS里规定字段的显示格式
规定数字的显示格式
column字段名format99999999999;
column字段名format999,999,999,999;
column字段名formata数字[word_wrapped];
规定long字符的显示宽度
setlong200;
规定字段名的显示内容
column字段名heading'
字段名显示内容'
;
setheadingoff;
查询时不显示字段名称
规定字段的对齐方向
column字段名justify[left|right|center];
清除字段的格式
column字段名clear;
5.SQL*PLUS里规定字段的显示格式例子
columnlast_nameheading'
Employee|Name'
formata15;
columnsalaryjustifyrightformat$99,999.99;
columnstart_dateformata10null'
NotHired'
说明:
如果start_date为null,显示字符串'
6.判断题(T/F)
(1).SQLcommandarealwaysheldinsqlbuffer.[T]
(2).SQL*PLUScommandassitwithquerydata.[T]
5
J2EE@zxw
SQL*PLUS命令只控制SELECT结果集的显示格式及控制文件.只有SQL命令能访问数据库.
二、限制选择行
1.按指定的规则排序
SELECTexprFROMtable[ORDERBY{column,expr}[ASC|DESC]];
默认的排序是ASC升序(由小到大)
还可以ORDERBY字段名的位置[1]|[2]ASC|DESC;
2.用WHERE限制选择行
(1)
比较操作符=>
<
>
=<
=!
>
^=与NULL比较不能用上面的比较操作符ANYSOME
ALL
SQL操作符BETWEEN…AND…INLIKEISNULL
NOTBETWEEN…AND…NOTINNOTLIKEISNOTNULL
逻辑操作符ANDORNOT
3.用WHERE限制选择行
(2)
比较顺序(可以用括号改变它们的顺序)
(1).=<
=inlikeisnullbetween
(2).and
(3).Or
4.LIKE操作
%零到任意多个字符_一个字符
例如:
字段名like'
M%'
%m%'
job_'
如果要找含下划线的字符,要加反斜线例如:
字段名like'
%X/_Y%'
escape'
/'
5.日期字段的比较
举例:
日期字段betweento_date('
2001-12-12'
'
YYYY-MM-DD'
)andto_date('
日期字段>
to_date('
)and日期字段<
=
to_date('
);
6.不能用到索引的比较操作符
ISNULL
ISNOTNULL
LIKE'
三、单行函数
1.数字函数
ABS取绝对值POWER乘方LN10为底数取0
SQRT平方根EXPe的n次乘方LOG(m,n)m为底数n取0
数学运算函数:
ACOSATANATAN2COSCOSHSIGNSINSINHTANTANH
CEIL大于或等于取整数
FLOOR小于或等于取整数
MOD取余数
ROUND(n,m)按m的位数取四舍五入值如果round(日期):
中午12以后将是明天的日期.
round(sysdate,'
Y'
)是年的第一天
TRUNC(n,m)按m的位数取小数点后的数值如果trunc(日期),确省的是去掉时间
6
2.字符函数
CHR按数据库的字符集由数字返回字符
CONCAT(c1,c2)把两个字符c1,c2组合成一个字符,和||相同
REPLACE(c,s,r)把字符c里出现s的字符替换成r,返回新字符
SUBSTR(c,m,n)m大于0,字符c从前面m处开始取n位字符,m等于0和1一样,
m小与0,字符c从后面m处开始取n位字符
TRANSLATE(c,f1,t1)字符c按f1到t1的规则转换成新的字符串
INITCAP字符首字母大写,其它字符小写
LOWER字符全部小写
UPPER字符全部大写
LTRIM(c1,c2)去掉字符c1左边出现的字符c2
RTRIM(c1,c2)
TRIM(c1,c2)去掉字符c1左右两边的字符c2
LPAD(c1,n,c2)字符c1按制定的位数n显示不足的位数用c2字符串替换左边的空位
RPAD(c1,n,c2)
3.日期函数
ADD_MONTHS(d,n)日期值加n月
LAST_DAY
返回当月的最后一天的日期
MONTHS_BETWEEN(d1,d2)两个日期值间的月份,d1<
d2返回负数
NEXT_DAY
返回日期值下一天的日期
SYSDATE当前的系统时间
DUAL是SYS用户下一个空表,它只有一个字段dummy
4.转换函数
(1)
TO_CHAR(date,'
日期显示格式'
TO_CHAR(number)用于显示或报表的格式对齐
TO_DATE(char,'
TO_LOB把long字段转换成lob字段
TO_NUMBER(char)用于计算或者比较大小
4.转换函数
(2)
to_date里日期显示格式
YYYY年YEARYYYYYY
Q季度
MM月MONTHMON
W星期(weekofmonth)WW,IW(weekofyear)
(说明:
周计是按ISO标准,从1月1日的星期数到后面七天为一周,不一定是从周一到周日)
DD日DAYDY
HH24小时HH12HH
MI分钟
SS秒
如果想固定日期的显示格式可以在数据库的参数文件initorasid.ora里新写一行参数
NLS_DATE_FORMAT=yyyy-mm-dd
hh24:
mi:
ss可以在UNIX环境变量或者NT的注册表里的设置NLS_DATE_FORMAT=yyyy-mm-dd
7
ss
4.转换函数(3)
如果想固定日期的显示格式可以用altersession命令改变
altersessionsetnls_date_format='
yyyy-mm-ddhh24:
ss'
它的作用顺序如下:
initializationparameter
Environmentvariable
ALTERSESSIONcommand
4.转换函数(4)
to_char(number)里数字显示格式
9数字位
0数字前面补0to_char(-1200,'
00000.00'
.小数点的位置
标记位置的逗号用在数字显示格式的左边
L根据数据库字符集加货币符号to_char(-1200,'
L9999.99'
B把数字0显示为空格,用在数字显示格式的右边
MI右边的负数标记to_char(-1200,'
9999.99MI'
PR括起来的负数to_char(-1200,'
9999.99PR'
EEEE用指数方式表示to_char(-1200,'
9999.99EEEE'
5.输入字符,返回数字的函数
instr(c1,c2)字符c2出现在c1的位置,不出现,返回0,常用于模糊查询
length
按数据库的字符集,算出字符c的长度,跟数据库的字符集有关,一个汉字长度为1
6.有逻辑比较的函数NVL(EXPR1,EXPR2)函数
解释:
IFEXPR1=NULLRETURNEXPR2
ELSERETURNEXPR1
DECODE(AA0V10R10V20R2....)函数
IFAA=V1THENRETURNR1
IFAA=V2THENRETURNR2
..…
ELSE
RETURNNULL
decode(id,1,'
deptsale'
2,'
depttech'
四、从多个表里选取数据记录
1.数据表间的连接
简单的连接语法:
SELECT字段名1,字段名2,……FROM表名1,[表名2,……]
WHERE表名1.字段名=表名2.字段名[AND……];
WHERE表名1.字段名=表名2.字段名(+)[AND……];
有(+)号的字段位置自动补空值
连接的分类:
等于的连接=
不等于的连接!
=BETWEEN…AND…IN注意IN和OR不能一起用
8
外连接有一个字段名(+),没有满足的条件补空值
自连接同一个表自己跟自己连接例如找重复记录
2.数据表间的连接例子
删除table_name表里字段名email重复的记录:
deletefromtable_namet1
wheret1.rowid>
(selectmin(rowid)fromtable_namet2
wheret1.email=t2.emai