久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

ORACLE數據庫學習心得大全

時間:2019-05-12 06:52:02下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《ORACLE數據庫學習心得大全》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《ORACLE數據庫學習心得大全》。

第一篇:ORACLE數據庫學習心得大全

ORACLE數據庫結課論文

一個好的程序,必然聯系著一個龐大的數據庫網路...今年我們學習了 oracle數據庫這門課程,起初的我,對這個字眼是要多陌生有多陌生,后來上課的時候聽一會老師講課,偶爾再跟上上機課,漸漸的學會了不少東西,但我感覺,我學到的仍是一些皮毛而已,懷著疑惑和求知的心態,我在網上搜索了關于 oracle數據庫的一些知識。

1.ORACLE的特點: 可移植性 ORACLE采用C語言開發而成,故產品與硬件和操作系統具有很強的獨立性。從大型機到微機上都可運行ORACLE的產品。可在UNIX、DOS、Windows等操作系統上運行。可兼容性 由于采用了國際標準的數據查詢語言SQL,與IBM的SQL/DS、DB2等均兼容。并提供讀取其它數據庫文件的間接方法。

可聯結性 對于不同通信協議,不同機型及不同操作系統組成的網絡也可以運行ORAˉCLE數據庫產品。

2.ORACLE的總體結構

(1)ORACLE的文件結構 一個ORACLE數據庫系統包括以下5類文件:ORACLE RDBMS的代碼文件。

數據文件 一個數據庫可有一個或多個數據文件,每個數據文件可以存有一個或多個表、視圖、索引等信息。

日志文件 須有兩個或兩個以上,用來記錄所有數據庫的變化,用于數據庫的恢復。控制文件 可以有備份,采用多個備份控制文件是為了防止控制文件的損壞。參數文件 含有數據庫例程起時所需的配置參數。

(2)ORACLE的內存結構 一個ORACLE例程擁有一個系統全程區(SGA)和一組程序全程區(PGA)。

SGA(System Global Area)包括數據庫緩沖區、日志緩沖區及共享區域。

PGA(Program Global Area)是每一個Server進程有一個。一個Server進程起動時,就為其分配一個PGA區,以存放數據及控制信息。

(3)ORACLE的進程結構ORACLE包括三類進程: ①用戶進程 用來執行用戶應用程序的。

②服務進程 處理與之相連的一組用戶進程的請求。

③后臺進程 ORACLE為每一個數據庫例程創建一組后臺進程,它為所有的用戶進程服務,其中包括: DBWR(Database Writer)進程,負責把已修改的數據塊從數據庫緩沖區寫到數據庫中。LGWR(Log Writer)進程,負責把日志從SGA中的緩沖區中寫到日志文件中。

SMON(System Moniter)進程,該進程有規律地掃描SAG進程信息,注銷失敗的數據庫例程,回收不再使用的內存空間。PMON(Process Moniter)進程,當一用戶進程異常結束時,該進程負責恢復未完成的事務,注銷失敗的用戶進程,釋放用戶進程占用的資源。ARCH(ARCHIVER)進程。每當聯機日志文件寫滿時,該進程將其拷貝到歸檔存儲設備上。另外還包括分布式DB中事務恢復進程RECO和對服務進程與用戶進程進行匹配的Dnnn進程等。

3.ORACLE的邏輯結構

構成ORACLE的數據庫的邏輯結構包括:(1)表空間

(2)5種類型的段(segment)

①數據段;②索引段;③回滾(rollbock)段;④臨時段;⑤自舉(bootstrap)段。

段的分配單位叫范圍(Extent)

表空間(Tablespace)一個數據庫劃分成的若干邏輯部分稱為表空間。一個數據庫可以有一個或多個表空間,初始的表空間命名為SYSTEM,每一個邏輯表空間對應于一個或多個物理文件。DBA使用表空間做以下工作: 控制數據庫對象,如表、索引和臨時段的空間分配。為數據庫用戶設置空間配額。

利用個別表空間的在線或離線,控制數據的可用性。后備或恢復數據。

通過分配空間,以改進性能。

在每個數據庫中都存在SYSTEM表空間,它在建立數據庫時自動建立。在該表空間中,包含數據庫的數據字典,其中存儲全部數據庫對象的名字和位置。SYSTEM表空間總是在線的,像其它表空間一樣,可以通過增加新的數據庫文件來擴大。一個表空間可包含許多表和索引。但一個表和索引不能跨越表空間,可跨越組成表空間的文件。在DB的打開的情況下,DBA利用ALTER TABLESPACE語句,可以實施表空間的在線或離線。SYSTEM表空間必須在線。表空間離線有下列原因: 一般為了使部分數據庫不能使用,而允許正常存取數據庫其余部分。執行表空間離線備份。

一個離線的表空間,不能被應用用戶讀或編輯。

可以增加數據文件擴大已有的表空間,也可增加新的表空間使數據庫容量增大,或分配空間給某個應用。使用ALFER TABLESPACE ADD FILE語句將另一個數據文件加入到已存在表空間中。使用CREATE TABLESPACE語句可建立一個新的表空間。段(segment)表空間中的全部數據存儲在以段劃分的數據庫空間中。一個段是分配給數據庫用于數據存儲的范圍的集合。數據可以是表、索引或RDBMS所需要的臨時數據。段是表空間的下一個邏輯存儲的級別。一個段不能跨越一個表空間,但可跨越表空間內的文件。一個數據庫最多需要五種段類型: 數據段 一個包含一個表(或聚集)的全部數據,一個表(或聚集)總有一個單個數據段。

索引段 一個索引段包含對一個表(或聚集)建立的一個索引的全部索引數據。一個表可以有一個、多個或者沒有索引段,取決于它所擁有的索引個數。一個聚集必須至少有一個索引段,即在聚集碼上建立聚集索引。

回滾段 每個DB有一個或多個回滾段。一個回滾段是DB的一部分,它記錄在某一情況下被撤消的動作。回滾段用于事務控制和恢復。

臨時段 在處理查詢時,ORACLE需要臨時工作空間,用于存儲語句處理的中間結果,這個區稱為臨時段。

自舉段 自舉段在SYSTEM表空間中,在數據庫建立時建立。它包括數據字典定義,在數據庫打開時裝入。

4.用戶數據庫對象

