3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

dos命令行连接oracle数据库

發(fā)布時(shí)間:2024/5/15 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dos命令行连接oracle数据库 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C:\Adminstrator>?sqlplus "/as sysdba"?查看是否連接到數(shù)據(jù)庫(kù)

SQL> select status from?v$instance;

v$動(dòng)態(tài)表開(kāi)頭,查看動(dòng)態(tài)實(shí)例,open為啟動(dòng)。

SQL> shutdown immediate關(guān)閉數(shù)據(jù)庫(kù)

SQL>?startup?繼續(xù)啟動(dòng)

SQL>?show parameter db_name?查看數(shù)據(jù)庫(kù)名稱(chēng)


查詢(xún)數(shù)據(jù)庫(kù)SCOTT用戶默認(rèn)的狀態(tài)

SQL>?select username,account_status from dba_users where username='SCOTT';

SQL>?desc?user_tables;?描述

SQL>?alter?user ~scott數(shù)據(jù)庫(kù)用戶名~ account unlock;


SQL> show user查看當(dāng)前數(shù)據(jù)庫(kù)用戶

切換用戶 SQL>?conn?scott/dan?用戶名/密碼


?C:\Adminstrator> sqlplus scott/dan 進(jìn)入數(shù)據(jù)庫(kù)





oracle 命令 操作

內(nèi)容包括三大項(xiàng):
????1.oracle基本操作語(yǔ)句

????2.SQLServer基本操作語(yǔ)句

????3.各種數(shù)據(jù)庫(kù)連接方法

**************************************************oracle基本操作語(yǔ)句********************************************************
打開(kāi)服務(wù)器
net start oracleservicebinbo
打開(kāi)監(jiān)聽(tīng)器
lsnrctl start
關(guān)閉服務(wù)器
net stop oracleservicebinbo
關(guān)閉監(jiān)聽(tīng)器
lsnrctl stop
===============================================================
清屏
clear screen
****************************************************************
數(shù)據(jù)字典 ===========desc user_views(關(guān)鍵詞)
****************************************************************
===============================================================
查看當(dāng)前用戶的角色
SQL>select * from user_role_privs;
===============================================================
查看當(dāng)前用戶的系統(tǒng)權(quán)限和表級(jí)權(quán)限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
===============================================================
查看當(dāng)前用戶的缺省表空間
SQL>select username,default_tablespace from user_users;
===============================================================
換用戶
conn as sysdba
sys
tsinghua
sqlplus "sys/tsinghua as sysdba"
conn sys/zl as sysdba
===============================================================
修改表結(jié)構(gòu)
alter table test modify(name not null);
alter table test add(name varchar2(20));
alter table test drop column sex;
alter table test set unused column sex;
alter table test drop unused columns;
===============================================================
更改用戶密碼
sql>alter user 管理員 identified by 密碼;
===============================================================
創(chuàng)建表空間的數(shù)據(jù)文件
sql>create tablespace test datafile 'd:oraclebinbo.dbf' size 10m;
===============================================================
創(chuàng)建用戶
sql>create user 用戶名 identified by 用戶名;
===============================================================
bfile類(lèi)型實(shí)例
創(chuàng)建目錄
create directory tnpdir as 'c:';
刪除目錄
drop directory tnpdir
授權(quán)
grant read on directory tn pdir to scott;
建表
create table bfiletest(id number(3), fname bfile);
添加數(shù)據(jù)
insert into bfiletest values(1,bfilename('TMPDIR','tmptest.java'));
===============================================================
查看用戶
sql>show user
===============================================================
檢查語(yǔ)句是否有錯(cuò)
show error
===============================================================
鎖定用戶
sql>alter user 用戶名 account lock
===============================================================
解除用戶
sql>alter user 用戶名 account unlock
===============================================================
刪除用戶
sql>drop user zl;
===============================================================
給用戶創(chuàng)建表權(quán)限
sql>grant create table to 用戶名;
===============================================================
授管理員權(quán)限
sql>grant dba to 用戶名;
===============================================================
給用戶登錄權(quán)限
sql>grant connect to 用戶名
===============================================================
給用戶無(wú)限表空間權(quán)限
sql>grant unlinmited tablespace to 用戶名;
===============================================================
收回權(quán)限
sql>revoke dba from 用戶名;
===============================================================
查看用戶下所有的表
????????????SQL>select * from user_tables;
===============================================================
查看名稱(chēng)包含log字符的表
????????????SQL>select object_name,object_id from user_objects
????????????????where instr(object_name,'LOG')>0;
===============================================================
查看某表的創(chuàng)建時(shí)間
????????????SQL>select object_name,created from user_objects where object_name=upper('&table_name');
===============================================================
查看某表的大小
????????????SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
????????????????where segment_name=upper('&table_name');
===============================================================
查看放在ORACLE的內(nèi)存區(qū)里的表
????????????SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;


===============================================================

再添加一個(gè)表空間的數(shù)據(jù)文件
sql>alter tablespace test add datafile 'd:oracletest1.dbf' size 10m;
===============================================================
建表????SQL>create table studen(stuno int,stuname varchar(8) not null,stubirth date default to_date('1987-5-9','YYYY-MM-DD'));
向表結(jié)構(gòu)中加入一列??SQL>alter table studen add(stuphoto varchar(9));
從表結(jié)構(gòu)中刪除一列??SQL>alter table studen drop column stuphoto;
修改表一列的長(zhǎng)度????SQL>alter table studen modify(stuno number(4));
隱藏將要?jiǎng)h除的一列??SQL>alter table studen set unused column stuphoto;
刪除隱藏的列????????SQL>alter table studen drop unused columns;
向表中加入約束??????SQL>alter table studen add constraint pk primary key(stuno);
刪除約束????????????SQL>alter table studen drop constraint pk;
===============================================================
創(chuàng)建表

sql>create table 用戶名(name varchar2(20),password varchar(20)) tablespace 空間名;
===============================================================
添加字段
sql>alter table test add(column_x char(10) not null);
===============================================================
更改字段
sql>alter table emp modify(column_x char (20));
===============================================================
刪除字段
?如待刪除域?qū)儆谀硞€(gè)索引,則不允許刪除操作,必須將此域先設(shè)置為NULL。
sql>alter table emp modify(column_x null);
sql>update emp set column_x=null;
sql>commit;
sql>alter table emp drop(column_x);
===============================================================
選擇表空間
sql>alter user 用戶名 default tablespace test;
===============================================================
管理員刪除別的用戶中的表
sql>drop table 用戶名.表名;
===============================================================
退出
sql>exit;
===============================================================
默認(rèn)進(jìn)入
sql>sqlplus "/ as sysdba"
===============================================================
查看數(shù)據(jù)庫(kù)
sql>show parameter block;
===============================================================
寫(xiě)大量語(yǔ)句用記事本,新建方式。
輸入"ed"回車(chē)
保存后
輸入"/"運(yùn)行;
===============================================================
查詢(xún)用戶有多少表
sql>select * from tab;
===============================================================
SQLServer取時(shí)間
sql>select getdate
oracle 取時(shí)間
sql>sysdate;
===============================================================
操作表結(jié)構(gòu)數(shù)據(jù)庫(kù)定義語(yǔ)言命令
(不記錄在日志文件中)
create table建表
sql>create table test(name varchar2(20),age date,sex char(2));
sql>insert into test(name,age,sex) values('aa',sysdate,'男');
sql>insert into test(name,age,sex) values('bb',to_date('1888-8-8',"yyyy-aa-dd hh24:mi:ss"),'男');
sql>select * from test;
===============================================================
查詢(xún)男和女總數(shù)
sql>select sex,count(sex) from test group by sex;
---------------------------------------------------------------
test表中數(shù)據(jù)輸入test1表中
SQLSserver---select * into test1 from test;
oracle---create table test1 as select * from test;
---------------------------------------------------------------
更改會(huì)話時(shí)間
sql>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
---------------------------------------------------------------
sql>show parameter block 表和視圖
sql>show parameter date 查數(shù)據(jù)結(jié)構(gòu)
---------------------------------------------------------------
SQLServer中
--刪除表中相同數(shù)據(jù)
sql>create table test1 as select distinct * from test;
--刪除表數(shù)據(jù)
sql>truncate table test;
--把test中數(shù)據(jù)輸入到test1中
sql>insert into test(select * from test1);
---------------------------------------------------------------
rowid(表中存儲(chǔ)地址相當(dāng)表id)和rownum(表序號(hào))稱(chēng)偽列(用法)
sql>select name,age,sex,rowid,rownum from test1;
查出前三行
sql>select * from test where rownum<=3;
查出后三行
sql>select * from (select name n,age a,sex s,rownum r from test) where r>(select count(*) from test)-3;
刪除后三行
SQL> delete from test where name not in(select name from test where rownum<=(select count(*) from test)-3);
刪除相同行
sql>delete from test where rowid not in(select max(rowid) from test group by name,age,sex);
刪除所有表
sql>select??'drop table' ||tname|| ':' from tab;
sql>spool c:test.sql;
sql>select??'drop table' ||tname|| ':' from tab;
sql>spool off
sql>@c:test.sql;
---------------------------------------------------------------
alter table修改表
truncate table節(jié)段表(只刪除數(shù)據(jù))
drop table刪除表
===============================================================
查看表結(jié)構(gòu)
desc 表名;
===============================================================
查出成績(jī)的前三名
sql>select * from (select * from stu order by score desc) where rownum<=3;
===============================================================
更改字符集
SQL>startup mount
SQL>alter system enable restricted session;
SQL>alter system set job_queue_processes=0;
SQL>alter database open;
SQL>alter database character set ZHS16GBK;
SQL>shutdown
SQL>startup
===============================================================
將一張表或幾張表中的域重新組合后插入新表。
假定原先的兩張表為emp,work,現(xiàn)選擇部分?jǐn)?shù)據(jù)域合并為emp_work
建立emp_work
SQL>insert into emp_new select a.no, sysdate, a.name, b.service_duration from emp a, work b where a.no=b.no;
SQL>commit;
這樣的方式仍然要使用回滾段,為加快數(shù)據(jù)遷移速度,可將insert替換成insert (大小寫(xiě)不論),指示oracle以直通方式直接寫(xiě)數(shù)據(jù)文件,繞過(guò)回滾空間。
SQL>insert into emp_new select a.no, sysdate, a.name, b.service_duration from emp a, work b where a.no=b.no;
SQL>commit;
===============================================================
DDL數(shù)據(jù)定義語(yǔ)言(create,alter,drop)
DML數(shù)據(jù)操縱語(yǔ)言(insert,select,delete,update)
TCL事務(wù)控制語(yǔ)言(commit,savepoint,rollback)
DCL數(shù)據(jù)控制語(yǔ)言(GRANT??REVOKE)
===============================================================

一個(gè)表中的某一列輸?shù)搅硪粋€(gè)表中
insert into stu1(name)(select name from stu);
===============================================================
事務(wù)
rollback;
insert into stu1(name)(select name from stu);
commit;提交
===============================================================
COMMIT - 提交并結(jié)束事務(wù)處理
ROLLBACK -??撤銷(xiāo)事務(wù)中已完成的工作
SAVEPOINT – 標(biāo)記事務(wù)中可以回滾的點(diǎn)
SQL>??update order_master set del_date ='30-8月-05' WHERE orderno <= 'o002';
?
SQL>??savepoint mark1;
SQL>??delete FROM order_master WHERE orderno = 'o002';
SQL>??savepoint mark2;
SQL>??rollback TO SAVEPOINT mark1;
SQL>??COMMIT;
===============================================================
換名
set sqlprompt "scott>";
===============================================================
GRANT 授予權(quán)限
SQL> GRANT SELECT ON vendor_master TO accounts WITH GRANT OPTION;
REVOKE 撤銷(xiāo)已授予的權(quán)限
SQL> REVOKE SELECT, UPDATE ON order_master FROM MARTIN;
===============================================================
比較操作符
SQL> SELECT vencode,venname,tel_no
?????FROM vendor_master
?????WHERE venname LIKE 'j___s';
SQL> SELECT orderno FROM order_master
?????WHERE del_date IN (‘06-1月-05’,‘05-2月-05');
SQL> SELECT itemdesc, re_level
?????FROM??itemfile
?????WHERE qty_hand < max_level/2;
===============================================================
邏輯操作符
SQL> SELECT * FROM order_master
?????WHERE odate > ‘10-5月-05'
?????AND del_date < ‘26-5月-05’;
===============================================================
集合操作符將兩個(gè)查詢(xún)的結(jié)果組合成一個(gè)結(jié)果
SQL> SELECT orderno FROM order_master
?????MINUS
?????SELECT orderno FROM order_detail;
-----------------------------------------------------------------
select * from scott.stu
union (all)重復(fù)的去掉[intersect把相同的取出來(lái)][minus顯示不相同的數(shù)]
select * from stu
-----------------------------------------------------------------
顯示相同的數(shù)據(jù)
select name from stu intersect select name from stu1;
===============================================================
連接操作符
連接操作符用于將多個(gè)字符串或數(shù)據(jù)值合并成一個(gè)字符串
SQL> SELECT (venname|| ' 的地址是 '
?????||venadd1||' '||venadd2 ||' '||venadd3) address
?????FROM vendor_master WHERE vencode='V001';
===============================================================
操作符的優(yōu)先級(jí)
SQL 操作符的優(yōu)先級(jí)從高到低的順序是:
算術(shù)操作符???????????--------最高優(yōu)先級(jí)
連接操作符
比較操作符
NOT 邏輯操作符
AND 邏輯操作符
OR???邏輯操作符???--------最低優(yōu)先級(jí)

===============================================================
用來(lái)轉(zhuǎn)換空值的函數(shù)
NVL
NVL2
NULLIF
SELECT itemdesc, NVL(re_level,0) FROM itemfile;
SELECT itemdesc, NVL2(re_level,re_level,max_level) FROM itemfile;
SELECT itemdesc, NULLIF(re_level,max_level) FROM itemfile;
===============================================================
GROUP BY和HAVING子句

GROUP BY子句
用于將信息劃分為更小的組
每一組行返回針對(duì)該組的單個(gè)結(jié)果

HAVING子句
用于指定 GROUP BY 子句檢索行的條件

SELECT p_category, MAX(itemrate) FROM itemfile GROUP BY p_category;
SELECT p_category, MAX(itemrate) FROM itemfile GROUP BY p_category HAVING p_category NOT IN ('accessories');
===============================================================
ROW_NUMBER (row_number)返回連續(xù)的排位,不論值是否相等
RANK(rank) 具有相等值的行排位相同,序數(shù)隨后跳躍
DENSE_RANK(dense_rank) 具有相等值的行排位相同,序號(hào)是連續(xù)的
SELECT d.dname, e.ename, e.sal, DENSE_RANK()
??OVER (PARTITION BY e.deptno ORDER BY e.sal DESC)
??AS DENRANK
FROM emp e, dept d WHERE e.deptno = d.deptno;
===============================================================
日期函數(shù)
ADD_MONTHS(當(dāng)前只加月)
alter session set nls_date_format='yyyymmdd hh24miss';
select add_months(sysdate,2) from dual;
----------------------------------------------------------------
MONTHS_BETWEEN(前面時(shí)間減后面時(shí)間=得之間月差)
select months_between(sysdate,to_date('2007-6-10','yyyy-mm-dd')) from dual;
----------------------------------------------------------------
LAST_DAY(求得當(dāng)前月的最后一天)
select last_day(sysdate) from dual;
----------------------------------------------------------------
ROUND(round年-月-日-->四舍五入)
select round(2.3) from dual;
select round(to_date('2007-6-10','yyyy-mm-dd'),'year') from dual;
select round(to_date('2007-6-10','yyyy-mm-dd'),'month') from dual;
select round(to_date('2007-6-10','yyyy-mm-dd'),'day') from dual;
----------------------------------------------------------------
NEXT_DAY(下一星期的星期二)
select next_day(to_date('2007-6-10','yyyy-mm-dd'),'星期二') from dual;
----------------------------------------------------------------
TRUNC(trunc)
----------------------------------------------------------------
EXTRACT(extract)
select extract(year from date '1998-03-07') from dual;
select extract(month from to_date ('1998-03-07','yyyy-mm-dd')) from dual;

----------------------------------------------------------------
2008年2月有多少天
inbo---->select extract(day from last_day(to_date ('2008-02-07','yyyy-mm-dd'))) from dual;
----------------------------------------------------------------
2003-4-3與1956-3-1之間有多少天
inbo---->select round(months_between(to_date('2003-4-3','yyyy-mm-dd'),to_date('1956-3-1','yyyy-mm-dd'))/12) from dual;
===============================================================
把兩邊的9去掉
select trim('9' from '9999ddddddd99999') from dual;
去空格
select trim(' ' from '?????9999ddddddd99999') from dual;
===============================================================
???函數(shù)???????????????????輸入??????????????????????????輸出
Initcap(char) ???????????Select initcap(‘hello’) from dual;?????????????????Hello
Lower(char) ???????????Select lower(‘FUN’) from dual;?????????????????fun
Upper(char)???????????????Select upper(‘sun’) from dual;?????????????????SUN
Ltrim(char,set) ???Select ltrim( ‘xyzadams’,’xyz’) from dual;????????adams
Rtrim(char,set) ???Select rtrim(‘xyzadams’,’ams’) from dual; ?xyzad
Translate(char, from, to) Select translate(‘jack’,’j’ ,’b’) from dual;?back
Replace(char,searchstring,[rep string])???Select replace(‘jack and jue’ ,’j’,’bl’) from dual;?black and blue
Instr (char, m, n) ???Select instr (‘worldwide’,’d’) from dual; ??5
Substr (char, m, n) ???Select substr(‘a(chǎn)bcdefg’,3,2) from dual; ?????????cd
Concat (expr1, expr2)???Select concat (‘Hello’,’ world’) from dual; ?Hello world

===============================================================
數(shù)字函數(shù)接受數(shù)字輸入并返回?cái)?shù)值結(jié)果

???函數(shù)????輸入???輸出
Abs(n) ?????????Select abs(-15) from dual; ?15

Ceil(n) ?Select ceil(44.778) from dual; ?45

Cos(n) ?????????Select cos(180) from dual; ?-.5984601

Cosh(n) ?Select cosh(0) from dual; ?1

Floor(n) ?Select floor(100.2) from dual; ?100

Power(m,n) ?Select power(4,2) from dual; ?16

Mod(m,n) ?Select mod(10,3) from dual; ?1

Round(m,n) ?Select round(100.256,2) from dual; ?100.26

Trunc(m,n) ?Select trunc(100.256,2) from dual; ?100.25

Sqrt(n) ?Select sqrt(4) from dual; ?2

Sign(n)?????????Select sign(-30) from dual;???????????-1

===============================================================
字符函數(shù)
查看有多少個(gè)字符
SQL> SELECT LENGTH('frances') FROM dual;
-----------------------------------------------------------------
SQL> SELECT vencode,
?????DECODE(venname,'frances','Francis') name
?????FROM vendor_master WHERE vencode='v001';
-----------------------------------------------------------------
查找人是否存在 加字段decode主明是否有人
select name,decode(name,'rbb','有人') from stu;

===================================================================
排續(xù)
select dense_rank() over(partition by sex order by score) from test;
select row_number() over(order by score),name,sex,score from test;
select rank() over(order by score) from test;
select dense_rank() over(order by score) from test;
==========================================================================

創(chuàng)建同義詞
SQL> create public synonym test for rbb.test;
SQL> create synonym test for mytest;
同一類(lèi)的才可以替換,同義詞替換同義詞
替換
SQL> create or replace synonym emp_sysn for scott.emp;

**********************************************************************************************
創(chuàng)建序列
SQL>create sequence xule increment by 1 start with 1 maxvalue 999;
increment by??增長(zhǎng)值
start with????起始值
maxvalue 最大值
minvalue 最小值
nocycle 不循環(huán)
chare 10緩存
xule.nextval??===========下一個(gè)序列的值
xule.currval??===========可以查詢(xún)序列當(dāng)前的值
更改序列 start with 不能改
alter sequence xule maxvalue 100 [sycle nocycle];
**********************************************************************************************
序列用法
SQL>create table xl(name varchar2(4));
SQL>insert into test values(xule.nextval);
SQL>select xl.currval from dual;
**********************************************************************************************
刪除序列
drop sequence x;
desc user_sequences
**********************************************************************************************
創(chuàng)建視圖???視圖中可以使用函數(shù)和表達(dá)式
create or replace view
**********************************************************************************************
創(chuàng)建視圖
SQL> create or replace view 視圖名 as select * from rbb union all select * from rbbb union all select * from test;
SQL> create or replace view 視圖名 as
??2??select empno as 編號(hào),ename as 姓名 from scott.emp
??3??where deptno=10;
==========================================================================
如果在當(dāng)前用戶下沒(méi)有這個(gè)視圖就創(chuàng)建此視圖
如果有此視圖就覆蓋此視圖
create or replace view view_name as select empno,ename from emp where deptno=10;
**********************************************************************************************
在創(chuàng)建視圖前要為當(dāng)前用戶授權(quán)
grant resource to scott;
create or replace view v_sal as select ename,sal from emp order by sal desc;
**********************************************************************************************
使用視圖
select * from v_sal;
**********************************************************************************************
刪除一個(gè)視圖
drop view view_name;
**********************************************************************************************
重新編譯已有的視圖
alter view view_name compile;
**********************************************************************************************
數(shù)據(jù)字典 ===========desc user_views
**********************************************************************************************

常用的轉(zhuǎn)換函數(shù)有
TO_CHAR
SELECT TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS') FROM dual; 

TO_DATE
SELECT TO_DATE('2005-12-06', 'yyyy-mm-dd') FROM dual;

TO_NUMBER
SELECT TO_NUMBER('100') FROM dual;
**********************************************************************************************
集合操作符
union all??連接兩個(gè)表或者多個(gè)表為一個(gè)視圖
MINUS 操作符返回從第一個(gè)查詢(xún)結(jié)果中排除第二個(gè)查
詢(xún)中出現(xiàn)的行。
INTERSECT 操作符只返回兩個(gè)查詢(xún)的公共行。
**********************************************************************************************

鎖定的優(yōu)點(diǎn)

1.一致性 - 一次只允許一個(gè)用戶修改數(shù)據(jù)

2.完整性 - 為所有用戶提供正確的數(shù)據(jù)。如果一個(gè)用戶進(jìn)行了修改并保存,所做的修改將反映給所有用戶

3.并行性 -允許多個(gè)用戶訪問(wèn)同一數(shù)據(jù)

行級(jí)鎖和表級(jí)鎖

行級(jí)鎖:是一種排他鎖,防止其他事務(wù)修改此行.

解鎖:提交事務(wù)(commit),(rollback)
---------------------------------------------------------------
更新表數(shù)據(jù):update test set score=80 where name='xiaoli';
--------------------------------------------------------------
自動(dòng)提交
set autocommit on
set sutocommit off
------------------------------------------------------------
鎖定某行更新語(yǔ)句
select * from scott.test where name='xiaoli' for update;
SELECT * FROM order_master WHERE vencode='V002' FOR UPDATE OF odate,del_date;
select * from scott.test where name='xiaoli' for update of score;

