??xml version="1.0" encoding="utf-8" standalone="yes"?> Oracle 版本QOracle Database 10g Release 2 (10.2.0.1) 下蝲地址Q?/p>
http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html 安装讄Q?/p>
1Q这里的全局数据库名即ؓ你创建的数据库名Q以后在讉K数据Q创?#8220;本地Net服务?#8221;时用刎ͼ 输入正确的用户名/口oQ?/p>
打开sqlplus工具Q?/p>
q接数据库: 创徏表空_ 输入新用L“用户?口o”Q?/p>
命o语法Q?br />
命o实例Q?/p>
导入l果Q?/p>
命o语法Q?br />
命o实例Q?/p>
导入l果Q?/p>
SQL分类Q? DDL—数据定义语a(CREATEQALTERQDROPQDECLARE) 首先,要介l基语句Q?/p> 1、说明:创徏数据?/p> CREATE DATABASE database-name 2、说明:删除数据?/p> drop database dbname 3、说明:备䆾sql server --- 创徏 备䆾数据?device USE master --- 开?备䆾 BACKUP DATABASE pubs TO testBack 4、说明:创徏新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) Ҏ已有的表创徏新表Q? AQcreate table tab_new like tab_old (使用旧表创徏新表) 5、说明: 删除新表Qdrop table tabname 6、说明: 增加一个列QAlter table tabname add column col type 注:列增加后不能删除。DB2中列加上后数据类型也不能改变Q唯一能改变的是增加varcharcd的长度?/p> 7、说明: d主键QAlter table tabname add primary key(col) 说明Q?/p> 删除主键QAlter table tabname drop primary key(col) 8、说明: 创徏索引Qcreate [unique] index idxname on tabname(col?) 删除索引Qdrop index idxname 注:索引是不可更改的Q想更改必须删除重新建?/p> 9、说明: 创徏视图Qcreate view viewname as select statement 删除视图Qdrop view viewname 10、说明:几个单的基本的sql语句 选择Qselect * from table1 where 范围 插入Qinsert into table1(field1,field2) values(value1,value2) 删除Qdelete from table1 where 范围 更新Qupdate table1 set field1=value1 where 范围 查找Qselect * from table1 where field1 like ?value1%?---like的语法很_֦Q查资料! 排序Qselect * from table1 order by field1,field2 [desc] LQselect count * as totalcount from table1 求和Qselect sum(field1) as sumvalue from table1 q_Qselect avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最:select min(field1) as minvalue from table1 11、说明:几个高查询q算?/p> AQ?UNION q算W? UNION q算W通过l合其他两个l果表(例如 TABLE1 ?TABLE2Qƈ消去表中M重复行而派生出一个结果表。当 ALL ?UNION 一起用时Q即 UNION ALLQ,不消除重复行。两U情况下Q派生表的每一行不是来?TABLE1 是来自 TABLE2?/p> BQ?EXCEPT q算W? EXCEPT q算W通过包括所有在 TABLE1 中但不在 TABLE2 中的行ƈ消除所有重复行而派生出一个结果表。当 ALL ?EXCEPT 一起用时 (EXCEPT ALL)Q不消除重复行? CQ?INTERSECT q算W?/p> INTERSECT q算W通过只包?TABLE1 ?TABLE2 中都有的行ƈ消除所有重复行而派生出一个结果表。当 ALL ?INTERSECT 一起用时 (INTERSECT ALL)Q不消除重复行?/p> 注:使用q算词的几个查询l果行必L一致的?/p> 12、说明:使用外连? A、left outer joinQ? 左外q接Q左q接Q:l果集几包括q接表的匚w行,也包括左q接表的所有行? SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c BQright outer join: 叛_q接(双?Q结果集既包括连接表的匹配连接行Q也包括双接表的所有行?/p> CQfull outer joinQ? 全外q接Q不仅包括符可接表的匹配行Q还包括两个q接表中的所有记录?/p> 其次Q大家来看一些不错的sql语句 1、说明:复制?只复制结?源表名:a 新表名:b) (Access可用) 法一Qselect * into b from a where 1<>1 法二Qselect top 0 * into b from a 2、说明:拯?拯数据,源表名:a 目标表名Qb) (Access可用) insert into b(a, b, c) select d,e,f from b; 3、说明:跨数据库之间表的拯(具体数据使用l对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库?where 条g 例子Q?.from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4、说明:子查?表名1Qa 表名2Qb) select a,b,c from a where a IN (select d from b ) 或? select a,b,c from a where a IN (1,2,3) 5、说明:昄文章、提交h和最后回复时?/p> select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 6、说明:外连接查?表名1Qa 表名2Qb) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、说明:在线视图查询(表名1Qa ) select * from (SELECT a,b,c FROM a) T where t.a > 1; 8、说明:between的用?between限制查询数据范围时包括了边界?not between不包?/p> select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 数? and 数? 9、说明:in 的用方?/p> select * from table1 where a [not] in (‘??’??’??’?? 10、说明:两张兌表,删除主表中已l在副表中没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题Q?/p> select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 12、说明:日程安排提前五分钟提?/p> SQL: select * from 日程安排 where datediff('minute',f开始时?getdate())>5 13、说明:一条sql 语句搞定数据库分?/p> select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 14、说明:?0条记?/p> select top 10 * form table1 where 范围 15、说明:选择在每一lb值相同的数据中对应的a最大的记录的所有信?cMq样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成l排?{等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b) 16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行ƈ消除所有重复行而派生出一个结果表 (select a from tableA ) except (select a from tableB) except (select a from tableC) 17、说明:随机取出10条数?/p> select top 10 * from tablename order by newid() 18、说明:随机选择记录 select newid() 19、说明:删除重复记录 Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 20、说明:列出数据库里所有的表名 select name from sysobjects where type='U' 21、说明:列出表里的所有的 select name from syscolumns where id=object_id('TableName') 22、说明:列示type、vender、pcs字段Q以type字段排列Qcase可以方便地实现多重选择Q类似select 中的case?/p> select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 昄l果Q?/p> type vender pcs 23、说明:初始化表table1 TRUNCATE TABLE table1 24、说明:选择?0?5的记?/p> select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc 随机选择数据库记录的ҎQ用Randomize函数Q通过SQL语句实现Q?/p> 对存储在数据库中的数据来_随机数特性能l出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解x案是建立如下所C的循环Q?/p> Randomize q很Ҏ理解。首先,你取??00范围之内的一个随机数Q假?00是数据库内记录的LQ。然后,你遍历每一记录来测试ID 的倹{检查其是否匚wRNumber。满x件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber {于495Q那么要循环一遍数据库q旉可就长了。虽?00q个数字看v来大了些Q但相比更ؓE_的企业解x案这q是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不死定了Q? 采用SQLQ你可以很快地扑և准确的记录ƈ且打开一个只包含该记录的recordsetQ如下所C: Randomize 不必写出RNumber 和IDQ你只需要检查匹配情况即可。只要你对以上代码的工作满意Q你自可按需操作“随机”记录。Recordset没有包含其他内容Q因此你很快p扑ֈ你需要的记录q样大大降低了处理旉?br /> 再谈随机?/p> 现在你下定决心要榨干Random 函数的最后一滴aQ那么你可能会一ơ取出多条随录或者想采用一定随围内的记录。把上面的标准Random CZ扩展一下就可以用SQL应对上面两种情况了?/p> Z取出几条随机选择的记录ƈ存放在同一recordset内,你可以存储三个随机数Q然后查询数据库获得匚wq些数字的记录: SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3 假如你想选出10条记录(也许是每ơ页面装载时?0条链接的列表Q,你可以用BETWEEN 或者数学等式选出W一条记录和适当数量的递增记录。这一操作可以通过好几U方式来完成Q但?SELECT 语句只显CZU可能(q里的ID 是自动生成的LQ: 注意Q以上代码的执行目的不是查数据库内是否有9条ƈ发记录?/p> 随机d若干条记录,试q?/p> Access语法QSELECT top 10 * From 表名 ORDER BY Rnd(id) Access左连接语?最q开发要用左q接,Access帮助什么都没有,|上没有Access的SQL说明,只有自己试, 现在C以备后查) 语法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ... 使用SQL语句 ?..代替q长的字W串昄 语法Q?/p> SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename Conn.Execute说明 ExecuteҎ 该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集Q该Ҏ的用格式分Z下两U: 1Q执行SQL查询语句Ӟ返回查询得到的记录集。用法ؓQ?/p> Set 对象变量?q接对象.Execute("SQL 查询语言") ExecuteҎ调用后,会自动创录集对象Qƈ查询结果存储在该记录对象中Q通过SetҎQ将记录集赋l指定的对象保存Q以后对象变量就代表了该记录集对象?/p> 2Q执行SQL的操作性语aӞ没有记录集的q回。此时用法ؓQ?/p> q接对象.Execute "SQL 操作性语? [, RecordAffected][, Option] ·RecordAffected 为可选项Q此出可攄一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过讉K该变量,可知道SQL语句队多条记录q行了操作?/p> ·Option 可选项Q该参数的取值通常为adCMDTextQ它用于告诉ADOQ应该将ExecuteҎ之后的第一个字W解释ؓ命o文本。通过指定该参敎ͼ可执行更高效?/p> ·BeginTrans、RollbackTrans、CommitTransҎ q三个方法是q接对象提供的用于事务处理的Ҏ。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务QCommitTrans用于提交所有的事务处理l果Q即认事务的处理?/p> 事务处理可以一l操作视Z个整体,只有全部语句都成功执行后Q事务处理才成功;若其中有一个语句执行失败,则整个处理就失败,q恢复到处里前的状态?/p> BeginTrans和CommitTrans用于标记事务的开始和l束Q在q两个之间的语句Q就是作Z务处理的语句。判断事务处理是否成功,可通过q接对象的Error集合来实玎ͼ若Error集合的成员个C?Q则说明有错误发生,事务处理p|。Error集合中的每一个Error对象Q代表一个错误信息?/p>1、安?/h2>
2、创?#8220;本地Net服务?#8221;
1Q通过【程序?》【Oracle - OraDb10g_home1?》【配|和UL工具?》【Net Configuration Assistant】,q行“|络配置助手”工具Q?/h3>
2Q选择“本地 Net 服务名配|?#8221;Q?/h3>
3Q这里的“Net 服务?#8221;我们输入安装数据库时?#8220;全局数据库名”Q?/h3>
4Q主机名我们输入本机的IP地址Q?/h3>
5Q测试数据库q接Q用户名/密码为:System/数据库口令(安装时输入的“数据库口?#8221;Q:
默认的用户名/密码错误Q?/p>
更改dQ输入正的用户?密码Q?br />
试成功Q?br />
3、PLSQL Developer q接试
成功登陆Q?/p>
4、创I间
5、创建新用户
q行“P/L SQL Developer”工具Q以DBAQ用户名QSystemQ的w䆾dQ?br />
1Q新?#8220;UserQ用PQ?
2Q设|用户名、口令、默认表I间Q用上面新建的表空_和时表I间Q?br />
3Q设|角色权限:
4Q设|?#8221;pȝ权限“Q?/h3>
5Q点d用后Q【应用】按钮变灎ͼ新用户创建成功:
6Q新用户d试Q?/h3>
新用?#8220;testcamds”成功登陆Q?/p>
6、导入导出数据库
先运行cmd命oQ进入命令行模式Q{C面的目录QD:"oracle"product"10.2.0"db_1"BIN【该目录下有exp.exe文g?br />
1Q导?/h3>
2Q导出:
id int not null,
name char(20)
);
2、带主键的:
aQ?br>
id int not null primary key,
name char(20)
);
bQ复合主?br>
id int not null,
name char(20),
primary key (id,name)
);
3、带默认值的Q?br>
id int not null default 0 primary key,
name char(20) default '1'
);
转脓的:
(PLAYERNO INTEGER NOT NULL PRIMARY KEY,
NAME CHAR(15) NOT NULL,
INITIALS CHAR(3) NOT NULL,
BIRTH_DATE DATE,
SEX CHAR(1) NOT NULL
CHECK(SEX IN ('M','F')),
JOINED SMALLINT NOT NULL
CHECK(JOINED > 1969) ,
STREET CHAR(30) NOT NULL,
HOUSENO CHAR(4),
POSTCODE CHAR(6) CHECK(POSTCODE LIKE '______'),
TOWN CHAR(10) NOT NULL,
PHONENO CHAR(13),
LEAGUENO CHAR(4))
;
CREATE TABLE TEAMS
(TEAMNO INTEGER NOT NULL PRIMARY KEY,
PLAYERNO INTEGER NOT NULL,
DIVISION CHAR(6) NOT NULL
CHECK(DIVISION IN ('first','second')),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
CREATE TABLE MATCHES
(MATCHNO INTEGER NOT NULL PRIMARY KEY,
TEAMNO INTEGER NOT NULL,
PLAYERNO INTEGER NOT NULL,
WON SMALLINT NOT NULL
CHECK(WON BETWEEN 0 AND 3),
LOST SMALLINT NOT NULL
CHECK(LOST BETWEEN 0 AND 3),
FOREIGN KEY (TEAMNO) REFERENCES TEAMS (TEAMNO),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
CREATE TABLE PENALTIES
(PAYMENTNO INTEGER NOT NULL PRIMARY KEY,
PLAYERNO INTEGER NOT NULL,
PAYMENT_DATE DATE NOT NULL
CHECK(PAYMENT_DATE >= DATE('1969-12-31')),
AMOUNT DECIMAL(7,2) NOT NULL
CHECK (AMOUNT > 0),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
CREATE TABLE COMMITTEE_MEMBERS
(PLAYERNO INTEGER NOT NULL,
BEGIN_DATE DATE NOT NULL,
END_DATE DATE,
POSITION CHAR(20),
PRIMARY KEY (PLAYERNO, BEGIN_DATE),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO),
CHECK(BEGIN_DATE < END_DATE),
CHECK(BEGIN_DATE >= DATE('1990-01-01')))
;
02?a >DB2 9 for z/OS q向颠峰
03?a >JavaScript学习结
04?a >30分钟内创建Web Service
05?u>Java中常见的异常
06?a class="singleposttitle" id="viewpost1_TitleUrl" href="/dyerac/archive/2006/11/24/dollyCal.html">自己做的多功能计器Q嘿?/a>
07?a id="viewpost1_TitleUrl" href="/itspy/archive/2006/11/24/83275.html">JAVA与C++的一Ҏ?/a>
08?a class="postTitle2" id="viewpost1_TitleUrl" href="/soddabao/archive/2006/11/24/83134.html">weblogic与axis之间向冲H?/a>
09?a id="viewpost1_TitleUrl" href="/soft/archive/2006/11/24/psoft.html">mysql 常用操作命o
10?a id="viewpost1_TitleUrl" href="/zqli/archive/2006/11/24/83256.html">[转]EEpȝ标准QJAVA EE5Q?
11?a class="singleposttitle" id="viewpost1_TitleUrl" href="/beansoft/archive/2006/11/24/83243.html">推荐一个Eclipse插g站点: http://www.easyeclipse.org
12?a class="postTitle2" id="viewpost1_TitleUrl" href="/kan314jp/archive/2006/11/24/83197.html">在Java中应用设计模?-Singleton
13?a class="postTitle2" id="viewpost1_TitleUrl" href="/kan314jp/archive/2006/11/24/83199.html">对于模式的“十大误解?/a>
14?a class="postTitle2" id="viewpost1_TitleUrl" href="/kan314jp/archive/2006/11/24/83198.html">在Java中应用设计模?-Factory Method
15?a class="postTitle2" id="viewpost1_TitleUrl" href="/badboyryan/archive/2006/11/24/83191.html">使用 Oracle JDeveloper 构徏您的W一?GWT Web 应用E序
16?a class="postTitle2" id="viewpost1_TitleUrl" href="/hongjunli/archive/2006/11/24/83356.html">不得不减Blog更新的次C
17?a class="singleposttitle" id="viewpost1_TitleUrl" href="/jaunt/archive/2006/11/24/83354.html">JavaScript中的Booleancd
18?a id="viewpost1_TitleUrl" href="/dreamstone/archive/2006/11/24/83351.html">mysql 基本知识和phpMyAdmin的配制Faq
19?a class="postTitle2" id="viewpost1_TitleUrl" href="/larry/archive/2006/11/24/83353.html">几个有用的javascript代码Q动态增删表|
20?a id="viewpost1_TitleUrl" href="/fireice/archive/2006/11/24/83340.html">如何有效的结束项?---ҎE务MISpȝ目的经验ȝ
21?a id="viewpost1_TitleUrl" href="/fireice/archive/2006/11/24/83338.html">在J2EE应用中安装及讄FCKeditor
22?a id="viewpost1_TitleUrl" href="/xixuui/archive/2006/11/24/83329.html">如何试自定义断a
23?a class="postTitle2" id="viewpost1_TitleUrl" href="/shmily432685/archive/2006/11/24/83327.html">我个为做好Project ManagerQ需要具备的能力
24?a class="singleposttitle" id="viewpost1_TitleUrl" href="/youxia/archive/2006/11/24/83377.html">使用Eclipse RCPq行桌面E序开发(三)Q视囑֒透视?/a>
25?a class="postTitle2" id="viewpost1_TitleUrl" href="/robbie/archive/2006/11/24/83383.html">格式化Hibernate的SQL输出语句
DML—数据操U语a(SELECTQDELETEQUPDATEQINSERT)
DCL—数据控制语a(GRANTQREVOKEQCOMMITQROLLBACK)
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
BQcreate table tab_new as select col1,col2?from tab_old definition only
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... q里是执行脚?...
end if
objRec.MoveNext
Wend
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
Sql server:select top n * from 表名 order by newid()
mysql select * From 表名 Order By rand() Limit n
Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
我们可以通过~写存储q程来实现自动生成Id的功能:
一、首先徏立数据库和表Qƈ向其中插入一条数据:
在数据类型的优先序中,int ?varchar 高,计算时回得到intl果?/p>
查询l果Q?br />
2、下面查询某张特定表的结?/font>
查询l果Q?br />
3、如果要查看视图信息Q只需要将SO.xtype = 'U'该ؓSO.xtype = 'V' 卛_Q?/font>