由用戶建立的對象駐留在表空間中,含有真正的數據。數據庫對象有表、視圖、聚集、索引、偽列和序號生成器。

(1)聚集(Cluster)聚集是存儲數據的一種可選擇的方法。聚集包括存儲在一起的一組表,它們共享公共列并經常一起使用。由于內容相關并且物理地存儲在一起,存取時間得到改進,存儲空間可以減少。聚集是一種優化措施。

聚集對性能的改進,依賴于數據的分布和SQL操作的內容。特別是使用聚集對連接非常有利。可以明顯地提高連接的速度。建立聚集命令的基本格式: SQL>CREATE CLUSTER〈聚集名〉(列定義[,…]);利用聚集建立表命令基本格式: SQL>CREATE TABLE〈新表名〉(列定義[,…]CLUSTER〈聚集名〉(聚集列);在聚集碼上必須建立一個聚集索引,對于每一數據塊上每個聚集碼值有一索引項。這個索引必須在DML語句對聚集表操作前建立。建立索引的語句是:CREATE INDEX索引名ON CLUSTER聚集名;(2)序號生成器 序號(SEQUENCE)生成器為表中的單列或多列生成順序號。利用序號可自動地生成唯一主碼。使用SQL語句定義序號,給出一些信息(如序號名、是升序或降序、每個序號間的間隔和其它信息)。所有序號存儲在數據字典表中。

所有序號定義存儲在數據字典的SEQUENCE表中。用戶可以通過字典視圖

USER-SE-QUENCES、ALL-SEQUENCES

和DBA-SEQUENCES查詢和存取。建立序號生成器的語句是: CREATE SEQUENCE序號生成器名 其它選項。

一旦序號生成器S被定義。可用S.Currval來引用S序號生成器的當前值。用S.nextval產生下一個新的序號并加以引用。

(3)偽列 偽列的行為像表的一列,但不真正存在于表中,在查詢時可引用偽列,但偽列不能插入、刪除或修改。

5.數據字典

數據字典ORACLE RDBMS最重要的部分之一。數據字典含有一組系統定義的表,只能讀,是關于數據庫的引用指南。它可提供以下信息:ORACLE用戶的用戶名;每個用戶被授予的權限和角色;實體的名字和定義;完整性約束 為數據庫實體分配的空間;通用的數據庫結構;審計信息;觸發子程序等的存儲。數據字典是以表和視圖構成的,像其它數據庫數據一樣,可用SQL語言查詢數據字典。

數據字典在DB建立時建立。每當DB進入操作,數據字典就由ORACLE RDBMS負責修改。數據庫建立時有兩個默認DBA用戶:SYS、SYSTEM。SYS持有基本表中的數據。數據字典包含一組基表和相關的視圖,可分為以下幾類: 類

描 述

DBA-××× 只有DBA可存取的視圖,給出數據庫中定義的任何實體的信息

USER-××× 對任何用戶可用的視圖,給出他們自己的實體的信息

ALL-×××

對任何用戶可用的視圖,給出用戶可存取的所有實體的信息

其中×××代表表名或視圖名

下面列出的是一些常用的表或視圖的名稱。(1)DTAB 描述了組或數據字典的所有表。(2)TAB 用戶建的所有基本表、視圖和同義詞。(3)COL 用戶創建基本表的所有列的信息。

(4)SYNONYMS 用戶可存取的同義名詞、專用名和公用名。(5)CATALOG 用戶可存取的表、視圖、同義詞、序列。(6)CONSTRAINTS 用戶可存取的約束。(7)INDEXES 用戶可存取的表和聚集的序列。(8)OBJECTS 用戶可存取的對象。(9)TABLES 用戶可存取的表。(10)USERS 查看當前全部用戶。(11)VIEWS 查看用戶可存取的視圖。

(12)SYSTABAUTH 用戶對數據對象的使用權限。可以用SQL>SELECT*FROM〈字典表名或視圖名〉WHERE〈條件〉來讀取有關信息。

可以用SQL>DESCRIBE〈表名〉來查看表的結構定義。但是數據庫字典的結構不可改。用DESCRIBE命令還可以查看視圖及過程的定義。

6.ORACLE的SQL、PL/SQL與SQL*PLUS 作為ORACLE數據庫核心的SQL語言是ANSI和ISO的標準SQL的擴充。用來存儲、檢索和維護數據庫中的信息,并控制對數據庫的存取事務。由于RDBMS執行SQL語句時,是一次只執行一條語句,它是非過程化的。這就使得單條的SQL語句使用方便,功能強大。用戶只需說明操作目的,不必關心具體操作的實現方法。

但在實際數據庫應用開發中,往往要依據前一步對數據庫操作的結果或上一個事務提交的情況來確定下一步的操作。故ORACLE推出了一種PL/SQL工具,它擴充了SQL語句,使之具有可進行過程化編程的能力,如循環、分支功能。PL/SQL可支持變量和常量的使用。例如在SELECT查詢語句的where子句中可以使用變量來書寫條件表達式。SQL*PLUS是ORACLE用來存儲、查詢、操縱、控制和報告數據庫中信息的一個交互式工具。它是一種集編輯、調試、運行于一體的開發環境。在SQL*PLUS的這種運行環境下,既可以使用SQL命令、PL/SQL語句、及SQL*PLUS自己提供的命令,又可以運行由上述三類命令(或語句)編輯而成的命令文件。SQL*PLUS提供的附加命令主要用來編輯、運行上述三類命令及命令文件和對查詢結果進行格式化輸出等功能。

7.數據庫系統的管理

ORACLE作為一個大型的數據系統,通常包含很多用戶的數據。在應用開發過程中,有許許多多的各類人員進行開發和應用。所以必須要求有人對數據庫系統進行臨時管理,并進行數據的備份等工作。這種人被稱為數據庫管理員(Data Base Administrator)。他們必須理解數據庫系統管理,清楚數據庫包含的數據內容、運行狀況等。

一般說來,DBA不是指具體的人,而是指對數據庫可以行使DBA特權的用戶。DBA具有如下責任:(1)ORACLE服務器和客戶工作站軟件的安裝和升級;(2)創建基本的數據庫存儲結構(表空間);(3)創建基本的數據庫客體(表、視圖、索引);(4)修改數據庫結構;(5)給用戶授權,維護系統安全;(6)控制和管理用戶對數據庫的訪問;(7)監視和優化數據庫的性能;(8)計算數據庫信息的后備和恢復;(9)后備和恢復數據庫;(10)構造ORACLE服務器,如創建數據庫鏈、客體同義詞等。而應用開發人員須完成:(1)應用程序設計;(2)應用的數據庫結構設計和修改;(3)為DBA提供必要的信息;(4)完成應用程序的開發。

看了許多關于ORACLE的知識論壇,總算是對ORACLE有個整體的認識,不僅僅是拘泥于課堂上學習的知識而已,雖然自己對ORACLE學習并不是多么的透徹,但是總歸多接觸點新的東西總是好的。

這一個學期,也是臨近畢業的時候了,很感謝賈老師的嚴格要求,讓我在學習上有了很大的進步,同時也改掉了一些惰性,能積極的投入到學習中去了,不懂就大膽的問同學,請學習好的同學幫助講解,最后,真心的祝福賈老師工作順利,身體健康!

第二篇:Oracle數據庫實驗報告

中南林業科技大學

實驗報告

課程名稱:

Oracle數據庫 專業班級: 姓名:

學號:

****年**月**日

實驗一

安裝和使用Oracle數據庫

【實驗目的】

1.掌握Oracle軟件安裝過程,選擇安裝組件 2.掌握建立Oracle數據庫,配置網絡連接 3.掌握Oracle企業管理器的基本操作 4.使用SQL*Plus,登錄到實例和數據庫 5.掌握命令方式的關閉和啟動實例及數據庫 【實驗內容】

1.查看已安裝的Oracle組件

2.查看服務,記錄下和數據庫有關的服務名,將他們設為手動方式,啟動相關服務。

3.配置監聽器,查看是否在服務中有LISTENER,是否能啟動。4.配置本地net服務,提示:設置正確的服務器地址和端口號。5.打開SQL*Plus,用SYS和SYSTEM用戶名和密碼登錄。6.思考題:有幾種打開SQL*Plus的方法?分別是什么? 7.用命令關閉實例和數據庫,記錄命令

8.用命令以NOMOUNT的方式啟動實例,再加載數據庫,打開數據庫。

【實驗結論】

1.查看已安裝的Oracle組件

2.查看服務,記錄下和數據庫有關的服務名,將他們設為手動方式,啟動相關服務。

3.配置監聽器,查看是否在服務中有LISTENER,是否能啟動。

4.配置本地net服務,提示:設置正確的服務器地址和端口號。

5.打開SQL*Plus,用SYS和SYSTEM用戶名和密碼登錄。

6.思考題:有幾種打開SQL*Plus的方法?分別是什么?(1)直接打開 sql plus 即窗口方式(2)cmd 命令行方式

(3)WEB 頁面中 iSQL*Plus 方式 7.用命令關閉實例和數據庫,記錄命令 SQL>shutdown immediate

8.用命令以NOMOUNT的方式啟動實例,再加載數據庫,打開數據庫。

sql>startup nomount sql>alter database mount;sql>alter database open;sql>startup

(1).用SQLplus 命令:show parameters參數名

(2).用select [列名] from 表名

2.初始化文件有幾種?默認的保存位置在哪里?

初始化文件有三種:數據文件,日志文件,控制文件; 默認的保存位置E:oracleproduct10.2.0oradataorcl

4.打開OEM,查看三類物理文件信息

三類物理文件:數據文件、控制文件、日志文件 數據文件:.DBF存儲表、索引及數據結構信息

日志文件:.LOG記錄對數據庫的所有修改信息,用于恢復

控制文件:.CTL二進制文件,記錄數據庫名、文件標識、檢查點

5.分別用select命令查詢V$parameter動態性能視圖,用show命令查看全局數據庫名、實例名、是否啟動自動歸檔、標準數據塊大小這四個參數的值,記錄命令和結果。用select命令查詢V$parameter動態性能視圖

用show命令查看全局數據庫名、實例名

用show命令查看是否啟動自動歸檔、標準數據塊大小

6.如何用命令查看數據文件、控制文件的文件名、存儲位置和狀態信息?

(1).查看數據文件的文件名、存儲位置和狀態信息

(2).查看控制文件的文件名、存儲位置和狀態信息

0

和服務器型文件都要找到),查看各類默認位置并記錄下來(包括物理文件所在目錄,該數據庫相關的各個目錄等),登錄到mydb數據庫。