select * from scott.test atest,test b where a.name=b.name and b.name='bbb' for update of b.score;
--------------------------------------------------------------------
等待update
select * from scott.test where name='xiaoli' for update wait 2;
select * from scott.test where name='xiaoli' for update nowait;

-------------------------------------------------------------------
表級(jí)鎖:鎖定整個(gè)表
表級(jí)鎖語(yǔ)法:lock table 表名 in mode mode;
-------------------------------------------------------------------------
行共享row share--行排他row exclusive--共享share-共享行排他share row exclusive-----排他exclusive
---------------------------------------------------------------------------------
行共享(row share):lock table scott.test in (row share) mode;
[其他用戶.行共享---其他用戶.行排他---其他用戶.共享----其他用戶.共享行排他----其他用戶.不可以(排他)]

--------------------------------------------------------------------------------
行排他(row exclusive):lock table scott.test in (row exclusive) mode;

[其他用戶.行共享----其他用戶.行排他----其他用戶.不可以(共享)---其他用戶.不可以(共享行排他)--其他用戶.不可以(排他)]

---------------------------------------------------------------------------------
共享(share):lock table scott.test in (share) mode;

[其他用戶.行共享---其他用戶.不可以(行排他)---其他用戶.共享----其他用戶.不可以(共享行排他)---其他用戶.不可以(排他)]

-----------------------------------------------------------------------------------
共享行排他(share row exclusive):lock table scott.test in (share row exclusive) mode;

[其他用戶.行共享,其他用戶.不可以(行排他),其他用戶.不可以(共享),其他用戶.不可以(共享行排他),其他用戶.不可以(排他)]

--------------------------------------------------------------------------------------
排他(exclusive):lock table scott.test in (exclusive) mode;

[其他用戶.不可以(行共享),其他用戶.不可以(行排他),其他用戶.不可以(共享),其他用戶.不可以(共享行排他,)其他用戶.不可以(排他)]

----------------------------------------------------------------------------------
死鎖

當(dāng)兩個(gè)事務(wù)相互等待對(duì)方釋放資源時(shí),就會(huì)形成死鎖

Oracle會(huì)自動(dòng)檢測(cè)死鎖,并通過(guò)結(jié)束其中的一個(gè)事務(wù)來(lái)解決死鎖
----------------------------------------------------------------------------------

表分區(qū)

---范圍分區(qū)
create table test(name varchar2(20),sex char(2),score number(3))
partition by range(score)
(
partition p1 values less than (50) tablespace users,
partition p2 values less than (80),
partitiom p3 values less than (maxvalue)
)
select * from test partition(p1) union select * from test partitiom(p3);
---
刪除分區(qū)
alter table test drop partition p3;
添加分區(qū)
alter table test add partition p3 values less than (maxvalue);
拆分分區(qū)
alter table test split partition p2 at(60)
into (partition p21,partition p22);
合并分區(qū)
alter table test merge partitions p21,p22 into partition p2;
截?cái)喾謪^(qū)(刪除數(shù)據(jù))
alter table test truncate partition p3;

現(xiàn)有表分區(qū)
create table str as select * from student;
drop table student;
create table student(
?studentid integer not null,
?studentname varchar2(20),
?score integer
)
partition by range(score)(
?partition p1 values less than(60),
?partition p2 values less than(75),
?partition p3 values less than(85),
?partition p4 values less than(maxvalue)
)
insert into student(select * from stu);


select * from test?scott.emp@tsinghua

?

**********************************************************************************************

表分區(qū)
Oracle允許用戶對(duì)表進(jìn)一步的規(guī)化,即對(duì)表進(jìn)一步拆分,將表分成若干個(gè)邏輯部分,每個(gè)部分稱(chēng)其為表分區(qū)
優(yōu)點(diǎn):增強(qiáng)可用性,單個(gè)分區(qū)出現(xiàn)故障,不影響其他分區(qū)
均衡的I/O,不同的分區(qū)可以映射到不同的磁盤(pán)???改善性能
**********************************************************************************************
①范圍分區(qū)法
create table st(
?studentid integer not null,
?studentname varchar2(20),
?score integer
)
partition by range(score)(
?partition p1 values less than(60),
?partition p2 values less than(75),
?partition p3 values less than(85),
?partition p4 values less than(maxvalue)
)
========================select * from stu partition(p1)============
②散列分區(qū)
create table st(deptno int,deptname varchar(14))
partition by hash(deptno)(
partition p1,partition p2
)
組合分區(qū)
alter table test coalesce partition;
**********************************************************************************************
③復(fù)合分區(qū)
范圍分區(qū)和列表分區(qū)
create table salgrade(
grade number(2),losal number(2),hisal number(2)
)
partition by range(grade)
subpartition by list(losal)
(
partition p1 values less than(10)

??(
???subpartition p1a values('湖北'),
???subpartition p1b values(default)
??),
partition p2 values less than(20)
??(
???subpartition p1a values('河南'),
???subpartition p1b values(default)
??),
partition p3 values less than(30)
??(
???subpartition p1a values('上海'),
???subpartition p1b values(default)
??)
)

范圍分區(qū)和散列分區(qū)
create table salgrade(
grade number(2),losal number(2),hisal number(2)
)
partition by range(grade)
subpartition by hash(losal)
[subpartitions 5]
(
partition p1 values less than(10)(subpartition p1a,subpartition p1b),
partition p2 values less than(20)(subpartition p2a,subpartition p2b),
partition p3 values less than(30)(subpartition p3a,subpartition p3b)
)
--------------------------------------------
?create table salg(
?grade number(2),losal number(2),hisal number(2)
?)
?partition by range(grade)
?subpartition by hash(losal)
?subpartitions 3
?(
?partition p1 values less than(10),
?partition p2 values less than(20),
?partition p3 values less than(30)
?)
**********************************************************************************************
④列表分區(qū)
create table test stu(id int,name varchar(20),add varchar(8))
partition by list(add)
(
partition p1 values('中國(guó)'),
partition p2 values('英國(guó)'),
partition p3 values(default)
)
**********************************************************************************************
移動(dòng)分區(qū)

alter table test move partition p5 tablespace users;

********************************************************************************************

修改存檔

SQL> shutdown immediate
數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫(kù)。
ORACLE 例程已經(jīng)關(guān)閉。

SQL> startup mount
ORACLE 例程已經(jīng)啟動(dòng)。

Total System Global Area??135338868 bytes??????????????????????????????????????
Fixed Size???????????????????453492 bytes??????????????????????????????????????
Variable Size?????????????109051904 bytes??????????????????????????????????????
Database Buffers???????????25165824 bytes??????????????????????????????????????
Redo Buffers?????????????????667648 bytes??????????????????????????????????????
數(shù)據(jù)庫(kù)裝載完畢。

SQL> alter database archivelog;

數(shù)據(jù)庫(kù)已更改。
alter database open;

SQL> archive log list;
數(shù)據(jù)庫(kù)日志模式????????????存檔模式
自動(dòng)存檔?????????????禁用
存檔終點(diǎn)????????????d:oracleora92RDBMS
最早的概要日志序列?????1
下一個(gè)存檔日志序列???2
當(dāng)前日志序列???????????2

SQL> alter system set log_archive_dest=true scope=spfile;

系統(tǒng)已更改。

SQL> alter database open;

數(shù)據(jù)庫(kù)已更改。

SQL> spool off
********************************************************************************************

PL/SSQL(過(guò)程化語(yǔ)言) 聲明部分 執(zhí)行語(yǔ)句部分 異常處理部分

identifier constant datatype not null
[:=|default expr];

?

declare
my number(5);
begin
?select quantity into my
from products where product='wawa'
for update of quantity;
if my>0 then
update products set quantity=quantity+1
where product='wawa';
insert into purchase_record
values('wawawa',sysdate);
end if;
commit;
Exception
where others then
dbms_output.put_line('chucuo'||SQLERRM);
END;

declare icode varchar2(6)
p_catg varchar2(20);
c_catg constant datatype:=0.10

數(shù)字類(lèi)型
number
??decrmdl
??int/integer
??real(實(shí)數(shù))
??binary_integer(帶符號(hào)的整數(shù))
??pls_integer(同上)
字符類(lèi)型
character
??char 3276
??Raw(2000)
??long/long Raw(32760)
??Rowid/rowid()
??varchar2 (string(nchar/nvarchar)/varchar)
日期時(shí)間
date
??timeStamp(固定日期dd-mm-yy 秒6位)
??子 timestamp with time zone
??ti timestamp(9)
布爾
boolean
??true
??false
??null
打印出時(shí)間
declare
test_tz timestamp with time zone;
begin test_tz:=to_timestamp_tz('2006-6-22 09:07:11','yyyy-mm-dd hh24:mi:ss');
dbms_output.put_line(test_tz);
end;


lob類(lèi)型
??BFILE
??BLOB
??CLOB
??NCLOB
屬性類(lèi)型
??%type??%rowtype
===============================================================
bfile類(lèi)型實(shí)例
創(chuàng)建目錄
create directory tnpdir as 'c:';
刪除目錄
drop directory tnpdir
授權(quán)
crant read on directory tnpdir to scott;
建表
create table bfiletest(id number(3), fname bfile);
添加數(shù)據(jù)
insert into bfiletest values(1,bfilename('TMPDIR','tmptest.java'));

===============================================================
向數(shù)據(jù)庫(kù)中添加圖片
create directory images as 'c:images';
crant read on directory images to scott;
create table my_diagrams(
chapter_descr varchar2(40);
diagram_no integer,
diagram blob
);

declare
??l_bfile bfile;
??l_blob blob;
begin
?insert into my_diagrams(diagram)
?values(emptv_blob())
?return diagram into l_blob;
?l_bfile:=bfilename('images','nvimage.jpg');
?dbms_lob.open(l_bfile,dbms_lob.file_readonly);
?dbms_lob.loadfromfile(l_blob,l_bfile,dbms_lob,getlength(l_bfile));
?dbms_lob.close(l_bfile);
?commit;
end;

===============================================================
%type實(shí)例 查詢(xún)
declare
dtr dept.dname%type;
begin
select dname into str from dept where deptno=30;
dbms_output.put_line(str);
end;
set serverout on

===============================================================
%rowtype實(shí)例

declare
row dept%rowtype;
begin
select * into row from dept where deptno=30;
dbms_output.put.line(row.dname||' '||row.deptno||' '||row.loc);
//異常
exception
when no_data_found then
?dbms_output.put_lin('沒(méi)有數(shù)據(jù)');
when too_many_rows(others) then
?dbms_output.put_lin('太多拉');
end;

===============================================================
格式

if 條件 then

elsif 條件 then

else

end if
===============================================================
格式

begin
?case'&grade'
??when 'a' then dbms_output.put_line('優(yōu)異');
??when 'b' then dbms_output.put_line('良好');
??else dbms_output.put_line('其它')
?end case;
end;
===============================================================
外界變量
var vnm varchar2(20);
begin
:v:='aaaaa';
end;
打印
print v
===============================================================
loop實(shí)例

begin
loop
exit when 3>4;

end loop;
end;
===============================================================
while實(shí)例
begin
while (條件)condition loop
語(yǔ)句體;
end loop;
end;
===============================================================
循環(huán)實(shí)例

begin
for c in 1..10
loop
dbms_output.put_line(c);
end loop
end;

begin
for c in reverse(倒) 1..10
loop
dbms_output.put_line(c);
end loop
end;
===============================================================

declare
?num number(3):=1;
begin
?while num<10 loop
??dbms_output.put_line(num);
??num:=num+1;
??end loop;
end;

declare
?num number(3):=1;
begin
?loop
??dbms_output.put_line(num);
??exit when num>10;//退出
??num:=num+1;
??end loop;
end;
===============================================================
goto實(shí)例
DECLARE
??qtyhand itemfile.qty_hand%type;
??relevel itemfile.re_level%type;
BEGIN
??SELECT qty_hand,re_level INTO qtyhand,relevel
??FROM itemfile WHERE itemcode = 'i201';
??IF qtyhand < relevel THEN
????GOTO updation;
??ELSE
????GOTO quit;
??END IF;
??<<updation>>
??UPDATE itemfile SET qty_hand = qty_hand + re_level
??WHERE itemcode = 'i201';
??<<quit>>
??NULL;
END;
===============================================================
動(dòng)態(tài)SQL 查詢(xún)
declare
cl varchar2(20);
va varchar2(20);
tb varchar2(20);
nm number(13);

begin
tb:='&table';
cl:='&aadd';
nm:=&num;
EXECUTE IMMEDIATE
'select '||cl||' from '||tb||' where '||cl||'=:1' into va using nm;
dbms_output.put_line(va);
end;


===============================================================
動(dòng)態(tài)SQL

declare

sql_stmt varchar2(200);
emp_id number(4):=7566;
emp_rec emp% rowtype;

begin
Execute immedlate
'create table bonus1(id number,amt number)';

sql_stmt:='select * from emp where empno=:id';
Execute immedlate sql_stmt into emp_rec using emp_id;

end;
===============================================================
declare
aaa varchar2(20);
num number(10);
bbb varchar2(20);
begin
aaa='&aaa';
num=&kkk;
execute immedlate 'select '||aaa||' from test where age=:a'into bbb using num;(標(biāo)準(zhǔn)SQL語(yǔ)句)
dbms_output.put_line(bbb);
end;
into 變量(給值)
:a(外界參數(shù)) using bb(邦定常量)

===============================================================
自己定義異常
declare
invar exception;
cate varchar2(10);
begin
cate:='&cate';
if cate not in('aa','ff','dd') then
raise invar;
else
dbms_output.put_line('你輸入的類(lèi)別是:'||cate);
end if;
exception
when invar then
dbms_output.put_line('無(wú)法認(rèn)識(shí)這個(gè)類(lèi)別!');
raise_application_error(-20200,'自己寫(xiě)');
end;
讓數(shù)據(jù)庫(kù)真正出錯(cuò)
raise_application_error(-20200,'自己寫(xiě)');

例子2
declare
rate itemfile.itemrate%type;
ratee exception;
begin
select nvl(itemrate,0) into rate from itemfile
where itemcode='i207';
if rate=0 then
raise ratee;
else
dbms_output.put_line('項(xiàng)費(fèi)率是:'||rate);
end if;
exception
when ratee then
RAISE_APPLICATION_ERROR(-20001, '未指定項(xiàng)費(fèi)率');
end;
===============================================================
create procedure存儲(chǔ)過(guò)程
===============================================================
創(chuàng)建標(biāo)準(zhǔn)索引
SQL> CREATE INDEX item_index ON itemfile (itemcode)
?????TABLESPACE index_tbs;
重建索引
SQL> ALTER INDEX item_index REBUILD;
刪除索引
SQL> DROP INDEX item_index;
唯一索引確保在定義索引的列中沒(méi)有重復(fù)值
Oracle 自動(dòng)在表的主鍵列上創(chuàng)建唯一索引
使用CREATE UNIQUE INDEX語(yǔ)句創(chuàng)建唯一索引
SQL> CREATE UNIQUE INDEX item_index
?????ON itemfile (itemcode);
組合索引是在表的多個(gè)列上創(chuàng)建的索引
索引中列的順序是任意的
如果 SQL 語(yǔ)句的 WHERE 子句中引用了組合索引的所有列或大多數(shù)列,
則可以提高檢索速度

SQL> CREATE INDEX comp_index
?????ON itemfile(p_category, itemrate);
反向鍵索引反轉(zhuǎn)索引列鍵值的每個(gè)字節(jié)
通常建立在值是連續(xù)增長(zhǎng)的列上,使數(shù)據(jù)均勻地分布在整個(gè)索引上
創(chuàng)建索引時(shí)使用REVERSE關(guān)鍵字
SQL> CREATE INDEX rev_index
?????ON itemfile (itemcode) REVERSE;
SQL> ALTER INDEX rev_index REBUID NOREVERSE;
位圖索引適合創(chuàng)建在低基數(shù)列上
位圖索引不直接存儲(chǔ)ROWID,而是存儲(chǔ)字節(jié)位到ROWID的映射
減少響應(yīng)時(shí)間
節(jié)省空間占用
SQL> CREATE BITMAP INDEX bit_index
?????ON order_master (orderno);
基于一個(gè)或多個(gè)列上的函數(shù)或表達(dá)式創(chuàng)建的索引
表達(dá)式中不能出現(xiàn)聚合函數(shù)
不能在LOB類(lèi)型的列上創(chuàng)建
創(chuàng)建時(shí)必須具有 QUERY REWRITE 權(quán)限
SQL> CREATE INDEX lowercase_idx
?????ON toys (LOWER(toyname));
SQL> SELECT toyid FROM toys
?????WHERE LOWER(toyname)='doll';
與索引有關(guān)的數(shù)據(jù)字典視圖有:
USER_INDEXES - 用戶創(chuàng)建的索引的信息
USER_IND_PARTITIONS - 用戶創(chuàng)建的分區(qū)索引的信息
USER_IND_COLUMNS - 與索引相關(guān)的表列的信息
SQL> SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME
?????FROM USER_IND_COLUMNS
?????ORDER BY INDEX_NAME, COLUMN_POSITION;
可以將索引存儲(chǔ)在不同的分區(qū)中
與分區(qū)有關(guān)的索引有三種類(lèi)型:
局部分區(qū)索引 - 在分區(qū).
表上創(chuàng)建的索引,在每個(gè)表分區(qū)上創(chuàng)建獨(dú)立的索引,索引的分區(qū)范圍與表一致
全局分區(qū)索引 - 在分區(qū)表或非分區(qū)表上創(chuàng)建的索引,索引單獨(dú)指定分區(qū)的范圍,與表的分區(qū)范圍或是否分區(qū)無(wú)關(guān)
全局非分區(qū)索引 - 在分區(qū)表上創(chuàng)建的全局普通索引,索引沒(méi)有被分區(qū)

SQL> CREATE TABLE ind_org_tab (
?????vencode NUMBER(4) PRIMARY KEY,
???????venname VARCHAR2(20)
????)
????ORGANIZATION INDEX;
與索引有關(guān)的數(shù)據(jù)字典視圖有:
USER_INDEXES - 用戶創(chuàng)建的索引的信息
USER_IND_PARTITIONS - 用戶創(chuàng)建的分區(qū)索引的信息
USER_IND_COLUMNS - 與索引相關(guān)的表列的信息

SQL> SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME
?????FROM USER_IND_COLUMNS
?????ORDER BY INDEX_NAME, COLUMN_POSITION;

?

----游標(biāo)簡(jiǎn)介

逐行處理查詢(xún)結(jié)果,經(jīng)編程的方式訪問(wèn)數(shù)據(jù)

---游標(biāo)類(lèi)型:
隱式游標(biāo):在 PL/SQL 程序中執(zhí)行DML SQL 語(yǔ)句時(shí)自動(dòng)創(chuàng)建隱式游標(biāo)。
顯式游標(biāo):顯式游標(biāo)用于處理返回多行的查詢(xún)。
REF 游標(biāo):REF 游標(biāo)用于處理運(yùn)行時(shí)才能確定的動(dòng)態(tài) SQL 查詢(xún)的結(jié)果

------隱式游標(biāo)的屬性有:
%FOUND – SQL 語(yǔ)句影響了一行或多行時(shí)為 TRUE
%NOTFOUND – SQL 語(yǔ)句沒(méi)有影響任何行時(shí)為T(mén)RUE
%ROWCOUNT – SQL 語(yǔ)句影響的行數(shù)
%ISOPEN??- 游標(biāo)是否打開(kāi),始終為FALSE


刪除游標(biāo)

delete from table_name where cursor of cursor_name;
===============================================================
------隱式游標(biāo)示例
------too_many_rows的用法!

??1??declare
??2??empid varchar2(20);
??3??begin
??4??select name into empid from test;
??5??exception
??6??when too_many_rows then
??7??dbms_output.put_line('該查詢(xún)多于兩行!');
??8* end;
SQL> /
該查詢(xún)多于兩行!

PL/SQL 過(guò)程已成功完成。

===============================================================

------no_data_found的用法!
SQL> set serverout on
SQL> ed
已寫(xiě)入文件 afiedt.buf

??1??declare
??2??empid varchar2(20);
??3??desig varchar2(20);
??4??begin
??5??empid:='&emp';
??6??select name into desig from test where name=empid;
??7??dbms_output.put_line('你查詢(xún)的名字是:'||desig);
??8??exception
??9??when no_data_found then
?10??dbms_output.put_line('沒(méi)有時(shí)間!');
?11* end;
SQL> /
輸入 emp 的值:??xiaoli
原值????5: empid:='&emp';
新值????5: empid:='xiaoli';
你查詢(xún)的名字是:xiaoli

PL/SQL 過(guò)程已成功完成。

SQL> /
輸入 emp 的值:??ss
原值????5: empid:='&emp';
新值????5: empid:='ss';
沒(méi)有時(shí)間!

PL/SQL 過(guò)程已成功完成。

===============================================================
SQL> set serveroutput on
SQL> begin
??2??update test set name='renbinbo' where name='binbo';
??3??if sql%found then
??4??dbms_output.put_line('表已經(jīng)更新!');
??5??end if;
??6??end;
??7??/
test_t表中name也已經(jīng)更新!
表已經(jīng)更新!

===============================================================
SQL>
??declare
???aa varchar2(20);
??bb varchar2(20);
???begin
??bb:='&bb';
???select score into aa from test where name=bb;
???if sql%found then
???dbms_output.put_line(bb||'的分?jǐn)?shù)為:'||aa);
???end if;
??end;
SQL> /
輸入 bb 的值:??renbinbo
原值????5: bb:='&bb';
新值????5: bb:='renbinbo';
renbinbo的分?jǐn)?shù)為:100

PL/SQL 過(guò)程已成功完成。
===============================================================
SQL> ed
已寫(xiě)入文件 afiedt.buf

??1??declare
??2??my_toy rbb.test.name%type;
??3??cursor toy_cur is
??4??select name from test where name='xiaoli';
??5??begin
??6??open toy_cur;
??7??loop
??8??fetch toy_cur into my_toy;
??9??exit when toy_cur%notfound;
?10??dbms_output.put_line('你查詢(xún)?nèi)说男彰?'||my_toy);
?11??end loop;
?12??close toy_cur;
?13* end;
SQL> /
你查詢(xún)?nèi)说男彰?xiaoli

PL/SQL 過(guò)程已成功完成。

SQL> ed
昨天我說(shuō)現(xiàn)在的想法那些確實(shí)的真的 也是事實(shí) 那是
已寫(xiě)入文件 afiedt.buf

??1??declare
??2??name_n rbb.test.name%type;
??3??sex_s rbb.test.name%type;
??4??sex_t rbb.test.name%type;
??5??cursor test_t is
??6??select name,sex,score from test;
??7??begin
??8??open test_t;
??9??dbms_output.put_line('你所查資料列表:');
?10??loop
?11??fetch test_t into name_n,sex_s,sex_t;
?12??exit when test_t%notfound;
?13??dbms_output.put_line(name_n||'??'||sex_s||'??'||sex_t);
?14??end loop;
?15??close test_t;
?16* end;
?17??/
你所查資料列表:
xiaoli??女???90
renbinbo??男???100
xiaoming??男???89
xiaowang??男???91
xiaohua??女???98
yunfeng??男???88
wangming??男???78
wuming??男???98
xiaobin??男???68
binbin??男???44
tianhua??女???55
liyun??女???65

