﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-收获每一天-随笔分类-数据库相关</title><link>http://www.blogjava.net/buaalijie/category/10744.html</link><description>-----在JAVA的路上越走越远！</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:14:04 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:14:04 GMT</pubDate><ttl>60</ttl><item><title>最近学习使用ORACLE数据库，建表如下，高手看看有什么不对（当）之处。</title><link>http://www.blogjava.net/buaalijie/archive/2006/05/04/44558.html</link><dc:creator>喜悦天天收获</dc:creator><author>喜悦天天收获</author><pubDate>Thu, 04 May 2006 13:51:00 GMT</pubDate><guid>http://www.blogjava.net/buaalijie/archive/2006/05/04/44558.html</guid><wfw:comment>http://www.blogjava.net/buaalijie/comments/44558.html</wfw:comment><comments>http://www.blogjava.net/buaalijie/archive/2006/05/04/44558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/buaalijie/comments/commentRss/44558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/buaalijie/services/trackbacks/44558.html</trackback:ping><description><![CDATA[
		<p>数据库要求<br />1、建立一个表code_dam,包含以下字段<br />   id int,自增,主键<br />   code nvarchar(20), not null  （大坝编号）<br />   name nvarchar(20), not null  （大坝名称）<br />   remark nvarchar(200)         （备注）<br />2、编程实现对表code_dam的增删改查功能，包括:<br />   添加大坝编码（添加一条记录到数据库，要求：大坝编号不能重复，大坝名称不能重复）<br />   修改大坝编码（要求：大坝编号不能重复，大坝名称不能重复）<br />   删除一个大坝编码<br />   大坝编码列表（code_dam表中所有的记录，使用列表将其他功能串在一起）<br />   查看大坝编码（显示指定id的大坝编号、名称、备注）<br /><br /><br /><br />//建立数据库</p>
		<p>-- Create table<br />create table CODE_DAM<br />(<br />  ID     INTEGER not null,<br />  CODE   VARCHAR2(20) not null,<br />  NAME   VARCHAR2(20) not null,<br />  REMARK VARCHAR2(200)<br />)<br />tablespace DAM<br />  pctfree 10<br />  initrans 1<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );<br />-- Add comments to the table <br />comment on table CODE_DAM<br />  is '大坝管理';<br />-- Add comments to the columns <br />comment on column CODE_DAM.CODE<br />  is '大坝编号';<br />comment on column CODE_DAM.NAME<br />  is '大坝名称';<br />-- Create/Recreate primary, unique and foreign key constraints <br />alter table CODE_DAM<br />  add constraint ID primary key (ID)<br />  using index <br />  tablespace DAM<br />  pctfree 10<br />  initrans 2<br />  maxtrans 255<br />  storage<br />  (<br />    initial 64K<br />    minextents 1<br />    maxextents unlimited<br />  );</p>
		<p>//自增解决办法<br />//序列<br />-- Create sequence <br />create sequence SEQ_CODE_DAM<br />minvalue 1<br />maxvalue 999999999999999999999999999<br />start with 31<br />increment by 1<br />cache 10;<br />//触发器<br />CREATE OR REPLACE TRIGGER TRG_code_dam<br />BEFORE<br />INSERT  ON code_dam<br />FOR EACH ROW <br />begin<br />SELECT SEQ_code_dam.NEXTVAL<br />INTO:NEW.id<br />FROM DUAL;<br />End TRG_code_dam;</p>
		<p> </p>
		<p>//相关存储过程</p>
		<p>//查询所有数据<br />//包<br />create or replace package showall is <br />type mycursor is ref cursor; <br />procedure GetRecords(ret_cursor out mycursor); <br />end showall; <br />//包体<br />create or replace package body showall is <br />procedure GetRecords(ret_cursor out mycursor) as <br />begin <br />open ret_cursor for select * from code_dam; <br />end GetRecords; <br />end showall; </p>
		<p>
				<br />//删除数据<br />create or replace procedure delRecord(id_in in int) <br />is <br />begin <br />delete from code_dam where id=id_in;<br />commit; <br />end;</p>
		<p>//插入数据<br />create or replace procedure insertRecord(code_in in varchar2,name_in in varchar2,remark_in in varchar2) is <br />begin <br />insert into code_dam (code,name,remark) values (code_in,name_in,remark_in);<br />commit;<br />end;</p>
		<p>
				<br />//更新数据<br />create or replace procedure updataRecord(id_in in int,code_in in varchar2,name_in in varchar2,remark_in in varchar2) <br />is <br />begin <br />update code_dam set code=code_in,name=name_in,remark=remark_in where id=id_in;<br />commit;<br />end;</p>
		<p>
				<br />//检查重复<br />create or replace procedure checkdam<br />(code_in in varchar2,name_in in varchar,name_out out varchar2)<br />is<br />begin<br />select name into name_out from code_dam where code = code_in or name = name_in;<br />end checkdam;</p>
		<p>
				<br />//查询单个数据<br />//包<br />create or replace package showdam is <br />type mycursor is ref cursor;<br />procedure GetRecords(id_in in int,ret_cursor out mycursor); <br />end showdam; <br />//包体<br />create or replace package body showdam is <br />procedure GetRecords(id_in in int,ret_cursor out mycursor) as <br />begin <br />open ret_cursor for select * from code_dam where id = id_in; <br />end GetRecords; <br />end showdam; </p>