2.用命令方式手工創建數據庫testorcl

(1)創建批處理文件,建立必需的各級目錄,參考第一題MYDB數據庫的默認目錄。

(4)運行數據庫建立腳本,更改相關服務為手動啟動方式

(5)運行數據字典等創建腳本

3.在DBCA中刪除MYDB數據庫。

Enter valuefor 4:runner Specify log path as parameter 5: Enter valuefor 5: D:oracleproduct10.2.0db_2RDBMSlog

二、完成下面的查詢,記錄查詢命令和結果。1.查詢HR方案種有哪些表,列出表名 2.設置行寬為160,每頁行數為40 3.查詢employees表中所有薪水在3000到6000元之間的員工編號、姓、名、受聘日期、工作代號、薪水、經理代號、部門號,按部門號升序排列,同一部門按員工編號降序排列

4.查詢每個部門的人數、平均薪水、最高薪水、最低薪水,按部門編號升序排列

5.查詢first_name的第三個字母是t的員工編號,first_name,電話號碼,部門編號,部門名稱

6.在job_history表中查詢任職時間超過1年的員工編號,任職歷時月份(保留整數),工作代號,部門代號。

7.查詢每個部門經理的員工編號、姓名、薪水、部門號。

【實驗結論】

一、需要訪問HR示例方案中的表,如果機器上沒有該示例方案,則運行相關包和相應配置裝入HR方案。

1.將hr.rar解壓到D:oracleproduct10.2.0db_2demoschema human_resources目錄下,然后在SQL*PLUS 中執行 hr_main.sql

二、完成下面的查詢,記錄查詢命令和結果。1.查詢HR方案種有哪些表,列出表名

5.查詢first_name的第三個字母是t的員工編號,first_name,電話號碼,部門編號,部門名稱

738

實驗五

PL/SQL編程

【實驗目的】

1.熟悉PL/SQL的數據類型和書寫規則 2.熟悉控制結構和游標的使用 3.編寫和運行函數、過程和觸發器 【實驗內容】