PL/SQL 過(guò)程已成功完成。

===============================================================

bibno-->ed
已寫(xiě)入文件 afiedt.buf

??1??declare
??2??cursor test_cur is
??3??select name,sex,score from test;
??4??begin
??5??dbms_output.put_line('用戶資料列表:');
??6??for namet in test_cur
??7??loop
??8??dbms_output.put_line(namet.name||' '||namet.sex||' '||namet.score);
??9??end loop;
?10* end;
?11??/
用戶資料列表:
xiaoli 女??90
renbinbo 男??100
xiaoming 男??89
xiaowang 男??91
xiaohua 女??98
yunfeng 男??88
wangming 男??78
wuming 男??98
xiaobin 男??68
binbin 男??44
tianhua 女??55
liyun 女??65

PL/SQL 過(guò)程已成功完成。

===============================================================

帶參數(shù)的顯式游標(biāo)
SET SERVEROUTPUT ON
SQL> DECLARE
??desig????VARCHAR2(20);
??emp_code VARCHAR2(5);
??empnm????VARCHAR2(20);
??CURSOR emp_cur(desigparam VARCHAR2) IS
???SELECT empno, ename FROM employee
???WHERE designation=desig;
?????BEGIN
??desig:= '&desig';
??OPEN emp_cur(desig);
??LOOP
???FETCH emp_cur INTO emp_code,empnm;
???EXIT WHEN emp_cur%NOTFOUND;
???DBMS_OUTPUT.PUT_LINE(emp_code||' '||empnm);
????END LOOP;
??CLOSE emp_cur;
?????END;
===============================================================
SET SERVEROUTPUT ON
SQL> DECLARE
??new_price NUMBER;
??CURSOR cur_toy IS
????SELECT toyprice FROM toys WHERE toyprice<100
????FOR UPDATE OF toyprice;
BEGIN
??OPEN cur_toy;
??LOOP
????FETCH cur_toy INTO new_price;
????EXIT WHEN cur_toy%NOTFOUND;
????UPDATE toys
????SET toyprice = 1.1*new_price
????WHERE CURRENT OF cur_toy;
??END LOOP;
??CLOSE cur_toy;
??COMMIT;
END;

===============================================================
游標(biāo)變量的功能強(qiáng)大,可以簡(jiǎn)化數(shù)據(jù)處理

游標(biāo)變量的優(yōu)點(diǎn)有:
1.可從不同的 SELECT 語(yǔ)句中提取結(jié)果集
2.可以作為過(guò)程的參數(shù)進(jìn)行傳遞
3.可以引用游標(biāo)的所有屬性
4.可以進(jìn)行賦值運(yùn)算

使用游標(biāo)變量的限制:
1.不能在程序包中聲明游標(biāo)變量
2.FOR UPDATE子句不能與游標(biāo)變量一起使用
3.不能使用比較運(yùn)算符
===============================================================
===============================================================

?


創(chuàng)建過(guò)程
create procedure test_b(test varchar2,test1 number)
as
begin

dbms_output.put_line(test);
dbms_output.put_line(test1);
end;

?

create procedure test_c(test varchar2,test1 char)
as
aa varchar2(20);
bb char(10);
begin
select name into aa from test where name=test;
dbms_output.put_line(aa);
?select age into bb from test where age=test1;
dbms_output.put_line(bb);
end;
===============================================================
創(chuàng)建函數(shù)
create or replace function test_binbo return varchar2
as
begin
return '我愛(ài)你!';
end
執(zhí)行:
select test_binbo from dual;

?create or replace function test_binbo return varchar2
?as
?aa varchar2(20);
?bb char(3);
?begin
?bb:='&bb';
?select name into aa from test where sex=bb;
?return 'name';
?end;
執(zhí)行:
select test_binbo from dual;

create or replace function item_price_range(price number)
return varchar2 as
min_price number;
max_price number;
begin
select max(itemrate),min(temrate) into max_price,min_price
from test;
if price>=min_price and price<=max_price then
return '將計(jì)就計(jì)機(jī)';
else
return '哩哩啦啦理論';
end if;
end;
執(zhí)行:
select test_binbo from dual;
===============================================================
自主事務(wù)處理
CREATE OR REPLACE PROCEDURE p1 AS
??b VARCHAR2(50);
BEGIN
??UPDATE vendor_master SET venadd1='10 Walls Street'
??WHERE vencode='V002';
??P2();
??SELECT venadd1 INTO b
??FROM vendor_master WHERE vencode='V002';
??DBMS_OUTPUT.PUT_LINE(b);
END;
/
執(zhí)行
EXECUTE p1;

CREATE OR REPLACE PROCEDURE p2 AS
??a VARCHAR2(50);
??PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
??SELECT venadd1 INTO a
??FROM vendor_master WHERE vencode='V002';
??DBMS_OUTPUT.PUT_LINE(a);
??ROLLBACK;
END;
/

===============================================================
創(chuàng)建程序包


SQL> ed
已寫(xiě)入文件 afiedt.buf

??1??create or replace package package_me as
??2??procedure proc_test(test varchar2);
??3??function fun_test(funt varchar2) return varchar2;
??4* end;
??5??/

程序包已創(chuàng)建。

已寫(xiě)入文件 afiedt.buf

??1??create or replace package body package_me as
??2??procedure proc_test(test varchar2) as
??3??nam varchar2(20);
??4??begin
??5??select name into nam from test where name=test;
??6??dbms_output.put_line('你所查的人的姓名是:'||nam);
??7??end;
??8??function fun_test(funt varchar2) return varchar2 as
??9??funn varchar2(20);
?10??begin
?11??select next_day(funt,'星期六')-7 into funn from dual;
?12??return funn;
?13??end;
?14* end package_me;
SQL> /

程序包主體已創(chuàng)建。
SQL> select package_me.fun_test('2008-10-16') from dual;

PACKAGE_ME.FUN_TEST('2008-10-16')
---------------------------------------------------------

2008-10-11

SQL> exec package_me.proc_test('xiaoli');
你所查的人的姓名是:xiaoli
PL/SQL 過(guò)程已成功完成。
===============================================================
create or replace package pack_me as
procedure order_pr(orn varchar2);
function order_fu(onr varchar2) return varchar2;
end pack_me;
/

CREATE OR REPLACE PACKAGE BODY pack_me AS
??PROCEDURE order_proc (orno VARCHAR2) IS
????stat CHAR(1);
??BEGIN
????SELECT ostatus INTO stat FROM order_master
????WHERE orderno = orno;
????IF stat = 'p' THEN
??????DBMS_OUTPUT.PUT_LINE('暫掛的訂單');
????ELSE
??????DBMS_OUTPUT.PUT_LINE('已完成的訂單');
????END IF;
??END order_proc;
?
??FUNCTION order_fun(ornos VARCHAR2)
??RETURN VARCHAR2
??IS
????icode???VARCHAR2(5);
????ocode???VARCHAR2(5);
????qtyord??NUMBER;
????qtydeld NUMBER;
??BEGIN
????SELECT qty_ord, qty_deld, itemcode, orderno
????INTO???qtyord, qtydeld, icode, ocode
????FROM order_detail
????WHERE orderno = ornos;
????IF qtyord < qtydeld THEN
??????RETURN ocode;
????ELSE
??????RETURN icode;
????END IF;
??END order_fun;
END pack_me;
/

===============================================================

執(zhí)行
EXECUTE pack_me.order_proc('o002');

DECLARE
??msg VARCHAR2(10);
BEGIN
??msg := pack_me.order_fun('o002');
??DBMS_OUTPUT.PUT_LINE('值是 ' || msg);
END;

/

CREATE OR REPLACE PACKAGE BODY cur_pack AS
?CURSOR ord_cur(vcode VARCHAR2)
?RETURN order_master%ROWTYPE IS
?SELECT * FROM order_master
?WHERE VENCODE=vcode;
?PROCEDURE ord_pro(vcode VARCHAR2) IS
???or_rec order_master%ROWTYPE;
?BEGIN
??OPEN ord_cur(vcode);
??LOOP
????FETCH ord_cur INTO or_rec;
????EXIT WHEN ord_cur%NOTFOUND;
????DBMS_OUTPUT.PUT_LIne('返回的值為' || or_rec.orderno);
??END LOOP;
?END ord_pro;
END cur_pack;

EXEC cur_pack.ord_pro('V001');
===============================================================


COLUMN OBJECT_NAME FORMAT A18

SELECT object_name, object_type
FROM USER_OBJECTS
WHERE object_type IN ('PROCEDURE', 'FUNCTION',
?'PACKAGE', 'PACKAGE BODY');

DESC USER_SOURCE

COLUMN LINE FORMAT 9999
COLUMN TEXT FORMAT A50

SELECT line, text FROM USER_SOURCE
WHERE NAME='TEST';

DESC pack_me;

===============================================================

數(shù)據(jù)庫(kù)級(jí)觸發(fā)器
CREATE TABLE system.session_info (
??username???VARCHAR2(30),
??logontime??DATE,
??session_id VARCHAR2(30),
??ip_addr????VARCHAR2(30),
??hostname???VARCHAR2(30),
??auth_type??VARCHAR2(30)
);
顯示
set serverout on

create or replace trigger trg_session_info defore logoff on database
declare
session_id varchar2(30);
ip_addr????varchar2(30);
hostname???varchar2(30);
auth_type??varchar2(30);
logontime??date;

begin
?select sys_context('userenv','sessionid') -- 會(huì)話編號(hào)
??--??用戶登錄的客戶端IP地址
?select sys_context('userenv','ip_address') into ip_addr from dual;
??--??用戶登錄的客戶端主機(jī)名?
?select sys_context('usernv','host') into hostname from dual;
??--??登錄認(rèn)證方式,數(shù)據(jù)庫(kù)認(rèn)證或外部認(rèn)證
?select sys_context('usernv','authentication_type') into auth_type from dual;
?insert into system.session_info values (user,sysdate,session_id,ip_addr,hostname,auth_type);
end;
SELECT * FROM system.session_info;
===============================================================
對(duì)表employees創(chuàng)建觸發(fā)器
create or replace trigger tr_employee after update on employees
for each row
begin
?if(:new.salary>40000) then
?raise_application_error(-20002,'職員工資不能超過(guò) 40000');
?end if;
end;
===============================================================

create or replace procedure demo(salary in number) as
??cursor_name integer;
??rows_processed interger;
begin
??cursor_name:=dbms_sql.open_cursor;
??dbms_sql.parse(cursor_name,'delete from salary_records where empsal>:temp_sal',dbms_sql.native);
??dbms_sql.bind_variable(cursor_name,':temp_sal',salay);
??rows_processed:=dbms_sql.execute(cursor_name);
??dbms_sql.close_cursor(crusor_name);
exception
??when others then
????dbms_sql.close_cursor(cursor_name);
end;
===============================================================
1.寫(xiě)一個(gè)帶程序包的函數(shù),只要傳入文件名和地址就可以把這個(gè)文件的內(nèi)容存到BLOB類(lèi)型的字段中。
binbo>create directory tnpdir as 'c:bfile';
binbo>grant read on directory tnpdir to scott;
binbo>CREATE TABLE my_dia
(
??chapter_descr VARCHAR2(40),
??diagram_no INTEGER,
??diagram BLOB
);

DECLARE
??l_bf??BFILE;
??l_bl BLOB;
BEGIN
??INSERT INTO my_dia (diagram)
??VALUES (EMPTY_BLOB())
??RETURN diagram INTO l_bl;
??l_bf := BFILENAME('jsp', 'test.jsp');
??DBMS_LOB.OPEN(l_bf, DBMS_LOB.FILE_READONLY);
??DBMS_LOB.LOADFROMFILE(l_bl, l_bf, DBMS_LOB.GETLENGTH(l_bf));
??DBMS_LOB.CLOSE(l_bf);
??COMMIT;
END;
===============================================================
2.有一張表,字段的值是這樣的:name varchar2(20),sex char(2),score number(3)。其中的SCORE字段為分?jǐn)?shù)字段。請(qǐng)用一條SQL語(yǔ)句把九十分以上的顯示為A。九十到七十分的為B。七十分以下的為C。

binbo>create table test(name varchar2(20),sex char(2),score number(3));
binbo>select name,sex,case when score<=70 then 'C'
when score<=90 and score>70 when 'B'
when score>90 when 'A'
end case from test;
===============================================================
3.有一個(gè)表,其中有一個(gè)字段為自動(dòng)增長(zhǎng)的數(shù)據(jù)類(lèi)型。請(qǐng)?jiān)贠RACLE中實(shí)現(xiàn)。
binbo>create table test(id number,name varchar2(20));
create sequence seq_test increment by 1 start with 1 maxvalue 999;
create or replace trigger tr_test before insert or update of id on test
for each row
begin
if insert into then
select seq_test.nextval into :new.id from dual;
else
raise_application_error(-20002,'不允許更新ID序列!');
end if;
end;
===============================================================
4.如何刪除一個(gè)用戶下的所有表。

binbo>spool c:test.sql
binbo>select 'drop table '||tname||';'from tab;
binbo>spool off
binbo>@c:test;
===============================================================
5。如何把數(shù)據(jù)庫(kù)的日志模式從歸檔模式變?yōu)榉菤w檔模式

binbo>shutdown immediate
binbo>startup mount
binbo>alter database archivelog;
binbo>archive log list;
binbo>alter system set log_archive_dest=false scope=spfile;
binbo>alter database open;
===============================================================

6。建立一個(gè)用戶和表空間,在這個(gè)用戶和表空間下建立一張表。并授予SCOTT用戶查詢(xún)權(quán)利。
binbo>create user binbo identified by binbo;
binbo>create tablespace test datafile 'e:test.dbf' size 10m;
binbo>GRANT SELECT ON scott.test to scott;
===============================================================
7。寫(xiě)一個(gè)過(guò)程,計(jì)算某個(gè)月有多少天。
?create or replace procedure dept(test in varchar2)
?as
?aa varchar2(20);
??begin
?select extract(day from last_day(to_date (test,'yyyy-mm'))) into aa from dual;
??dbms_output.put_line(aa);
??end;
===============================================================
8。有一章表,字段為name,sex,score,score字段為分?jǐn)?shù)字段,查詢(xún)出這個(gè)班的第五名到第七名的人的姓名。
binbo>create table test(name varchar2(20),sex char(3),score number(3));
binbo>select * from (select name n,score sc,rownum r from (select name,score,rownum from test order by score desc)) where r between 5 and 7;
===============================================================
9。查詢(xún)出當(dāng)前這個(gè)星期的星期六是幾號(hào)。

binbo>select next_day(sysdate,'星期六') from dual;
===============================================================
10。做一個(gè)外鍵關(guān)聯(lián)的兩個(gè)表。然后用觸發(fā)器做級(jí)聯(lián)更新。
create table test(name varchar2(20),sex char(3),score number(3));
?create table test_t(name varchar2(20));

?create or replace trigger test_test before insert or update of name on test
?for each row
?begin
?if inserting then
??insert into test_t(name) values (:new.name);
??dbms_output.put_line('test_t表中name也已經(jīng)插入!');
?elseif updating then
??update test_t set name=:new.name where name=old.name;
??dbms_output.put_line('test_t表中name也已經(jīng)更新!');
?elseif deleting then
??delete from test_t where name=:old.name;
??dbms_output.put_line('test_t表中name也已經(jīng)刪除!');
?else
??raise_application_error(-20002,'不允許更新test表中的name字段');
?end if;
?end;

===============================================================
---從外界向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)
SQL> create table test_file(name varchar(30),shell varchar2(30));
表已創(chuàng)建。

G:盤(pán)data.ctl:(tab鍵隔開(kāi)時(shí)間用x'09')
load data into table test_file fields terminated by '=='(name,shell);

G:盤(pán)data.txt:
aaaaaaaa==11111111
bbbbbbbb==22222222
cccccccc==33333333
binbo==hehehehe


C:Documents and SettingsAdministrator>sqlldr rbb/rbb control=G:data.ctl data=G:data.txt

SQL*Loader: Release 9.2.0.1.0 - Production on 星期二 7月 10 20:37:47 2007

Copyright (c) 1982, 2002, Oracle Corporation.??All rights reserved.

達(dá)到提交點(diǎn),邏輯記錄計(jì)數(shù)3
達(dá)到提交點(diǎn),邏輯記錄計(jì)數(shù)4

SQL> select * from test_file;

NAME???????????????????????????SHELL
------------------------------ ------------------------------
aaaaaaaa???????????????????????11111111
bbbbbbbb???????????????????????22222222
cccccccc???????????????????????33333333
binbo??????????????????????????hehehehe

?


===============================================================
?declare
???result clob;
???xmlstr varchar2(32767);
???line varchar2(2000);
???line_no integer:=1;
???begin
???result:=dbms_xmlquery.getxml('select * from test');
???xmlstr:=dbms_lob.substr(result,32767);
???loop
??exit when xmlstr is null;
?line:=substr(xmlstr,1,instr(xmlstr,chr(10))-1);
??dbms_output.put_line(line_no||':'||line);
??xmlstr:=substr(xmlstr,instr(xmlstr,chr(10))+1);
??line_no:=line_no+1;
?end loop;
?end;
SQL> /

PL/SQL 過(guò)程已成功完成。

?

SQL> select instr('abcdefsfssdfabcabcsdfs','bc',2,2) "instring" from dual;

??instring
----------
????????14

===============================================================
---創(chuàng)建表中自動(dòng)增長(zhǎng)列(利用觸發(fā)器)
//創(chuàng)建表
create table test_bin(id number(3),name varchar2(20));
//創(chuàng)建序列
create sequence test_sq increment by 1 start with 1 maxvalue 1000;
//創(chuàng)建觸發(fā)器
行級(jí)觸發(fā)器
create or replace trigger test_test before insert or update of id on test_bin
for each row
begin
if inserting then
select test_sq.nextval into :new.id from dual;
else
raise_application_error(-20002,'不允許更新id');
end if;
end;
===============================================================
語(yǔ)句級(jí)觸發(fā)器

create or replace trigger trgdemo after insert or update or delete on order_master
begin
?if updating then
??dbms_output.put_line('已更新order_master中的數(shù)據(jù)');
?elseif deleting then
??dbms_output.put_line('已刪除order_master中的數(shù)據(jù)');
?elseif inserting then
??dbms_output.put_line('已在order_master中插入數(shù)據(jù)');
?end if;
end;
===============================================================
instead of 觸發(fā)器(主要用在視圖中[視圖中只能有for each row])

create or replace trigger upda_ord instead of update on ord_view
for each row
begin
??update order_master set vencode=:new.vencode where orderno=:new.orderno;
??dbms_output.put_line('已激活觸發(fā)器');
end;
===============================================================
觸發(fā)器由三部分組成:
觸發(fā)器語(yǔ)句(事件)
定義激活觸發(fā)器的 DML 事件和 DDL 事件
觸發(fā)器限制
執(zhí)行觸發(fā)器的條件,該條件必須為真才能激活觸發(fā)器
觸發(fā)器操作(主體)
包含一些 SQL 語(yǔ)句和代碼,它們?cè)诎l(fā)出了觸發(fā)器語(yǔ)句且觸發(fā)限制的值為真時(shí)運(yùn)行

===============================================================
觸發(fā)器類(lèi)型

DDL 觸發(fā)器
數(shù)據(jù)庫(kù)級(jí)觸發(fā)器
DML 觸發(fā)器
語(yǔ)句級(jí)觸發(fā)器
行級(jí)觸發(fā)器
INSTEAD OF 觸發(fā)器
===============================================================
模式觸發(fā)器
create table dropped_obj(obj_name varchar2(30),obj_type varchar2(20),drop_date date);

create or replace trigger log_drop_obj after drop on schema
begin
?insert into dropped_obj values(ora_dict_obj_name,ora_dict_obj_type,sysdate);
end;
===============================================================
啟用和禁用觸發(fā)器
alter trigger aiu_name disable;
alter trigger aiu_name enable;
===============================================================
刪除觸發(fā)器
drop trigger aiu_name;
===============================================================
user_triggers數(shù)據(jù)字典視圖包含有關(guān)觸發(fā)器的信息
select trigger_name from user_triggers where table_name='emp';

select trigger_type,triggering_event,when_clause from user_triggers
?where trigger_name='biu_emp_deptno';
===============================================================
dbms_output包顯示pl/sql塊和子程序的調(diào)試信息
set serveroutput on
BEGIN
??DBMS_OUTPUT.PUT_LINE('打印三角形');
??FOR i IN 1..9 LOOP
????FOR j IN 1..i LOOP
??????DBMS_OUTPUT.PUT('*');
????END LOOP for_j;
????DBMS_OUTPUT.NEW_LINE;
??END LOOP for_i;
END;
打印三角形
*
**
***
****
*****
******
*******
********
*********

PL/SQL 過(guò)程已成功完成。
===============================================================
1.DBMS_LOB 包提供用于處理大型對(duì)象的過(guò)程和函數(shù)
2.DBMS_XMLQUERY 包用于將查詢(xún)結(jié)果轉(zhuǎn)換為 XML 格式
DECLARE??result CLOB;
??xmlstr VARCHAR2(32767);
??line???VARCHAR2(2000);
??line_no INTEGER := 1;
BEGIN
??result := DBMS_XMLQuery.getXml('SELECT * FROM test');
??xmlstr := DBMS_LOB.SUBSTR(result,32767);
?LOOP
??EXIT WHEN xmlstr IS NULL;
??line := SUBSTR(xmlstr,1,INSTR(xmlstr,CHR(10))-1);
??DBMS_OUTPUT.PUT_LINE(line_no || ':' || line);
??xmlstr := SUBSTR(xmlstr,INSTR(xmlstr,CHR(10))+1);
??line_no := line_no + 1;
?END LOOP;
END;


===============================================================
一些常用的內(nèi)置程序包:
DBMS_OUTPUT 包輸出 PL/SQL 程序的調(diào)試信息
DBMS_LOB 包提供操作 LOB 數(shù)據(jù)的子程序
DBMS_XMLQUERY 將查詢(xún)結(jié)果轉(zhuǎn)換為 XML 格式
DBMS_RANDOM 提供隨機(jī)數(shù)生成器
UTL_FILE 用于讀寫(xiě)操作系統(tǒng)文本文件
===============================================================
觸發(fā)器

CREATE OR REPLACE TRIGGER biu_emp_deptno
BEFORE INSERT OR UPDATE OF deptno
ON emp
FOR EACH ROW
WHEN (New.deptno <> 40)
BEGIN
??:New.comm := 0;
END;

/
觸發(fā)器已創(chuàng)建
===============================================================
----沒(méi)有表還不能測(cè)試

CREATE VIEW ord_view AS
SELECT order_master.orderno, order_master.ostatus,
???????order_detail.qty_deld, order_detail.qty_ord???
FROM order_master, order_detail
WHERE order_master.orderno = order_detail.orderno;