<img src ="http://www.blogjava.net/buaalijie/aggbug/44558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/buaalijie/" target="_blank">喜悦天天收获</a> 2006-05-04 21:51 <a href="http://www.blogjava.net/buaalijie/archive/2006/05/04/44558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sqlplus基本操作(转贴)</title><link>http://www.blogjava.net/buaalijie/archive/2006/05/04/44557.html</link><dc:creator>喜悦天天收获</dc:creator><author>喜悦天天收获</author><pubDate>Thu, 04 May 2006 13:45:00 GMT</pubDate><guid>http://www.blogjava.net/buaalijie/archive/2006/05/04/44557.html</guid><wfw:comment>http://www.blogjava.net/buaalijie/comments/44557.html</wfw:comment><comments>http://www.blogjava.net/buaalijie/archive/2006/05/04/44557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/buaalijie/comments/commentRss/44557.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/buaalijie/services/trackbacks/44557.html</trackback:ping><description><![CDATA[
		<p>系统环境： <br />1、操作系统：Windows 2000<br />2、数据库：　Oracle 8i R2 (8.1.6) for NT 企业版<br />3、安装路径：C:\ORACLE</p>
		<p>说明： </p>
		<p>默认安装完Oracle后，初学者应该了解的一些SQL语句</p>
		<p>1、连接<br />SQL*Plus system/manager</p>
		<p>2、显示当前连接用户<br />SQL&gt; show user</p>
		<p>3、查看系统拥有哪些用户<br />SQL&gt; select * from all_users;</p>
		<p>4、新建用户并授权<br />SQL&gt; create user a identified by a;（默认建在SYSTEM表空间下）<br />SQL&gt; grant connect,resource to a;</p>
		<p>5、连接到新用户<br />SQL&gt; conn a/a</p>
		<p>6、查询当前用户下所有对象<br />SQL&gt; select * from tab;</p>
		<p>7、建立第一个表<br />SQL&gt; create table a(a number);</p>
		<p>8、查询表结构<br />SQL&gt; desc a</p>
		<p>9、插入新记录<br />SQL&gt; insert into a values(1);</p>
		<p>10、查询记录<br />SQL&gt; select * from a;</p>
		<p>11、更改记录<br />SQL&gt; update a set a=2;</p>
		<p>12、删除记录<br />SQL&gt; delete from a;</p>
		<p>13、回滚<br />SQL&gt; roll;<br />SQL&gt; rollback;</p>
		<p>14、提交<br />SQL&gt; commit;</p>
		<p>
				<br /> <br />软件环境： <br />1、Windows 98 第二版<br />2、Oracle数据库版本为：Personal Oracle7 Release 7.3.4.0.0<br />3、Oracle安装路径为：C:\ORAWIN95</p>
		<p>命令列表： <br />假设当前执行命令为：select * from tab;</p>
		<p>(a)ppend　　　　 添加文本到缓冲区当前行尾　　　　a  order by tname　结果：select * from tab order by tname;<br />　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　（注：a后面跟2个空格）<br />(c)hange/old/new 在当前行用新的文本替换旧的文本　c/*/tname　　　　　结果：select tname from tab;<br />(c)hange/text　　从当前行删除文本　　　　　　　　c/tab　　　　　　　结果：select tname from ;<br />del　　　　　　　删除当前行<br />del n　　　　　　删除第n行<br />(i)nput 文本　　 在当前行之后添加一行<br />(l)ist　　　　　 显示缓冲区中所有行<br />(l)ist n　　　　 显示缓冲区中第 n 行<br />(l)ist m n　　　 显示缓冲区中 m 到 n 行<br />run　　　　　　　执行当前缓冲区的命令<br />/　　　　　　　　执行当前缓冲区的命令<br />r　　　　　　　　执行当前缓冲区的命令<br />@文件名　　　　　运行调入内存的sql文件，如：</p>
		<p>SQL&gt; edit s&lt;回车&gt;<br />如果当前目录下不存在s.sql文件，则系统自动生成s.sql文件，<br />在其中输入“select * from tab;”，存盘退出。</p>
		<p>SQL&gt; @s&lt;回车&gt;<br />系统会自动查询当前用户下的所有表、视图、同义词。</p>
		<p>@@文件名　　　　 在.sql文件中调用令一个.sql文件时使用</p>
		<p>save 文件名　　　将缓冲区的命令以文件方式存盘，缺省文件扩展名为.sql<br />get 文件名　　　 调入存盘的sql文件<br />start 文件名　　 运行调入内存的sql文件</p>
		<p>spool 文件名　　 把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上，默认文件扩展名为.lst<br />spool　　　　　　显示当前的“假脱机”状态<br />spool off　　　　停止输出</p>
		<p>例：<br />SQL&gt; spool a<br />SQL&gt; spool<br />正假脱机到 A.LST<br />SQL&gt; spool off<br />SQL&gt; spool<br />当前无假脱机</p>
		<p>
				<br />exit　　　　　　 退出SQL*PLUS<br />desc 表名　　　　显示表的结构<br />show user　　　　显示当前连接用户<br />show error　　　 显示错误<br />show all　　　　 显示所有68个系统变量值<br />edit　　　　　　 打开默认编辑器，Windows系统中默认是notepad.exe，把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑<br />edit 文件名　　　把当前目录中指定的.sql文件调入编辑器进行编辑</p>
		<p>clear screen　　 清空当前屏幕显示</p>
<img src ="http://www.blogjava.net/buaalijie/aggbug/44557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/buaalijie/" target="_blank">喜悦天天收获</a> 2006-05-04 21:45 <a href="http://www.blogjava.net/buaalijie/archive/2006/05/04/44557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>