編寫腳本文件,調試運行腳本文件,并記錄結果。

1.在SQL*Plus中編寫一個PL/SQL塊,功能用于打印學生信息 在DECLARE部分完成:

(2)建立學生信息記錄類型stu_record_type,包括學號,姓名,性別,籍貫,學習成績和活動成績。均為可變長字符類型(3)編寫本地子過程:學生信息打印過程PrintStuRecord,把(1)中定義的記錄類型作為參數(4)定義學生信息記錄變量stu_record 在BEGIN…END部分完成:

(1)為stu_record變量的各個元素賦值如下: 學號:‘2001001’ 姓名:’李新’

性別:‘m’

籍貫:‘黑龍江省哈爾濱市’ 學習成績:‘Excellent’

0

(1)建立學生信息記錄類型stu_record_type,包括學號,姓名,性別,籍貫,學習成績和活動成績。均為可變長字符類型

set serveroutput on declare type stu_record_type is record

(s_no varchar2(8), s_name varchar2(10), s_sex varchar2(2), s_address varchar2(20), s_studyscore varchar2(10), s_activescore varchar2(10));(2)編寫本地子過程:學生信息打印過程PrintStuRecord,把中定義的記錄類型作為參數

procedure PrintStuRecord as begin dbms_output.put_line('學號:'|| stu_record.s_no);dbms_output.put_line('姓名 :'|| stu_record.s_name);dbms_output.put_line('性別:'|| stu_record.s_sex);dbms_output.put_line('籍貫:'|| stu_record.s_address);dbms_output.put_line('學習成績:'|| stu_record.s_studyscore);dbms_output.put_line('活動成績:'|| stu_record.s_activescore);end PrintStuRecord;(3)定義學生信息記錄變量stu_record stu_record stu_record_type;在BEGIN…END部分完成:

(4)為stu_record變量的各個元素賦值如下: 學號:‘2001001’ 姓名:’李新’

性別:‘m’

籍貫:‘黑龍江省哈爾濱市’

2.建立對bookinfo表的DML觸發器,一旦bookinfo表發生了任何變化,立即觸發,對bookinfo表的數據進行統計,結果存儲在數據統計表中

(1)如果沒有則建立bookinfo表,選擇建立在scott用戶下,表結構為(bookno varchar2(36)Primary key, bookname varchar2(40)not null, authorname varchar2(10)not null, publishtime date, bookprice float)

create table bookinfo(bookno varchar2(36)Primary key,4

Selectcount(bookno),count(distinct authorname)from bookinfo;end;/

(4)在bookinfo表中插入、刪除和更新信息,再查看major_stats表中數據的變化 <1>插入

647

實驗六

模式對象管理與安全管理

【實驗目的】

1.了解模式對象的類型

2.掌握在OEM中操作模式對象的方法

3.掌握命令方式建立表、視圖、索引等常見對象的方法 4.熟悉Oracle中權限分類和設置,理解系統提供用戶的角色和權限

5.熟練使用建立用戶、角色,為用戶授權、授予角色的命令

【實驗內容】

1.創建一個TESTUSET用戶,密碼為test,默認表空間為user表空間

2.創建用戶后為其授予登錄數據庫和創建數據庫對象的權限 3.用TESTUSER用戶登錄數據庫

4.創建學生信息表(學號,姓名,性別,入學成績),定義主鍵和輸入數據(至少5條數據),提交添加的數據。并完成下面的題目:

(1)再繼續添加2條數據,設置一個保存點savepoint,再添加1條數據,執行回退到保存點的回退命令。查看此時表中數據(2)查詢入學成績大于480的學生信息(3)建立男生信息視圖

(4)在“成績”字段上建立B-樹索引

5.創建一個表簇,名為empl_dep,容納empl表和dep表,有公

第三篇:Oracle數據庫總結范文

創建表及命名規則?

表名和列名:

必須以字母開頭 必須在1–30個字符之間

必須只能包含A–Z, a–z, 0–9, _, $, 和# 必須不能和用戶定義的其他對象重名 必須不能是Oracle 的保留字 Oracle默認存儲是都存為大寫

增刪改查語法?

增加: 例如:使用INSERT語句往customers表中插入數據,指定相關列和值 INSERT INTO customers(customer_id, first_name, last_name, dob, phone)VALUES(6, 'Fred', 'Brown', '01-1月-1970', '800-555-1215');

如果為表所有列都指定值,那么可以忽略列清單

INSERT INTO customersVALUES(6, 'Fred', 'Brown', '01-1月-1970', '800-555-1215');

可以使用NULL為某些列指定空值

INSERT INTO customersVALUES(8, 'Sophie', 'White', NULL, NULL);

查詢:select * fromcustomers;或者select字段 fromcustomerswhere條件 刪除:deletefromcustomerswhere條件

更改:update customersset name = 'xiaoming',age = ‘16’(更改多個字段時候用逗號隔開)where 條件

對查詢結果進行排序?

語句:select * fromcustomersorderby字段 desc;

(asc(升序),desc(降序)如果不寫,默認升序)

NULL值了解么?

NULL值表示未知的值。它是一個特殊的值,但并不是空字符串,NULL值表示該列是未知的。當某些查詢語句在輸出結果列上看不到值的時候,可能就是NULL值

NVL()和NVL2():

NULL值被查詢出來的時候沒有顯示信息,如何告知用戶這是空字符串還是NULL,這可以通過NVL()函數來進行處理

NVL(x,value)是有value顯示本身,null顯示為替換的value NVL2(x,value1,value2)是如果x不為NULL值,返回value1,否則返回value2 例程:

select name,nvl2(email,'已知','未知')from student;【代碼含義:代表如果email字段中有值,則顯示已知,null則顯示未知,如果想顯示本來的查詢結果select name,nvl(email,'未知')from student;】 update student set name = replace(name,'小','大');【代碼含義:代表將STUDENT表中NAME 字段中如果含有小字,那么就將小字替換為大字(操作的不是顯示結果,而是將表中數據進行更改)】

Oracle中的簡單函數?

字符串函數

? concat:將x和y拼接起來,并返回新字符串

例程:

select concat(first_name,'-'||last_name)姓名 from customers;? Instr字符查找,從1開始。

select instr('asdbcrdbewqrbmde','b')from dual;select instr('asdbcrdbewqrbmde','b',5,2)from dual;【代表從第5個字符開始,第二個b所在的位置】

? Ltrim : LTRIM(x,[trim_string])從x字符串左側去除所有的trim_string字符串,如果沒有指定trim_string字符串,則默認為去除左側空白字符

? Rtrim RTRIM(x,[trim_string])從x字符串右側去除所有的trim_string字符串,如果沒有指定trim_string字符串,則默認為去除右側空白字符 ? Trim TRIM(trim_string FROM x)從x字符串兩側去除trim_string字符串

? Replace REPLACE(x, search_string, replace_string)從字符串x中搜索search_string字符串,并使用replace_string字符串替換。用select執行并不會修改數據庫中原始值,但是用update執行可以修改。

? Substr SUBSTR(x, start,[length])返回字符串中的指定的字符,這些字符從字符串的第start個位置開始,長度為length個字符;如果start是負數,則從x字符串的末尾開始算起;如果length省略,則將返回一直到字符串末尾的所有字符

例程:

select substr('abcd月fg',4,2)from dual;(結果:d月)select substr('abcdefg',-2)from dual;(結果:fq)

日期函數

? Sysdate 例程:

Selectsysdatefromdual;

Select to_char(sysdate, 'yyyy-mm-dd-hh-mm-ss')from dual;

? Add_months(d1,n1)? last_day():

轉換函數

? To_char TO_CHAR(x,[ format])將x轉化為字符串。format為轉換的格式,可以為數字格式或日期格式

select to_char(sysdate,'yyyy-mm-dd')from dual;【一般在查詢時候使用,使返回的值成為指定格式】

? to_date TO_DATE(x,[format])將x字符串轉換為日期

insert into student values(seq_stu.nextval,'小明',to_date('1992-2-18','yyyy-mm-dd'),default,'北京',null);【一般在添加使用】 返回所查詢的值中最后一個日期數據。

聚合函數

? Avg:平均數 ? Sum:求和 ? Max:最大值 ? Min:最小值 ? Count:返回統計的行數 ? Round:四舍五入

例程:

select round(avg(bid),1)from bug;分組了解么?

有時需要對表中的行進行分組,然后統計每組的信息,可以使用GROUP BY進行分組,然后再對每組進行統計。

(1)可以使用GROUP BY對多個列進行分組

例:

SELECT product_id, avg(customer_id)FROM purchases GROUP BY product_id;

(2)可以對分組后的行使用聚集函數,聚集函數會統計每組中的值,對于每組分別統計后返回一個值 例:

SELECT

product_type_id,BY

COUNT(ROWID)FROM

BY

productsGROUP product_type_id;注意:

product_type_idORDER a)如果查詢中使用了聚集函數,被查詢的列未使用聚集函數處理,那么這些列必須出現在GROUP BY子句后,否則,會提示ORA-00937錯誤