CREATE OR REPLACE TRIGGER order_mast_insert
INSTEAD OF INSERT ON ord_view
REFERENCING NEW AS n
FOR EACH ROW
DECLARE
??CURSOR ecur IS SELECT *??FROM order_master
????WHERE order_master.orderno = :n.orderno;
??CURSOR dcur IS SELECT * FROM order_detail
????WHERE order_detail.orderno = :n.orderno;
??a ecur%rowtype;
??b dcur%rowtype;
BEGIN
??OPEN ecur;
??OPEN dcur;
??FETCH ecur into a;
??FETCH dcur into b;
??IF dcur%notfound THEN
????INSERT INTO order_master(orderno,ostatus)
????VALUES(:n.orderno, :n.ostatus);
??ELSE
????UPDATE order_master SET order_master.ostatus = :n.ostatus
????WHERE order_master.orderno = :n.orderno;
??END IF;
??IF ecur%notfound THEN
????INSERT INTO order_detail(qty_ord,qty_deld,orderno)
????VALUES(:n.qty_ord, :n.qty_deld, :n.orderno);
??ELSE
????UPDATE order_detail
????SET order_detail.qty_ord??= :n.qty_ord,
????????order_detail.qty_deld = :n.qty_deld
????WHERE order_detail.orderno = :n.orderno;
??END IF;
??CLOSE ecur;
??CLOSE dcur;
END;
/
===============================================================
CREATE TABLE dropped_obj
(
??obj_name VARCHAR2(30),
??obj_type VARCHAR2(20),
??drop_date DATE
);

CREATE OR REPLACE TRIGGER log_drop_obj
AFTER DROP ON SCHEMA
BEGIN
??INSERT INTO dropped_obj
??VALUES (ORA_DICT_OBJ_NAME, ORA_DICT_OBJ_TYPE, SYSDATE);
END;
/


ALTER TRIGGER biu_emp_deptno DISABLE;

ALTER TRIGGER biu_emp_deptno ENABLE;

DROP TRIGGER biu_emp_deptno;

DESC USER_TRIGGERS;

===============================================================
DECLARE
??l_num???NUMBER;
??counter NUMBER;
BEGIN
??counter:=1;
??WHILE counter <= 10
??LOOP
????l_num := ABS((DBMS_RANDOM.RANDOM MOD 100)) + 1;
????DBMS_OUTPUT.PUT_LINE(l_num);
????counter := counter + 1;
??END LOOP;
END;
/
40
4
35
52
68
5
94
38
49
51

PL/SQL 過(guò)程已成功完成。
===============================================================
===============================================================
---查詢(xún)出表中數(shù)據(jù)轉(zhuǎn)換為xml格式
-- 以 SYSTEM 用戶登錄執(zhí)行命令
CREATE DIRECTORY TEST_DIR AS 'C:DEVELOP';
GRANT READ, WRITE ON DIRECTORY TEST_DIR TO SCOTT;

-- 以 SCOTT 用戶登錄
DECLARE
??src CLOB;
??xmlfile UTL_FILE.FILE_TYPE;
??length INTEGER;
??buffer VARCHAR2(16384);
BEGIN
??src := DBMS_XMLQuery.getXml('select * from emp');
??length := DBMS_LOB.GETLENGTH(src);
??DBMS_LOB.READ(src, length, 1, buffer);
??xmlfile := UTL_FILE.FOPEN('TEST_DIR', 'employees.xml', 'w');
??UTL_FILE.PUT(xmlfile, buffer);
??UTL_FILE.FCLOSE(xmlfile);
END;
/
===============================================================
-------讀取xml格式的文件
UTL_FILE 包用于讀寫(xiě)操作系統(tǒng)文本文件
操作文件的一般過(guò)程是打開(kāi)、讀或?qū)憽㈥P(guān)閉
UTL_FILE 包指定文件路徑依賴(lài)于 DIRECTORY 對(duì)象
1.CREATE DIRECTORY TEST_DIR AS 'C:DEVELOP';
2.GRANT READ, WRITE ON DIRECTORY TEST_DIR TO SCOTT

SET SERVEROUT ON FORMAT WRAPPED
DECLARE
??input_file???UTL_FILE.FILE_TYPE;
??input_buffer VARCHAR2(4000);
BEGIN
??input_file := UTL_FILE.FOPEN('TEST_DIR', 'employees.xml', 'r');
??FOR I IN 1..11 LOOP
????UTL_FILE.GET_LINE(input_file, input_buffer);
????DBMS_OUTPUT.PUT_LINE(input_buffer);
??END LOOP;
??UTL_FILE.FCLOSE(input_file);
EXCEPTION
??WHEN NO_DATA_FOUND THEN
????DBMS_OUTPUT.PUT_LINE('------------------');
END;
===============================================================

oracle 數(shù)據(jù)庫(kù)重生$rman
oracle 數(shù)據(jù)庫(kù)備份兩種類(lèi)型:物理備份和邏輯備份
===============================================================
oracle 故障有4種類(lèi)型
?1.語(yǔ)句故障
在執(zhí)行 SQL 語(yǔ)句過(guò)程中發(fā)生的邏輯故障可導(dǎo)致語(yǔ)句故障。如果用戶編寫(xiě)的 SQL 語(yǔ)句無(wú)效,就會(huì)發(fā)生邏輯故障
2.用戶進(jìn)程故障
當(dāng)用戶程序出錯(cuò)而無(wú)法訪問(wèn)數(shù)據(jù)庫(kù)時(shí)發(fā)生用戶進(jìn)程故障。導(dǎo)致用戶進(jìn)程故障的原因是異常斷開(kāi)連接或異常終止進(jìn)程
3. 實(shí)例故障
當(dāng) Oracle 的數(shù)據(jù)庫(kù)實(shí)例由于硬件或軟件問(wèn)題而無(wú)法
繼續(xù)運(yùn)行時(shí),就會(huì)發(fā)生實(shí)例故障

4.介質(zhì)故障
在數(shù)據(jù)庫(kù)無(wú)法正確讀取或?qū)懭肽硞€(gè)數(shù)據(jù)庫(kù)文件時(shí),
會(huì)發(fā)生介質(zhì)故障?
===============================================================
oracle 導(dǎo)出導(dǎo)入模式

1.完全數(shù)據(jù)庫(kù)
導(dǎo)出和導(dǎo)入整個(gè)數(shù)據(jù)庫(kù)中的所有對(duì)象
2.表
導(dǎo)出和導(dǎo)入一個(gè)或多個(gè)指定的表或表分區(qū)
3.用戶
導(dǎo)出和導(dǎo)入一個(gè)用戶模式中的所有對(duì)象
4.表空間
導(dǎo)出和導(dǎo)入一個(gè)或多個(gè)指定的表空間中的所有對(duì)象

===============================================================
導(dǎo)出實(shí)用程序有以下常用命令參數(shù)

USERID?確定執(zhí)行導(dǎo)出實(shí)用程序的用戶名和口令
BUFFER?確定導(dǎo)出數(shù)據(jù)時(shí)所使用的緩沖區(qū)大小,其大小用字節(jié)表示
FILE?指定導(dǎo)出的二進(jìn)制文件名稱(chēng),默認(rèn)的擴(kuò)展名是.dmp
FULL?指定是否以全部數(shù)據(jù)庫(kù)方式導(dǎo)出,只有授權(quán)用戶才可使用此參數(shù)
OWNER?要導(dǎo)出的數(shù)據(jù)庫(kù)用戶列表
HELP?指定是否顯示幫助消息和參數(shù)說(shuō)明
ROWS?確定是否要導(dǎo)出表中的數(shù)據(jù)
TABLES?按表方式導(dǎo)出時(shí),指定需導(dǎo)出的表和分區(qū)的名稱(chēng)
PARFILE?指定傳遞給導(dǎo)出實(shí)用程序的參數(shù)文件名
TABLESPACES?按表空間方式導(dǎo)出時(shí),指定要導(dǎo)出的表空間名


按用戶方式導(dǎo)出數(shù)據(jù)
exp?scott/tiger@tsinghua?file=scott_back owner=scott

按表方式導(dǎo)出數(shù)據(jù)
exp?scott/tiger@tsinghua?tables=(emp, dept) file=scott_back_tab

按表空間方式導(dǎo)出數(shù)據(jù)
exp?system/zl@tsinghua?tablespaces=(users) file=tbs_users

使用參數(shù)文件導(dǎo)出數(shù)據(jù)
exp system/zl parfile='C:parameters.txt'

===============================================================
導(dǎo)入實(shí)用程序有如下常用命令參數(shù)

USERID?指定執(zhí)行導(dǎo)入的用戶名和密碼
BUFFER?指定用來(lái)讀取數(shù)據(jù)的緩沖區(qū)大小,以字節(jié)為單位
COMMIT?指定是否在每個(gè)數(shù)組(其大小由BUFFER參數(shù)設(shè)置)插入后進(jìn)行提交
FILE?指定要導(dǎo)入的二進(jìn)制文件名
FROMUSER?指定要從導(dǎo)出轉(zhuǎn)儲(chǔ)文件中導(dǎo)入的用戶模式
TOUSER?指定要將對(duì)象導(dǎo)入的用戶名。FROMUSER與TOUSER可以不同
FULL?指定是否要導(dǎo)入整個(gè)導(dǎo)出轉(zhuǎn)儲(chǔ)文件
TABLES?指定要導(dǎo)入的表的列表
ROWS?指定是否要導(dǎo)入表中的行
PARFILE?指定傳遞給導(dǎo)入實(shí)用程序的參數(shù)文件名,此文件可以包含這里列出的所有參數(shù)
IGNORE?導(dǎo)入時(shí)是否忽略遇到的錯(cuò)誤,默認(rèn)為N
TABLESPACES?按表空間方式導(dǎo)入,列出要導(dǎo)入的表空間名


將整個(gè)文件導(dǎo)入數(shù)據(jù)庫(kù)
imp?tsinghua/tsinghua@tsinghua?file=item_back.dmp ignore=y full=y

將scott用戶的表導(dǎo)入到martin用戶
imp?system/zl@tsinghua?file=scott_back fromuser=scott touser=martin tables=(emp,dept)

使用參數(shù)文件導(dǎo)入數(shù)據(jù)
imp system/oracle parfile='C:parameters.txt'
===============================================================
歸檔日志方式下的數(shù)據(jù)庫(kù):自動(dòng)歸檔和手動(dòng)歸檔

手動(dòng)歸檔允許用戶手動(dòng)歸檔非活動(dòng)日志文件文件的已填充組
自動(dòng)歸檔對(duì)非活動(dòng)日志文件文件進(jìn)行自動(dòng)歸檔
===============================================================
數(shù)據(jù)庫(kù)可在兩種方式下運(yùn)行:非歸檔日志方式和歸檔日志方式
非歸檔日志方式可以避免實(shí)例故障,但無(wú)法避免介質(zhì)故障。在此方式下,數(shù)據(jù)庫(kù)只能實(shí)施冷備份.
歸檔日志方式產(chǎn)生歸檔日志,用戶可以使用歸檔日志完全恢復(fù)數(shù)據(jù)庫(kù).
===============================================================

導(dǎo)出和導(dǎo)入實(shí)用程序的特點(diǎn)有:
可以按時(shí)間保存表結(jié)構(gòu)和數(shù)據(jù)
1.允許導(dǎo)出指定的表,并重新導(dǎo)入到新的數(shù)據(jù)庫(kù)中
2.可以把數(shù)據(jù)庫(kù)遷移到另外一臺(tái)異構(gòu)服務(wù)器上
3.在兩個(gè)不同版本的Oracle數(shù)據(jù)庫(kù)之間傳輸數(shù)據(jù)
4.在聯(lián)機(jī)狀態(tài)下進(jìn)行備份和恢復(fù)
5.可以重新組織表的存儲(chǔ)結(jié)構(gòu),減少鏈接及磁盤(pán)碎片
===============================================================

oracle表輸格式為xml全過(guò)程.txt

SQL> conn sys/sys as sysdba
已連接。
SQL> drop directory test_dir
??2??/

目錄已丟棄。

SQL> CREATE DIRECTORY TEST_DIR AS 'C:';

目錄已創(chuàng)建。

SQL> GRANT READ, WRITE ON DIRECTORY TEST_DIR TO rbb;

授權(quán)成功。

SQL> conn rbb/rbb
已連接。
SQL> ed
已寫(xiě)入文件 afiedt.buf

??1??DECLARE
??2????src CLOB;
??3????xmlfile UTL_FILE.FILE_TYPE;
??4????length INTEGER;
??5????buffer VARCHAR2(16384);
??6??BEGIN
??7????src := DBMS_XMLQuery.getXml('select * from liuxing');
??8????length := DBMS_LOB.GETLENGTH(src);
??9????DBMS_LOB.READ(src, length, 1, buffer);
?10????xmlfile := UTL_FILE.FOPEN('TEST_DIR', 'emp.xml', 'w');
?11????UTL_FILE.PUT(xmlfile, buffer);
?12????UTL_FILE.FCLOSE(xmlfile);
?13* END;
SQL> /

PL/SQL 過(guò)程已成功完成。
===============================================================

SQL> ed
已寫(xiě)入文件 afiedt.buf

??1??declare
??2??lname number;
??3??counter number;
??4??begin
??5??counter:=1;
??6??while counter<=10
??7??loop
??8??lname:=dbms_random.random;
??9??dbms_output.put_line(lname);
?10??counter:=counter+1;
?11??end loop;
?12* end;
SQL> /
277652640
-479979827
-1049652647
-1006595853
1252280346
196435204
466478280
-85782435
-1489036577
-927786638

PL/SQL 過(guò)程已成功完成。

已用時(shí)間:??00: 00: 00.00
===============================================================

修改表名

alter table old_table_name rename to new_table_name;
===============================================================
估算SQL執(zhí)行的I/O數(shù)

SQL>SET AUTOTRACE ON ;

SQL>SELECT * FROM TABLE;

OR

SQL>SELECT * FROM v$filestat ;
===============================================================

?如何查有多少個(gè)數(shù)據(jù)庫(kù)實(shí)例

SQL>SELECT * FROM V$INSTANCE;
===============================================================

查詢(xún)數(shù)據(jù)庫(kù)有多少表

SQL>select * from all_tables;

===============================================================

顯示測(cè)試SQL語(yǔ)句執(zhí)行所用的時(shí)間

SQL>set timing on ;
===============================================================

監(jiān)控事例的等待
select event,sum(decode(wait_Time,0,0,1)) "Prev",
sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"
from v$session_Wait
group by event order by 4;
===============================================================
回滾段的爭(zhēng)用情況
select name, waits, gets, waits/gets "Ratio"
from v$rollstat C, v$rollname D
where C.usn = D.usn;
===============================================================
監(jiān)控表空間的 I/O 比例
select B.tablespace_name name,B.file_name "file",A.phyrds pyr,
A.phyblkrd pbr,A.phywrts pyw, A.phyblkwrt pbw
from v$filestat A, dba_data_files B
where A.file# = B.file_id
order by B.tablespace_name;
===============================================================
監(jiān)控文件系統(tǒng)的 I/O 比例
select substr(C.file#,1,2) "#", substr(C.name,1,30) "Name",
C.status, C.bytes, D.phyrds, D.phywrts
from v$datafile C, v$filestat D
where C.file# = D.file#;
===============================================================
在某個(gè)用戶下找所有的索引
select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name
from user_ind_columns, user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = user_indexes.table_name
order by user_indexes.table_type, user_indexes.table_name,
user_indexes.index_name, column_position;
===============================================================
監(jiān)控 SGA 的命中率
select a.value + b.value "logical_reads", c.value "phys_reads",
round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"
from v$sysstat a, v$sysstat b, v$sysstat c
where a.statistic# = 38 and b.statistic# = 39
and c.statistic# = 40;
===============================================================
監(jiān)控 SGA 中字典緩沖區(qū)的命中率
select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio",
(1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio"
from v$rowcache
where gets+getmisses <>0
group by parameter, gets, getmisses;
===============================================================
監(jiān)控 SGA 中共享緩存區(qū)的命中率,應(yīng)該小于1%?
select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
sum(reloads)/sum(pins) *100 libcache
from v$librarycache;

select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reload percent"
from v$librarycache;
===============================================================
顯示所有數(shù)據(jù)庫(kù)對(duì)象的類(lèi)別和大小
select count(name) num_instances ,type ,sum(source_size) source_size ,
sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size) error_size,
sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size) size_required
from dba_object_size
group by type order by 2;
===============================================================
監(jiān)控 SGA 中重做日志緩存區(qū)的命中率,應(yīng)該小于1%
SELECT name, gets, misses, immediate_gets, immediate_misses,
Decode(gets,0,0,misses/gets*100) ratio1,
Decode(immediate_gets+immediate_misses,0,0,
immediate_misses/(immediate_gets+immediate_misses)*100) ratio2
FROM v$latch WHERE name IN ('redo allocation', 'redo copy');
===============================================================
監(jiān)控內(nèi)存和硬盤(pán)的排序比率,最好使它小于 .10,增加 sort_area_size
SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts (disk)');

===============================================================
監(jiān)控當(dāng)前數(shù)據(jù)庫(kù)誰(shuí)在運(yùn)行什么SQL語(yǔ)句
SELECT osuser, username, sql_text from v$session a, v$sqltext b
where a.sql_address =b.address order by address, piece;
===============================================================
監(jiān)控字典緩沖區(qū)
SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;
SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM V$LIBRARYCACHE;
===============================================================
后者除以前者,此比率小于1%,接近0%為好。

SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
FROM V$ROWCACHE
===============================================================

監(jiān)控 MTS
select busy/(busy+idle) "shared servers busy" from v$dispatcher;
此值大于0.5時(shí),參數(shù)需加大
select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where type='dispatcher';
select count(*) from v$dispatcher;
select servers_highwater from v$mts;
servers_highwater接近mts_max_servers時(shí),參數(shù)需加大
===============================================================
知道當(dāng)前用戶的ID號(hào)
SQL>SHOW USER;
OR
SQL>select user from dual;
===============================================================
查看碎片程度高的表
SELECT segment_name table_name , COUNT(*) extents
FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name
HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);
===============================================================
知道表在表空間中的存儲(chǔ)情況
select segment_name,sum(bytes),count(*) ext_quan from dba_extents where
tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;
===============================================================
知道索引在表空間中的存儲(chǔ)情況
select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner'
group by segment_name;
===============================================================
知道使用CPU多的用戶session 11是cpu used by this session

select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc;
===============================================================

?

?

?

?

?

?

?

?

?

?

?

?

?

?


**************************************************SQLServer語(yǔ)言基本語(yǔ)句***********************************************************


SQL分類(lèi):

  DDL—數(shù)據(jù)定義語(yǔ)言(CREATE,ALTER,DROP,DECLARE)
  DML—數(shù)據(jù)操縱語(yǔ)言(SELECT,DELETE,UPDATE,INSERT)
  DCL—數(shù)據(jù)控制語(yǔ)言(GRANT,REVOKE,COMMIT,ROLLBACK)

  首先,簡(jiǎn)要介紹基礎(chǔ)語(yǔ)句:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  1、說(shuō)明:創(chuàng)建數(shù)據(jù)庫(kù)

CREATE DATABASE database-name
create database database
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  2、說(shuō)明:刪除數(shù)據(jù)庫(kù)
drop database database
drop database dbname
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  3、說(shuō)明:備份sql server

  --- 創(chuàng)建 備份數(shù)據(jù)的 device
user pubs
exec database 'disk'
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'

  --- 開(kāi)始 備份
backup database pubs to testback
BACKUP DATABASE pubs TO testBack
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  4、說(shuō)明:創(chuàng)建新表
create table tabname(name nvchar(20) primary key,password nvchar(16))
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

  根據(jù)已有的表創(chuàng)建新表:

A:create table tab_new like tab_old (使用舊表創(chuàng)建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  5、說(shuō)明:

  刪除新表:drop table tabname
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  6、說(shuō)明:

  增加一個(gè)列:Alter table tabname add column col type
alter table tabanme add column col

  注:列增加后將不能刪除。DB2中列加上后數(shù)據(jù)類(lèi)型也不能改變,唯一能改變的是增加varchar類(lèi)型的長(zhǎng)度。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  7、說(shuō)明:

  添加主鍵:Alter table tabname add primary key(col)

  說(shuō)明:

  刪除主鍵:Alter table tabname drop primary key(col)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  8、說(shuō)明:

  創(chuàng)建索引:create [unique] index idxname on tabname(col….)

  刪除索引:drop index idxname

  注:索引是不可更改的,想更改必須刪除重新建。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  9、說(shuō)明:

  創(chuàng)建視圖:create view viewname as select statement

  刪除視圖:drop view viewname
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  10、說(shuō)明:幾個(gè)簡(jiǎn)單的基本的sql語(yǔ)句

  選擇:select * from table1 where 范圍

  插入:insert into table1(field1,field2) values(value1,value2)

  刪除:delete from table1 where 范圍

  更新:update table1 set field1=value1 where 范圍

  查找:select * from table1 where field1 like ’%value1%’ ---like的語(yǔ)法很精妙,查資料!

  排序:select * from table1 order by field1,field2 [desc]

  總數(shù):select count * as totalcount from table1

  求和:select sum(field1) as sumvalue from table1

  平均:select avg(field1) as avgvalue from table1

  最大:select max(field1) as maxvalue from table1

  最小:select min(field1) as minvalue from table1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  11、說(shuō)明:幾個(gè)高級(jí)查詢(xún)運(yùn)算詞
下列語(yǔ)句創(chuàng)建 STAFF 表 中 20 部門(mén)的非經(jīng)理人員視圖,其中薪水和傭金不通過(guò)基表顯示。

  CREATE VIEW STAFF_ONLY

  AS SELECT ID, NAME, DEPT, JOB, YEARS

  FROM STAFF

  WHERE JOB <> 'Mgr' AND DEPT=20

  在創(chuàng)建視圖之后,下列語(yǔ)句顯示視圖的內(nèi)容:

  SELECT * FROM STAFF_ONLY

  A: UNION union 運(yùn)算符

  UNION 運(yùn)算符通過(guò)組合其他兩個(gè)結(jié)果表(例如 TABLE1 和 TABLE2)并消去表中任何重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 UNION 一起使用時(shí)(即 UNION ALL),不消除重復(fù)行。兩種情況下,派生表的每一行不是來(lái)自 TABLE1 就是來(lái)自 TABLE2。

  B: EXCEPT except運(yùn)算符

  EXCEPT 運(yùn)算符通過(guò)包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 EXCEPT 一起使用時(shí) (EXCEPT ALL),不消除重復(fù)行。

  C: INTERSECT intersect運(yùn)算符

  INTERSECT 運(yùn)算符通過(guò)只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表。當(dāng) ALL 隨 INTERSECT 一起使用時(shí) (INTERSECT ALL),不消除重復(fù)行。

  注:使用運(yùn)算詞的幾個(gè)查詢(xún)結(jié)果行必須是一致的。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  12、說(shuō)明:使用外連接

  A、left outer join:

  左外連接(左連接):結(jié)果集幾包括連接表的匹配行,也包括左連接表的所有行。

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

  B:right outer join:

  右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。

  C:full outer join:

  全外連接:不僅包括符號(hào)連接表的匹配行,還包括兩個(gè)連接表中的所有記錄。

  其次,大家來(lái)看一些不錯(cuò)的sql語(yǔ)句

  1、說(shuō)明:復(fù)制表(只復(fù)制結(jié)構(gòu),源表名:a 新表名:b) (Access可用)

  法一:select * into b from a where 1<>1

  法二:select top 0 * into b from a

  2、說(shuō)明:拷貝表(拷貝數(shù)據(jù),源表名:a 目標(biāo)表名:b) (Access可用)

insert into b(a, b, c) select d,e,f from b;

  3、說(shuō)明:跨數(shù)據(jù)庫(kù)之間表的拷貝(具體數(shù)據(jù)使用絕對(duì)路徑) (Access可用)

insert into b(a, b, c) select d,e,f from b in ‘具體數(shù)據(jù)庫(kù)’ where 條件

  例子:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..

  4、說(shuō)明:子查詢(xún)(表名1:a 表名2:b)

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、說(shuō)明:顯示文章、提交人和最后回復(fù)時(shí)間

select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

  6、說(shuō)明:外連接查詢(xún)(表名1:a 表名2:b)

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、說(shuō)明:在線視圖查詢(xún)(表名1:a )

select * from (SELECT a,b,c FROM a) T where t.a > 1;

  8、說(shuō)明:between的用法,between限制查詢(xún)數(shù)據(jù)范圍時(shí)包括了邊界值,not between不包括

select * from table1 where time between time1 and time2

select a,b,c, from table1 where a not between 數(shù)值1 and 數(shù)值2

  9、說(shuō)明:in 的使用方法

select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

  10、說(shuō)明:兩張關(guān)聯(lián)表,刪除主表中已經(jīng)在副表中沒(méi)有的信息

delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

  11、說(shuō)明:四表聯(lián)查問(wèn)題:

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、說(shuō)明:日程安排提前五分鐘提醒

SQL: select * from 日程安排 where datediff('minute',f開(kāi)始時(shí)間,getdate())>5

  13、說(shuō)明:一條sql 語(yǔ)句搞定數(shù)據(jù)庫(kù)分頁(yè)

select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字段

  14、說(shuō)明:前10條記錄

select top 10 * form table1 where 范圍

  15、說(shuō)明:選擇在每一組b值相同的數(shù)據(jù)中對(duì)應(yīng)的a最大的記錄的所有信息(類(lèi)似這樣的用法可以用于論壇每月排行榜,每月熱銷(xiāo)產(chǎn)品分析,按科目成績(jī)排名,等等.)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

  16、說(shuō)明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重復(fù)行而派生出一個(gè)結(jié)果表

(select a from tableA ) except (select a from tableB) except (select a from tableC)

  17、說(shuō)明:隨機(jī)取出10條數(shù)據(jù)

select top 10 * from tablename order by newid()

  18、說(shuō)明:隨機(jī)選擇記錄

select newid()

  19、說(shuō)明:刪除重復(fù)記錄

Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

  20、說(shuō)明:列出數(shù)據(jù)庫(kù)里所有的表名

select name from sysobjects where type='U'

  21、說(shuō)明:列出表里的所有的

select name from syscolumns where id=object_id('TableName')

  22、說(shuō)明:列示type、vender、pcs字段,以type字段排列,case可以方便地實(shí)現(xiàn)多重選擇,類(lèi)似select 中的case。

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

  顯示結(jié)果:

type????vender pcs
電腦 A 1
電腦 A 1
光盤(pán) B 2
光盤(pán) A 2
手機(jī) B 3
手機(jī) C 3

  23、說(shuō)明:初始化表table1

TRUNCATE TABLE table1

  24、說(shuō)明:選擇從10到15的記錄

select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc

  隨機(jī)選擇數(shù)據(jù)庫(kù)記錄的方法(使用Randomize函數(shù),通過(guò)SQL語(yǔ)句實(shí)現(xiàn))

  對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)來(lái)說(shuō),隨機(jī)數(shù)特性能給出上面的效果,但它們可能太慢了些。你不能要求ASP“找個(gè)隨機(jī)數(shù)”然后打印出來(lái)。實(shí)際上常見(jiàn)的解決方案是建立如下所示的循環(huán):

