Oracle学习.docx
- 文档编号:6312755
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:76
- 大小:77.31KB
Oracle学习.docx
《Oracle学习.docx》由会员分享,可在线阅读,更多相关《Oracle学习.docx(76页珍藏版)》请在冰点文库上搜索。
Oracle学习
1.
SQL>insert into customer values (‘Abbev’,’CA’,6969.96);
每次成功地完成一条insert语句后,均返回建立信息,
2.1 row created.
3.该信息通知用户建立的行数。
SQL>insert into customer values (‘Porter’,’CA’,6989.99);
4.SQL>insert into customer values (‘Martin’,’CA’,2345.45);
5.SQL>insert into customer values (‘Laursen’,’CA’,34.34);
6.SQL>insert into customer values (‘Bambi’,’CA’,1234.55);
7.SQL>insert into customer values (‘McGraw’,’NJ’,123.45);
现在我们用稍加变化的insert命令的数据插入state表。
我们将指定数据要插入的表列名。
8.这在处理大表时很有用,因为用户可能没有表中每一列的数据。
例如:
在一个预算系统中
9.,只有在月末才有实际的花销数。
SQL>insert into state (state_name,state_cd)
10.values (‘Massachusetts’,’MA’);
11.SQL>insert into state (state_name,state_cd)
12.values (‘California’,’CA’);
13. 最后我们再插入一些数据到表X和表Y中。
14.SQL>insert into x values (‘1’);
15.SQL>insert into x values (‘2’);
16.SQL>insert into x values (‘3’);
17.SQL>insert into y values (‘3’);
18.SQL>insert into y values (‘4’);
19.SQL>insert into y values (‘5’);
4.Select
20.select命令用于从Oracle数据库中检索数据,select是用户最常用的SQL语句,select
21.命令由四个基本部分构成:
22.1).select后跟用户要检索的信息(表或视图中的列名),这是select命令不可少的部分,
23.可用*号代表全部列。
24.2).from后跟检索对象(如存放数据的一个或多个表或视图的名称),from部分也是必不可少
25.的。
26.3).where后跟检索条件,可选的。
27.4).order by后跟分类准则,可选的。
现在我们来查看我们刚才插入的数据:
28.SQL>select * from customer;
29.SQL>select state_name from state;
30.SQL>select * from x;
31.SQL>select * from y;
下面我们来看一下条件及范围检索:
32.select last_name,state_cd,sales from customer where state_cd=’MA’;
33.查看state_cd值为MA的所有客户。
select * from customer where state_cd=’CA’ and sales>6000
34. select * from customer where state_cd=’CA’ or sales>6000
35. select * from customer where state_cd!
=’MA’;
带检索表
36.select * from customer where state_cd in (‘NJ’,’CA’);
带匹配条件
37.Select * from customer where last_name like ‘M%’;
38.Select * from customer where last_name like ‘%tin%;
总结:
39. =
40. !
= 不等于
41. ^= 不等于
42.^= 不等于
43.<> 不等于
44. <
45. >
46. <=
47. >=
48.in ( ) 等于括号内任一成员
49.not in ( ) 不等于括号内任一成员
50.between A and B 大于等于A与小于等于B
51.not between A and B 不大于等于A与小于等于B
52.like ‘%tin%’ 包括给定子串(即‘tin’)
Order by:
53. Select * from customer order by last_name desc;
54. Select * from customer order by last_name;
55. 在order by子句中未指定升序或降序时,Oracle按升序排序。
5.Update、Delete和Alter
Update修改表中的数据
56. SQL>Update customer set sales=23890.66 where state_cd=’MA’;
若没有用where指定修改的条件行,将修改表中全部行。
Delete删除行数据
57. Delete from customer,将删除customer表的所有记录;delete from customer where
58. state_cd=’CA’,将删除state_cd为CA的客户记录。
Alter table修改表结构
59. 此语句有如Foxpro中的Modify stru语句。
在创建表后,用户可能想要增加表列。
这时就
60.要用到alter table命令了。
Alter table customer add (sale_date date);
61. 将成功地把表列sale_date加到表customer中。
Alter table x modify(col date),改变一个已存在表列的数据类型。
6.连接两个表
62.现实中,用户需要的大量数据往往存放在多个表中。
很多情况下需要处理多个表。
例如,
63.customer表中只存放州代码(state_code),然而用户还想知道州名,这时需要将表custom
64.er与表state连接。
这就要用到表的连接。
通过定义,Oracle一类的关系数据库允许用户基
65.于公共域连接两个或更多表。
这些公共域通常称为键域(key field)。
66.有两种类型的键:
主键(primary)和外部键(foreign)。
主键使表中的数据行保持唯一。
67.在表state中,state_cd就是主键。
表customer中也包含有state_cd,此时的state_cd就是
68.外部键。
一个表的外部键用于从其他(foreign)表中获取信息。
69.SQL>select * right.col,left.col from x right,y left
70.where right.col=left.col;
五.内部函数
71.数值型函数
72. 函 数 返回值 样 例 显示
73.Abs(n) N的绝对值 Select abs(-321) from dual; 321
74.Ceil(n) 大于等于数值n的最大整数 Select ceil(10.6) from dual; 11
75.Floor(n) 小于等于数值n的最大整数 Select floor(10.6) from dual; 10
76.Mod(m,n) M除以n的余数,若n=0返回n Select mod(7,5) from dual; 2
77.Power(m,n) M的n次方 Select power(3,2) from dual; 9
78.Round(n,m) 将n四舍五入,保留小数点后m位 Select round(1234.5678,2) from dual 12
79.34.57
80.Sign(n) N=0,返回0;n>0,返回1;n<0,返回-1 Select sign(12) from dual; 1
81.Sqrt(n) N的平方根 Select sqrt(25) from dual; 5
82. Dual表拥有者为SYS,在句法正确,而数据库中没有其他表可用于该语句时,可使用dua
83.l表。
84. 2.字符串函数
85. 函 数 返回值 样例 显示
86.initcap(char) 把每个字符串的第一个字符换成大写 Select initcap(‘mr.telpow’)
87. from dual; Mr.Telplow
88.Lower(char) 整个字符串换成小写 Select lower(‘Mr.Frank Townson’) from dual; m
89.r.frank townson
90.Replace(char,str1,str2) 字符串中所有str1换成str2 Select replace(‘Scott’, ’
91.S’,’Boy’) from dual; Boycott
92.Soundex(char) 字符串的语音表示,查找发音相似拼写不同的字符串 Select last_name
93.from employee where soundex (last_name) = soundex(‘SMYTHE’); SMITH
94.Substr(char,m,n) 取出从m字符开始的n个字符的子串 Select substr(‘ABCDEF’,2,1)
95.from dual; B
96.Length(char) 求字符串的长度 Select length(‘Anderson’) From dual; 8
97. || 并置运算符。
98. Select ‘Dear’||’John’||’:
’ from customer
99. 将返回 ‘DearJohn:
’
3.日期型函数
100. 函数 返回值 样例 显示
101.Sysdate 当前日期和时间 Select sysdate from dual;
102.Last_day 本月最后一天 Select last_day(sysdate) From dual
103.Add_month(d,n) 当前日期d后推n个月 Select add_months(sysdate,2) from dual;
104.Months_between (f,s) 日期f和s间相差月数 Select months_between(sysdate,’12-MAR
105.-99’) from dual;
106.Next_day(d,day) D后第一周指定day的日期 Select next_day(sysdate,’Monday’) fro
107.m dual;
108.Oracle缺省的日期格式为DD-MON-YY。
为保证进入21世纪不出问题,请尽可能用四位数字的
109.年份。
Oracle提供了一种特殊的世纪日期格式标记为DD-MON-RR。
常用日期格式
110.格式 返回值 样例
111.Y、YY或YYY 年的最后一位,两位或三位 Select to_char(sysdate,’YYY’) from dual;
SYEAR或YEAR 年,SYEAR公元前的年前加一负号 Select to_char(sysdate,’SYEAR’) fr
112.om dual;
113.Q 季度,1到3月为第一季度 Select to_char(sysdate,’Q’) from dual;
114.MM 月份数
115.Month 用9个字符长度表示月分(英文)
116.WW 当年第几周
117.W 本月第几周
118.D 周内第几天
119.DD 当月第几天
120.DY 周内第几天缩写(如:
SUN)
121.HH 12进制小时数
122.HH24 24进制小时数
123.MI 分钟数
124.SS 秒数
类型转换
125. to_char 将任意类型的数据转换成字符串
126. to_number
127. to_date
六.格式化输出
128.在SQL*Plus中,有许多参数可以控制SQL*Plus的输出显示格式,利用SQL*Plus命令show a
129.ll用户能知道显示格式的当前设置。
130.SQL>show all;
131.appinfo is ON and set to "SQL*Plus"
132.arraysize 15
133.autocommit OFF
134.autoprint OFF
135.autotrace OFF
136.shiftinout INVISIBLE
137.blockterminator "." (hex 2e)
138.btitle OFF and is the 1st few characters of the next SELECT statement
139.cmdsep OFF
140.colsep " "
141.compatibility version NATIVE
142.concat "." (hex 2e)
143.copycommit 0
144.COPYTYPECHECK is ON
145.define "&" (hex 26)
146.echo OFF
147.editfile "afiedt.buf"
148. embedded OFF
149. … ...
1).行和页的大小
150. set linesize
151. set pagesize
152. 例:
153. SQL>set linesize 80;
154. SQL>set pagesize 25;
2) 页头标、页脚标
155. ttitle
156. btitle
例:
(connect as scott)
157. SQL>ttitle ‘Database Technoloies| Customer Report’;
158. SQL>select empno,ename from emp;
159. SQL>btitle ‘-----------Sample.sql------------‘;
160. SQL>select empno,ename from emp;
161. | 表示换行。
3).SQL*Plus结果到文件
162. spool <目标文件>
163. 如:
spool c:
\temp\out.list
164. 这个输出将放在spool命令指定的文件中。
为停止假脱机(spooling),可用命令spool o
165.ff或spool out。
后者关闭输出文件并打印输出。
4).格式化输出列表
166.column
大多数情况下,用户需要格式化实例的表列数据。
Column命令可完成这项工作。
下面我们
167.先执行两条格式化命令,然后再查询customer表。
168. SQL>column last_name format a8 wrap heading ‘Last |Name’;
169. SQL>column state_cd format a8 heading ‘State | Code’ ;
170. 8 表示显示宽度,
171. a 表示每个位置只能是字符
172. wrap 说明若last_name长度大于8个字符,多余的字符显示下一行的对应
173.位置。
174. Heading 部分告诉SQL*plus,last_name的列标。
175. 现在我们查询一下customer表来看不下输出效果:
176.SQL>select * from customer ;
177.Sun Jul 04 page 1
178. Database Technologies
179. Customer Report
Last State
180.Name Code SALES
181.-------- -- ----------
182.Teplow MA 23445.67
183.Abbev CA 6969.96
184.Porter CA 6989.99
185.Martin CA 2345.45
186.Laursen CA 34.34
187.Bambi CA 1234.55
188.McGraw NJ 123.45
-------------------sample.sql---------------------
本章小结:
189.本章简要地介绍了SQL及其一些常用的命令,及SQL*Plus的应用。
有关SQL的更详细的使用
190.说明可以参阅本第4章至第8章,课本在从建表到查询等操作都有较为详细的介绍,虽然书
191.中的章节较长,但其内容简单易懂,由于课时所限无法在此逐一介绍。
建议大家可以在自
192.己的PC上安装个Personal Oracle 8,按课本的例子,进行学习试验。
第五章.PL/SQL
193. 前面我们所使用的SQL语言,它不具备过程能力,但Oracle通过PL/SQL语言对SQL进行
194.了过程语言功能的扩展。
PL/SQL是一种比较复杂的的程序设计语言,用于从不同环境中访
195.问Oracle数据库,。
196.PL/SQL是Procedural Language/SQL(过程性语言的缩写)。
正如其名所表达的,PL/SQL通
197.过增加了用在其他过程性语言中的结构(construct)来对SQL进行了扩展,例如:
198.变量和类型(包括预定义的和用户定义的)
199.控制结构,例如IF-THEN-ELSE语句和循环。
200.过程和函数
201.对象类型和方法
202. 过程性结构与Oracle SQL无缝地集成在一起,这样便产生了一种结构化的强有力的语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 学习