b)不能使用聚集函數作為WHERE子句的篩選條件,否則,會提示ORA-00934錯誤

c)可以使用HAVING子句過濾分組后的行

SELECT...FROM...WHERE GROUP BY...HAVING...ORDER BY...;(GROUP BY使用時可以不使用HAVING,但是使用HAVING時必須有GROUP BY才有意義)

(3)同時使用WHERE, GROUP BY和HAVING

a)首先,執行WHERE篩選掉不符合條件的行 b)然后,將符合條件的行使用GROUP BY進行分組 c)最后,使用HAVING對分組統計的結果進行再次篩選 例:

SELECT product_type_id, AVG(price)FROM products

WHERE price < 15

GROUP BY product_type_id HAVING AVG(price)> 13 ORDER BY product_type_id;

表的約束條件?

目的:

確保表中數據的完整性。

常用的約束類型: 主鍵約束(PRIMARY KEY):要求主鍵列數據唯一,并且不允許為空 非空約束(NOT NULL):指定的列的值不允許為空

唯一鍵約束(UNIQUE):要求該列唯一,允許為空,但只能出現一個空

檢查約束(CHECK):指定表中一列或多列可以接受的數據值格式 默認約束(DEFAULT):指定某列的默認值

外鍵約束(FOREIGN KEY):用于建立和加強兩個表數據之間連接的一

列或多列。通過將表中的主鍵列添加到另一個表中。可以創建兩個表之間的連接。這個主鍵的列就稱為第二個表的外鍵。外鍵約束就可以確保添加到外鍵表中的任何行都在主表中都存在相應的行

多表查詢?

不同的數據存儲在不同的表中,通常要查詢多張表才能找到需要的數據

例程: SELECT products.name, product_types.name FROM products, product_types WHERE

products.product_type_id

= product_types.product_type_id AND products.product_id = 3;

products表和product_types表相關字段會用在SELECT語句及WHERE子句上,可以給表起別名,提高代碼可讀性、降低書寫難度 例程:

SELECT p.name, pt.name FROM products p, product_types pt WHERE p.product_type_id = pt.product_type_id AND p.product_id = 3 注意:

如果查詢兩張表,并且沒有定義連接條件,那么查詢的結果集是兩表相乘的結果,這樣的情況稱之為笛卡爾乘積。總結:多表查詢WHERE時,連接次數=查詢時連接表的數量-1

常見的三種連接類型:

內連接:

內連接返回的行只有滿足連接條件才會返回。如果連接條件的列中有NULL值,那么該行則不會返回 外連接:

外連接返回的行滿足連接條件,也包括在連接條件的列包含空值的行

自連接:

連接的表為同一張表

子查詢?

子查詢是嵌入到另一個SELECT語句中的一個SELECT語句。通過使用子查詢,可以使用簡單的語句組成強大的語句。當需要從表中選擇行,而選擇條件卻取決于該表自身中的數據時,子查詢非常有用。

單行子查詢:(1)可以將另外一個查詢作為WHERE子句的子查詢

例:查詢尾名是‘Brown’的首名和尾名

SELECT first_name, last_name FROM customers

WHERE customer_id =

(SELECT customer_id FROM customers WHERE last_name = 'Brown');(2)在單行子查詢還可以使用其他比較運算符,如<>、<、>、<=和>= 例:查詢價格大于平均價格的商品編號、名稱及價格

WHERE子句中使用>,以及子查詢中使用AVG()聚集函數

SELECT product_id, name, price FROM products WHERE price >(SELECT AVG(price)FROM products);(3)在HAVING子句中使用子查詢