Randomize
RNumber = Int(Rnd*499) +1
 
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 這里是執(zhí)行腳本 ...
end if
objRec.MoveNext
Wend

  這很容易理解。首先,你取出1到500范圍之內(nèi)的一個(gè)隨機(jī)數(shù)(假設(shè)500就是數(shù)據(jù)庫(kù)內(nèi)記錄的總數(shù))。然后,你遍歷每一記錄來(lái)測(cè)試ID 的值、檢查其是否匹配RNumber。滿足條件的話就執(zhí)行由THEN 關(guān)鍵字開(kāi)始的那一塊代碼。假如你的RNumber 等于495,那么要循環(huán)一遍數(shù)據(jù)庫(kù)花的時(shí)間可就長(zhǎng)了。雖然500這個(gè)數(shù)字看起來(lái)大了些,但相比更為穩(wěn)固的企業(yè)解決方案這還是個(gè)小型數(shù)據(jù)庫(kù)了,后者通常在一個(gè)數(shù)據(jù)庫(kù)內(nèi)就包含了成千上萬(wàn)條記錄。這時(shí)候不就死定了?

  采用SQL,你就可以很快地找出準(zhǔn)確的記錄并且打開(kāi)一個(gè)只包含該記錄的recordset,如下所示:

Randomize
RNumber = Int(Rnd*499) + 1
 
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
 
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")

  不必寫(xiě)出RNumber 和ID,你只需要檢查匹配情況即可。只要你對(duì)以上代碼的工作滿意,你自可按需操作“隨機(jī)”記錄。Recordset沒(méi)有包含其他內(nèi)容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時(shí)間。

  再談隨機(jī)數(shù)

  現(xiàn)在你下定決心要榨干Random 函數(shù)的最后一滴油,那么你可能會(huì)一次取出多條隨機(jī)記錄或者想采用一定隨機(jī)范圍內(nèi)的記錄。把上面的標(biāo)準(zhǔn)Random 示例擴(kuò)展一下就可以用SQL應(yīng)對(duì)上面兩種情況了。

  為了取出幾條隨機(jī)選擇的記錄并存放在同一recordset內(nèi),你可以存儲(chǔ)三個(gè)隨機(jī)數(shù),然后查詢(xún)數(shù)據(jù)庫(kù)獲得匹配這些數(shù)字的記錄:

  SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3

  假如你想選出10條記錄(也許是每次頁(yè)面裝載時(shí)的10條鏈接的列表),你可以用BETWEEN 或者數(shù)學(xué)等式選出第一條記錄和適當(dāng)數(shù)量的遞增記錄。這一操作可以通過(guò)好幾種方式來(lái)完成,但是 SELECT 語(yǔ)句只顯示一種可能(這里的ID 是自動(dòng)生成的號(hào)碼):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"

  注意:以上代碼的執(zhí)行目的不是檢查數(shù)據(jù)庫(kù)內(nèi)是否有9條并發(fā)記錄。

  隨機(jī)讀取若干條記錄,測(cè)試過(guò)

Access語(yǔ)法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
Sql server:select top n * from 表名 order by newid()
mysql select * From 表名 Order By rand() Limit n

  Access左連接語(yǔ)法(最近開(kāi)發(fā)要用左連接,Access幫助什么都沒(méi)有,網(wǎng)上沒(méi)有Access的SQL說(shuō)明,只有自己測(cè)試, 現(xiàn)在記下以備后查)

  語(yǔ)法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...

  使用SQL語(yǔ)句 用...代替過(guò)長(zhǎng)的字符串顯示

  語(yǔ)法:

  SQL數(shù)據(jù)庫(kù):select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
  Access數(shù)據(jù)庫(kù):SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;

  Conn.Execute說(shuō)明

  Execute方法

  該方法用于執(zhí)行SQL語(yǔ)句。根據(jù)SQL語(yǔ)句執(zhí)行后是否返回記錄集,該方法的使用格式分為以下兩種:

  1.執(zhí)行SQL查詢(xún)語(yǔ)句時(shí),將返回查詢(xún)得到的記錄集。用法為:

  Set 對(duì)象變量名=連接對(duì)象.Execute("SQL 查詢(xún)語(yǔ)言")

  Execute方法調(diào)用后,會(huì)自動(dòng)創(chuàng)建記錄集對(duì)象,并將查詢(xún)結(jié)果存儲(chǔ)在該記錄對(duì)象中,通過(guò)Set方法,將記錄集賦給指定的對(duì)象保存,以后對(duì)象變量就代表了該記錄集對(duì)象。

  2.執(zhí)行SQL的操作性語(yǔ)言時(shí),沒(méi)有記錄集的返回。此時(shí)用法為:

  連接對(duì)象.Execute "SQL 操作性語(yǔ)句" [, RecordAffected][, Option]

  ·RecordAffected 為可選項(xiàng),此出可放置一個(gè)變量,SQL語(yǔ)句執(zhí)行后,所生效的記錄數(shù)會(huì)自動(dòng)保存到該變量中。通過(guò)訪問(wèn)該變量,就可知道SQL語(yǔ)句隊(duì)多少條記錄進(jìn)行了操作。

  ·Option 可選項(xiàng),該參數(shù)的取值通常為adCMDText,它用于告訴ADO,應(yīng)該將Execute方法之后的第一個(gè)字符解釋為命令文本。通過(guò)指定該參數(shù),可使執(zhí)行更高效。

  ·BeginTrans、RollbackTrans、CommitTrans方法

  這三個(gè)方法是連接對(duì)象提供的用于事務(wù)處理的方法。BeginTrans用于開(kāi)始一個(gè)事物;RollbackTrans用于回滾事務(wù);CommitTrans用于提交所有的事務(wù)處理結(jié)果,即確認(rèn)事務(wù)的處理。

  事務(wù)處理可以將一組操作視為一個(gè)整體,只有全部語(yǔ)句都成功執(zhí)行后,事務(wù)處理才算成功;若其中有一個(gè)語(yǔ)句執(zhí)行失敗,則整個(gè)處理就算失敗,并恢復(fù)到處里前的狀態(tài)。

  BeginTrans和CommitTrans用于標(biāo)記事務(wù)的開(kāi)始和結(jié)束,在這兩個(gè)之間的語(yǔ)句,就是作為事務(wù)處理的語(yǔ)句。判斷事務(wù)處理是否成功,可通過(guò)連接對(duì)象的Error集合來(lái)實(shí)現(xiàn),若Error集合的成員個(gè)數(shù)不為0,則說(shuō)明有錯(cuò)誤發(fā)生,事務(wù)處理失敗。Error集合中的每一個(gè)Error對(duì)象,代表一個(gè)錯(cuò)誤信息。

?

?

?

?

?

?

?

?

?

?

?

?


***************************************各種數(shù)據(jù)庫(kù)連接方法**********************************************************************


==================TestSQLServer.java連接SQLServer====================================

import java.sql.*;
import java.util.*;
public class TestSQLServer{?
???public static void main (String args[]){?????????
??????try{?
??Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
??String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testdb";
??String user ="sa";
??String password = "sa";??
??Connection conn = DriverManager.getConnection(url,user,password);??????
?????????Statement stat = conn.createStatement();
?????????ResultSet result = stat.executeQuery("SELECT * FROM users");????????
?????????result.next();????????
?????????System.out.println(result.getString(1));
?????????System.out.println(result.getString(2));
?????????System.out.println(result.getString(3));????????
?????????result.close();?????
?????????stat.close();
?????????conn.close();
????????
??????}catch(ClassNotFoundException en){
????????System.out.println("數(shù)據(jù)庫(kù)驅(qū)動(dòng)找不到!");
????????en.printStackTrace();?????
??????}catch(SQLException ex) {???????
?????????while (ex != null) {?
????????????ex.printStackTrace();
????????????ex = ex.getNextException();
?????????}????????
??????}catch(Exception e){
??????????System.out.println("其他未知異常!");
??????????e.printStackTrace();
??????}
???}
}


=================TestMysql.java連接mysql數(shù)據(jù)庫(kù)=======================================

package org.binbo.dom;
import java.sql.*;
public class TestMysql{?
???public static void main (String args[]){?????????
??????try{?
??Class.forName("com.mysql.jdbc.Driver").newInstance();??
??String url = "jdbc:mysql://localhost:3306/binbo";
??String user ="root";
??String password = "binbo";??
??Connection conn = DriverManager.getConnection(url,user,password);
??
????????Statement stat = conn.createStatement();
?????????ResultSet result = stat.executeQuery("SELECT * FROM testxml");????????
?????????result.next();????????
?????????System.out.println(result.getString(1));
?????????System.out.println(result.getString(2));
?????????System.out.println(result.getString(3));????????
?????????result.close();?????
?????????stat.close();
?????????conn.close();????????
??????}catch(ClassNotFoundException en){
????????System.out.println("數(shù)據(jù)庫(kù)驅(qū)動(dòng)找不到!");
????????en.printStackTrace();?????
??????}catch(SQLException ex) {???????
?????????while (ex != null) {?
????????????ex.printStackTrace();
????????????ex = ex.getNextException();
?????????}????????
??????}catch(Exception e){
??????????System.out.println("其他未知異常!");
??????????e.printStackTrace();
??????}
???}

}
=================TestOracle.java連接oracle數(shù)據(jù)庫(kù)==================================

package org.binbo.dom;
import java.sql.*;
public class TestOracle{?
???public static void main (String args[]){?????????
??????try{?
??????Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();??
??????String url = "jdbc:oracle:thin:@localhost:1521:binbo";
??????String user ="scott";
??????String password = "tiger";???
??Connection conn = DriverManager.getConnection(url,user,password);
??
????????Statement stat = conn.createStatement();
?????????ResultSet result = stat.executeQuery("SELECT * FROM test");????????
?????????result.next();????????
?????????System.out.println(result.getString(1));
?????????System.out.println(result.getString(2));
?????????System.out.println(result.getString(3));????????
?????????result.close();?????
?????????stat.close();
?????????conn.close();????????
??????}catch(ClassNotFoundException en){
????????System.out.println("數(shù)據(jù)庫(kù)驅(qū)動(dòng)找不到!");
????????en.printStackTrace();?????
??????}catch(SQLException ex) {???????
?????????while (ex != null) {?
????????????ex.printStackTrace();
????????????ex = ex.getNextException();
?????????}????????
??????}catch(Exception e){
??????????System.out.println("其他未知異常!");
??????????e.printStackTrace();
??????}
???}
}
===============XML連接數(shù)據(jù)庫(kù)=====================================================
da.xml
<?xml version="1.0" encoding="UTF-8"?>
<PEOPLE><!--
??<PERSON PERSONID="E01">
????<className>com.microsoft.jdbc.sqlserver.SQLServerDriver</className>
????<url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=binbo</url>
????<user>sa</user>
????<password>sa</password>
??</PERSON>
??--><PERSON PERSONID="E02">
?????<className>com.mysql.jdbc.Driver</className>
????<url>jdbc:mysql://localhost:3306/binbo</url>
????<user>root</user>
????<password>binbo</password>
??</PERSON><!--
?<PERSON PERSONID="E03">
?????<className>oracle.jdbc.driver.OracleDriver</className>
????<url>jdbc:oracle:thin:@localhost:1521:binbo</url>
????<user>scott</user>
????<password>tiger</password>
??</PERSON>
--></PEOPLE>
--------------------------------------------
content.java
package org.binbo.dom;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class Content {
?public static Connection getConnection(){
??Connection conn =null;
??try {
???DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
???DocumentBuilder builder=factory.newDocumentBuilder();
???Document doc=builder.parse("da.xml");
???NodeList nl=doc.getElementsByTagName_r("PERSON");
???Element node=(Element) nl.item(0);
???
?String className =node.getElementsByTagName_r("className").item(0).getFirstChild().getNodeValue();
????????
?String url =node.getElementsByTagName_r("url").item(0).getFirstChild().getNodeValue();
????????
?String user =node.getElementsByTagName_r("user").item(0).getFirstChild().getNodeValue();
???????
?String pwd =node.getElementsByTagName_r("password").item(0).getFirstChild().getNodeValue();???????
????????Class.forName(className);
????????conn =DriverManager.getConnection(url,user,pwd);?????
??
??} catch (Exception e) {
???e.printStackTrace();
??}
??return conn;
?}
}
--------------------------------------------
Domtest.java
package org.binbo.dom;
import java.io.FileOutputStream;
import java.sql.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class Domtest {
?public static void main(String[] args){
??try{
???Connection conn =Content.getConnection();
???PreparedStatement ps=conn.prepareStatement("select * from testxml");
???ResultSet rs =ps.executeQuery();
???DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
???DocumentBuilder builder = factory.newDocumentBuilder();
???Document doc = builder.newDocument();
???Element Stu = doc.createElement_x("binboxml");
???Element uname = doc.createElement_x("username");
???Element nameid = doc.createElement_x("userid");
???Element pass = doc.createElement_x("password");
???while(rs.next()){????
????String id=rs.getString(1);
????String name=rs.getString(2);
????String pwd=rs.getString(3);
????System.out.print(rs.getString(1));
????System.out.print(rs.getString(2));
????System.out.print(rs.getString(3));
???????System.out.print("寫(xiě)入成功!");
????nameid.appendChild(doc.createTextNode(id));
????uname.appendChild(doc.createTextNode(name));
????pass.appendChild(doc.createTextNode(pwd));
???}
???
???Stu.appendChild(nameid);???
???Stu.appendChild(uname);
???Stu.appendChild(pass);
???doc.appendChild(Stu);
???TransformerFactory tf = TransformerFactory.newInstance();
???Transformer tr = tf.newTransformer();
???tr.transform(new DOMSource(doc), new StreamResult(
?????new FileOutputStream("Binbo.xml")));
???rs.close();
??} catch(Exception e){
???e.printStackTrace();
??}

?}

}

=====================數(shù)據(jù)庫(kù)連接池=====================================

加到tomcat中的server.xml

<Logger className="org.apache.catalina.logger.FileLogger"
?????????????????directory="logs"??prefix="localhost_log." suffix=".txt"
????????????timestamp="true"/>

這個(gè)后面
<Context path="/myjsp" docBase="myjsp"
????????debug="5" reloadable="true" crossContext="true">
???????<Resource name="jdbc/myjsp"
???????????????auth="Container"
???????????????type="javax.sql.DataSource"/>
??<ResourceParams name="jdbc/myjsp">
????<parameter>
??????<name>factory</name>
??????<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
????</parameter>
????<parameter>
??????<name>maxActive</name>
??????<value>100</value>
????</parameter>
????<parameter>
??????<name>maxIdle</name>
??????<value>30</value>
????</parameter>
????<parameter>
??????<name>maxWait</name>
??????<value>10000</value>
????</parameter>
?
????<parameter>
?????<name>username</name>
?????<value>sa</value>
????</parameter>
????<parameter>
?????<name>password</name>
?????<value>sa</value>
????</parameter>
????<parameter>
???????<name>driverClassName</name>
???????<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
????</parameter>
????<parameter>
??????<name>url</name>
??????<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jsp</value>
????</parameter>
??</ResourceParams>
</Context>
-----------------------------------------------------------------------
用DBPool.java獲得數(shù)據(jù)庫(kù)連接池
package com.binbo.dbo;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBPool {
?public static synchronized Connection getConnection()throws Exception{
??DataSource ds = null;
??try{
??Context ininCtx??= new javax.naming.InitialContext();
??
??Context envCtx = (Context)ininCtx.lookup("java:comp/env");
????ds = (DataSource)envCtx.lookup("jdbc/myjsp");
??}catch(NamingException e){
???e.printStackTrace();???
??}??
??Connection conn = ds.getConnection();
??return conn;??
?}
}
-----------------------------------------------------------
操作數(shù)據(jù)庫(kù)
package com.binbo.dbo;
import java.sql.*;
import com.binbo.javabean.BreakBean;
import com.binbo.javabean.OpenBean;
public class DataBaseClass {
?private Statement sta = null;
?private ResultSet rs = null;
?Connection conn = null;
?private int count;
?public DataBaseClass() throws Exception {
??// 取得數(shù)據(jù)庫(kù)的連接
??conn = DBPool.getConnection();
??sta = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
????ResultSet.CONCUR_UPDATABLE);
?}
?public void getExecute(String sql) {
??try {
???System.out.println(sql);
???sta.executeUpdate(sql);
??} catch (SQLException e) {
???e.printStackTrace();
??}
?}

?
?public ResultSet getQuery(String sql) {
??try {
???System.out.println(sql);
???rs = sta.executeQuery(sql);
??} catch (SQLException e) {
???e.printStackTrace();
??}
??return rs;
?}

?
??* 取得結(jié)果集的行數(shù)
?
?public int getCount(ResultSet rs2) {
??try {
???rs2.next();
???count = rs2.getRow();
??} catch (SQLException e) {
???e.printStackTrace();
??}
??return count;
?}
??//添加!?
?public void getRegister(OpenBean open) {
??String sql = "insert into f_info(nam,email,titl,content,tem,mid)values(?,?,?,?,?,?)";
??try {
???PreparedStatement ps = conn.prepareStatement(sql);
???ps.setString(1, open.getNam());
???ps.setString(2, open.getEmail());
???ps.setString(3, open.getTitl());
???ps.setString(4, open.getContent());
???ps.setString(5, open.getTem());
???ps.setString(6, open.getDepa());
???ps.execute();
??} catch (SQLException e) {
???e.printStackTrace();
??}
?}
????????// 刪除
?public void getRealys(OpenBean real) {
??try {
???String sql = "delete from departments where id=?";
???PreparedStatement ppt = conn.prepareStatement(sql);
???ppt.setString(1, real.getUnam());
???ppt.execute();

??} catch (SQLException e) {
???e.printStackTrace();
??}

?}

