日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零开始学习Oracle—安装及删除

發布時間:2023/12/18 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始学习Oracle—安装及删除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Oracle9i的安裝與刪除

-.要求:
?? ORACLE9i? 9.0.1? 空間1.76G
?? ORACLE9i? 9.0.2? 空間2.86G
??? 事務處理 --? 增 刪除 修改頻繁
??? 數據倉庫 -- 查詢 頻繁

??? GBK??? --多200個字左右(偏僻字)
??? GB2312??
?SETUP.exe 雙擊

?啟動ORACLE數據庫? OracleServiceOrac? 服務? 多啟動幾次
????????????????? OracleOraHome90TNSListener 服務
??? 如果啟動不了Listener(監聽器)
???? <1>改注冊表?
?????????? ImagePath? D:\oracle\ora90\BIN\TNSLSNR
???? <2>用命令行啟動
??????????? cmd? ->?? tnslsnr 最小化
??????????? tNSlsnter? 監聽器? 如果無法啟動
??????????? 運行cmd 切換到DOS界面 敲tnslsnr 窗口不要關閉
???? <3>D:\oracle\ora90\network\ADMIN
??????????????? listener.ora 文本文件
???????????? HOST=localhost或機器名
????????????? 存盤
?2,操作Oracle數據庫的工具

?? ORACLE SQL*PLUS 字符界面 ORACLE自帶
???? sqlplusw.exe windows窗口下的sqlplus
???? sqlplus.exe?? DOS下的sqlplus??????????
????????
?????? 用戶名scott 密碼tiger 普通用戶
???????????? system??? manager?? 超級用戶
???????????? sys?????? change_on_install? 超級用戶? 比system權限還要大

?

???? SQLPLUS下的常用命令
?????? show user 察看用戶
?????? connect 用戶名/密碼? 連接到指定用戶
??????????? connect scott/tiger???
??????? select * from tab where tabtype='TABLE';? 察看當前用戶下的表??????
?????? select count(*) from dept;? 查詢表dept中記錄的行數
?????? desc dept???????????? 察看表dept的結構
?????? quit/exit???????????? 退出
?????? clear screen????????? 清除屏幕
?????? set linesize 200????? 設置一行顯示200個字符
?????? set pagesize 20?????? 設置每頁顯示20行

?????? spool 文件名 (spool c:\abc.txt) 作日志文件命令????????
?????? spool off
???????
?????? 修改D:\oracle\ora90\sqlplus\admin\glogin.sql文件
?可以設置SQLPLUS的環境
?????????? set linesize 200
?????????? set pagesize 20??

?? ORACLE 企業管理器 (OEM)? 圖形界面

?? PL/SQL Developer 第三方軟件 ORACLE不帶的

? SQLPLUS? /nolog??? nolog是不登陸

? 瀏覽器使用oracle (isqlplus)
???? D:\oracle\ora90\Apache\Apache\conf\httpd.conf
?????????? 修改80端口?? -> 8001
??? http://localhost:8001/isqlplus


????????? 用工具 ORACLE SQL*PLUS驗證數據庫是否啟動
??????????? 用戶名system?? 密碼manager
??????????? 出現 連接到 和 SQL>符號 說明數據庫已經可用了

??????? 默認用戶:
????????? 超級用戶: 用戶名system/密碼manager
?????????????????? 用戶名sys/密碼change_on_install

????????? 普通的用戶: 用戶名scott/密碼tiger


?注意的問題:安裝的源程序放在什么目錄下??
??????? <1>目錄中不要出現中文名字的目錄
??????? <2>數據庫的名字不要是中文,8個字符以內
??????? <3>字符集用默認的ZHS16GBK

3,Oracle中的數據類型

?

?

ORACLE中字段的數據類型
?? 字符型???

?????????????? ?char??????? ?最大2000個字節 定長
?????????????? ?char(10)?? '張三' 后添空格6個把10個字節補滿? '張三????? '
????????????????char(2)???? '男'
?????????????? ?varchar2??? 最大4000個字節 變長
????????????????varchar2(10)? '張三'????? 在數據庫中'張三'
??????????????? 大對象 字符型大對象 >4000字節 最大4G
??????????????? CLOB (Character Large OBject)????
????
?? 數字???? number???? 范圍? 10的-38次方 到10的38次方??????????
????????????? 可以表示小數 也可以表示整數??
???????????? number(4)?? 最大表示4位整數? -9999 到 9999
???????????? number(5,2)?? 表示5位有效數字 2位小數的 一個小數? -999.99 到 999.99
??????????????????
????????????
?? 日期???? date????? 包含年月日和時分秒? 7個字節
?? 圖片???? blob????? 二進制大對象??? 圖像/聲音? 4G

?4,如何建表,以及相關操作。
?? 學生表student
??????? create table student( --學生表
?????????? xh number(4), --學號
?????????? xm varchar2(10), --姓名
?????????? sex char(2), --性別
?????????? birthday date, --日期
?????????? sal number(7,2) --獎學金
??????? );
?? 班級class
?????? create table class( --班級表
????????? classid number(2), --班級編號
????????? cname varchar2(20) --班級名字
?????? );
? 添加字段(學生所在班級classid)
????? alter table student add (classid number(2));
? 修改字段的長度
????? alter table student modify (xm varchar2(12)) ;
? 修改字段的類型(不能有記錄的)
????? alter table student modify (xh varchar2(5));
? 刪除一個字段
????? alter table student drop column sal;
? 刪除表
????? drop table student;
? 表的名字修改
????? rename student to stu;
? 字段如何改名字
????? --先刪除
????? a)alter table student drop column sal;????????
????? --再添加
????? b)alter table student add (salary number(7,2));

如何插入數據
? 插入數據 insert語句
????? 所有字段都插入
?????? insert into student values ('A001','張三','男','01-5月-05',10);
??????????? ORACLE中默認的日期格式'DD-MON-YY'?? dd 日子(天)? mon 月份 yy 2位的年
???????????? '09-6月-99' 1999年6月9號
??????????? 改日期的默認格式
???????????????? alter session set nls_date_format = 'yyyy-mm-dd';
????
?????? insert into student values ('A002','MIKE','男','1905-05-06',10);

?????????? 恢復ORACLE默認格式
?????????????? alter session set nls_date_format = 'dd-mon-yy';
?????????? 察看日期的格式
?????????????? set linesize 1000
?????????????? select * from nls_session_parameters
???????????????? where parameter='NLS_DATE_FORMAT';
?????????? 永久設置日期格式
?????????????? 改注冊表oracle/HOME0 加字符串NLS_DATE_FORMAT 值yyyy-mm-dd
???? 部分字段插入
?????? insert into student(xh,xm,sex) values ('A003','JOHN','女');
???? 插入空值
?????? insert into student(xh,xm,sex,birthday) values ('A004','MARTIN','男',null);

? 修改? update
????? 改一個字段?
?????? update student set sex='女' where xh='A001';
????? 改多個字段
?????? update student set sex='男',
????????????????????????? birthday='1980-04-01'
????????????? where xh='A001';
????? 改為空值 (修改為空時=null)
?????? update student set birthday=null where xh='A001';
????? 把生日為空的人的班級編號改為20(條件中的空是is null / is not null)
????????? update student set classid=20 where birthday is null;
???????? 錯誤的沒有達到要求
???????? update student set classid=20
?????????? where birthday=null;
???????? 不表示空值 表示xm是null的字符串????????
???????? update student set classid=20 where xm='null';
?
???
? 刪除 delete
????? delete from student;? 刪除所有記錄,表結構還在,寫日志,可以恢復的,速度慢
????? drop table student;? 刪除表的結構和數據
????? delete from student where xh='A001';? 刪除一條記錄

????? truncate table student; 刪除表中的所有記錄,表結構還在,不寫日志,無法找回刪除的記錄,速度快

? 查詢 select???
????? select * from student;

????? select xh,xm,sex from student;????

????? select * from student where xh like 'A%1'; %任意多個字符
????? select * from student where xh like 'A__1'; _1個字符
????? select * from student where xh like '%A%';???????????? select * from student where xh like 'A%';
select * from student where xh like '%A';??????????????????????????????

????? select * from student where xh = 'A%';
???????????????????????
??
????? select * from student
????? order by birthday ;? 升序 (order by birthday asc;)
?
????? select * from student
????? order by birthday desc; --降序
??
????? select * from student
????? order by birthday desc,xh asc; --按birthday 降序 按xh升序(asc/默認)
????????????????
????? select * from student
????? where sex='女' or birthday='1999-02-01';

????? select * from student
????? where sex='女' and birthday='1999-02-01';

????? select * from student
?????? where salary > 20 and xh <> 'B002'; (!=)

ORALCE的函數
?? 單行函數?? 返回值只有一個
?????
?? 分組函數?? 返回值是多條記錄
????? group by
????? sum
????? avg???????????
?????
單行函數
? 字符函數
??? concat 連接? ||
?? <1>顯示dname和loc中間用-分隔
???? select deptno,dname||'----'||loc from dept;
????
???? dual啞元表?? 沒有表需要查詢的時候 可以用它
???????? select 'Hello World' from dual;
???????? select 1+1 from dual;
???????? 查詢系統時間
????????? select sysdate from dual;
?? <2>? initcap 首字母大寫
?????? select ename,initcap(ename) from emp;
?? <3>? lower?? 轉換為小寫字符
??????? select ename,lower(ename) from emp;
?? <4> upper 轉換為大寫
??????? update dept set loc=lower(loc);
??????? update dept set loc=upper(loc);
?? <5> LPAD 左填充
??????? select deptno,lpad(dname,10,' '),loc from dept;
?? <6> RPAD 右填充
?? <7> LTRIM 去除左邊的空格
?????? RTRIM 去除右邊的空格
?????? ALLTRIM? 去除兩邊的空格
?? <8>replace??? 替換
????? translate? 轉換
?????? select ename,replace(ename,'S','s') from emp;
?????????? 用's'去替換ename中的'S'
??????? select ename,translate(ename,'S','a') from emp;
?? <9> ASCII 求ASC碼
?????? chr?? asc碼變字符
???????? select ascii('A') from dual;
???????? select chr(97) from dual;
???????? select 'Hello'||chr(9)||'World' from dual;
?????????????????????????? '\t' ascii碼是 9
?????????????????????????? '\n' ascii碼是 10

???????? select 'Hello'||'\t'||'World' from dual;????

?? <10> substr 字符截取函數
?????????? select ename,substr(ename,1,3) from emp;
?????????????? 從第1個位置開始 顯示3個字符
?????????? select ename,substr(ename,4) from emp;
????????????? 從第4個位置開始顯示后面所有的字符
?? <11> instr 測試字符串出現的位置
????????? select ename,instr(ename,'S') from emp;
???????????? 'S'第1次出現的位置
? select ename,instr(ename,'T',1,2) from emp;????????????????
???????????? 從第1個位置開始 測試'T'第2次出現的位置?
? <12> length 字符串的長度
??????? select ename,length(ename) from emp;
??????
日期和 時間函數
?? <1> sysdate 系統時間
??????? select sysdate from dual;
??????? select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
??????? select to_char(sysdate,'DDD') from dual??
????? select to_char(sysdate,'D') from dual
????? select to_char(sysdate,'DAY') from dual

????? select to_char(sysdate,'yyyy-mm-dd') from dual;