HAVING是在分組統計后用于過濾行,同樣在HAVING子句后面可以跟子查詢。單行子查詢將返回結果用于HAVING子句過濾分組統計的行

例如:查詢平均價格小于最大平均值的商品編號及平均值

SELECT product_type_id, AVG(price)FROM products GROUP BY product_type_id HAVING AVG(price)<(SELECT MAX(AVG(price))FROM products GROUP BY product_type_id)ORDER BY product_type_id;

分頁查詢?

可以通過ROWNUM來實現。

序列?

序列是一個數據庫對象,用于生成一系列的整數。

索引?

索引是與表關聯的可選結構。可以創建索引以加快對表執行SQL語句的速度。就像書的索引可以幫助我們更快速的查找信息一樣,Oracle中的索引也提供了一種更快地訪問表數據的途徑。

視圖?

視圖是基于一張表或多張表或另外一個視圖的邏輯表。視圖不同于表,視圖本身不包含任何數據。表是實際獨立存在的實體,是用于存儲數據的基本結構。而視圖只是一種定義,對應一個查詢語句。視圖的數據都來自于某些表,這些表被稱為基表。數據庫中只在數據字典中存儲對視圖的定義。

第四篇:ORACLE數據庫工作總結

2014-2015學第一學期ORACLE教學工作總結

班級:13高軟班

數據庫技術是計算機科學技術中發展最快的領域之一,也是應用最為廣泛的技術之一,它已經成為計算機信息系統與應用的核心技術和重要基礎。所以在學習這門課時,注重學生實際操作能力,安排了理論與上機操作相結合。以下是我的工作總結:

1、課前準備:備好課。認真學習貫徹教學大綱,鉆研教材。了解教材的基本思想、基本概念、結構、重點與難點,掌握知識的邏輯。

了解學生原有的知識技能的質量,他們的興趣、需要、方法、習慣,學習新知識可能會有哪些困難,采取相應的措施。

考慮教法,解決如何把已掌握的教材傳授給學生,包括如何組織教學、如何安排每節課的活動。

2、課堂上的情況。組織好課堂教學,關注全體學生,注意信息反饋,調動學生的注意力,使其保持相對穩定性。同時,激發學生的情感,使他們產生愉悅的心境,創造良好的課堂氣氛,課堂語言簡潔明了,課堂提問面向全體學生,注意引發學生學習的興趣,課堂上講練結合,布置好課外作業,減輕學生的負擔。

3、上機操作情況。讓學生復習操作上節課的學習內容,布置一定的作業,做到每個學生的每個SQL語句,每個操作抖完全掌握。總之,作為一名教師,教學是我的基本工作,而教與學是一個良性互動的過程,在教中學,在學中教,才能實現自己在業務上的進步與飛躍。實施素質教育對教師的素質要求更高,在今后的教育教學中,我將嚴格要求自己,努力工作,發揚優點,開拓進取,為教育事業奉獻自己的力量。

第五篇:Oracle數據庫學習總結

Oracle數據庫學習總結

1.set linesize xx;設置行間距,常用數值有100,200,300

2.set pagesize xx;設置每頁顯示行數

3.ed x;表示新建一個x.sql文件,通過文件編輯SQL語句,然后用@x命令可以調用剛才的命令

4.CONN username/password;命令可以建立用戶的連接,需要注意的是sys用戶是超級管理員,連接是時需要在末尾加上AS SYSDBA 以系統管理員的身份進行連接

5.如果表是歸某個用戶特有的,在查詢的時候需要加上用戶名 即以 用戶名.表名 的格式查詢

6.SHOW USER;命令可以顯示當前連接的用戶名

7.SELECT * FROM tab;可以顯示當前用戶下的所有數據表

8.“ / ”表示重復執行上一次的SQL命令操作

9.SELECT xx別名,xx 別名 FROM xx;搜索指定列名,并指定別名,方便顯示

10.關鍵字DISTINCT 可以消除重復值 如 SELECT DISTINCT xx FROM xx;

11.Oracle中提供的字符串連接操作,使用“||”表示,相當于Java的“+”普通字符用“ ' ” 括起來

如: SELECT'員工姓名是'||ename||'員工卡號是'||empnoFROM emp;

12.查詢語句 BETWEEN xx AND xx 是包括邊界的13.查詢日期的時候要加上''把日期引起來

例如:SELECT * FROM emp WHERE hiredate BETWEEN '1-1月-81' AND '08-9月-81';

14.模糊查詢中“%”可以匹配任意長度的內容,“_”可以匹配一個長度的內容,如果沒輸入模糊查詢關鍵字,那么默認查詢全部數據,like關鍵字可以用在任何地方,可以匹配數字、字符、日期等。

15.SQL中不等于可以用“<>”或者“!=”表示

16.ORDER BY語句中 ASC表示升序,DESC表示降序,在沒指定的時候默認按照升序排序

17.Oracle中的單行函數有如下,默認的所有的函數都要到表中執行,加上關鍵字DUAL只會產生一個臨時表

UPPER('xxx')將小寫轉換為大寫

LOWER('xxx')將大寫轉換為小寫

INITCAP('xxx')將首字母大寫

CONCAT('','')字符串連接

SUBSTR('xxx',x,x)字符串截取,從0或1開始截取效果是一樣的,因為Oracle比較智能,要是輸入的參數為負數,則表示倒著截取

LENGTH('xxx')字符串長度

REPLACE('xxx','x','x')字符串替換

ROUND(xxx,xx)四舍五入 xxx需要四舍五入的數值,xx保留的小數位,可以加負數 TRUNC(xxx)截斷操作,默認小數點后的全部截斷,也可以指定小數點保留位數如TRUNC(789.536,2)得到的結果是789.53,也可以加負數如TRUNC(789.536,-2)結果是700

18.SELECT sysdate FROM DUAL;可以求出當前的日期

19.Oracle 中提供了以下日期函數支持:

MONTHS_BETWEEN()求出給定日期范圍的月數

ADD_MONTHS(xxx,xxx)在指定日期加上指定的月數

NEXT_DATE(xxx,'')求出下一個給定日期數

TO_CHAR()可以將年、月、日進行分割

例如