?// 查詢(xún)
?public void getRealy(OpenBean hg) {

??try {
???String sql = "select * from departments where id=?";
???PreparedStatement ppg = conn.prepareStatement(sql);
???ppg.setString(1, hg.getUnam());
???ppg.execute();
??} catch (SQLException e) {
???e.printStackTrace();
??}
?}
}
============================hibernate操作數(shù)據(jù)庫(kù)====================================
package com.binbo.hibernate.xml;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class PersonOperate {
?private Session session = null ;
?public PersonOperate()
?{
??Configuration config = new Configuration().configure() ;
??SessionFactory factory = config.buildSessionFactory() ;
??this.session = factory.openSession() ;
?}?
?// 增加數(shù)據(jù)
?public void insert(Person p)
?{
??Transaction tran = this.session.beginTransaction() ;
??this.session.save(p) ;
??tran.commit() ;
??this.session.close() ;
?}
------------------------------------------
增加數(shù)據(jù)調(diào)用
????????????????LinOperate po = new LinOperate();
????????????????Lin p = new Lin();
??p.setLname(lname);
??p.setLmonery(lmonery);
??p.setLmain(lmain);
??p.setLtime(ltime);
??LinOperate po = new LinOperate();
??po.insert(p);
??errors.add("success", new ActionMessage("xiangxi"));
??request.setAttribute("org.apache.struts.action.ERROR", errors);
??return mapping.findForward("jinru");
------------------------------------------
?
?// 修改
?public void update(Person p)
?{
??Transaction tran = this.session.beginTransaction() ;
??this.session.update(p) ;
??tran.commit() ;
??this.session.close() ;
?}?
?// 用戶登錄
?public boolean queryById(Person person)
?{
??boolean flag = false;
??String hql = "from Person as p where p.id=? and p.password=?" ;
??Query q = this.session.createQuery(hql) ;
??q.setString(0,person.getId()) ;
??q.setString(1,person.getPassword());
??Iterator iter = q.list().iterator();
??if (iter.hasNext()) {
???flag = true;
???person.setName(((Person) iter.next()).getName());
???
??}
??this.session.close() ;
??return flag;
?}
?//驗(yàn)證用戶存不存在
?public boolean queryC(Person person)
?{
??boolean flag = false;
??String hql = "from Person as p where p.name=?" ;
??Query q = this.session.createQuery(hql) ;
??q.setString(0,person.getName()) ;
??Iterator iter = q.list().iterator();
??if (iter.hasNext()) {
???flag = true;???
??}
??this.session.close() ;
??return flag;
?}
?//查看個(gè)人資料
?public Person queryZliao(String id)
?{
??Person p = null ;
??String hql = "from Person as p where p.id=?" ;
??Query q = this.session.createQuery(hql) ;
??q.setString(0,id) ;
??List l = q.list() ;
??Iterator iter = l.iterator() ;
??if(iter.hasNext())
??{
???p = (Person)iter.next() ;
??}
??return p ;
?}?
?// 刪除數(shù)據(jù)
?public void delete(Person p)
?{
??Transaction tran = this.session.beginTransaction() ;
??this.session.delete(p) ;
??tran.commit() ;
?}?
?// 修改
?public void delete(String name)
?{
??String hql = "delete Person where name=?" ;
??Query q = this.session.createQuery(hql) ;
??q.setString(0,name) ;
??q.executeUpdate() ;
??this.session.beginTransaction().commit() ;
?}
?
?// 查詢(xún)?nèi)繑?shù)據(jù)
?public List queryAll()
?{
??List l = null ;
??String hql = "from Person as p" ;
??Query q = this.session.createQuery(hql) ;
??l = q.list() ;
??return l ;
?}
-------------------------------
(
查詢(xún)?nèi)繑?shù)據(jù)調(diào)用
????????????????LinOperate po = new LinOperate();
??List l = po.queryAll();
??Iterator iter = l.iterator();
??ArrayList lus = new ArrayList();
??while (iter.hasNext()) {
???Lin p = (Lin) iter.next();
???Luser lu = new Luser();
???lu.setName(p.getLname());
???lu.setChange(p.getLmonery());
???lu.setMainn(p.getLmain());
???lu.setLtime(p.getLtime());
???lus.add(lu);
???System.out.print(p.getLname() + " ");
???request.setAttribute("lus", lus);


)
------------------------?
?// 模糊查詢(xún)
?public List queryByLike(String cond)
?{
??List l = null ;
??String hql = "from Person as p where p.name like ?" ;
??Query q = this.session.createQuery(hql) ;
??q.setString(0,"%"+cond+"%") ;
??l = q.list() ;
??return l ;
?}
}



總結(jié)

以上是生活随笔為你收集整理的dos命令行连接oracle数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