? select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;
?
?select '''' from dual;

select to_char(sysdate,'SSSSS') from dual;
? --從今天零點以后的秒數

?? <2> ADD_MONTHS 添加月份 得到一個新的日期
??????? select add_months(sysdate,1) from dual;

?????? select add_months(sysdate,-1) from dual;

?????? select trunc(sysdate)-to_date('20050101','yyyymmdd') from dual;
?????? select add_months(sysdate,12) from dual;
?????????? 一年以后的今天
select add_months(sysdate,-12) from dual;
?????????? 一年以前的今天

???? trunc(sysdate) 截取年月日
?
?select sysdate+2 from dual;
??????? 數字代表的是天數

???? 兩個日期之間的差值代表天數

?? <3> last_day? 某月的最后一天
?????? select last_day(sysdate) from dual;
??????
?????? select add_months(last_day(sysdate)+3,-1) from dual;
??????????? 本月第3天的日期
? <4>? months_between 兩個日期之間的月數
???????? select months_between(sysdate,'2005-02-01') from dual;
???????????????? 方向 sysdate - '2005-02-01'
????? select months_between('2005-02-01',sysdate) from dual;
????
?轉換函數
?? to_char?? 把日期或數字類型變為字符串
?????? select to_char(sysdate,'hh24:mi:ss') from dual;
?????? select to_char(sysdate,'yyyymmdd hh24:mi:ss') from dual;

?????? select sal,to_char(sal,'L9,999') from emp;
???????????? L本地貨幣
? to_number?? 把字符串變成數字
????? select to_number('19990801') from dual;
?
? to_date???? 把字符串變成日期
????? select to_date('19800101','yyyymmdd') from dual;

????? select to_char(to_date('19800101','yyyymmdd'),
??????? 'yyyy"年"mm"月"dd"日"') from dual;?????
?數學函數
??? ceil(x)? 不小于x的最小整數
??????? ceil(12.4)?? 13
??????? ceil(-12.4)?? -12
??? floor(x)? 不大于x的最大整數
??????? floor(12.5)? 12
??????? floor(-12.4)? -13


?? round(x)? 四舍五入
???? round(12.5)?? 13
???? round(12.456,2) 12.46

?? trunc(x)? 舍去尾數
???? trunc(12.5)? 12
???? trunc(12.456,2)? 12.45
??? 舍去日期的小時部分
???? select to_char(trunc(sysdate),'yyyymmdd hh24:mi:ss') from dual;
?? mod(x,n)? x除以n以后的余數
???? mod(5,2) 1
???? mod(4,2) 0

?? power(x,y)? x的y次方
??? select power(3,3) from dual;
????
?
混合函數
????? 求最大值
?? select greatest(100,90,80,101,01,19) from dual;
??
????? 求最小值
?? select least(100,0,-9,10) from dual;

????? 空值轉換函數 nvl(comm,0) 字段為空值 那么就返回0 否則返回本身
?? select comm,nvl(comm,0) from emp;
????? comm 類型和 值的類型是 一致的
??
復雜的函數
?? decode?? 選擇結構? (if ... elseif .... elesif ... else結構)
???
要求:
?? sal=800? 顯示低工資??
?? sal=3000? 正常工資
?? sal=5000? 高工資
??? 只能做等值比較

? select sal,decode(sal,800,'低工資',3000,'正常工資',5000,'高工資','沒判斷')
? from emp;
?表示如下的if? else 結構
???? if sal=800 then
??????? '低工資'
???? else if sal =3000 then
??????? '正常工資'
???? else if? sal = 5000 then
???????? '高工資'
???? else
??????? '沒判斷'
???? end if
?????????

?? sal > 800?????????? sal -800 > 0??

?判斷正負
? sign(x)?? x是正? 1
??????????? x是負? -1
??????????? x是0?? 0
??? select sign(-5) from? dual;


?如何做大于小于的比較????
? sal<1000? 顯示低工資?? sal-1000<0?? sign(sal-1000) = -1
?? 1000<=sal<=3000? 正常工資
?? 3000<sal<=5000? 高工資

?? select sal,decode(
???????????? sign(sal-1000),-1,'低工資',
??????????? decode(sign(sal-3000),-1,'正常工資',
??????????????????????????? 0,'正常工資',1,
??????????? decode(sign(sal-5000),-1,'高工資','高工資')
???????????? )) as 工資狀態 from emp;
?????
? 一般的情況? decode(x,y1,z1,y2,z2,z3)
????? if x= y1 then
????????? z1?????????
????? else if x = y2 then
????????? z2
????? else
???????? z3
????? end if?

分組函數?? 返回值是多條記錄 或計算后的結果
????? group by
????? sum
????? avg

<1>? 計算記錄的條數 count

? select count(*) from emp;
? select count(1) from emp;


? select count(comm) from emp; 字段上count 會忽略空值
????? comm不為空值的記錄的條數

? 統計emp表中不同工作的個數 ????
?? select count(distinct job) from emp;

?? select distinct job from emp;
?? select distinct job,empno from emp;
?? select job,empno from emp;
??? 得到的效果是一樣的,distinct 是消去重復行
?????????????????????? 不是消去重復的列
?<2>group? by 分組統計
???? --在沒有分組函數的時候
???? --相當于distinct 的功能
???? select job from emp group by job;

???? select distinct job from emp;

?? --有分組函數的時候
?? --分組統計的功能
?? 統計每種工作的工資總額是多少??
???? select job,sum(sal) from emp
????????? group by job;?????? --行之間的數據相加

???? select sum(sal) from emp;? --公司的工資總額


?統計每種工作的平均工資是多少???
???? select job,avg(sal) from emp
????????? group by job;???

??? select avg(saL) from emp; --整個公司的平均工資


?顯示平均工資>2000的工作???
?? <1>統計每種工作的平均工資是多少
?? <2>塞選出平均工資>2000的工作?????

??? 從分組的結果中篩選 having
?? select job,avg(sal) from emp
????????? group by job
????????? having avg(sal) > 2000;
?? group by 經常和having搭配來篩選

計算工資在2000以上的各種工作的平均工資????
? select job,avg(sal) from emp
????????? where sal > 2000
????????? group by job
????????? having avg(sal) > 3000;

??? 一般group by? 和 having搭配
??????? 表示對分組后的結果的篩選
???? where子句 --- 用于對表中數據的篩選??
?
? <3> max min
?? select max(sal) from emp;
???? 公司的最高工資
?? select min(sal) from emp ;
???? 公司的最低工資

找每個部門的最高和最低的工資??
? select deptno,max(sal),min(sal) from emp
???? group by deptno;
找每個工作的最高和最低的工資??
? select job,max(sal),min(sal) from emp
???? group by job;
找每個部門中每種工作的最高和最低的工資??
? select deptno,job,max(sal),min(sal)
?? from emp
?? group by deptno,job;

?select max(sal),min(sal)
?? from emp
?? group by deptno,job;

??? 單個字段如果沒有被分組函數所包含,
?????? 而其他字段又是分組函數的話?????
????? 一定要把這個字段放到group by中去

?<4>關聯查詢
????? 多張表,而表與表之間是有聯系的

?????? 是通過字段中的數據的內在聯系來發生
?????? 而不是靠相同的字段名來聯系的或者是否有主外鍵的聯系是沒有關系的
????? select dname,ename from emp,dept;
???????? 笛卡爾積? (無意義的)
????? --當2個表作關聯查詢的時候一定要寫關聯的條件
????? --N個表 關聯條件一定有N-1個

????? select dname,ename from mydept,myemp
?????? where mydept.no = myemp.deptno;


????? 多表查詢的時候一定要有關聯的條件
??????? --使用的表的全名
??????? select dname,ename from emp,dept
???????? where emp.deptno = dept.deptno ;
???????
??????? --使用表的別名
???????? select dname,ename,a.deptno from emp a,dept b
???????? where a.deptno = b.deptno and a.deptno = 10;

?????? --等值連接(內連接-兩個表的數據作匹配a.deptno = b.deptno )
???????? select dname,ename,a.deptno from
???????? emp a inner join dept b
???????? on a.deptno = b.deptno;
???????? where a.deptno = 10;

?????? --on寫連接條件的
?????? --where中寫別的條件

?????? --使用where/on
???????? select dname,ename,a.deptno from emp a,dept b
???????? where a.deptno = b.deptno and a.deptno=10;
????????
????????? --on中寫連接條件
????????? --where中寫其他的條件
????????? select dname,ename,a.deptno from
???????? emp a inner join dept b
???????? on a.deptno = b.deptno
???????? where a.deptno = 10 ;

?????? --外連接
???????? 左外連接 右外連接? 全外連接
???????? (+)寫法只有在ORACLE中有效
??????? select dname,ename,b.deptno
??????? from emp a,dept b
??????? where a.deptno(+) = b.deptno;
?????? --標準寫法
???????? select dname,ename,b.deptno
??????? from emp a right outer join dept b
??????? on a.deptno = b.deptno;????????


??????? select dname,ename,b.deptno
??????? from emp a,dept b
??????? where a.deptno = b.deptno(+);
??? --標準寫法
???????? select dname,ename,b.deptno
??????? from emp a left outer join dept b
??????? on a.deptno = b.deptno;????????

??? --標準寫法(全外聯)?
?????????? select dname,ename,b.deptno
??????? from emp a full outer join dept b
??????? on a.deptno = b.deptno;????
??
??? --自連接
??????? select a.ename as 員工姓名,b.ename as 經理名字 from emp a,emp b
??????? where a.mgr = b.empno(+);
????????????? a.empno = b.mgr? ???????
?
?<5>子查詢
??? 在select語句中嵌套了另一個select語句
???? 1)where 子句中嵌套子查詢
???? 2)用子查詢的結果 作為字段來出現

--1)where 子句中嵌套子查詢,執行順序是
????? 先執行子查詢 再執行主查詢
? 找出工資高于公司平均工資的所有員工??
?? select * from emp where sal+nvl(comm,0) > (select avg(sal+nvl(comm,0)) from emp);

?? 高于部門30中員工最高工資的其他員工???
????
? select * from emp where? sal+nvl(comm,0) > all (select sal+nvl(comm,0) from emp
?????????????? where deptno = 30);

?? 低于部門30中員工工資的其他員工???
? select * from emp where? sal+nvl(comm,0) < all (select sal+nvl(comm,0) from emp
?????????????? where deptno = 30);

? select * from emp where? sal+nvl(comm,0) < any (select sal+nvl(comm,0) from emp
?????????????? where deptno = 30);


--2)用子查詢的結果 作為字段來出現?
????? 先執行主查詢 再執行子查詢

? <1>找員工姓名和直接上級的名字
?? select ename as 員工姓名,(select ename from emp where empno = a.mgr) as 經理姓名
?? from emp a;??????
?<2>顯示部門名稱和人數
? select dname,(select count(*) from emp where deptno=a.deptno) as rs from dept a;
?<3>顯示每個部門的最高工資的員工
??? select * from emp a where (deptno, sal) in? (? select deptno,max(sal) from emp group by deptno);
?
?select a.* from emp a,(? select deptno,max(sal) as msal from emp group by deptno) c where a.deptno = c.deptno and
a.sal = c.msal;

--最大值和最小值的比較 轉化為人數的比較
select * from emp a where (select count(*) from
?emp where deptno = a.deptno and
?sal > a.sal) = 0 and a.deptno is not null;

?<4>顯示每個部門的工資前2名的員工
select * from emp a where (select count(*) from
?emp where deptno = a.deptno and
?sal > a.sal) <=1 and a.deptno is not null;

<6> 層次查詢
--level 偽列 層次查詢的時候可以使用的? 層的編號

? select lpad('+',level,' ')||ename from emp
???? connect by prior empno = mgr --父子關系 父結點中的empno = 子節點中的mgr
???? start with mgr is null;--從 mgr is null的節點 開始遍歷

select lpad('+',level,' ')||ename from emp
???? connect by prior empno = mgr
???? start with ename = 'BLAKE';

<7> TOP 前幾行 (sqlserver)
??? rownum? (oracle偽列)

?--emp表的前2行
?--rownum必須使用<=的關系比較運算符

?select * from emp where rownum <= 2;

?select top 2 * from emp; --sqlserver的寫法

?select * from emp where rownum = 1;

?--公司工資最高的2個人
?/*select * from emp
?where rownum <= 2
order by sal desc;*/ 錯誤的

?? select * from (select * from emp order by sal desc)
?? where rownum <= 2;

?--分頁查詢
? --每頁顯示4行 一共有14行記錄

? 第1頁??? 第1-4行
? 第2頁??? 第5-8行
? 第3頁??? 第9-12行
? 第4頁??? 第13-14行

?--希望每次頁面顯示的時候 都只查詢回需要的記錄
?
?? select * from (select rownum as num,emp.* from emp)
?? where num >= 9 and num <= 12;

?? select * from (select rownum as num,emp.* from emp)
?? where num >= 13 and num <= 14;


<例子>
建立表如下:

學生基本信息表
CREATE Student(
[Studentid][Int]IDENTITY(1,1)NOT NULL primary key,--主鍵
[StudentName][char]NOT NULL

)
課程信息表
CREATE Subject(
[SubjectID][char]NOT NULL primary key,?????? --主鍵
[SubjectName][char]NOT NULL
)
成績表
CREATE Grade(
[Studentid][Int]NOT NULL,??--聯合主鍵
[SubjectID][char]NOT NULL,??--聯合主鍵
[Grade] [INT]NOT NULL,
primary key (studentid,subjectid)
)

1.將建表命令改為ORACLE語句在ORACLE中建表
create table student( --學生表
studentid number(3) primary key, --學生編號
studentname varchar2(20) --學生的姓名
);

create table subject( --課程表
subjectid char(3) primary key, --課程編號
subjectname varchar2(20)? --課程的名字
);


create table grade( --分數表
studentid number(3) references student(studentid), --學生id
subjectid char(3) references subject(subjectid), --課程id
mark????? number(3), --分數
primary key (studentid,subjectid) --聯合主鍵
);

?

insert into student values (101,'張三');
insert into student values (102,'李云');
insert into student values (103,'未');

insert into subject values ('A01','C++');
insert into subject values ('A02','ASP');
insert into subject values ('A03','JAVA');


insert into grade values (101,'A01',59);
insert into grade values (101,'A02',72);
insert into grade values (101,'A03',90);

insert into grade values (102,'A01',75);
insert into grade values (102,'A02',91);

insert into grade values (103,'A01',71);

?


2.作如下4題

第一問:查詢出以下信息

學號 學生姓名 課程名稱 成績 (要全部學生信息)

關聯查詢 (多張表的)
別名

select a.studentid as "學? 號",studentname "學生姓名",
subjectname "課程名稱",mark "成? 績"
from student a , subject b , grade c
where a.studentid = c.studentid
and b.subjectid = c.subjectid;

[select a.studentid "學? 號",studentname "學生姓名",
subjectname "課程名稱",mark "成? 績"
from student a , subject b , grade c] 笛卡爾積

?????? 3 * 3 * 6 = 54;


第二問:查詢出以下信息

學號 學生姓名 課程名稱 成績(只顯示每科最高分)

select a.studentid "學? 號",studentname "學生姓名",
subjectname "課程名稱",mark "成? 績"
from student a,subject b,grade c
where a.studentid = c.studentid
and b.subjectid = c.subjectid
and (subjectname,mark)
in (select subjectname "課程名稱",max(mark) "成? 績"
from student a,subject b,grade c
where a.studentid = c.studentid
and b.subjectid = c.subjectid
group by subjectname)

(最高分---分數比我高的學生的人數=0)
select a.studentid "學? 號",studentname "學生姓名",
subjectname "課程名稱",mark "成? 績"
from student a,subject b,grade c
where a.studentid = c.studentid
and b.subjectid = c.subjectid
and (select count(*) from grade
where subjectid = b.subjectid and
mark > c.mark) = 0


第三問:查詢出以下信息

學號 學生姓名 課程名稱 成績 (成績大于60時的顯示及格,小于60時的顯示不及格)

select a.studentid "學? 號",studentname "學生姓名",
subjectname "課程名稱",
decode(sign(mark-60),-1,'不及格','及格') "成? 績"
from student a,subject b,grade c
where a.studentid = c.studentid
and b.subjectid = c.subjectid

第四問:查詢出以下信息

學號 學生姓名 (查詢出課程超過1門以上學生的信息)

select a.studentid "學? 號",studentname "學生姓名",
count(subjectname)
from student a , subject b , grade c
where a.studentid = c.studentid
and b.subjectid = c.subjectid
group by a.studentid,studentname
having count(subjectname) >= 2


-- select * from emp where rownum > 2;?? 錯誤的

?

刪除:
?? 在硬盤上的一個隱含安裝的目錄Programm Files下的ORACLE???



??????????????????????????????????????????????????一、開始前的準備

1.啟動Oracle

??? 啟動監聽服務:OracleOraHome90TNSListener

??? 啟動實例服務:OracleServiceOrac

2.Oracle系統用戶

???? Oracle三大系統用戶

??? 默認用:system/welcome

????超級用戶:sys/welcome?? 權限最大

??? 普通用戶:scott/tiger

?3.登錄Oracle的方式

??? Windows窗口下的sqlplus的操作?? ?運行->sqlplusw.exe?
???? DOS下的sqlplus的操作???????????????運行->?sqlplus.exe????
????
登錄Oracle但不連接數據庫?????????? 運行->sqlplusw /nolog
???? connect 用戶名/密碼@主機連接字符串? 連接到指定用戶

4.Oracle常用操作
show user 查看當前用戶?? select * from tab where tabtype='TABLE'? 查看當前用戶下的表
desc dept???????????? 察看表dept的結構
quit/exit???????????? 退出
clear screen????????? 清除屏幕
set linesize 200????? 設置一行顯示200個字符
set pagesize 20?????? 設置每頁顯示20行
spool 文件名 (spool c:\abc.txt) 作日志文件命令?????????spool off
alter session set nls_date_format = 'yyyy-mm-dd'; 改日期的默認格式
conn /as sysdba???? select * from v$version;查看當前Oracle的版本
conn system/welcome select * from v$tablespace; 查看表空間

5.表空間? 用戶 表三者的關系
?? 一個用戶可以使用一個或多個表空間,一個表空間也可以供多個用戶使用???
?? 用戶和表空間沒有隸屬關系。
?? 表空是一個用來管理數據存儲邏輯概念,表空間只是和數據文件發生關系,數據文件是物理的,
?? 一個表空間可以包含多個數據文件,而一個數據文件只能隸屬一個表空間

??????????????????????????????????????????????????????? 二、常規操作

1.DDL語句(數據定義語言) Data Define Language
?? create? ?alter?? ?drop? ?truncate 開頭的語句 truncate table <表名>
????? 特點:<1>建立和修改數據對象
??????????? ?<2>建立和修改直接存入庫中,直接生效
?創建表空間:Create tablespace Product? datafile 'D:\test\aa.DBF' size 100M
?刪除表空間:Drop tablespace Product

?創建用戶: Create user zhangsan identified by "welcome" default tablespace Product
?修改用戶: Alter? user zhangsan identified by "Hello"
授予用戶連接的權限: ?grant connect to zhangsan;
撤銷用戶連接權限:?? revoke connect?from zhangsan;
授予用戶在表空間創建對象的權限??
grant unlimited tablespace to zhangsan;
grant resource? to zhangsan;??
?????
系統特權:unlimited tablespace表示用戶可以在任意表空間中創建對象,且此權限只能授予用戶而不能授予角色
?????resource角色:給用戶RESOUCE權限后,用戶就擁有在所有表空間上建表權限
授予用戶zhangsan對Emp表增、刪、查、改的權限
grant? select? on scott.empa to y2;
????????? delete
????????? update
????????? insert
????????? all? (=select,delete,update,insert)

with grant option 授予用戶權限,則接受權限的用戶可以將此權限授予其他用戶.
(1).建表,并指定表空間
??示例: Create table tab1
????????? (
???????????? no number(4),
???????????? name varchar2(10)
????????? )tablespace Product;

?學生表? Student
???????Create table student
?????? (?
???????? xh number(4) primary key, --學號
???????? name varchar2(10) not null, --姓名
???????? sex? char(2)? check (sex in ('男','女')),--性別
???????? birthday date,--生日
???????? sal number(7,2), --獎學金
???????? classid number(2) references class(classid) --班級?????????
?????? );
?班級表class
???????? Create table class
???????? (
? ??????? classid number(2), --班級編號
????????? cname varchar2(20) --班級名字
???????? );

?外鍵引用的列一定是主鍵或有unique約束的列
? drop table student;? 刪除表的結構和數據
? delete from student; 只刪除數據,速度慢,數據可以恢復
? truncate table student; 刪除記錄的 速度快 數據不能恢復

? 添加字段(學生所在班級classid)
????? alter table student add (classid number(2));
? 修改字段的長度
????? alter table student modify (xm varchar2(12)) ;
? 修改字段的類型(不能有記錄的)
????? alter table student modify (xh varchar2(5));
? 刪除一個字段
????? alter table student drop column sal;
? 刪除表
????? drop table student;
? 表的名字修改
????? rename student to stu;
? 字段如何改名字
????? --先刪除
????? a)alter table student drop column sal;????????
????? --再添加
????? b)alter table student add (salary number(7,2));

Number數據類型的存儲范圍
精度??? 存儲字節數
1 - 9?????? 5
10-19???? 9
20-28??? 13
29-38??? 17?

???????????????????????? Oracle數據操作語言 DML
接上一篇:
2.?DML語句(數據操作語言) Data Manupilate Language????
?? select
?? insert
?? delete
?? update
???? 特點:<1>對數據起作用的
??????????? <2> 這些語句的修改是在內存中發生的
???????????? 要想改動存入庫中必須要commit語句

查看當前用戶的所有權限
select * from session_privs;
查看當前用戶下的所有表
select * from tab where tabtype='TABLE';


3.?TCL(事務控制語句) Transaction Control Language
? commit;? 提交? 修改保存到數據庫中
? rollback; 回滾? 取消內存中的改動
? savepoint;保存點 分解事務的 把事務變小
?????? DDL語句 會自動提交以前未提交的事務
?????? 關閉SQLplus工具 也會自動提交未提交的事務的
? 事務 -- 就是一個完整的對數據的DML操作
? 所有事務 都是要明確的提交和回滾的
? --轉賬
??? update 賬目表
??? set 錢=錢-500
??? where 帳號='A';
??? update 賬目表
??? set 錢=錢+500
??? where 帳號='B';
??? commit;


??? 事務何時存在 DML語句中除select以外都會有事務
??
《《《《《《《注意》》》》》 / 重復運行上一條SQL語句??

? commit;??? 結束上一個事務 并且開始一個新的事務

? update student set sal = null where xh =1000;

? savepoint c111;
??
? insert into student(xh,name,sex) values (1004,'MIKE','男');

? rollback to c111; --撤銷了插入的數據

? rollback;? --從c111這個點回滾到事務的開始點

《SQLPLUS規則》?
?? a)DML語句后跟上DDL語句 DML語句的事務會被自動提交
?? b)exit/quit命令 退出 SQLPLUS環境時也會自動提交事務
????? 點小叉子關閉sqlplus窗口 事務都自動回滾了
?? c)非法操作是不能提交事務的 ,只能導致事務回滾
?
《4》 DCL語句(數據控制語句) Data Control Language??????????????????? grant 授予權限
???? revoke 撤銷權限
?? 權限 select ,insert,delete,update
??????? all (select ,insert,delete,update 總和)
?? 角色 connect (登陸數據庫),resource(建立表和對象)
??
?? 如何建一個自己的用戶?
???? 必須是超級用戶才能建用戶
???? --連接到超級用戶
???? connect system/manager
???? --建立用戶名zhangsan 密碼m123
???? create user zhangsan identified by m123;
???? --授予必要的權限connect 你能夠連接
??????????????????? resource 你能建表不受空間的限制,建立對象
???? grant connect,resource to zhangsan;
???? --這個普通用戶就建好了 和scott用戶的權限是一樣的?????
???? grant DBA to zhangsan; --張三的權限和System一樣
??
???? --改張三的密碼
??? <<1>> 自己改自己的密碼
??????? connect zhangsan/m123
??????? 密碼改為了mm1?
??????? alter user zhangsan identified by mm1;
??? <<2>> 超級用戶來改
??????? connect system/manager
??????? alter user zhangsan identified by mm1;?


繼續上一篇:

???????????????????????????????????????????????????????????????給表添加約束
?? 主鍵約束 --? 每個表要有主鍵,唯一的標識一行數據
?? 非空約束
?? 唯一性約束
?? 外鍵約束
?? 檢查約束

查看一個表的約束:
?????
select constraint_name,constraint_type
????? from user_constraints
??????where table_name = '表名'

查看約束作用于那個字段:
???? select * from user_cons_columns
??? ?where CONSTRAINT_NAME='約束名;

??1.建立表的同時使用約束
??????? create table student( --學生表
?????????? xh number(4) primary key, --學號主鍵
?????????? xm varchar2(10) not null, --姓名不能為空
?????????? sex char(2)? check (sex in ('男','女')), --性別
?????????? birthday date unique, --日期
?????????? sal number(7,2) check (sal between 500 and 1000),--獎學金 sal >=500 and sal <=1000
?????????? classid number(2) references cla(id)
??????? );? --必須要先有cla表才對
??????????? --一定先建立班級cla表
?2.建立約束的同時給約束指定名字,便于刪除
???????
create table stu( --學生表
????????? xh number(4) constraint pk_stu primary key, --學號是主鍵
????????? xm varchar2(20) constraint nn_stu not null, --姓名非空
????????? age number(2) constraint ck_stu check (age between 10 and 90),
????????? birthday date,
????????? shenfenzheng number(18) constraint uq_stu unique, --身份證唯一?
????????? classid number(2) constraint fk_stu references cla(id) -- 班級編號外鍵
?????????? --(引用的一定是另外表的主鍵或唯一性約束的字段)
???????? );
3.建完表后加約束
添加主鍵約束:alter table student add constraint pk_stu primary key (xh);
添加非空約束:alter table student modify (xm not null);
檢查約束:
alter table student add check(sex in ('男','女'));
alter table student add constraint ck_sal check(sal between 500 and 1000));
添加外鍵約束:??? alter table student add constraint fk_stu? foreign key (classid) references cla(id);
添加唯一約束:? alter table student add constraint? uq_sfz unique(shenfenzheng);
4.刪除約束:
? 格式:alter table 表名 drop constraint 約束名

??? ?alter table student drop constraint? fk_stu;

?
?????????????????????????????????????????? SQL函數
單行函數: 返回值只有1個,可以出現在Select字句或Where字句中
分組函數: 返回值是多條記錄

一。單行函數:
?? 1.ASCII
返回與指定的字符對應的十進制數;
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;

??????? A???????? A????? ZERO???? SPACE
--------- --------- --------- ---------
?????? 65??????? 97??????? 48??????? 32

? 2.CHR
??? 給出整數,返回對應的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;

ZH C
-- -
趙 A

3.CONCAT
連接兩個字符串;
SQL> select concat('010-','88888888')||'轉23'? 高乾競電話 from dual;

高乾競電話
----------------
010-88888888轉23

?

4.INITCAP
返回字符串并將字符串的第一個字母變為大寫;
SQL> select initcap('smith') upp from dual;

UPP
-----
Smith

5.INSTR(C1,C2,I,J)
在一個字符串中搜索指定的字符,返回發現指定的字符的位置;
C1??? 被搜索的字符串
C2??? 希望搜索的字符串
I???? 搜索的開始位置,默認為1
J???? 出現的位置,默認為1
SQL> select instr('oracle traning','ra',1,2) instring from dual;

?INSTRING
---------
??????? 9

6.length???? 返回字符串的長度;
7.LOWER??? 返回字符串,并將所有的字符小寫
8.UPPER????? 返回字符串,并將所有的字符大寫

9.RPAD和LPAD(粘貼字符)
RPAD? 在列的右邊粘貼字符
LPAD? 在列的左邊粘貼字符
SQL> select lpad(rpad('gao',10,'*'),17,'*')from dual;

LPAD(RPAD('GAO',1
-----------------
*******gao*******
不夠字符則用*來填滿


10.LTRIM和RTRIM
LTRIM(字符串,值)? 刪除字符串左邊指定的值
RTRIM(字符串,值)? 刪除字符串右邊指定的值
11.SUBSTR(string,start,count)
取子字符串,從start開始,取count個
12.REPLACE('string','s1','s2')
string?? 希望被替換的字符或變量
s1?????? 被替換的字符串
s2?????? 要替換的字符串
13.SOUNDEX
返回一個與給定的字符串讀音相同的字符串
SQL> create table table1(xm varchar(8));
SQL> insert into table1 values('weather');
SQL> insert into table1 values('wether');
SQL> insert into table1 values('gao');

SQL> select xm from table1 where soundex(xm)=soundex('weather');

XM
--------
weather
wether

14.ROUND和TRUNC
按照指定的精度進行舍入
SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;

ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ ----------- ------------
???????? 56????????? -55????????? 55????????? -55

15.Least('表達式1','表達式2','表達式3')? 返回一組表達式中的最小值
16.TO_NUMBER? 將給出的字符轉換為數字
17.TO_DATE(string,'format') 將字符串轉化為ORACLE中的一個日期
18.NEXT_DAY(date,'day')?? 給出日期date和星期x之后計算下一個星期的日期
19..MONTHS_BETWEEN(date2,date1) 兩個日期相差的天數
20.Decode(字段1,值1,結果1,值2,結果2...,默認值)
21.nvl(表達式1,表達式2) 表達式1為NULL,返回表達式2;不為NULL,返回表達式1。注意兩者的類型要一致
22.nvl2(a,b,c)?
表達式1不為NULL,返回表達式2;
?????????????為NULL .返回表達式3。表達式2和表達式3類型不同的話,表達式3會轉換為表達式2的類型
23.nullif (expr1, expr2) ->相等返回NULL,不等返回expr1

分組函數
? AVG([{DISYINCT|ALL}]) distinct去掉重復的數據 all所有數據
? Max
?SUM
?Count? 計數函數
?? count(*)? 統計所有的行,包括重復的值和空值
?? count(col_name) 統計列中非空值的個數
?? count(distinct col_name) 統計列中除去空值和重復值的行數

分析函數:
?? 作用:用于完成對聚集的累計排名,移動平均數和報表計算。
?????????? 分析函數是查詢中執行的最后一組操作,只能出現在select列表或order by 字句
?row_number() over([Partition by column] order by column)? 返回唯一排序值select

按工資排名:
?ename,job,deptno,sal,row_number() over(order by sal desc) as A from empa;

按部門分組再按工資排名?
select ename,job,deptno,sal,row_number() over(Partition by deptno order by sal desc) as A from empa

rank() 計算一個值在一組值中的排位,排位從1開始,相等值的行排位相同,序數跳躍相應值.

?? select ename,sal,comm,deptno,rank() over(partition by deptno order by sal desc) from empa;
dense_rank() 計算一個行在一組有序行中的排位,排位從1開頭的連續整數,具有相等值,排位相同。排位是連續的。
select d.dname,e.ename,e.sal,dense_rank() over(partition by e.deptno order by e.sal desc) denserank
from empa a,dept d where e.deptno=d.deptno

繼續上一篇

???????????????????????????????????????????????1.?? 序列
查詢當前用戶下的序列:select * from user_sequences
定義:用來生成唯一、連續的整數的數據庫對象,序列通常用來自動生成主鍵或唯一鍵的值、可升、可降序排列.
語法:??? Create? sequence 序列名稱???//從1開始 每次自動增加1 沒有最大值
???????????? [star with 值]? 指定要生成的第一個序列號,對于升序默認值為最小值、反之...
???????????? [increment? by 值]?? 間隔數
???????????? [maxvalue? 值|nomaxvalue]? 序列最大值,如果指定為nomaxvalue,則升序最大值為10的27次方,降序-1.
???????????? [minvalue??? 值|nominvalue]? 序列最小值,-----------------------升序為1,降序為10的負26次方
???????????? [cycle|nocycle]?? cycle指序列到達最大或最小時,將從頭開始生成值? nocycle值不在生成
???????????? [cache? 值|nocache]? 預先分配一組序列號,將其保存在內存中. 默認緩存20個序列

訪問序列方法:? currval 和nextval?? --當前序列 select 序列名.currval from dual
更改序列:Alter sequence 序列名
刪除序列:drop sequence 序列名
注意-------------序列使用時需要先用nextval輸出完以后再來使用
使用:
? 1.和表關聯作為表的字段的值
???? a) create table student(
????????? xh number(4) primary key, --學號
????????? xm varchar2(20) not null --姓名
??????? );

??????? 要求:學號字段 從1000開始每次增加4 最大值9999
???????? --建立序列
?????????? create sequence xh_seq
????????????????? start with 1000 --從1000開始
????????????????? increment by 4? --每次增加4
????????????????? maxvalue 9999?? --最大值 9999
????????????????? ;
???????? --使用SQL語句關聯
???????? insert into student values
???????????? (xh_seq.nextval,'Mike');
???????? insert into student values
???????????? (xh_seq.nextval,'John');
???????? insert into student values
???????????? (xh_seq.nextval,'Rose');
????
????? --特點:能產生唯一的值,但是不能保證值在表中的連續性
?
?? b) create table teacher(
?????????? teacherxh varchar2(10) primary key,
?????????? teachername varchar2(20)
????????? );
???? 要求:教師的編號的格式是TH00001
???????????????????????? TH00002
????????????????????????? ....
?????
?? --建立序列
??????? create sequence teacher_seq
????????????? maxvalue 99999;
?? --
???? insert into teacher values ('TH'||
?????? ltrim(to_char(teacher_seq.nextval,'00000')),
?????? '張三');
?????? insert into teacher values ('TH'||
?????? ltrim(to_char(teacher_seq.nextval,'00000')),
?????? '李');
????? insert into teacher values ('TH'||
?????? ltrim(to_char(teacher_seq.nextval,'00000')),
?????? '王');
??????????????????????????????????????????????????????????????2.視圖
查看當前用戶下的視圖:select view_name from user_views;
作用:隱藏數據,增加系統的安全性
語法:Create [or replace] [Force|noForce] veiw 視圖名 [(別名1,別名2...)]
???????? AS 子查詢
???????? [with check option [constraint 約束名]]
???????? [with read only]??視圖是只讀的
?其中:or replace 表示替代已經存在的視圖
???????? force 表示不管基表是否存在,創建視圖
???????? ?noforce 表示只有基表存在時,才創建視圖.
???????? 別名是為子查詢中選中的列新定義的名字,替代查詢表中原有的列名。
???????? with check option 對視圖操作時必須滿足子查詢的約束條件。后面的約束名是該約束條件的名字
?????????刪除視圖者需要是視圖的建立者或者擁有DROP ANY VIEW權限。視圖的刪除不影響基表,不會丟失數據
對視圖操作需滿足以下條件:
??????????<1>建立視圖的select語句必須是簡單的select語句
?????????????? 簡單:不能是多表的查詢
??????????????????? 不能有分組函數
?????????? <2>建立視圖的時候不能帶with readonly關鍵字
例:

Code
create?or?replace?view?emp_v2?
?
as?--select語句
??select?empno,ename,sal?from?emp?
??
with?read?only;??--只讀視圖

??????????????????????????????????????????????????????????????? 3.同義詞
查看用戶創建的同義詞:select * from user_synonum;
定義:數據庫對象的一個別名
用途:1.簡化SQL
??????? 2.隱藏對象名稱和所有者
????????3.為分布式數據庫的遠程對象提供了位置透明度
??????? 4.提供對象的公共訪問
注意:使用同義詞前需要確保用戶得到訪問同義詞的權限
同義詞分為:
?1.私有同義詞? --只能被當前用戶模式訪問? 要在自身模式下創建須 Create synonum 權限
?2.共有同義詞? --須Create any synonym權限
語法: Create [or replace] [public]?synonym 同義詞名稱 for 要創建同義詞對象的名稱
?????????????????????????????????????????????????????????????????4.索引
作用:加快查詢? 索引一定是建立在表上的.
語法:Create Index?索引名 on?表名(列名)
創建唯一索引: Create unique?Index 索引名 on 表名(列名)
創建位圖索引: Create bitmap Index 索引名 on 表名(列名)
數據的不同值對于記錄的行數來說 是個很小的數 ?這種字段適合使用位圖索引 它比普通索引效率高
不能用索引的條件:
<1>規則1:索引的字段不能參與運算
<2>規則2:索引的字段上不能使用函數?
????????????????????????????????????????????????????????????? 5.簇
定義:用于多表聯合查詢,提高數據查詢效率
1.簇的創建必須在創建表結構時指定
2.如果使用簇,則兩個表必須要有主外鍵關系
簇的使用步驟:
1.創建簇??? Create cluster 簇名稱(字段名 數據類型);
2.創建主鍵表使用簇
Create table depa (
??? deptno number(2) primary key,
??? dname varchar2(20)
?) cluster?簇名(deptno);
3.創建外鍵表使用簇
Create table?empa(
?? empno number(4) primary key,
?? ename varchar2(20)
?? ) cluster 簇名(empno)
4.在簇上建立索引
Create Index??索引名?on?cluster 簇名

繼續上篇的學習
???????????????????????????????????????????????????? Oracle性能對象
要點:分區必須是在創建表的結構時指定,分區方式一旦指定是不能改變的。
分區方式:
1 范圍分區
2 散列分區
3復合分區
3列表分區
表分區的優點:
一、改善表的查詢性能
二、表更容易管理,表的數據存儲在多個部分,按分區加載和刪除數據更快
三、便于備份和恢復
四、提高數據安全性
-----------注意:要分區的表不能具有Long和Long raw數據類型
范圍分區:根據表的某個列或一組列的值范圍,決定將數據存儲在那個分區

Code
create?table?niegc_part
?(
?part_id?
integer?primary?key,
?part_date?date,
?part_dec?
varchar2(100)
?)
?partition?
by?range(part_date)--根據日期分區
(
??partition?part_01?
values?less?than(to_date('2006-01-01','yyyy-mm-dd'))?tablespace?dw1,

?partition?part_02?
values?less?than(to_date('2007-01-01','yyyy-mm-dd'))?tablespace?dw2,

??partition?part_03?
values?less?than(maxvalue)?tablespace?dw1

?);

?

散列分區
??? ? 散列分區通過指定分區編號來均勻分布數據的一種分區類型,因為通過在I/O設備上進行散列分區
,使行這些分區大小一致。如將part_id的數據根據自身的情況散列地存放在指定的二個表空間中:

Code
create?table?niegc_part
(
part_id?
integer?primary?key,

part_date?date,

part_dec?
varchar2(100)

)

partition?
by?hash(part_id)

(

partition?part_01??tablespace?dw1,

partition?part_02??tablespace?dw2

);
--系統將按part_id將記錄散列地插入二個分區中,這里也就是二個不同的表空間中。


復合分區:范圍分區和散列分區的結合

Code
--語法
???partition?by?range(列1)
???subpartition?
by?hash(列2)
???subpartition?分區數目?
[tore?in?(表空間1,表空間2)]
???(
??????partition??part1?
values?less?than?(值1),
?????partition??part2?
values?less?than?(maxvalue)
????)
--例:對emp表的復合分區,先按薪資分再按部門分
????partition??by?range(sal)
???subpartition?
by?hash(empno)
???(
?????partition?p1?
values?less?than('1501')
???????(
??????????subpartition?sp1?tablespace?a1,
??????????subpartition?sp2?tablespace?a2
???????)
?????partition?p2?
values?less?than('3001')
???????(
??????????subpartition?sp3?tablespace?a1,
??????????subpartition?sp4?tablespace?a2
???????)

???)
--查看表分區?select?*?from?emp?partition(p1)
????????????select?*?from?emp?subpartition(sp1)


列表分區:允許用戶明確地控制行到分區的映射

Code
--語法
????partition??by?list(列名)
???(
???????partition?part1?
values(值1),
???????partition?part2?
values(值2),
???????partition?part3?
valuesdefault)
??
--default關鍵字用于存儲前面的分區不能存儲的記錄
??)

??????????????????????????????????????????????????????? 分區的維護操作
1.添加分區
??? alter? table Table add partition 分區名 values less than (值)
?? 如果邊界是maxvalue 使用split partition語句
??? alter table Table split? partition 分區名 at (值)

2.刪除分區
??? alter table Table drop partition 分區名

3.截斷分區 (只刪除記錄,不刪除結構)
??? alter table Table truncate partition 分區名

4.合并分區?
??? alter table Table merge partitions p1,p2 into partition p2

5.拆分分區
??? alter table Table split partition 分區1 at (值) into(partition 分區1,partition 分區2)

6.移動分區
??? alter table Table move partition 分區 tablespace(表空間名)

繼續上篇的學習

?????????????????????????????????????????????????????????????? PL/SQL簡介
?? PL/SQL(Procedural Language Sql,過程語言|SQL)是結合了Oracle過程語言和結構化查詢語言(SQL)的一種擴展語言.
?? PL/SQL塊是一段后臺服務程序,它負責將數據從數據庫中取出來,在PL/SQL塊中進行處理,將處理的結果送到數據庫.
優點:

? 1,支持SQL
? 2,支持面向對象編程(OOP)
? 3,更好的性能
? 4,可移置性
? 5,與SQL集成?--支持所有SQL數據類型和Null值?,另%type? %rowType屬性類型更加強了這種集成
? 6,安全性

PL/SQL塊包括3個部分:
1,聲明部分??? --變量,游標,自定義異常, 局部子程序
2,可執行部分?? --執行命令,可嵌套子塊
3,異常處理部分

Code
?1PL/SQL塊
?2??declare
?3
?4??begin
?5???--SQL語句
?6???--直接寫的SQL語句(DML/TCL)
?7???--間接寫execute?immediate?<DDL/DCL命令字符串>?
?8???--select?語句
?9?????????<1>必須帶有into子句
10?????????????select?empno?into?eno?from?emp
11???????????where?empno?=7369;
12????????<2>只能查到一行**********
13????????<3>字段個數必須和變量的個數一致
14??exception??--異常
15????when?<異常名字>?then?--特定異常
16????????<處理語句>
17????when?others?then??--所有異常都可捕獲
18????????<處理語句>???
19??end;
20

語言特征:
<1>,大小寫不敏感
<2>,復合符號的含義
?? :=?? 賦值操作符?? ||連接操作符??..范圍操作符? **求冪操作符?《,》標簽分隔符??? --單行注釋? /*,*/多行注釋
<3>聲明變量?? --變量名? 數據類型 :=值? 例: varA? varchar2(10):='聲明變量';
<4>聲明常量?? --變量名 constant 數據類型 := 值??
---------------- 技巧:初始化變量和常量時,保留字default可替換:=賦值操作符--------------
<5>屬性類型
?? %type?? --引用某個變量或數據庫列的數據類型來聲明變量
?? %rowType? --提供表示表中一行的記錄類型
<6>控制結構
?? a,條件控制? if? then??或???? if? then? else? ?或????if? then? elsif?? 或???? case
?? b,循環控制 loop
????????????????? while????????????? exit或exit when退出
??????????????????for
?? c,順序控制? Goto??????????? ?Null語句
?語法示例:

Code
??1--PL/SQL?簡單語法
??2
??3Begin
??4??null;??
??5End;
??6/
??7
??8Declare
??9??varA?number(4);
?10Begin
?11??varA?:=?1234;
?12??DBMS_output.put_line(varA);
?13End;
?14/
?15
?16Declare
?17??varA?number(4);
?18Begin
?19??varA?:=?1234;
?20??DBMS_output.put_line(varA);
?21??Declare
?22????varB?number(4):=2234;
?23??Begin
?24????DBMS_output.put_line(varA);
?25????DBMS_output.put_line(varB);
?26??End;
?27??DBMS_output.put_line(varB);
?28End;
?29/
?30
?31Declare
?32??varA?number(4);
?33??varB?number(4):=2234;
?34Begin
?35??varA?:=?1234;
?36??DBMS_output.put_line(varA||'??'||varB);
?37End;
?38/
?39Begin塊?注意事項:
?40--?數據定義語言不能直接執行
?41Begin
?42??drop?table?depta;
?43End;
?44/
?45
?46--?select不能直接執行
?47select??--必須使用select?into?形式,只能且必須返回一行
?48Declare?
?49??varE?empa%rowType;??--與表的一行類型一樣
?50??vno?empa.empno%type;??--?與表的某列類型一樣
?51Begin
?52??vno?:=?7902;
?53??select?*?into?varE?from?empa?where?empno?=?vno;
?54??DBMS_output.put_line(?varE.ename||'??'||varE.job);
?55End;
?56/
?57
?58inset??--可以直接執行
?59Declare
?60??vno?empa.empno%type;
?61??vna?empa.ename%type;
?62??vjob?empa.job%type;
?63Begin
?64??vno?:=?1236;
?65??vna?:=?'Wing';
?66??vjob?:=?'MANAGER';
?67??insert?into?empa?(empno,ename,job)?values(vno,vna,vjob);
?68End;
?69/
?70
?71delete?--可以直接執行
?72Declare
?73??vno?empa.empno%type;
?74Begin
?75??vno?:=?5555;
?76??delete?from?empa?where?empno?=?vno;
?77End;
?78/
?79
?80
?81update?--可以直接執行
?82Declare
?83??vno?empa.empno%type;
?84??rsal?empa.sal%type;
?85Begin
?86??vno?:=?1236;
?87??rsal?:=?100;
?88??update?empa?set?sal?=?nvl(sal,0)?+?rsal?where?empno?=?vno;
?89End;
?90/
?91
?92?--事物控制語言可以直接執行
?93Declare?
?94??vno?empa.empno%type;
?95??rsal?empa.sal%type;
?96Begin
?97??vno?:=?1236;
?98??rsal?:=?100;
?99??update?empa?set?sal?=?nvl(sal,0)?+?rsal?where?empno?=?vno;
100??commit;
101End;
102/
103
104?--?數據安全語言(DCL)不能直接執行
105Begin
106??grant?connect?to?scott;
107End;
108/


??例子:

Code
題:編寫程序?向DEPT表中插入一條記錄,
????從鍵盤輸入數據,如果
????數據類型輸入錯誤要有提示
????無法插入記錄?也要有提示
????只能輸入正數,如果有負數提示?
???
declare
????n?
number;
????no?dept.deptno
%type;
????nm?dept.dname
%type;
????lc?dept.loc
%type;
????
exp?exception;???--用戶定義的變量
????exp1?exception;???--用戶定義的變量
????num?number:=0;???--計數器
?????pragma?exception_init(exp,-1);?--預定義語句
????--捆綁Oracle內置異常(-1錯誤和異常變量關聯),-1?主鍵沖突
????pragma?exception_init(exp1,-1476);除零異常
????e1?exception;?
--用戶定義的變量
???begin
????
--輸入值
??????no?:=?'&編號';
?????num?:
=?num?+?1;
?????
if?no?<?0?then
????????raise?e1;????
--自定義異常的引發
??????end?if;

?????nm?:
=?'&名稱';
?????num?:
=?num?+1;

?????lc?:
=?'&地址';??
?????num?:
=?num?+1;

?????n?:
=?10?/0;?????

?????
insert?into?dept?values?(no,nm,lc);
?????num?:
=?num?+1;
?????
commit;

???exception
?????
--自定義異常
?????when?e1?then
????????dbms_output.put_line(
'編號不能為負數');?
?????
--數據類型不對
?????when?value_error?then?
????????
if?num?=0?then??
?????????dbms_output.put_line(
'編號數據類型不對');?
????????elsif?num?
=?1?then
?????????dbms_output.put_line(
'名稱數據類型不對');?
????????elsif?num?
=2?then
?????????dbms_output.put_line(
'地址數據類型不對');?
????????
end?if;
????????
rollback;
?????
--主鍵沖突
?????when?exp?then
?????????
--sqlcode全局變量?異常錯誤號
?????????--sqlerrm全局變量?異常的文字信息??
?????????--dbms_output.put_line('異常的編號:'||sqlcode);
?????????--dbms_output.put_line('異常的內容:'||sqlerrm);
?????????--dbms_output.put_line('編號已存在')?;
?????????rollback;
?????
--非預定義異常(關聯錯誤號)?
?????when?exp1?then
????????dbms_output.put_line(
'0做了除數')?;?
?????????raise_application_error(
-20001,'0做了除數');?
?????????
--引起一個自定義的錯誤
???????????--預先保留-20001?到?-29999編號
?????????rollback;?
?????
--其他的異常?
?????when?others?then
?????????dbms_output.put_line(
'異常的編號:'||sqlcode);
?????????dbms_output.put_line(
'異常的內容:'||sqlerrm);
????????
--?dbms_output.put_line('出現錯誤');
?????????rollback;
???
end;??

轉載于:https://www.cnblogs.com/wayne-ivan/archive/2009/02/23/1396514.html

總結

以上是生活随笔為你收集整理的从零开始学习Oracle—安装及删除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

最近最新中文字幕视频 | 在线观看av麻豆 | 亚洲国产99 | 国产一区二区在线播放视频 | 国内精品久久久久久久久久久久 | 国产精品久久久久一区 | 国产精品福利小视频 | 福利电影一区二区 | 国产精品原创av片国产免费 | 亚洲精品在线电影 | 黄色视屏在线免费观看 | 一区二区三高清 | 中文字幕在线观看的网站 | 99久免费精品视频在线观看 | 日三级在线 | 国产精品色在线 | 91你懂的 | 97人人澡人人爽人人模亚洲 | 亚洲人视频在线 | 国产三级香港三韩国三级 | 亚洲黄色a | 国产精品久久久久久久久久免费 | 亚洲综合丁香 | 四虎国产精品成人免费影视 | 青青网视频 | 久久免费的精品国产v∧ | 91九色视频在线播放 | 国产免费一区二区三区网站免费 | 国产一级大片在线观看 | 免费看片日韩 | 99视频导航 | 久久精品这里热有精品 | 青春草免费在线视频 | 911久久香蕉国产线看观看 | 开心丁香婷婷深爱五月 | 久久视频精品 | 国产99久久久欧美黑人 | 亚洲综合色视频 | 国产精品都在这里 | 国产在线高清 | 六月丁香婷| 美国人与动物xxxx | 激情五月***国产精品 | 日日夜操 | 黄色成人av网址 | 久久艹99| 热久久99这里有精品 | 久99久精品| 国产精品门事件 | 色婷婷 亚洲| 一区二区三区在线免费播放 | 在线综合 亚洲 欧美在线视频 | 91麻豆精品91久久久久同性 | 久久夜色精品国产欧美乱极品 | 久久免费精品 | 免费麻豆 | 国内三级在线观看 | 色av婷婷 | 操高跟美女 | 日韩av有码在线 | 久久精彩视频 | 亚洲成人av片在线观看 | 国产精品都在这里 | 亚洲精品国产成人 | 夜夜夜夜爽 | 精品一区中文字幕 | 91在线免费视频观看 | 欧美日韩中文字幕视频 | 久久久久国产精品免费免费搜索 | 婷婷日日| www.五月激情.com | 91成人在线免费观看 | 97人人模人人爽人人喊网 | 国产精品成人免费精品自在线观看 | 五月天国产精品 | 丁香花在线观看视频在线 | 久久久91精品国产一区二区精品 | 国产福利午夜 | 亚洲一区二区三区四区在线视频 | 蜜臀av夜夜澡人人爽人人桃色 | 激情视频在线观看网址 | 国产成人久久av免费高清密臂 | 久久国色夜色精品国产 | 黄色资源网站 | 精品国产1区| 久久免费的视频 | 一区二区伦理电影 | 日韩一级电影在线观看 | 韩国精品在线 | 国产理论影院 | 能在线观看的日韩av | 欧美日韩一区二区三区免费视频 | 精品五月天 | 香蕉在线播放 | 久久综合电影 | 日韩欧美xx | 国产精品视频在线观看 | 黄色av电影 | 国产超碰在线观看 | av网址最新| 在线va网站 | 久草在线观 | 亚洲欧美日韩国产一区二区三区 | 久久久久久久久久免费 | 亚洲综合导航 | 97在线观看视频国产 | 欧美激情第一页xxx 午夜性福利 | 国产无吗一区二区三区在线欢 | 亚洲精品一区二区久 | 1000部18岁以下禁看视频 | 黄色在线看网站 | 天天操操操操操操 | 99久久精品无免国产免费 | 国产美女主播精品一区二区三区 | 人人看人人草 | av在线一二三区 | 天天干天天摸天天操 | 国产精品久久久久久久av大片 | 超碰97在线资源站 | 伊人中文字幕在线 | 在线播放第一页 | 久久精品综合网 | 国产麻豆精品95视频 | 成人片在线播放 | 精品视频在线看 | 超碰资源在线 | 国产又粗又猛又黄又爽视频 | 午夜视频在线观看一区二区三区 | 国产高清av免费在线观看 | 亚洲成人精品av | 一区在线电影 | 婷婷5月色 | 在线观看av网 | 久久久国产精品一区二区中文 | 久久96国产精品久久99漫画 | 国产精品黄色 | 国产福利一区二区在线 | 99精品在线观看 | 在线视频观看你懂的 | 欧美91成人网 | 婷婷在线视频 | 免费一级特黄毛大片 | 日日夜夜免费精品视频 | 日本乱码在线 | 久久一级电影 | 特级毛片网站 | 91麻豆网| 亚洲高清在线精品 | 日本少妇视频 | 天天操天天弄 | 狠狠色丁香九九婷婷综合五月 | 日韩成人免费电影 | 2019中文 | av中文字幕网 | 91免费试看 | 天天干夜夜想 | 天天天干天天射天天天操 | 美女网站在线 | 久草在线视频看看 | 中文字幕 国产视频 | 亚洲精品国产精品99久久 | 日日操网 | 国产黄视频在线观看 | 在线草| 免费瑟瑟网站 | 日韩免费电影在线观看 | 天堂网av在线 | 国产免费人人看 | 日韩一二三 | 亚洲乱码国产乱码精品天美传媒 | 久久人人97超碰精品888 | 日韩三区在线观看 | 五月天婷婷在线观看视频 | 精品国产一区二区三区久久久 | 亚洲精品五月天 | 久久综合激情 | 亚洲va男人天堂 | 日产中文字幕 | 国产精品成人一区二区三区吃奶 | www成人av | 国产精品 日韩精品 | 国产成人一区二区三区免费看 | 日韩极品在线 | 1000部18岁以下禁看视频 | 黄污在线观看 | 久久视频免费 | 四虎影视成人永久免费观看亚洲欧美 | 国内精品久久久久影院男同志 | 婷婷伊人综合亚洲综合网 | 在线视频婷婷 | 日本动漫做毛片一区二区 | 五月婷婷在线播放 | 亚洲一级片av | 日韩黄色大片在线观看 | 日韩精品在线播放 | 亚洲视频每日更新 | 麻豆传媒视频在线免费观看 | 亚洲欧洲视频 | 九九有精品 | 精品在线视频观看 | 久久精品国亚洲 | 色噜噜在线观看 | 91视频最新网址 | 国产xxxx做受性欧美88 | 欧美xxxxx在线视频 | 91 在线视频 | 中文字幕在线播放日韩 | 日韩欧美高清一区二区三区 | 91成人精品在线 | 激情小说网站亚洲综合网 | 在线看日韩av | 激情欧美丁香 | 亚洲第五色综合网 | 中文字幕乱码日本亚洲一区二区 | 在线免费成人 | 四虎免费av | 91精彩视频在线观看 | 欧美人zozo | 国内外成人免费在线视频 | 亚洲视屏在线播放 | 成人综合婷婷国产精品久久免费 | 久久国产精品视频 | 天天射天天操天天干 | 免费av大片 | 中文字幕在线视频网站 | 久久艹在线观看 | 久久97精品| 国产一区二区网址 | 欧洲精品在线视频 | 亚洲伊人第一页 | 中文在线免费观看 | 日韩成年视频 | 最新一区二区三区 | 三上悠亚一区二区在线观看 | www久久精品 | 日韩伦理片hd | 国产人在线成免费视频 | 俺要去色综合狠狠 | 91av视频在线观看 | 亚洲欧美婷婷六月色综合 | 日韩精品久久久久久久电影99爱 | 日韩免费高清 | 99视频国产在线 | 成人毛片一区 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品三级视频 | 日韩在线观看影院 | 在线观看国产亚洲 | 精品二区久久 | 美女视频黄网站 | 亚洲永久精品视频 | 亚洲伊人色 | 在线播放国产一区二区三区 | 国产成人精品av久久 | 国产一级性生活 | 成人久久电影 | 麻豆 videos | 欧美日韩国产一区二区三区在线观看 | 免费亚洲视频在线观看 | 欧美极品一区二区三区 | 国产 日韩 欧美 自拍 | 国产高清精 | 成人黄色大片在线免费观看 | 中文字幕在线观看免费高清电影 | 亚洲精品综合欧美二区变态 | 国产人成免费视频 | 欧美在线观看禁18 | 国产视频日本 | 国产一级在线观看 | 9999亚洲 | 日韩一级电影在线观看 | 国产九九精品视频 | 人人射人人爱 | 色婷婷激情电影 | 亚洲 欧美日韩 国产 中文 | 日本xxxxav | 亚洲精品一区二区网址 | 婷婷免费在线视频 | www.久久色.com | 玖玖在线播放 | 9999激情 | 精品一区二区亚洲 | 一区 二区电影免费在线观看 | 亚洲精品久久久蜜桃 | 久久久黄视频 | 在线你懂 | 久久成人毛片 | 最新99热 | 九热在线 | 91在线精品一区二区 | 视频成人永久免费视频 | 四虎天堂| 69性欧美| 久久99婷婷 | 在线免费黄 | 成人免费xyz网站 | 久久久久看片 | a级片韩国| 亚洲视频免费 | 国产+日韩欧美 | 日韩综合视频在线观看 | 91视频免费看 | 日本系列中文字幕 | 伊人婷婷综合 | 深爱婷婷激情 | 国产精品国产三级国产专区53 | av手机在线播放 | 97在线观看视频免费 | 天堂av在线| 91视频在线网址 | 亚洲精品国产麻豆 | 91最新地址永久入口 | 在线 日韩 av | 888av| 日韩一区在线播放 | 玖玖综合网 | 93久久精品日日躁夜夜躁欧美 | 国产一级不卡视频 | 国产在线观看地址 | 九九色综合 | 久久久精品一区二区 | 久草在线欧美 | 免费精品人在线二线三线 | 久久中文字幕在线视频 | 懂色av一区二区三区蜜臀 | 99精品视频中文字幕 | 免费亚洲黄色 | 91av原创| 免费看搞黄视频网站 | h动漫中文字幕 | 91片黄在线观看动漫 | 日黄网站| 国产女人18毛片水真多18精品 | 欧美性猛片,| 久久久久久久久久久久久久免费看 | 久久久久婷 | 一区二区三区日韩视频在线观看 | 免费精品国产 | 五月天av在线| www.色的| 日韩av影片在线观看 | 日韩毛片精品 | 人人人爽 | 久久激情五月婷婷 | 久久久久国产成人免费精品免费 | 亚洲精品国产高清 | 狠狠狠狠狠狠狠 | 日本中文字幕高清 | 中文字幕精品一区久久久久 | 中文字幕在线观看不卡 | 久久一区二区三区日韩 | 日韩av免费观看网站 | 久久天堂精品视频 | 精品国产自在精品国产精野外直播 | 成人资源在线 | 91伊人久久大香线蕉蜜芽人口 | 亚洲成人午夜av | 激情视频一区 | 深夜免费小视频 | 精品国产aⅴ一区二区三区 在线直播av | 亚洲综合射 | 午夜色大片在线观看 | 亚洲一区二区精品 | 九九在线高清精品视频 | 亚洲人成精品久久久久 | 欧美成人tv | 中中文字幕av| 日韩一级片大全 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产精品美女久久久网av | 在线激情电影 | 久久国产区 | 亚洲视频h| 国产伦精品一区二区三区在线 | 一区精品久久 | 国产福利精品视频 | 99在线观看视频 | 丁香婷婷激情五月 | 日本性视频 | 日韩高清dvd| 免费日韩电影 | 亚洲91精品 | 免费看黄色91 | 日韩精选在线 | 91九色成人| 国产成人在线精品 | 日本中文字幕在线电影 | 人人爽人人香蕉 | 婷久久 | 伊人狠狠干| 这里只有精品视频在线 | 久久综合加勒比 | 在线免费精品视频 | 国产精品免费视频网站 | 欧美日韩后 | 中文字幕无吗 | www.天天成人国产电影 | 亚洲伦理一区二区 | 欧美淫aaa免费观看 日韩激情免费视频 | 欧美日韩一区二区三区视频 | 国产精品igao视频网网址 | 国产黄色片免费观看 | 国产精品久久久久一区二区三区 | 国产高清视频色在线www | 午夜影院一级 | www免费视频com━ | 亚洲高清资源 | 久久久麻豆精品一区二区 | 午夜视频在线观看网站 | 狠狠久久| 久久久久综合精品福利啪啪 | 99国内精品 | 99亚洲精品在线 | 成人久久18免费网站麻豆 | 在线你懂的视频 | 在线看一区二区 | 日本在线精品视频 | av看片网址| 天天草天天干 | 伊人国产视频 | 综合激情av| 久久天堂影院 | 开心激情五月婷婷 | 亚洲国产视频直播 | 精品在线亚洲视频 | 成人在线黄色 | 亚洲第一区在线观看 | 精品国产乱码久久久久久1区二区 | 成人黄性视频 | 狠狠干成人 | 天天色宗合 | 欧美日韩精品在线视频 | 成年人免费电影在线观看 | 亚洲精品在线免费 | 日韩在线中文字幕视频 | 美州a亚洲一视本频v色道 | 正在播放一区二区 | 国产成人一区二 | 欧美一级久久久久 | 免费观看日韩av | 午夜精品中文字幕 | 五月婷婷视频在线 | 国产成人精品亚洲精品 | 色婷婷综合久久久中文字幕 | 中文字幕精品www乱入免费视频 | 久久久毛片 | 国产精品免费在线观看视频 | 欧美日韩国产二区三区 | 久久久国产精品麻豆 | 久久中文精品视频 | 丁香花中文字幕 | 69热国产视频 | 人人精久 | 亚洲精品系列 | 中文在线免费观看 | 国产精品一区二区三区四 | 国产在线a视频 | 午夜在线看 | 日本mv大片欧洲mv大片 | 久久久久国产精品免费免费搜索 | 一区二区伦理电影 | 国产一区在线免费观看视频 | 天天综合操 | 探花视频在线观看免费 | 国产999精品视频 | sesese图片 | 96国产在线 | 日韩av中文字幕在线免费观看 | 日韩理论 | .精品久久久麻豆国产精品 亚洲va欧美 | 狠狠干干| 成人黄色视 | 天天射天天操天天 | 精品视频免费久久久看 | 久久精品国产美女 | 综合国产在线 | 欧美日韩国产一区二区在线观看 | 特级西西444www大精品视频免费看 | 色偷偷网站视频 | 日韩三级在线 | 最近日本韩国中文字幕 | 欧美精品国产综合久久 | 综合久久久久 | 欧美analxxxx| 久久视频在线 | 国产精品自产拍在线观看中文 | 亚洲第五色综合网 | 国产精品九九九九九九 | 日本性高潮视频 | 久久成人精品视频 | 中文字幕在线视频一区二区 | 国产超碰97 | 人人草在线观看 | 色99在线 | 欧美精品久久久久久久久免 | 国产亚洲精品成人av久久影院 | 黄色精品久久 | 国产va饥渴难耐女保洁员在线观看 | 美女网站在线观看 | 又粗又长又大又爽又黄少妇毛片 | 一区二区三区免费 | 亚洲综合网 | 国产在线超碰 | 四虎8848免费高清在线观看 | 久久激情婷婷 | 亚洲欧洲在线视频 | 成年人在线播放视频 | 欧美日韩三级在线观看 | 日韩精品一区在线播放 | 91日韩在线| 久久久久欠精品国产毛片国产毛生 | 在线激情av电影 | 亚洲成a人片77777潘金莲 | 日本乱码在线 | 精品国产乱码久久久久久浪潮 | 啪啪资源 | 久久久成人精品 | 亚洲精品乱码久久久久久蜜桃动漫 | www.av小说 | 欧美成人一区二区 | 国产高清免费视频 | 丁香五月亚洲综合在线 | 欧美日韩性生活 | 日本特黄一级片 | 亚洲最新视频在线 | 免费av的网站 | 99精品视频免费全部在线 | 国产精品岛国久久久久久久久红粉 | 日韩中文字幕电影 | av在线电影网站 | 超碰免费av | 亚洲精品乱码白浆高清久久久久久 | 人人干人人干人人干 | 日韩在线一二三区 | 69国产精品视频免费观看 | 欧美亚洲免费在线一区 | 久久激情五月婷婷 | 精品一区二区亚洲 | www国产一区| 久草视频免费在线观看 | 国产精品自拍在线 | 黄色av影院 | www.神马久久 | 丁香狠狠| 日b黄色片 | 公与妇乱理三级xxx 在线观看视频在线观看 | 日韩欧美在线观看一区二区 | 国产香蕉视频在线观看 | 国产高清在线一区 | 91免费版成人 | 国产中文字幕在线观看 | 99中文字幕 | 欧美精品一区二区免费 | 久久综合久久综合九色 | 国产麻豆精品一区二区 | 中文字幕免费久久 | 在线免费观看视频你懂的 | 不卡的av在线播放 | 成人永久免费 | 日韩免费高清在线观看 | 丁香六月天 | av在线一| 久久久精品国产免费观看同学 | 天天天天天天天天操 | av一级在线观看 | 在线天堂8√ | 日韩有码在线观看视频 | 免费在线观看日韩视频 | 久久首页 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 中文字幕一区二区在线观看 | 天天天干天天射天天天操 | 久99热| 国产成人一区二区三区电影 | 国产成人精品免费在线观看 | 成人免费在线观看av | 在线日韩av | 久久免费电影网 | 日本精品一区二区三区在线播放视频 | 国产精品久久久久久久久久久不卡 | 一区精品在线 | 亚洲伦理一区 | 国产精品久久久久影视 | 国产精品久久久久久久久蜜臀 | 日韩a在线 | 欧美乱熟臀69xxxxxx | 国偷自产视频一区二区久 | 特黄一级毛片 | 欧美男男tv网站 | 欧美精品久久久久久久 | 免费看三级 | 九九99视频| 一区二区不卡高清 | 欧美日韩一区二区三区在线免费观看 | 久久精品香蕉视频 | www狠狠操| 欧美性性网 | 91精品婷婷国产综合久久蝌蚪 | 久久亚洲在线 | 在线视频欧美亚洲 | 亚洲精品中文在线观看 | 日韩视频中文 | 精品久久久久亚洲 | 亚洲精品久久久蜜桃直播 | 51久久成人国产精品麻豆 | 免费看久久 | 91免费观看 | 午夜av电影院 | 色五月激情五月 | 欧美永久视频 | 久草精品视频在线播放 | 一级片免费观看视频 | 91麻豆精品国产91久久久久久 | 亚洲精品视频免费 | 精品毛片在线 | 91在线观看黄| 很黄很污的视频网站 | 国产精品视频内 | 91av在线视频播放 | 91久久黄色 | 成人免费在线视频观看 | 91av观看| 色先锋av资源中文字幕 | 精品影院一区二区久久久 | 91桃花视频 | 色爽网站 | 国产精品麻豆欧美日韩ww | 视频在线观看国产 | 日韩中文在线电影 | 亚洲日韩中文字幕在线播放 | 久久99热这里只有精品国产 | 国产在线观看网站 | aa一级片| 久精品视频在线观看 | 久久精品一区二区三 | 天天做夜夜做 | 在线观看的av网站 | 麻豆视频国产精品 | 99国产精品久久久久久久久久 | 久久av伊人 | 性色av一区二区 | av综合av| 日本高清免费中文字幕 | 午夜精品久久久久久久久久久久 | 香蕉久久国产 | 天天天干夜夜夜操 | 国产精品对白一区二区三区 | se婷婷| 欧美成人精品欧美一级乱黄 | 久久综合影音 | 久久久国产在线视频 | 手机av在线不卡 | a级成人毛片 | 波多野结衣电影一区二区三区 | 四虎永久免费在线观看 | 久久国产精品免费 | 17videosex性欧美 | 天天操天天操天天操天天 | 久久免费视频这里只有精品 | 欧美一进一出抽搐大尺度视频 | 久久人人97超碰精品888 | 天天操天天干天天综合网 | 亚洲涩综合 | 日本少妇高清做爰视频 | 免费观看av | 麻豆91精品视频 | 日本中文字幕久久 | 国产精品v a免费视频 | 成片免费观看视频大全 | av一区二区三区在线播放 | 天天骚夜夜操 | 久久久精选 | 深爱五月激情五月 | 97在线影视 | 久久不射网站 | 久久99免费观看 | 久久综合五月婷婷 | 免费成人结看片 | 黄色网大全 | 91麻豆精品国产91久久久久 | 麻豆传媒视频在线 | 4438全国亚洲精品在线观看视频 | 亚洲国产高清在线 | 日韩一级片大全 | 国产精品乱码在线 | 久久国产影视 | 日本黄网站 | 欧美va天堂在线电影 | 日本精品视频在线播放 | 午夜国产福利在线 | 日韩.com | 丁香六月综合网 | 中文永久免费观看 | 美女黄久久 | 香蕉在线视频观看 | 911精品视频 | 色婷婷综合久久久久中文字幕1 | 国产精品免费一区二区三区在线观看 | 国产日本亚洲高清 | 色先锋av资源中文字幕 | 伊人伊成久久人综合网小说 | 高清国产午夜精品久久久久久 | 四虎在线观看网址 | 亚洲高清在线 | 五月婷婷综合在线观看 | 中文字幕一区二区三区精华液 | 天堂av在线免费观看 | 91精品视频在线观看免费 | 99久久电影 | 五月婷婷丁香六月 | 成年免费在线视频 | 久久精品一区二区三区国产主播 | av免费网站在线观看 | 免费看搞黄视频网站 | 亚洲免费a | 午夜精品久久久久久久久久 | 黄色小说视频在线 | 日韩在观看线 | 综合久久网 | 天天色综合天天 | a在线观看国产 | 青草视频网 | 在线观看中文字幕一区二区 | 在线观看av不卡 | 91久久一区二区 | 成人资源在线播放 | 国产高清视频在线播放一区 | 国产资源网| 欧美aa在线 | 成人动图| 婷婷久操| 91麻豆精品国产91久久久更新时间 | 在线播放一区二区三区 | 国产精品久久久久久久久久了 | 大型av综合网站 | 国产原创在线 | 青青河边草免费直播 | 色综合天天综合网国产成人网 | 国产成人精品免费在线观看 | 欧美成人播放 | 97成人在线视频 | 九色最新网址 | 日本动漫做毛片一区二区 | 很黄很黄的网站免费的 | 激情欧美网| www.888.av | 国产精品自产拍在线观看蜜 | 亚洲欧美经典 | 国产精品欧美久久久久天天影视 | 亚洲午夜激情网 | 婷婷丁香在线 | 婷婷丁香激情网 | 五月婷婷久久丁香 | 在线观看免费成人 | 夜夜骑天天操 | 国产精彩视频一区二区 | 一区二区 精品 | 夜夜嗨av色一区二区不卡 | 国产在线中文字幕 | 中文字幕精品三级久久久 | 国产又黄又爽又猛视频日本 | 国产伦精品一区二区三区免费 | 福利一区视频 | 99亚洲国产 | 亚洲精品在线一区二区三区 | 一区二区在线影院 | av福利在线导航 | 黄色大片视频网站 | 日韩 国产 | 久草国产在线观看 | 色婷婷综合久久久中文字幕 | 最新日韩在线观看 | 最近中文字幕在线播放 | av在线电影播放 | 午夜精品久久久久久久99水蜜桃 | 99热这里精品 | 91亚洲精品乱码久久久久久蜜桃 | 亚洲视屏在线播放 | 色综合天天狠天天透天天伊人 | 国产精品久久久久久久免费观看 | 国产精品电影一区二区 | 精品国产一区二区三区在线 | 国内外成人在线 | 国产午夜在线 | 国产一级一片免费播放放 | 麻豆影视网 | 精品久久久久久久久久久久久久久久 | 国产一区二区三区在线免费观看 | 国产永久免费高清在线观看视频 | 国产一区福利在线 | 精品国产一区二区三区久久久 | 久草视频免费在线观看 | 日本久久中文字幕 | 一区二区精品 | 丁香六月激情婷婷 | 丁香五月缴情综合网 | 一区中文字幕在线观看 | 亚洲欧美国产精品va在线观看 | 91免费网| 久久综合色综合88 | 99久久久国产免费 | 中文字幕免费 | 91久久偷偷做嫩草影院 | 色婷婷久久 | 国产一区免费在线观看 | 中文在线字幕观看电影 | 国产中文字幕免费 | 中文在线www| 久久av免费| 国产视频九色蝌蚪 | 国产又粗又猛又爽又黄的视频免费 | av免费在线观看网站 | 国产福利在线免费观看 | 国产亚洲精品电影 | 波多野结衣一区二区 | 国产精品免费小视频 | 天天搞天天 | 成人精品视频 | av线上看| 黄色的视频网站 | 狠狠干夜夜操 | 日韩专区在线播放 | 一级片视频在线 | 五月天综合网站 | 久久成熟 | 男女视频国产 | 亚洲精品久久久久58 | 国内亚洲精品 | 国产精品福利无圣光在线一区 | 在线观看一 | 亚洲国产精品成人女人久久 | 欧美日本不卡高清 | 婷婷丁香在线视频 | 欧美日产在线观看 | 久久国产欧美日韩 | 91麻豆国产福利在线观看 | 在线成人欧美 | 日本黄色免费播放 | 日日干日日 | 91精品在线观看视频 | 激情av资源网 | 国产高清在线永久 | 又紧又大又爽精品一区二区 | 五月综合 | 久久精品国产亚洲 | 97超级碰碰碰碰久久久久 | 国产福利久久 | 韩国在线一区二区 | www.夜色.com| 久久久污 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 久久精品香蕉视频 | 欧美激情一区不卡 | 色婷婷激情 | 制服丝袜一区二区 | 国模视频一区二区 | 99久久久久久久久久 | 69久久99精品久久久久婷婷 | 成人一区不卡 | 日韩激情久久 | 国产专区日韩专区 | av先锋影音少妇 | 欧美视频在线观看免费网址 | 中文字幕色婷婷在线视频 | 开心激情网五月天 | 天天操月月操 | av在线影视 | 日韩网站在线免费观看 | 中文字幕在线观看网 | 国内精品久久久久久中文字幕 | 成人蜜桃网 | 五月婷婷六月丁香在线观看 | 麻豆手机在线 | 亚洲精品国偷拍自产在线观看 | 日韩在线观看a | 丁香九月激情 | 五月婷婷一区 | 免费观看性生交 | 免费观看久久久 | 欧美激情xxxx | 欧美性脚交 | 久久中文网 | 亚洲精品国偷自产在线91正片 | 午夜三级毛片 | 色全色在线资源网 | 香蕉影视app| 国产在线日本 | 久久久麻豆精品一区二区 | 麻花豆传媒mv在线观看网站 | 日本久久电影网 | 黄色日本片 | 日韩精品一区二区三区第95 | 亚洲精品国产第一综合99久久 | 欧美日韩电影在线播放 | 国产一二三精品 | 中文字幕一区二区三区久久蜜桃 | 国产精品第一视频 | 国产成视频在线观看 | 美女av免费看 | 亚欧洲精品视频在线观看 | 岛国大片免费视频 | 在线免费观看国产视频 | 999热视频 | 精品国产一区二区三区四区在线观看 | 亚洲人xxx| 国产精品久久精品 | 成人免费在线视频观看 | 在线观看免费成人av | 亚洲精品成人在线 | 亚州av网站大全 | 香蕉在线视频播放网站 | 国产资源| 亚洲经典视频 | 中文字幕精品在线 | 日韩精品在线观看av | 毛片网在线 | 久久9999久久免费精品国产 | 黄色软件大全网站 | 韩日视频在线 | 午夜黄色 | 欧美天天射 | 国产精品99久久久 | 96av麻豆蜜桃一区二区 | 91网站免费观看 | 成人午夜电影网站 | 精品国产一区二区三区久久久蜜月 | 亚洲资源一区 | www免费在线观看 | av一本久道久久波多野结衣 | 伊人久久av | 国产麻豆果冻传媒在线观看 | 国产精品 日本 | 国产精品欧美久久久久无广告 | 在线观看深夜视频 | 欧美日韩一区二区三区在线免费观看 | 国产专区视频 | 日韩av中文字幕在线免费观看 | 狠狠躁夜夜躁人人爽视频 | 最新日韩在线 | 麻豆成人在线观看 | 国产在线2020 | 欧美日韩在线视频一区二区 | 91久久精品日日躁夜夜躁国产 | 天天干夜夜操视频 | 欧美另类xxx | 午夜精品视频福利 | 亚洲免费视频观看 | 精品一二三四在线 | 欧美伦理一区二区 | 欧美天天干 | 夜夜骑天天操 | 天天色天天搞 | 国产亚洲va综合人人澡精品 | 久久电影国产免费久久电影 | 一区二区三区在线视频观看58 | 欧美va日韩va | 亚洲在线激情 | 中文在线最新版天堂 | 91精品久久久久久久久久入口 | 国产高清不卡 | 九九久久久久久久久激情 | 亚洲高清网站 | 免费观看黄 | 日韩最新理论电影 | 亚州av免费 | 亚洲欧洲视频 | 国产精品久久久久999 | 美女av免费看| 国产在线国产 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 久久久夜色 | 成人av中文字幕在线观看 | 国产区精品在线 | 最近2019好看的中文字幕免费 | 天天综合久久 | 日韩精品中文字幕在线不卡尤物 | 九九热免费精品视频 | 免费人成网| 欧美中文字幕第一页 | 黄色av电影 | 久久欧美精品 | 在线观看久 | 中文字幕第一页在线视频 | 2023国产精品自产拍在线观看 | 国产手机在线精品 | 2020天天干夜夜爽 | 91网在线 | 国产第一页福利影院 | 91高清免费在线观看 | 久久99久久久久久 | 久久视频在线看 | 在线观看国产v片 | 国产精品美女999 | 欧美夫妻性生活电影 | 日韩精品在线看 | 91爱爱视频 | 亚洲精品玖玖玖av在线看 | 91日本在线播放 |