TO_CHAR(hirdate,'yyyy')year,TO_CHAR(hirdate,'mm')months,TO_CHAR(hirdate,'dd')day 還可以對時間進行格式化輸出 如TO_CHAR(hirdate,'yyyy-mm-dd')

TO_CHAR(hirdate,'fmyyyy-mm-dd')可以去掉前導0

TO_CHAR()還可以對數字進行格式化 如

SELECT ename,TO_CHAR(SAL,'99,999')FROM emp;

注意:一定要用9來表示

$表示美元符號,L表示Local的縮寫,以本地語言進行金額顯示

TO_NUMBER()將字符串變為數字

TO_DATE()將字符串變為Date類型 例如 SELECT TO_DATE('2009-12-8','yyyy-mm-dd')FROM dual;

TO_NVL()可以將NULL的內容變為指定的內容

DECODE()相當于Java的if else else語句

例如SELECT DECODE(1,1,'內容是1',2,'內容是2',3,'內容是3')FROM dual;將輸入 內容是1

20.左右連接

SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHERE

e.deptno(+)=d.deptno;此例中是右連接,以deptno表為準。

21.SQL1999語法

CROSS JOIN 交叉連接 會產生笛卡爾積

NATURAL JOIN 自然連接 自動進行關聯字段匹配 可以消除笛卡爾積

USING 子句:直接關聯操作列 如 SELECT * FROM emp e JOIN dept USING(deptno)WHERE deptno=30;

ON 子句 用戶自己編寫連接條件

LETF JOIN/RIGHT JOIN 左右連接

SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e right OUTER JOIN dept d ON(e.deptno=d.deptno);

22.分組查詢GROUP BY 放在where之后

常見的組函數有

COUNT();

MAX();

MIN();

AVG();

SUM();

用法如下:SELECT deptno,count(empno)FROM emp GROUP BY deptno;

語法:SELECT deptno,empno,count(empno)FROM emp GROUP BY deptno;是錯誤的,原因是使用分組函數的時候,不能出現分組函數和分組條件以外的字段。

語法:SELECT deptno,count(empno)FROM emp;是錯誤的,原因是不使用分組的時候,則只能單獨使用分組函數

分組函數只能在分組中使用,不允許子啊where語句中個使用,要使用個分組條件可以加上HAVING

例如:SELECT deptno,avg(sal)FROM emp GROUP BY deptno having avg(sal)>2000;注意:分組函數可以嵌套使用,但是在組函數嵌套使用的時候不能再出現分組條件的查詢語句

如下語法是錯誤的:SELECT deptno,max(avg(sal))FROM emp GROUP BY deptno;不能出現deptno

如下語法是正確的:SELECT max(avg(sal))FROM emp GROUP BY deptno;

23.子查詢中

>ANY 比里面的最小值大

=ANY 與IN用法相同

>ALL 比里面的最大值大

24.表復制

CREATE TABLE myemp AS SELECT * FROM emp;既復制表結構,又復制表內容

CREATE TABLE myemp AS SELECT * FROM emp where 1=2;后面的條件不可能成立,只復制表結構

25.Oracle 中常用的數據類型

VARCHAR、VARCHAR2 代表一個字符串,有長度限制,為255

NUMBER 分為兩種

1)NUMBER(n)代表一個整數,數字的長度是n,可以使用INT

2)NUMBER(m,n)代表一個小數,小數長度為n,整數長度為m-n,可以使用FLOAT

DATE 代表日期的類型,日期要按照標準的日期格式進行存放

CLOB 大對象,表示大文本數據,一般可以存放4G的文本

BLOB 大對象,表示二進制數據最大可以存放4G,例如存放歌曲、電影、圖片

26.表的創建

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200),birthdate DATE,age NUMBER(4),sex VARCHAR2(2)DEFAULT '男');

27.插入數據

INSERT INTO person(pid,name,birthdate,age)VALUES('222','里斯

',TO_DATE('1989-02-09','yyyy-mm-dd'),45);

28.更改表中數據

增加表結構:ALTER TABLE person ADD(address VARCHAR2(50)DEFAULT '暫無地址');

修改已存在的列:ALTER TABLE person MODIFY(name VARCHAR2(40)DEFAULT '無名氏');

29.表的重命名(只能在Oracle中使用)

RENAME XXX TO XXX;

30.約束(主要分為5類)

1)主鍵約束 主鍵表示是一個唯一的標識。本身不能為空

2)唯一約束 在一個表中只允許建立一個主鍵約束,而其他列如果不希望重復值的話,則可以使用唯一約束

3)檢查約束 檢出一個列的內容是否合法

4)非空約束

5)外鍵約束 在兩張表中進行約束的操作 刪除時應該先刪除子表,再刪除父表 創建主鍵:

語法1

CREATE TABLE person(pid VARCHAR2(18)PRIMARY KEY,name VARCHAR2(200),birthdate DATE,age NUMBER(4),sex VARCHAR2(2)DEFAULT '男');

語法2:

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200),birthdate DATE,age NUMBER(4),sex VARCHAR2(2)DEFAULT '男',CONSTRAINT p_id PRIMARY KEY(pid));

創建非空約束

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200)NOT NULL,birthdate DATE,age NUMBER(4),sex VARCHAR2(2)DEFAULT '男');

創建唯一約束

語法一

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200)UNIQUE NOT NULL,birthdate DATE,age NUMBER(4),sex VARCHAR2(2)DEFAULT '男');

語法二

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200)NOT NULL,birthdate DATE,age NUMBER(4),sex VARCHAR2(2)DEFAULT '男',CONSTRAINT p_name UNIQUE(name),);

創建檢查約束

語法一

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200)NOT NULL,birthdate DATE,age NUMBER(4)NOT NULL CHECK(age BETWEEN 0 AND 150),sex VARCHAR2(2)DEFAULT '男' CHECK(sex IN('男','女','中')),);

語法二

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200)NOT NULL,birthdate DATE,age NUMBER(4)NOT NULL ,sex VARCHAR2(2)DEFAULT '男' ,CONSTRAINT p_age CHECK(age BETWEEN 0 AND 150),CONSTRAINT p_sex CHECK(sex IN('男','女','中')));

創建外鍵約束

--person表

CREATE TABLE person(pid VARCHAR2(18)PRIMARY KEY,name VARCHAR2(200)NOT NULL,birthdate DATE,age NUMBER(4)NOT NULL ,sex VARCHAR2(2)DEFAULT '男');