久久综合久久自在自线精品自 | 国产精品久久久久影院嫩草 | 性色欲网站人妻丰满中文久久不卡 | 中文字幕乱码中文乱码51精品 | 丝袜足控一区二区三区 | 狠狠色欧美亚洲狠狠色www | 人妻有码中文字幕在线 | 任你躁国产自任一区二区三区 | 色诱久久久久综合网ywww | 精品无码国产自产拍在线观看蜜 | 久久综合给久久狠狠97色 | 丁香花在线影院观看在线播放 | 国产 浪潮av性色四虎 | 国产美女极度色诱视频www | 国产成人无码a区在线观看视频app | 国产精品毛片一区二区 | 麻豆国产丝袜白领秘书在线观看 | 国产av一区二区三区最新精品 | 精品厕所偷拍各类美女tp嘘嘘 | 熟女少妇在线视频播放 | 乌克兰少妇xxxx做受 | 亚洲一区二区三区无码久久 | 亚洲国产精品成人久久蜜臀 | 国产av久久久久精东av | 欧美黑人性暴力猛交喷水 | 午夜理论片yy44880影院 | 久久人人爽人人人人片 | 国产后入清纯学生妹 | 水蜜桃av无码 | 高中生自慰www网站 | 亚洲成av人片天堂网无码】 | 亚洲精品久久久久avwww潮水 | 狠狠色噜噜狠狠狠7777奇米 | 国产成人无码av片在线观看不卡 | 偷窥日本少妇撒尿chinese | 欧美乱妇无乱码大黄a片 | 天堂在线观看www | 俄罗斯老熟妇色xxxx | 亚洲精品一区二区三区在线观看 | 国产美女极度色诱视频www | 久久久久99精品国产片 | 麻豆md0077饥渴少妇 | 天天拍夜夜添久久精品大 | 国产午夜无码精品免费看 | 久久久精品欧美一区二区免费 | 日日天干夜夜狠狠爱 | 青青草原综合久久大伊人精品 | 一区二区传媒有限公司 | 图片区 小说区 区 亚洲五月 | 国产在线精品一区二区三区直播 | 国产午夜亚洲精品不卡下载 | 欧美日本免费一区二区三区 | 中文久久乱码一区二区 | 欧美日本日韩 | 中文字幕日韩精品一区二区三区 | 骚片av蜜桃精品一区 | 日日摸夜夜摸狠狠摸婷婷 | 一本一道久久综合久久 | 久久人妻内射无码一区三区 | 在线亚洲高清揄拍自拍一品区 | 中文字幕人成乱码熟女app | 在线天堂新版最新版在线8 | 四虎影视成人永久免费观看视频 | 亚洲中文字幕av在天堂 | 无码人妻av免费一区二区三区 | 黑人粗大猛烈进出高潮视频 | 亚洲熟妇自偷自拍另类 | 亚洲色欲色欲欲www在线 | 麻花豆传媒剧国产免费mv在线 | 人妻互换免费中文字幕 | 无套内谢老熟女 | 99久久精品日本一区二区免费 | 99er热精品视频 | 亚洲中文字幕在线无码一区二区 | 激情内射亚州一区二区三区爱妻 | 在线播放亚洲第一字幕 | 丁香花在线影院观看在线播放 | 国内老熟妇对白xxxxhd | a国产一区二区免费入口 | 天堂а√在线地址中文在线 | 日本大香伊一区二区三区 | 国产精品香蕉在线观看 | 国产熟妇另类久久久久 | 嫩b人妻精品一区二区三区 | 久久zyz资源站无码中文动漫 | 乱人伦中文视频在线观看 | 97人妻精品一区二区三区 | 亚洲天堂2017无码中文 | 未满成年国产在线观看 | www成人国产高清内射 | 大屁股大乳丰满人妻 | 图片小说视频一区二区 | 久久久久人妻一区精品色欧美 | 国产真实乱对白精彩久久 | 国产情侣作爱视频免费观看 | 人妻少妇精品久久 | 国产精品久久久久7777 | 亚洲男人av香蕉爽爽爽爽 | 国产精品办公室沙发 | 永久免费观看美女裸体的网站 | 亚洲精品国产精品乱码不卡 | 色欲av亚洲一区无码少妇 | 内射老妇bbwx0c0ck | 三级4级全黄60分钟 | 少妇被粗大的猛进出69影院 | 麻豆国产人妻欲求不满 | 欧美黑人性暴力猛交喷水 | 亚洲日韩av一区二区三区四区 | 国产香蕉尹人综合在线观看 | 亚洲日韩av一区二区三区四区 | 国产精品无码mv在线观看 | 国产成人无码午夜视频在线观看 | 国产特级毛片aaaaaaa高清 | 成熟妇人a片免费看网站 | 精品水蜜桃久久久久久久 | 欧美老妇交乱视频在线观看 | 在线欧美精品一区二区三区 | 在线欧美精品一区二区三区 | 国产特级毛片aaaaaaa高清 | 蜜桃视频插满18在线观看 | 久久久久久av无码免费看大片 | 日日碰狠狠躁久久躁蜜桃 | 国产亚洲精品久久久久久大师 | 国产精品人人妻人人爽 | 亚洲一区二区三区含羞草 | 人妻插b视频一区二区三区 | 欧美喷潮久久久xxxxx | 人妻中文无码久热丝袜 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲自偷精品视频自拍 | 影音先锋中文字幕无码 | 国产精品久久精品三级 | 天海翼激烈高潮到腰振不止 | 97人妻精品一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 无码国产激情在线观看 | 无码国产色欲xxxxx视频 | 免费无码av一区二区 | 漂亮人妻洗澡被公强 日日躁 | 男人和女人高潮免费网站 | 波多野结衣乳巨码无在线观看 | 久久久久亚洲精品中文字幕 | 国产成人综合在线女婷五月99播放 | 纯爱无遮挡h肉动漫在线播放 | 亚洲欧美日韩成人高清在线一区 | 天堂а√在线地址中文在线 | 乱人伦人妻中文字幕无码久久网 | 婷婷丁香六月激情综合啪 | 巨爆乳无码视频在线观看 | 亚洲成a人片在线观看无码3d | 亚洲精品一区二区三区在线观看 | 中文字幕乱码人妻二区三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 久久精品国产大片免费观看 | 中文无码成人免费视频在线观看 | 国产舌乚八伦偷品w中 | 亚洲国产午夜精品理论片 | 国产av剧情md精品麻豆 | 日本熟妇人妻xxxxx人hd | 日本精品高清一区二区 | 少妇太爽了在线观看 | 精品久久久久久人妻无码中文字幕 | 国产精品丝袜黑色高跟鞋 | 色婷婷综合激情综在线播放 | 中文字幕无码免费久久9一区9 | 内射欧美老妇wbb | 少妇人妻偷人精品无码视频 | 中文字幕av伊人av无码av | 少妇无码一区二区二三区 | 精品无码一区二区三区的天堂 | 亚洲 日韩 欧美 成人 在线观看 | 东京热无码av男人的天堂 | 欧美熟妇另类久久久久久不卡 | 狠狠综合久久久久综合网 | 久久99精品久久久久久动态图 | 老司机亚洲精品影院 | 精品国产一区二区三区四区 | 领导边摸边吃奶边做爽在线观看 | 色综合久久中文娱乐网 | 亚洲精品成a人在线观看 | 国产美女极度色诱视频www | 亚洲综合伊人久久大杳蕉 | 一本久久a久久精品亚洲 | 久久精品女人的天堂av | 亚洲爆乳精品无码一区二区三区 | 国产无遮挡又黄又爽免费视频 | 俺去俺来也www色官网 | 国产香蕉尹人视频在线 | 又粗又大又硬又长又爽 | 日本xxxx色视频在线观看免费 | 女人被爽到呻吟gif动态图视看 | 人人妻人人澡人人爽欧美精品 | 成人无码视频免费播放 | 夜精品a片一区二区三区无码白浆 | 久久久久se色偷偷亚洲精品av | 国内少妇偷人精品视频免费 | 无码人妻黑人中文字幕 | 欧美真人作爱免费视频 | 女高中生第一次破苞av | 亚洲熟妇色xxxxx亚洲 | 免费中文字幕日韩欧美 | 日本大乳高潮视频在线观看 | 精品久久久无码人妻字幂 | 亚洲中文字幕无码一久久区 | 正在播放老肥熟妇露脸 | 丰满肥臀大屁股熟妇激情视频 | 强伦人妻一区二区三区视频18 | 成人试看120秒体验区 | 国产美女极度色诱视频www | 欧美怡红院免费全部视频 | 亚洲国产精品久久久久久 | 偷窥日本少妇撒尿chinese | 国产亚洲人成在线播放 | 帮老师解开蕾丝奶罩吸乳网站 | 欧美xxxx黑人又粗又长 | 国产精品内射视频免费 | 丝袜 中出 制服 人妻 美腿 | 亚洲自偷自偷在线制服 | 久久久久亚洲精品中文字幕 | 国产精品久久久av久久久 | 熟女俱乐部五十路六十路av | √8天堂资源地址中文在线 | 白嫩日本少妇做爰 | 鲁一鲁av2019在线 | 熟妇女人妻丰满少妇中文字幕 | 荡女精品导航 | 中文字幕乱妇无码av在线 | 成人性做爰aaa片免费看不忠 | 欧美亚洲日韩国产人成在线播放 | 精品人妻中文字幕有码在线 | 未满小14洗澡无码视频网站 | av在线亚洲欧洲日产一区二区 | 内射老妇bbwx0c0ck | 正在播放老肥熟妇露脸 | 老太婆性杂交欧美肥老太 | 在线观看免费人成视频 | 免费人成在线观看网站 | 国产熟妇另类久久久久 | 18无码粉嫩小泬无套在线观看 | 精品久久综合1区2区3区激情 | 毛片内射-百度 | 国产精品久久国产精品99 | 又大又硬又爽免费视频 | 一本久道久久综合婷婷五月 | 欧洲熟妇精品视频 | 俺去俺来也在线www色官网 | 欧美35页视频在线观看 | 亚洲一区二区三区 | 亚洲欧洲日本综合aⅴ在线 | 正在播放老肥熟妇露脸 | 永久黄网站色视频免费直播 | 日韩成人一区二区三区在线观看 | 俺去俺来也www色官网 | 国内精品久久久久久中文字幕 | 国产亚洲精品久久久久久久 | 色噜噜亚洲男人的天堂 | 国产99久久精品一区二区 | 影音先锋中文字幕无码 | 欧美亚洲日韩国产人成在线播放 | 国产精品国产自线拍免费软件 | 爆乳一区二区三区无码 | 女人被男人躁得好爽免费视频 | 人人澡人人妻人人爽人人蜜桃 | 麻豆成人精品国产免费 | 久久无码专区国产精品s | 又黄又爽又色的视频 | 午夜熟女插插xx免费视频 | 久9re热视频这里只有精品 | 99久久精品日本一区二区免费 | 国产一精品一av一免费 | 99久久精品无码一区二区毛片 | 久久精品中文字幕大胸 | 国产人成高清在线视频99最全资源 | 97久久精品无码一区二区 | 精品无码av一区二区三区 | 国产精品亚洲一区二区三区喷水 | 国产免费观看黄av片 | 亚洲精品成人福利网站 | 中文字幕+乱码+中文字幕一区 | 中文字幕av无码一区二区三区电影 | 亚洲一区二区三区含羞草 | 夜夜夜高潮夜夜爽夜夜爰爰 | 久久综合给久久狠狠97色 | 亚洲国产高清在线观看视频 | 亚洲va欧美va天堂v国产综合 | 九九在线中文字幕无码 | 亚洲日本在线电影 | 色婷婷综合中文久久一本 | 玩弄中年熟妇正在播放 | 四虎影视成人永久免费观看视频 | 狂野欧美激情性xxxx | 国产av人人夜夜澡人人爽麻豆 | 真人与拘做受免费视频 | 成人性做爰aaa片免费看 | 中文毛片无遮挡高清免费 | 日本成熟视频免费视频 | 国产精品怡红院永久免费 | 久久久久se色偷偷亚洲精品av | 精品aⅴ一区二区三区 | 99riav国产精品视频 | 国产无遮挡又黄又爽又色 | 97人妻精品一区二区三区 | 国产午夜福利100集发布 | 亚洲欧美精品aaaaaa片 | 中文字幕乱妇无码av在线 | 人妻天天爽夜夜爽一区二区 | 女高中生第一次破苞av | 午夜精品一区二区三区在线观看 | 亚洲国产av精品一区二区蜜芽 | 中文亚洲成a人片在线观看 | 国产日产欧产精品精品app | 久久久精品国产sm最大网站 | 日本欧美一区二区三区乱码 | 国产午夜亚洲精品不卡 | 成人影院yy111111在线观看 | 亚洲第一无码av无码专区 | 成年女人永久免费看片 | 无码人妻少妇伦在线电影 | 久久99精品国产麻豆 | 欧美性生交活xxxxxdddd | 国模大胆一区二区三区 | 性欧美疯狂xxxxbbbb | 色 综合 欧美 亚洲 国产 | 亚洲国产欧美国产综合一区 | 中文字幕日产无线码一区 | 好男人社区资源 | 奇米影视888欧美在线观看 | 亚洲一区二区三区偷拍女厕 | 内射爽无广熟女亚洲 | 久久精品人人做人人综合试看 | 久久久中文久久久无码 | 日韩精品a片一区二区三区妖精 | 中文久久乱码一区二区 | 欧美日本精品一区二区三区 | 天天拍夜夜添久久精品 | 麻豆国产丝袜白领秘书在线观看 | 国产成人精品久久亚洲高清不卡 | 成人无码视频在线观看网站 | 日本乱偷人妻中文字幕 | 久久精品国产一区二区三区肥胖 | 亚洲乱码日产精品bd | 欧美丰满老熟妇xxxxx性 | 欧美真人作爱免费视频 | 波多野结衣av在线观看 | www国产亚洲精品久久久日本 | 狂野欧美激情性xxxx | 在教室伦流澡到高潮hnp视频 | 亚洲爆乳无码专区 | 国产成人人人97超碰超爽8 | 国产精品资源一区二区 | 中文字幕乱码人妻二区三区 | 精品久久综合1区2区3区激情 | 自拍偷自拍亚洲精品10p | 亚洲日韩av一区二区三区中文 | 狠狠综合久久久久综合网 | 玩弄中年熟妇正在播放 | 亚洲精品中文字幕 | 中文字幕乱码中文乱码51精品 | 波多野结衣乳巨码无在线观看 | 亚洲国产午夜精品理论片 | 亚洲欧美日韩成人高清在线一区 | 四虎国产精品一区二区 | a国产一区二区免费入口 | 日日碰狠狠丁香久燥 | 国产精品久久久久影院嫩草 | 欧美 日韩 亚洲 在线 | 国产精品久久久久久亚洲毛片 | 中文字幕乱码中文乱码51精品 | 欧美乱妇无乱码大黄a片 | 在线播放无码字幕亚洲 | 国产办公室秘书无码精品99 | 精品少妇爆乳无码av无码专区 | 啦啦啦www在线观看免费视频 | 无码帝国www无码专区色综合 | 亚洲午夜福利在线观看 | 亚洲 日韩 欧美 成人 在线观看 | 欧美熟妇另类久久久久久多毛 | 老司机亚洲精品影院 | 亚洲另类伦春色综合小说 | 国产人成高清在线视频99最全资源 | 扒开双腿吃奶呻吟做受视频 | 成人精品一区二区三区中文字幕 | 性色欲情网站iwww九文堂 | 亚洲成a人片在线观看无码 | 久久午夜无码鲁丝片秋霞 | 欧美人与善在线com | 粉嫩少妇内射浓精videos | 18禁黄网站男男禁片免费观看 | 亚洲中文字幕无码一久久区 | 女人和拘做爰正片视频 | 在线播放亚洲第一字幕 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产成人综合色在线观看网站 | 少妇无套内谢久久久久 | 国产乱人伦av在线无码 | 亚洲熟妇色xxxxx欧美老妇y | 国产亚洲欧美日韩亚洲中文色 | 久久国产精品_国产精品 | 久久综合狠狠综合久久综合88 | 无码人妻av免费一区二区三区 | 性啪啪chinese东北女人 | 国产艳妇av在线观看果冻传媒 | 亚洲精品国产第一综合99久久 | 亚洲色无码一区二区三区 | 天天av天天av天天透 | 亚洲国产成人a精品不卡在线 | 日韩精品久久久肉伦网站 | 一本久久a久久精品亚洲 | 特黄特色大片免费播放器图片 | 六月丁香婷婷色狠狠久久 | 久久zyz资源站无码中文动漫 | 中文字幕日韩精品一区二区三区 | 亚洲色www成人永久网址 | 亚洲成av人综合在线观看 | 成人精品视频一区二区三区尤物 | 天天拍夜夜添久久精品大 | 国产手机在线αⅴ片无码观看 | 激情内射亚州一区二区三区爱妻 | 奇米影视7777久久精品人人爽 | 理论片87福利理论电影 | 99re在线播放 | 久9re热视频这里只有精品 | 漂亮人妻洗澡被公强 日日躁 | 乱人伦人妻中文字幕无码 | 国产一区二区三区影院 | 久久精品人妻少妇一区二区三区 | 在线亚洲高清揄拍自拍一品区 | 亚洲色无码一区二区三区 | 国产又爽又猛又粗的视频a片 | 一个人免费观看的www视频 | 少妇太爽了在线观看 | 色五月丁香五月综合五月 | 欧美日韩一区二区免费视频 | 中文字幕无码免费久久99 | 精品乱子伦一区二区三区 | 一本色道久久综合狠狠躁 | 久久久中文久久久无码 | 亚洲一区二区三区偷拍女厕 | 图片区 小说区 区 亚洲五月 | 国产精品无码成人午夜电影 | 亚洲 日韩 欧美 成人 在线观看 | 国产精品无码永久免费888 | 内射白嫩少妇超碰 | 国产精品无套呻吟在线 | 东京无码熟妇人妻av在线网址 | 成人免费视频一区二区 | 一区二区三区高清视频一 | 亚洲熟妇色xxxxx亚洲 | 成年美女黄网站色大免费视频 | 亚洲国产精品久久人人爱 | 综合人妻久久一区二区精品 | 国产精品国产三级国产专播 | 亚洲精品午夜无码电影网 | 久久午夜无码鲁丝片午夜精品 | 十八禁视频网站在线观看 | 精品aⅴ一区二区三区 | 亚洲自偷精品视频自拍 | 精品久久久久香蕉网 | 国产精品人人爽人人做我的可爱 | 蜜臀av在线播放 久久综合激激的五月天 | 亚洲成a人片在线观看无码3d | 少妇人妻偷人精品无码视频 | 久久综合给久久狠狠97色 | 草草网站影院白丝内射 | 久久97精品久久久久久久不卡 | 国产精品亚洲一区二区三区喷水 | 亚洲国产综合无码一区 | 中文无码成人免费视频在线观看 | 中文无码成人免费视频在线观看 | 国产综合在线观看 | 国产午夜手机精彩视频 | 欧美阿v高清资源不卡在线播放 | 俺去俺来也在线www色官网 | a片免费视频在线观看 | 亚洲色大成网站www国产 | 国产一区二区三区四区五区加勒比 | 久久国内精品自在自线 | 中文字幕无码日韩专区 | 色一情一乱一伦一区二区三欧美 | 久久精品一区二区三区四区 | 亚洲午夜久久久影院 | v一区无码内射国产 | aⅴ在线视频男人的天堂 | 日产精品99久久久久久 | 一本久道高清无码视频 | 国产成人亚洲综合无码 | 51国偷自产一区二区三区 | 色婷婷欧美在线播放内射 | 东京无码熟妇人妻av在线网址 | 国产午夜手机精彩视频 | 欧美熟妇另类久久久久久多毛 | 国产精品怡红院永久免费 | 亚洲大尺度无码无码专区 | 成人欧美一区二区三区黑人 | 国产真实乱对白精彩久久 | 亚洲乱码中文字幕在线 | 国产精品怡红院永久免费 | 国产精品香蕉在线观看 | 丰满诱人的人妻3 | 国产精品高潮呻吟av久久 | 国产性生交xxxxx无码 | 少妇性l交大片 | 水蜜桃色314在线观看 | 亚洲小说春色综合另类 | 欧美变态另类xxxx | 国产免费久久久久久无码 | 国产亚洲精品精品国产亚洲综合 | 无套内谢老熟女 | 日韩精品成人一区二区三区 | 激情内射亚州一区二区三区爱妻 | 动漫av网站免费观看 | 亚洲人成影院在线无码按摩店 | 国产亚洲精品久久久久久国模美 | 欧美激情内射喷水高潮 | 午夜熟女插插xx免费视频 | 久久久久久国产精品无码下载 | 97资源共享在线视频 | 又大又硬又爽免费视频 | 欧美高清在线精品一区 | 免费观看的无遮挡av | 最近中文2019字幕第二页 | 国产精品爱久久久久久久 | 精品人妻人人做人人爽夜夜爽 | 国产乱人偷精品人妻a片 | 亚洲国产一区二区三区在线观看 | 欧美性色19p | 国内精品人妻无码久久久影院蜜桃 | 黑人巨大精品欧美一区二区 | 色一情一乱一伦 | 午夜精品久久久内射近拍高清 | 成人av无码一区二区三区 | 久久国内精品自在自线 | 99久久人妻精品免费二区 | 国内少妇偷人精品视频 | 国产日产欧产精品精品app | 中国大陆精品视频xxxx | 97资源共享在线视频 | 中文字幕无码人妻少妇免费 | 国产超碰人人爽人人做人人添 | 少妇性荡欲午夜性开放视频剧场 | 三级4级全黄60分钟 | 丰满少妇弄高潮了www | 最近中文2019字幕第二页 | 国产精品久久久久影院嫩草 | 国产免费久久久久久无码 | 免费网站看v片在线18禁无码 | 大乳丰满人妻中文字幕日本 | 激情爆乳一区二区三区 | 亚洲精品国偷拍自产在线麻豆 | 99精品无人区乱码1区2区3区 | 台湾无码一区二区 | 中文字幕无码日韩专区 | 红桃av一区二区三区在线无码av | 无码成人精品区在线观看 | 99久久精品国产一区二区蜜芽 | 香港三级日本三级妇三级 | 国产av一区二区精品久久凹凸 | 亚洲精品成a人在线观看 | 日产精品高潮呻吟av久久 | 精品少妇爆乳无码av无码专区 | 国产热a欧美热a在线视频 | 亚洲色欲色欲欲www在线 | 国产精品亚洲专区无码不卡 | 精品人妻人人做人人爽夜夜爽 | 亚洲自偷自偷在线制服 | 日产精品99久久久久久 | 天堂在线观看www | 亚洲 日韩 欧美 成人 在线观看 | 97夜夜澡人人爽人人喊中国片 | 国产精品亚洲专区无码不卡 | 少妇久久久久久人妻无码 | 亚洲日本一区二区三区在线 | 波多野结衣高清一区二区三区 | 偷窥日本少妇撒尿chinese | 给我免费的视频在线观看 | 欧美日韩色另类综合 | 亚洲精品综合一区二区三区在线 | 天堂无码人妻精品一区二区三区 | 国产精品福利视频导航 | 波多野结衣高清一区二区三区 | 欧美日韩一区二区免费视频 | 欧美日本免费一区二区三区 | 久久精品国产一区二区三区 | 中文字幕乱码人妻二区三区 | 欧美成人高清在线播放 | 人妻天天爽夜夜爽一区二区 | 国产精品-区区久久久狼 | 日韩人妻少妇一区二区三区 | 国产精品高潮呻吟av久久 | 少妇高潮一区二区三区99 | 双乳奶水饱满少妇呻吟 | 四十如虎的丰满熟妇啪啪 | 成人精品天堂一区二区三区 | 久久久国产一区二区三区 | 六十路熟妇乱子伦 | 成人试看120秒体验区 | 久久99精品久久久久久 | 精品久久久中文字幕人妻 | 欧美freesex黑人又粗又大 | 97色伦图片97综合影院 | 欧美激情内射喷水高潮 | 亚洲欧美国产精品久久 | 三上悠亚人妻中文字幕在线 | 亚洲国产精品成人久久蜜臀 | 成熟女人特级毛片www免费 | 麻豆精产国品 | 国产三级久久久精品麻豆三级 | 伊人久久大香线焦av综合影院 | 十八禁视频网站在线观看 | 精品 日韩 国产 欧美 视频 | 国产乱人伦av在线无码 | 人人妻人人澡人人爽人人精品浪潮 | 精品国产一区二区三区四区 | 亚洲欧洲日本无在线码 | 国产成人综合色在线观看网站 | 夜先锋av资源网站 | 亚洲国产高清在线观看视频 | 国产va免费精品观看 | 日韩精品乱码av一区二区 | 中文字幕+乱码+中文字幕一区 | 亚洲欧美国产精品久久 | 国产av一区二区精品久久凹凸 | yw尤物av无码国产在线观看 | 一本加勒比波多野结衣 | 1000部啪啪未满十八勿入下载 | 国产精品国产自线拍免费软件 | 少妇愉情理伦片bd | 久久天天躁夜夜躁狠狠 | a片在线免费观看 | 午夜精品久久久久久久 | 国产激情一区二区三区 | 国产女主播喷水视频在线观看 | 亚洲爆乳大丰满无码专区 | 狠狠躁日日躁夜夜躁2020 | 狠狠躁日日躁夜夜躁2020 | 日日橹狠狠爱欧美视频 | 377p欧洲日本亚洲大胆 | 国产精品久久久久无码av色戒 | 国产乡下妇女做爰 | 成人欧美一区二区三区黑人 | 国产无遮挡又黄又爽免费视频 | 亚洲乱码中文字幕在线 | 国产成人无码区免费内射一片色欲 | 亚洲精品久久久久avwww潮水 | 玩弄人妻少妇500系列视频 | 亚洲国产成人av在线观看 | 久久精品中文字幕一区 | 男人和女人高潮免费网站 | 久久久精品成人免费观看 | 一本久久a久久精品亚洲 | 给我免费的视频在线观看 | 国产精华av午夜在线观看 | 学生妹亚洲一区二区 | 久久久久久久人妻无码中文字幕爆 | 国产精品无套呻吟在线 | 亚洲国产高清在线观看视频 | 成人欧美一区二区三区黑人免费 | 日韩成人一区二区三区在线观看 | 天天拍夜夜添久久精品 | 亚洲国产成人a精品不卡在线 | 亚洲人成影院在线无码按摩店 | 国产av剧情md精品麻豆 | 黑森林福利视频导航 | 无套内谢老熟女 | 人妻夜夜爽天天爽三区 | 亚拍精品一区二区三区探花 | 伦伦影院午夜理论片 | 老熟妇乱子伦牲交视频 | 国内精品一区二区三区不卡 | 性欧美大战久久久久久久 | 永久免费精品精品永久-夜色 | 国产精品亚洲一区二区三区喷水 | 久久久精品欧美一区二区免费 | 强伦人妻一区二区三区视频18 | 午夜熟女插插xx免费视频 | 无码人妻精品一区二区三区下载 | 欧美日本免费一区二区三区 | 老头边吃奶边弄进去呻吟 | 丰满护士巨好爽好大乳 | 玩弄少妇高潮ⅹxxxyw | √天堂资源地址中文在线 | 偷窥日本少妇撒尿chinese | 亚洲中文字幕久久无码 | 亚洲精品欧美二区三区中文字幕 | 人妻天天爽夜夜爽一区二区 | 亚洲爆乳大丰满无码专区 | 亚洲乱码日产精品bd | 久久99精品国产麻豆蜜芽 | 亚洲男女内射在线播放 | 精品日本一区二区三区在线观看 | 欧美人妻一区二区三区 | 成人无码视频免费播放 | 亚洲精品一区二区三区四区五区 | 国产精品资源一区二区 | 国精产品一区二区三区 | 荫蒂添的好舒服视频囗交 | 中文字幕无码免费久久99 | 国产成人综合在线女婷五月99播放 | 亚洲精品久久久久久久久久久 | 伊人色综合久久天天小片 | 亚洲精品国产品国语在线观看 | 久久久久免费精品国产 | 国产精品美女久久久久av爽李琼 | 亚洲大尺度无码无码专区 | 色一情一乱一伦 | 又大又硬又黄的免费视频 | 18精品久久久无码午夜福利 | 国产无av码在线观看 | 无套内谢的新婚少妇国语播放 | 欧美精品免费观看二区 | 亚洲爆乳大丰满无码专区 | 国产真人无遮挡作爱免费视频 | 国产口爆吞精在线视频 | 国产偷国产偷精品高清尤物 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产乱人伦av在线无码 | 久久综合九色综合欧美狠狠 | 中文字幕乱码人妻二区三区 | 欧美怡红院免费全部视频 | 精品一区二区不卡无码av | 日本欧美一区二区三区乱码 | 亚洲精品国产a久久久久久 | 国产综合色产在线精品 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲а∨天堂久久精品2021 | 无码毛片视频一区二区本码 | 99久久人妻精品免费二区 | 乱码av麻豆丝袜熟女系列 | 中文字幕av日韩精品一区二区 | 亚洲精品国产精品乱码不卡 | 亚洲日韩中文字幕在线播放 | 国产精品亚洲五月天高清 | 国产精品久久久久久久9999 | 又大又黄又粗又爽的免费视频 | 国产suv精品一区二区五 | 67194成是人免费无码 | 亚洲人成网站色7799 | 亚洲一区二区三区播放 | 久久综合给合久久狠狠狠97色 | 亚洲精品国产精品乱码视色 | 午夜精品久久久久久久久 | 亚洲精品一区三区三区在线观看 | 久久亚洲国产成人精品性色 | 少女韩国电视剧在线观看完整 | 乌克兰少妇xxxx做受 | 国产精品人人爽人人做我的可爱 | 97资源共享在线视频 | 人妻少妇精品无码专区动漫 | 欧美性色19p | 99麻豆久久久国产精品免费 | 国产99久久精品一区二区 | 麻豆果冻传媒2021精品传媒一区下载 | 久久久精品456亚洲影院 | 色诱久久久久综合网ywww | 日日天日日夜日日摸 | 色偷偷人人澡人人爽人人模 | 中文字幕av无码一区二区三区电影 | 久久久久成人片免费观看蜜芽 | 亚洲七七久久桃花影院 | 日本饥渴人妻欲求不满 | www国产精品内射老师 | 无遮挡啪啪摇乳动态图 | 无套内谢老熟女 | 丝袜 中出 制服 人妻 美腿 | 日日摸天天摸爽爽狠狠97 | 国产无套粉嫩白浆在线 | 又粗又大又硬又长又爽 | 精品偷拍一区二区三区在线看 | 久久精品人妻少妇一区二区三区 | 波多野结衣aⅴ在线 | 国产艳妇av在线观看果冻传媒 | 十八禁视频网站在线观看 | 国产精品久免费的黄网站 | 精品国产福利一区二区 | 欧美 亚洲 国产 另类 | 亚洲日本va中文字幕 | 亚洲欧洲无卡二区视頻 | 亚洲 欧美 激情 小说 另类 | 国产精品无码成人午夜电影 | 人人妻人人澡人人爽精品欧美 | 精品欧美一区二区三区久久久 | 国产日产欧产精品精品app | 亚洲成色在线综合网站 | 天堂亚洲2017在线观看 | 欧美人与善在线com | 国产欧美熟妇另类久久久 | 狠狠综合久久久久综合网 | 人妻人人添人妻人人爱 | 色五月丁香五月综合五月 | 曰韩少妇内射免费播放 | 无码福利日韩神码福利片 | 久久久精品成人免费观看 | 澳门永久av免费网站 | 水蜜桃亚洲一二三四在线 | 久久亚洲精品中文字幕无男同 | 波多野结衣aⅴ在线 | 亚洲欧美日韩国产精品一区二区 | 精品亚洲成av人在线观看 | 又粗又大又硬又长又爽 | 水蜜桃色314在线观看 | 中文字幕人成乱码熟女app | 澳门永久av免费网站 | 久久精品国产亚洲精品 | 国产凸凹视频一区二区 | a片免费视频在线观看 | 亚洲成av人在线观看网址 | 国产明星裸体无码xxxx视频 | 欧美日本免费一区二区三区 | 日本乱人伦片中文三区 | 99久久精品国产一区二区蜜芽 | 人妻少妇精品无码专区二区 | 正在播放东北夫妻内射 | 麻豆国产97在线 | 欧洲 | av人摸人人人澡人人超碰下载 | 真人与拘做受免费视频 | 精品人妻中文字幕有码在线 | 99久久99久久免费精品蜜桃 | 未满小14洗澡无码视频网站 | 亚洲男女内射在线播放 | 国产成人一区二区三区别 | 欧美老妇交乱视频在线观看 | 动漫av一区二区在线观看 | 国产一区二区三区四区五区加勒比 | 成人影院yy111111在线观看 | 亚洲色欲色欲欲www在线 | 日本一本二本三区免费 | 国产黄在线观看免费观看不卡 | 亚洲gv猛男gv无码男同 | 香蕉久久久久久av成人 | 亚洲日韩av一区二区三区四区 | 国产精品多人p群无码 | 国产av一区二区精品久久凹凸 | 国产精品嫩草久久久久 | 久久成人a毛片免费观看网站 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲小说图区综合在线 | 国产精品毛多多水多 | 人人妻人人澡人人爽人人精品浪潮 | 欧美人与动性行为视频 | 久久精品人人做人人综合试看 | 国产精品久久久久7777 | 人妻尝试又大又粗久久 | 亚洲精品一区二区三区四区五区 | 国产无套粉嫩白浆在线 | 香蕉久久久久久av成人 | 少妇厨房愉情理9仑片视频 | 俺去俺来也www色官网 | 麻豆蜜桃av蜜臀av色欲av | 久久久国产一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | 色老头在线一区二区三区 | 女人被男人躁得好爽免费视频 | 国产乱人无码伦av在线a | 国产精品理论片在线观看 | 久久综合久久自在自线精品自 | 人人妻人人澡人人爽欧美一区九九 | 一二三四社区在线中文视频 | 5858s亚洲色大成网站www | 麻豆国产人妻欲求不满 | 在教室伦流澡到高潮hnp视频 | 亚洲国产欧美在线成人 | 88国产精品欧美一区二区三区 | 帮老师解开蕾丝奶罩吸乳网站 | 国产另类ts人妖一区二区 | av人摸人人人澡人人超碰下载 | 熟女俱乐部五十路六十路av | 亚洲精品成人av在线 | 国产超级va在线观看视频 | 午夜丰满少妇性开放视频 | 欧美熟妇另类久久久久久多毛 | 国产精品久久精品三级 | 亚洲一区二区三区播放 | 欧美高清在线精品一区 | 精品无人国产偷自产在线 | 国产在线aaa片一区二区99 | 精品人妻av区 | 亚洲精品一区三区三区在线观看 | 亚洲人成网站在线播放942 | 久久久亚洲欧洲日产国码αv | 国产精品亚洲综合色区韩国 | 欧美精品无码一区二区三区 | 欧洲精品码一区二区三区免费看 | 18无码粉嫩小泬无套在线观看 | 嫩b人妻精品一区二区三区 | 成人免费无码大片a毛片 | 亚洲一区二区三区无码久久 | 国产另类ts人妖一区二区 | 亚洲精品国产精品乱码不卡 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲中文字幕成人无码 | 人妻天天爽夜夜爽一区二区 | 国产精品美女久久久网av | 日本乱偷人妻中文字幕 | 乱中年女人伦av三区 | 国产亚洲精品久久久ai换 | 性色欲情网站iwww九文堂 | 国产人妻大战黑人第1集 | 国产又爽又黄又刺激的视频 | 99久久精品无码一区二区毛片 | 2020久久香蕉国产线看观看 | 又黄又爽又色的视频 | 久久午夜无码鲁丝片 | 中文字幕人妻无码一夲道 | 双乳奶水饱满少妇呻吟 | 麻花豆传媒剧国产免费mv在线 | 欧美真人作爱免费视频 | 成人精品视频一区二区三区尤物 | 国产精品亚洲lv粉色 | √天堂中文官网8在线 | 无码人妻av免费一区二区三区 | 国产在线aaa片一区二区99 | 无码国产色欲xxxxx视频 | 99久久精品日本一区二区免费 | 国产美女极度色诱视频www | 女人被男人躁得好爽免费视频 | 国产av久久久久精东av | 国产精品高潮呻吟av久久 | 波多野结衣av一区二区全免费观看 | 国产亚av手机在线观看 | 狠狠色丁香久久婷婷综合五月 | 亚洲精品一区二区三区在线 | 日韩无套无码精品 | 少妇无码av无码专区在线观看 | 久久久精品人妻久久影视 | 99精品国产综合久久久久五月天 | 亚洲乱码日产精品bd | 伊在人天堂亚洲香蕉精品区 | 377p欧洲日本亚洲大胆 | 色欲综合久久中文字幕网 | 日本精品人妻无码77777 天堂一区人妻无码 | 天天摸天天碰天天添 | 台湾无码一区二区 | 在线亚洲高清揄拍自拍一品区 | 在线成人www免费观看视频 | 99er热精品视频 | 亚洲精品成人av在线 | 亚洲精品综合一区二区三区在线 | 少妇被黑人到高潮喷出白浆 | 麻豆国产97在线 | 欧洲 | 国产97人人超碰caoprom | 亚洲熟妇自偷自拍另类 | 国产香蕉尹人视频在线 | 亚洲精品一区二区三区在线观看 | 国产精品18久久久久久麻辣 | 欧美丰满少妇xxxx性 | 国产精品久久久 | 亚洲综合伊人久久大杳蕉 | 强伦人妻一区二区三区视频18 | 久久久久久久久888 | 狂野欧美性猛xxxx乱大交 | 色婷婷综合激情综在线播放 | 亚洲中文字幕在线观看 | 激情综合激情五月俺也去 | 亚洲综合久久一区二区 | 狠狠色色综合网站 | 东京热一精品无码av | 精品国产成人一区二区三区 | 伊在人天堂亚洲香蕉精品区 | 国产办公室秘书无码精品99 | 97夜夜澡人人双人人人喊 | 国产香蕉尹人综合在线观看 | 国产成人综合在线女婷五月99播放 | 性生交大片免费看女人按摩摩 | 人人妻人人澡人人爽欧美一区九九 | 亚洲乱码国产乱码精品精 | 国产免费久久久久久无码 | 一本久久伊人热热精品中文字幕 | 亚洲va中文字幕无码久久不卡 | 国产97在线 | 亚洲 | 色情久久久av熟女人妻网站 | 国产精品香蕉在线观看 | 精品欧洲av无码一区二区三区 | 国产精品香蕉在线观看 | 黑人巨大精品欧美黑寡妇 | 久久久久亚洲精品男人的天堂 | 天堂а√在线地址中文在线 | 久精品国产欧美亚洲色aⅴ大片 | 国产精品办公室沙发 | 伊在人天堂亚洲香蕉精品区 | a在线观看免费网站大全 | 日韩视频 中文字幕 视频一区 | 久久午夜夜伦鲁鲁片无码免费 | 中文字幕无码av波多野吉衣 | 亚洲色欲久久久综合网东京热 | 日韩人妻少妇一区二区三区 | 亚洲成a人一区二区三区 | 亚洲成在人网站无码天堂 | 中国女人内谢69xxxxxa片 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲国产欧美在线成人 | 性欧美牲交xxxxx视频 | 老司机亚洲精品影院无码 | 国语精品一区二区三区 | 久精品国产欧美亚洲色aⅴ大片 | 领导边摸边吃奶边做爽在线观看 | 人妻插b视频一区二区三区 | 天天拍夜夜添久久精品 | 亚洲精品国偷拍自产在线麻豆 | 免费乱码人妻系列无码专区 | 欧美真人作爱免费视频 | 国产精品久久久 | 日日摸夜夜摸狠狠摸婷婷 | 国产香蕉尹人综合在线观看 | 性生交片免费无码看人 | 高潮喷水的毛片 | 97精品人妻一区二区三区香蕉 | 久久久久久久人妻无码中文字幕爆 | 99久久精品午夜一区二区 | 2020最新国产自产精品 | 国产农村乱对白刺激视频 | 国产成人无码一二三区视频 | 国产乱人伦av在线无码 | 国产无套内射久久久国产 | 免费国产黄网站在线观看 | 亚洲啪av永久无码精品放毛片 | 99国产精品白浆在线观看免费 | 国产成人无码a区在线观看视频app | 伊人久久婷婷五月综合97色 | 亚洲色大成网站www | 午夜精品一区二区三区在线观看 | 亚洲中文字幕成人无码 | 欧洲极品少妇 | а√天堂www在线天堂小说 | 无码精品人妻一区二区三区av | 精品无码国产自产拍在线观看蜜 | 女人高潮内射99精品 | 丰满少妇弄高潮了www | 亚洲成在人网站无码天堂 | 久久国内精品自在自线 | 色婷婷av一区二区三区之红樱桃 | 人人爽人人澡人人人妻 | 人妻少妇被猛烈进入中文字幕 | 日产国产精品亚洲系列 | 亚洲中文字幕在线观看 | 欧美精品国产综合久久 | 老熟妇乱子伦牲交视频 | 亚洲熟妇色xxxxx亚洲 | 婷婷六月久久综合丁香 | 中文字幕亚洲情99在线 | 丁香花在线影院观看在线播放 | 亚洲va欧美va天堂v国产综合 | 国产女主播喷水视频在线观看 | 亚洲aⅴ无码成人网站国产app | 国产av一区二区三区最新精品 | 在线视频网站www色 | 无码人妻久久一区二区三区不卡 | 婷婷色婷婷开心五月四房播播 | 性色欲情网站iwww九文堂 | 高潮喷水的毛片 | 国产精品美女久久久久av爽李琼 | 亚洲国产精品一区二区美利坚 | 精品国产一区二区三区四区在线看 | 好爽又高潮了毛片免费下载 | 偷窥日本少妇撒尿chinese | 97无码免费人妻超级碰碰夜夜 | 日韩精品无码一本二本三本色 | 亚洲一区二区三区在线观看网站 | 久久人人97超碰a片精品 | 国产又粗又硬又大爽黄老大爷视 | 性欧美疯狂xxxxbbbb | 成人亚洲精品久久久久软件 | 麻豆精品国产精华精华液好用吗 | 少妇人妻大乳在线视频 | 又紧又大又爽精品一区二区 | 国产高清不卡无码视频 | 久久精品无码一区二区三区 | 无码人中文字幕 | 国产99久久精品一区二区 | 久久国产自偷自偷免费一区调 | 日韩成人一区二区三区在线观看 | 国产亚洲欧美在线专区 | 18禁黄网站男男禁片免费观看 | 精品久久久久久人妻无码中文字幕 | 精品国产成人一区二区三区 | 欧美大屁股xxxxhd黑色 | 日本肉体xxxx裸交 | 亚洲一区二区三区无码久久 | 在教室伦流澡到高潮hnp视频 | 2019nv天堂香蕉在线观看 | 国产熟妇高潮叫床视频播放 | 国产综合在线观看 | 黑人巨大精品欧美黑寡妇 | 又湿又紧又大又爽a视频国产 | 牲交欧美兽交欧美 | 性欧美大战久久久久久久 | 少女韩国电视剧在线观看完整 | 伊人色综合久久天天小片 | a在线亚洲男人的天堂 | 亚洲精品一区二区三区大桥未久 | 爆乳一区二区三区无码 | 中文字幕精品av一区二区五区 | 鲁一鲁av2019在线 | 国产suv精品一区二区五 | 久久久久成人精品免费播放动漫 | 成人影院yy111111在线观看 | 中文字幕色婷婷在线视频 | 鲁一鲁av2019在线 | 国产在线无码精品电影网 | 国产国语老龄妇女a片 | 久久亚洲精品中文字幕无男同 | 国产精品内射视频免费 | 偷窥村妇洗澡毛毛多 | 装睡被陌生人摸出水好爽 | 久久精品中文字幕一区 | 日日碰狠狠躁久久躁蜜桃 | 欧美日韩视频无码一区二区三 | 精品国产乱码久久久久乱码 | 成人三级无码视频在线观看 | 人妻少妇被猛烈进入中文字幕 | 曰韩少妇内射免费播放 | 国产午夜亚洲精品不卡下载 | 夜夜夜高潮夜夜爽夜夜爰爰 | 狠狠综合久久久久综合网 | 美女黄网站人色视频免费国产 | 成人一区二区免费视频 | 亚洲午夜无码久久 | 国产又爽又黄又刺激的视频 | 成在人线av无码免费 | 在线精品亚洲一区二区 | 亚洲欧美精品伊人久久 | 精品无码国产自产拍在线观看蜜 | 午夜福利一区二区三区在线观看 | 亚洲中文字幕成人无码 | 国产黄在线观看免费观看不卡 | 性色欲网站人妻丰满中文久久不卡 | 狠狠色丁香久久婷婷综合五月 | 大肉大捧一进一出视频出来呀 | 国产97在线 | 亚洲 | 呦交小u女精品视频 | 人妻无码αv中文字幕久久琪琪布 | 亚洲中文字幕成人无码 | 久久亚洲a片com人成 | 国产特级毛片aaaaaaa高清 | 55夜色66夜色国产精品视频 | 亚洲国产精品毛片av不卡在线 | 亚洲熟妇色xxxxx欧美老妇 | 国产一区二区三区四区五区加勒比 | 免费无码的av片在线观看 | 少妇性l交大片欧洲热妇乱xxx | 在线视频网站www色 | 久久精品国产99久久6动漫 | 一区二区三区高清视频一 | 国产xxx69麻豆国语对白 | 国产精品久久久av久久久 | 97无码免费人妻超级碰碰夜夜 | 人妻少妇精品无码专区二区 | 狂野欧美性猛xxxx乱大交 | 天下第一社区视频www日本 | 乱人伦中文视频在线观看 | 色综合天天综合狠狠爱 | 国产无遮挡又黄又爽又色 | 国产麻豆精品一区二区三区v视界 | 99久久精品国产一区二区蜜芽 | 国产高清av在线播放 | 国产熟女一区二区三区四区五区 | 国内少妇偷人精品视频 | 精品 日韩 国产 欧美 视频 | 美女毛片一区二区三区四区 | 麻豆av传媒蜜桃天美传媒 | 伊人久久婷婷五月综合97色 | 三上悠亚人妻中文字幕在线 | 成人性做爰aaa片免费看 | 欧美日韩一区二区免费视频 | 国产亚洲欧美在线专区 | 免费无码一区二区三区蜜桃大 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产亚洲人成a在线v网站 | 人妻互换免费中文字幕 | 小sao货水好多真紧h无码视频 | 亚洲国产精品久久久久久 | 97无码免费人妻超级碰碰夜夜 | 乱人伦人妻中文字幕无码 | 嫩b人妻精品一区二区三区 | 国产莉萝无码av在线播放 | 天天躁日日躁狠狠躁免费麻豆 | 色欲av亚洲一区无码少妇 | 十八禁真人啪啪免费网站 | 激情内射日本一区二区三区 | 亚洲小说图区综合在线 | 香港三级日本三级妇三级 | 无遮挡啪啪摇乳动态图 | 国产成人精品一区二区在线小狼 | 无码中文字幕色专区 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 波多野结衣乳巨码无在线观看 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲 日韩 欧美 成人 在线观看 | 日本熟妇人妻xxxxx人hd | a在线亚洲男人的天堂 | 亚洲成av人综合在线观看 | 久久国产精品二国产精品 | 国产偷抇久久精品a片69 | 久久久久亚洲精品中文字幕 | 任你躁国产自任一区二区三区 | 久久久久久国产精品无码下载 | 7777奇米四色成人眼影 | 男女性色大片免费网站 | 天堂亚洲免费视频 | 欧美zoozzooz性欧美 | 亚洲狠狠色丁香婷婷综合 | 日日橹狠狠爱欧美视频 | 男人和女人高潮免费网站 | 精品无人区无码乱码毛片国产 | 中文字幕 人妻熟女 | 国产精品人人妻人人爽 | 成人免费无码大片a毛片 | 精品亚洲韩国一区二区三区 | 纯爱无遮挡h肉动漫在线播放 | 国产真人无遮挡作爱免费视频 | 搡女人真爽免费视频大全 | 国产黑色丝袜在线播放 | 精品夜夜澡人妻无码av蜜桃 | 国产av无码专区亚洲a∨毛片 | 少妇无码一区二区二三区 | 1000部啪啪未满十八勿入下载 | 中国女人内谢69xxxxxa片 | 在线欧美精品一区二区三区 | 久久久久久a亚洲欧洲av冫 | 久久久久国色av免费观看性色 | 国产69精品久久久久app下载 | 久久99国产综合精品 | 日本一区二区更新不卡 | 精品欧美一区二区三区久久久 | 无码人妻av免费一区二区三区 | 激情人妻另类人妻伦 | 久久精品无码一区二区三区 | 67194成是人免费无码 | 国产精品久久久久无码av色戒 | 久久久婷婷五月亚洲97号色 | 久久精品成人欧美大片 | 大地资源中文第3页 | a片在线免费观看 | 狠狠躁日日躁夜夜躁2020 | 麻花豆传媒剧国产免费mv在线 | 黑森林福利视频导航 | 久久久久免费看成人影片 | 丰满少妇弄高潮了www | 亚洲成av人片在线观看无码不卡 | 国产精品高潮呻吟av久久 | 亚洲成a人一区二区三区 | 亚洲色欲色欲欲www在线 | 乱人伦人妻中文字幕无码 | 午夜时刻免费入口 | 波多野结衣高清一区二区三区 | 在线а√天堂中文官网 | 人妻互换免费中文字幕 | 欧美人与禽zoz0性伦交 | 亚洲国产欧美国产综合一区 | 99久久精品日本一区二区免费 | 久久精品国产一区二区三区肥胖 | 无码一区二区三区在线观看 | 日日摸日日碰夜夜爽av | 欧美精品一区二区精品久久 | 亚欧洲精品在线视频免费观看 | 亚洲爆乳大丰满无码专区 | www国产亚洲精品久久久日本 | 国产精品久久久久9999小说 | 亚洲人成网站在线播放942 | 99久久精品国产一区二区蜜芽 | 成人av无码一区二区三区 | 2020久久香蕉国产线看观看 | 一个人看的视频www在线 | 日韩在线不卡免费视频一区 | 日本护士毛茸茸高潮 | 日韩av无码中文无码电影 | 日本爽爽爽爽爽爽在线观看免 | 亚洲熟熟妇xxxx | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 东京热无码av男人的天堂 | 99久久人妻精品免费一区 | 久久精品国产99精品亚洲 | 日韩成人一区二区三区在线观看 | 国产人妻精品一区二区三区 | 1000部啪啪未满十八勿入下载 | 日本一本二本三区免费 | 性色av无码免费一区二区三区 | 欧美日韩精品 | 国产乱人伦偷精品视频 | 人妻有码中文字幕在线 | 欧美自拍另类欧美综合图片区 | 日日天日日夜日日摸 | 国产欧美精品一区二区三区 | 亚洲精品国产精品乱码视色 | 国产精品久免费的黄网站 | 亚洲第一网站男人都懂 | 99久久人妻精品免费二区 | 亚洲人成网站在线播放942 | 国产高清不卡无码视频 | 亚洲国产午夜精品理论片 | 久久99精品国产.久久久久 | 久久99久久99精品中文字幕 | 国产精品办公室沙发 | 正在播放老肥熟妇露脸 | 免费网站看v片在线18禁无码 | 中文精品无码中文字幕无码专区 | 日本又色又爽又黄的a片18禁 | 欧美日本精品一区二区三区 | 日韩av无码中文无码电影 | 欧美猛少妇色xxxxx | 亚洲区小说区激情区图片区 | 狠狠噜狠狠狠狠丁香五月 | 亚洲国产成人a精品不卡在线 | ass日本丰满熟妇pics | 无码免费一区二区三区 | 性欧美熟妇videofreesex | 在线欧美精品一区二区三区 | 亚洲成在人网站无码天堂 | 粉嫩少妇内射浓精videos | 免费观看激色视频网站 | 女人被爽到呻吟gif动态图视看 | 无遮挡国产高潮视频免费观看 | 亚洲人亚洲人成电影网站色 | 日本护士xxxxhd少妇 | 国产精品福利视频导航 | 牲欲强的熟妇农村老妇女视频 | 中文字幕久久久久人妻 | 在线精品亚洲一区二区 | 亚洲一区二区观看播放 | 国产亚洲视频中文字幕97精品 | 日韩av激情在线观看 | 久久久av男人的天堂 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 最新国产乱人伦偷精品免费网站 | 中文字幕无码热在线视频 | 国产做国产爱免费视频 | 亚洲精品国产品国语在线观看 | 久久精品人人做人人综合试看 | 国产sm调教视频在线观看 | 波多野结衣一区二区三区av免费 | 97色伦图片97综合影院 | 男女爱爱好爽视频免费看 | aⅴ在线视频男人的天堂 | 无码一区二区三区在线 | 久久午夜无码鲁丝片 | 亚洲国产成人av在线观看 | 中文字幕无码人妻少妇免费 | 欧美 丝袜 自拍 制服 另类 | 亚洲欧美日韩成人高清在线一区 | 无码国产激情在线观看 | 国产成人无码av片在线观看不卡 | 国产亚洲视频中文字幕97精品 | 丰满少妇弄高潮了www | 精品久久久中文字幕人妻 | av小次郎收藏 | 无人区乱码一区二区三区 | 亚洲色偷偷男人的天堂 | 色偷偷人人澡人人爽人人模 | 亚洲狠狠婷婷综合久久 | 黑人巨大精品欧美黑寡妇 | 国产做国产爱免费视频 | 免费无码午夜福利片69 | 无套内谢的新婚少妇国语播放 | 成熟女人特级毛片www免费 | 国产精品人人爽人人做我的可爱 | 精品国产精品久久一区免费式 | 国产精品二区一区二区aⅴ污介绍 | 少妇高潮一区二区三区99 | 捆绑白丝粉色jk震动捧喷白浆 | 国产精品久久久久久无码 | 色综合久久久无码网中文 | 熟妇人妻中文av无码 | 装睡被陌生人摸出水好爽 | 草草网站影院白丝内射 | 日韩视频 中文字幕 视频一区 | 亚洲乱亚洲乱妇50p | 九月婷婷人人澡人人添人人爽 | 国产精品福利视频导航 | 国产sm调教视频在线观看 | 国产激情精品一区二区三区 | 亚洲国产av美女网站 | 又大又硬又爽免费视频 | 久久久国产精品无码免费专区 | 日本又色又爽又黄的a片18禁 | 蜜桃无码一区二区三区 | 亚洲一区二区三区含羞草 | 九九在线中文字幕无码 | 亚洲一区二区三区 | 国产精品久久久久久亚洲影视内衣 | 成年美女黄网站色大免费全看 | 国产国语老龄妇女a片 | www成人国产高清内射 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美人与禽猛交狂配 | 97资源共享在线视频 | 麻豆国产97在线 | 欧洲 | 性生交大片免费看女人按摩摩 | 国产精品人人妻人人爽 | 日韩无套无码精品 | 免费中文字幕日韩欧美 | 国产人妻久久精品二区三区老狼 | 国产精品爱久久久久久久 | 美女极度色诱视频国产 | 色婷婷欧美在线播放内射 | 色婷婷综合激情综在线播放 | 成人性做爰aaa片免费看 | 久久久久久亚洲精品a片成人 | 波多野结衣乳巨码无在线观看 | 国产精品久久久久久无码 | 强开小婷嫩苞又嫩又紧视频 | 伊人色综合久久天天小片 | 日韩av无码中文无码电影 | 精品国产麻豆免费人成网站 | 久久久久亚洲精品男人的天堂 | 丁香花在线影院观看在线播放 | 国产 精品 自在自线 | 无码国产色欲xxxxx视频 | 国产成人亚洲综合无码 | 中文精品久久久久人妻不卡 | 在线天堂新版最新版在线8 | 欧美日韩一区二区三区自拍 | 又紧又大又爽精品一区二区 | 人妻少妇精品久久 | 精品aⅴ一区二区三区 | 亚洲春色在线视频 | 99久久精品午夜一区二区 | 国产色xx群视频射精 | 国产精品久久国产精品99 | 亚洲欧洲日本无在线码 | 蜜桃视频韩日免费播放 | 亚洲综合在线一区二区三区 | 精品人妻av区 | 久久精品国产日本波多野结衣 | 97色伦图片97综合影院 | 亚洲va欧美va天堂v国产综合 | 中文字幕人成乱码熟女app | 人妻少妇精品视频专区 | 色婷婷香蕉在线一区二区 | 国产精品资源一区二区 | 国产精品视频免费播放 | 久久精品中文字幕大胸 | 波多野结衣av一区二区全免费观看 | 久久久中文字幕日本无吗 | www国产精品内射老师 | 久久zyz资源站无码中文动漫 | 欧美丰满少妇xxxx性 | 久久综合香蕉国产蜜臀av | 在线观看国产一区二区三区 | 人人妻在人人 | 久久久久久九九精品久 | 亚洲成a人片在线观看无码 | 亚洲爆乳无码专区 | 久久精品女人的天堂av | 99精品视频在线观看免费 | 性色av无码免费一区二区三区 | 在线视频网站www色 | 丰满人妻精品国产99aⅴ | 亚洲成熟女人毛毛耸耸多 | 荫蒂添的好舒服视频囗交 | 欧美丰满老熟妇xxxxx性 | 精品亚洲成av人在线观看 | 国产激情无码一区二区 | 国产又粗又硬又大爽黄老大爷视 | 少妇高潮一区二区三区99 | 久久久久久久人妻无码中文字幕爆 | 午夜无码人妻av大片色欲 | 丝袜人妻一区二区三区 | 亚洲人成人无码网www国产 | 野外少妇愉情中文字幕 | 国产乱人偷精品人妻a片 | 男女猛烈xx00免费视频试看 | 久久久久久国产精品无码下载 | av香港经典三级级 在线 | 丝袜 中出 制服 人妻 美腿 | 亚洲 激情 小说 另类 欧美 | 免费无码一区二区三区蜜桃大 | 女高中生第一次破苞av | 亚洲国产一区二区三区在线观看 | 久久久久免费看成人影片 | 中文字幕av无码一区二区三区电影 | 自拍偷自拍亚洲精品10p | 一本色道久久综合亚洲精品不卡 | 亚洲呦女专区 | 性生交大片免费看女人按摩摩 | 国产明星裸体无码xxxx视频 | 久久综合给合久久狠狠狠97色 | 亚洲国产精品无码一区二区三区 | 国产精品办公室沙发 | 久久精品一区二区三区四区 | 天天av天天av天天透 | 日本精品人妻无码77777 天堂一区人妻无码 | 无套内谢的新婚少妇国语播放 | 夜夜高潮次次欢爽av女 | 亚洲一区二区三区香蕉 | 亚洲s码欧洲m码国产av | 日韩精品乱码av一区二区 | 日本一卡2卡3卡四卡精品网站 | 久久午夜无码鲁丝片 | 国产一区二区三区四区五区加勒比 | a在线亚洲男人的天堂 | 国产亚洲视频中文字幕97精品 | 中文字幕乱码亚洲无线三区 | 欧美怡红院免费全部视频 | 国产成人综合色在线观看网站 | 亚洲一区二区三区含羞草 | 国产综合色产在线精品 | 性啪啪chinese东北女人 | 欧洲精品码一区二区三区免费看 | 久精品国产欧美亚洲色aⅴ大片 | 熟妇激情内射com | 国产精品久久久久久亚洲影视内衣 | 久久久久成人片免费观看蜜芽 | 又色又爽又黄的美女裸体网站 | 成熟人妻av无码专区 | www国产亚洲精品久久久日本 | 国产精品怡红院永久免费 | 少妇被粗大的猛进出69影院 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 久久精品人人做人人综合试看 | 亚洲一区二区观看播放 | 免费中文字幕日韩欧美 | 亚洲精品鲁一鲁一区二区三区 | 欧美大屁股xxxxhd黑色 | 久久视频在线观看精品 | 丰满岳乱妇在线观看中字无码 | 好男人www社区 | 久久精品女人天堂av免费观看 | 中文字幕无码人妻少妇免费 | 99riav国产精品视频 | 强伦人妻一区二区三区视频18 | 无码精品国产va在线观看dvd | 未满成年国产在线观看 | 欧美第一黄网免费网站 | 蜜臀av在线播放 久久综合激激的五月天 | 小泽玛莉亚一区二区视频在线 | 强伦人妻一区二区三区视频18 | 色婷婷av一区二区三区之红樱桃 | 久久无码专区国产精品s | 亚洲第一网站男人都懂 | 三上悠亚人妻中文字幕在线 | 国产精品无码一区二区三区不卡 | 在线精品亚洲一区二区 | 国产亚洲美女精品久久久2020 | 蜜桃av抽搐高潮一区二区 | 色一情一乱一伦一区二区三欧美 | 国产精品美女久久久 | 亚洲国产一区二区三区在线观看 | 日日躁夜夜躁狠狠躁 | 成人三级无码视频在线观看 | 性色欲网站人妻丰满中文久久不卡 | 国产无遮挡吃胸膜奶免费看 | 一本无码人妻在中文字幕免费 | 欧美日韩一区二区免费视频 | 强辱丰满人妻hd中文字幕 | 欧美一区二区三区视频在线观看 | 搡女人真爽免费视频大全 | 久久国产36精品色熟妇 | 国产精品资源一区二区 | 伊人久久大香线蕉亚洲 | 亚洲精品成人av在线 | 性欧美大战久久久久久久 | 少妇激情av一区二区 | 亚洲午夜福利在线观看 | 熟女俱乐部五十路六十路av | 亚洲综合无码一区二区三区 | 亚洲国产欧美在线成人 | 国产精品va在线播放 | 大地资源网第二页免费观看 | 人人妻人人澡人人爽欧美精品 | 丰满护士巨好爽好大乳 | 麻豆国产人妻欲求不满谁演的 | 18禁止看的免费污网站 | 国产情侣作爱视频免费观看 | 综合激情五月综合激情五月激情1 | 国产电影无码午夜在线播放 | 色一情一乱一伦 | 在线观看免费人成视频 | 18无码粉嫩小泬无套在线观看 | 精品国产青草久久久久福利 | 中文字幕人妻无码一区二区三区 | 欧洲vodafone精品性 | 免费观看激色视频网站 | 国产午夜福利100集发布 | 国产在线精品一区二区高清不卡 | 久久精品中文字幕一区 | 色综合久久久无码中文字幕 | 男女下面进入的视频免费午夜 | 男女猛烈xx00免费视频试看 | 无码午夜成人1000部免费视频 | 国产艳妇av在线观看果冻传媒 | 亚洲精品鲁一鲁一区二区三区 | 亚洲人成影院在线无码按摩店 | 欧美zoozzooz性欧美 | 欧洲熟妇精品视频 | 性欧美熟妇videofreesex | 久久99精品久久久久久动态图 | 亚洲精品一区二区三区在线观看 | 久久久久久a亚洲欧洲av冫 | 亚洲精品欧美二区三区中文字幕 | 久久视频在线观看精品 | 国产麻豆精品一区二区三区v视界 | 亚洲自偷自偷在线制服 | 暴力强奷在线播放无码 | 无码国内精品人妻少妇 | 欧美日韩一区二区三区自拍 | 国内老熟妇对白xxxxhd | 图片区 小说区 区 亚洲五月 | 中文字幕日产无线码一区 | 免费观看又污又黄的网站 | 国产精品美女久久久久av爽李琼 | 曰韩少妇内射免费播放 | 久久97精品久久久久久久不卡 | 无码人妻丰满熟妇区毛片18 | 国产亚洲人成a在线v网站 | 亚洲国产午夜精品理论片 | 亚洲成熟女人毛毛耸耸多 | 欧美日韩在线亚洲综合国产人 | 国产深夜福利视频在线 | 一本久道久久综合狠狠爱 | 久久久久久久人妻无码中文字幕爆 | 成人无码视频免费播放 | 亚洲 a v无 码免 费 成 人 a v | 亚洲日韩一区二区 | 亚洲人成影院在线无码按摩店 | 97久久精品无码一区二区 | 蜜桃视频韩日免费播放 | 色欲人妻aaaaaaa无码 | 国产精华av午夜在线观看 | 国产精品久久久av久久久 | 熟女体下毛毛黑森林 | 亚洲日韩精品欧美一区二区 | 俄罗斯老熟妇色xxxx | 国产欧美熟妇另类久久久 | 性生交大片免费看女人按摩摩 | 欧美成人午夜精品久久久 | 天堂亚洲2017在线观看 | 国产精品办公室沙发 | 一区二区三区乱码在线 | 欧洲 | 欧美怡红院免费全部视频 | 欧洲极品少妇 | 久久精品国产一区二区三区肥胖 | 国产精品国产三级国产专播 | 亚洲男女内射在线播放 | av在线亚洲欧洲日产一区二区 | 欧美亚洲日韩国产人成在线播放 | 中文字幕无码热在线视频 | 免费网站看v片在线18禁无码 | 久久久久久九九精品久 | 亚洲精品一区三区三区在线观看 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲成熟女人毛毛耸耸多 | 天天躁夜夜躁狠狠是什么心态 | 国产av无码专区亚洲awww | 成人精品视频一区二区 | 国产卡一卡二卡三 | 亚洲精品久久久久中文第一幕 | 熟女体下毛毛黑森林 | 人人妻人人澡人人爽欧美一区 | 日日夜夜撸啊撸 | 国产精品二区一区二区aⅴ污介绍 | 人人澡人摸人人添 | 女高中生第一次破苞av | 国产情侣作爱视频免费观看 | 国产精品久久久久久亚洲毛片 | 国产人妻精品一区二区三区不卡 | 国产乱码精品一品二品 | 国产欧美精品一区二区三区 | 久久精品国产大片免费观看 | 久久人妻内射无码一区三区 | 久久久久久a亚洲欧洲av冫 | 人妻少妇精品无码专区动漫 | 国产精品怡红院永久免费 | 少妇被黑人到高潮喷出白浆 | 午夜福利一区二区三区在线观看 | 18精品久久久无码午夜福利 | 欧美三级a做爰在线观看 | 欧美日韩人成综合在线播放 | 国产成人无码av在线影院 | 久久精品无码一区二区三区 | 亚洲码国产精品高潮在线 | 色一情一乱一伦一视频免费看 | 欧美性生交活xxxxxdddd | 欧美人与动性行为视频 | 精品欧洲av无码一区二区三区 | 成熟女人特级毛片www免费 | 疯狂三人交性欧美 | 亚洲国产av精品一区二区蜜芽 |