--book表

CREATE TABLE book(bid NUMBER PRIMARY KEY,bname VARCHAR2(30),bprice NUMBER(5,2),pid VARCHAR2(18),CONSTRAINT b_pid_fk FOREIGN KEY(pid)REFERENCES person(pid));

對于刪除,應該先刪除book表再刪除person表

也可以使用級聯刪除,強制刪除某張表

DROP TABLE person CASCADE CONSTRAINT;

設置外鍵約束級聯刪除

--person表

CREATE TABLE person(pid VARCHAR2(18)PRIMARY KEY,name VARCHAR2(200)NOT NULL,birthdate DATE,age NUMBER(4)NOT NULL ,sex VARCHAR2(2)DEFAULT '男');

--book表

CREATE TABLE book(bid NUMBER PRIMARY KEY,bname VARCHAR2(30),bprice NUMBER(5,2),pid VARCHAR2(18),CONSTRAINT b_pid_fk FOREIGN KEY(pid)REFERENCES person(pid)ON DELETE CASCADE);

31.修改約束

如果一張表已經建立完成之后,則可以為其添加約束

ALTER TABLE 表名稱 ADD CONSTRAINT 約束名稱 約束類型(約束字段);

關于約束名稱的命名最好要統一:

PRIMARY KEY :主鍵字段_PK

UNIQUE:字段_UK

CHECK:字段_CK

FOREIGH KEY:父字段_子字段_FK

例如:

DROP TABLE person;

CREATE TABLE person(pid VARCHAR2(18),name VARCHAR2(200)NOT NULL,birthdate DATE,age NUMBER(4)NOT NULL ,sex VARCHAR2(2)DEFAULT '男');

ALTER TABLE person ADD CONSTRAINT pid_PK PRIMARY KEY(pid);

ALTER TABLE person ADD CONSTRAINT name_UK UNIQUE(name);

ALTER TABLE person ADD CONSTRAINT age_CK CHECK(age BETWEEN 1 AND 150);CREATE TABLE book(bid NUMBER ,bname VARCHAR2(30),bprice NUMBER(5,2),pid VARCHAR2(18));

ALTER TABLE book ADD CONSTRAINT book_PK PRIMARY KEY(bid);

ALTER TABLE book ADD CONSTRAINT pid_FK FOREIGN KEY(pid)REFERENCES person(pid);刪除約束

ALTER TABLE person DROP CONSTRAINT name_UK;

ALTER TABLE person DROP CONSTRAINT age_CK;

下載ORACLE數據庫學習心得大全word格式文檔
下載ORACLE數據庫學習心得大全.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    Oracle數據庫使用心得

    Oracle數據庫使用心得 092909 謝弘毅 經過助教對oracle和sybase數據庫的講解后,我下載使用和體驗了這兩個數據庫,但主要的還是使用了Oracle數據庫,經過一段時間的使用,對其使用......

    Oracle數據庫 知識點總結

    1.constraint約束: alter table [table_name] add constraint [pk_name] primary key(pkname);//添加主鍵 alter table [table_name] drop constraint [pk_name];//刪除主鍵......

    ORACLE數據庫學習總結

    數據庫學習總結-Marlon 目錄 一、 二、 三、 四、 五、 六、 七、 八、 ORACLE_簡介 ......................................................................................

    Oracle數據庫心得體會(含五篇)

    學習Oracle數據庫的心得體會 對于學習Oracle數據庫,應該先要了解Oracle的框架。它有物理結構(由控制文件、數據文件、重做日志文件、參數文件、歸檔文件、密碼文件組成),邏輯結......

    ORACLE數據庫開發經驗總結

    ORACLE數據庫開發經驗總結 ---- ORACLE數據庫作為大型數據庫管理系統,近年來一直占有世界上高端數據庫的最大 份額,其強大而完善的數據庫管理功能,以及ORACLE公司推陳出新的不......

    oracle學習心得

    一、SQL SERVER的理解 SQL SERVER服務器就像一棟大樓,大樓里的機房就像服務器的數據庫,機房里的電腦如同數據庫里的表 1、 登錄用戶可以登錄服務器——可以進大樓 2、 登錄用......

    ORACLE學習心得

    Oracle RAC 學習心得 1. 概念 RAC,全稱real application clusters,譯為“實時應用集群”, 是Oracle新版數據庫中采用的一項新技術,是高可用性的一種,也是Oracle數據庫支持網格計......

    oracle學習心得

    Oracle學習心得 轉眼之間學習oracle差不多已經半年了,從開始的不了解,到現在熟悉oracle的基本使用和操作。Oracle的體系太龐大了,對于初學者來說,難免有些無從下手的感覺,好多地......

主站蜘蛛池模板: 天天躁日日躁狠狠躁视频2021| 麻豆精品导航| 无码成人一区二区| 国产传媒麻豆剧精品av国产| 国产精品日本一区二区在线播放| 在线看免费无码av天堂| 亚洲国产精品va在线看黑人| 高清人人天天夜夜曰狠狠狠狠| 最新国产av无码专区亚洲| 99精品热这里只有精品| 精品国产人成亚洲区| 久久综合一色综合久久小蛇| 99久久超碰中文字幕伊人| 婷婷精品国产亚洲av麻豆不片| 少萝疯狂?喷水自慰| 国产精品怡红院在线观看| 亚洲成av人片一区二区梦乃| 亚洲精品夜夜夜妓女网| 韩国精品一区二区三区无码视频| 国产在线看片免费观看| 国产偷抇久久精品a片69| 国产在线观看免费视频软件| 久久夜色精品国产亚洲av动态图| 久久精品一本到东京热| 日韩人妻无码精品-专区| 深爱婷婷国产在线精品av| 亚洲精品卡2卡三卡4卡2卡乱码| 亚洲中文字幕久久精品无码a| 色偷偷色噜噜狠狠成人免费视频| 免费无码av片在线观看播放| 久久狠狠高潮亚洲精品| 蕾丝av无码专区在线观看| 无码国产一区二区三区四区| 欧美丰满熟妇xxxx| 99re久久精品国产首页| 国产午夜福利精品一区二区三区| 又大又粗欧美黑人aaaaa片| ass日本丰满熟妇pics| 137肉体摄影日本裸交| 开心久久婷婷综合中文字幕| 亚洲精品久久久蜜桃|