精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Oracle數據庫中的OOP概念

數據庫 Oracle 數據庫運維
Oracle 中的OOP概念: 對象類型,可變數組,嵌套表,對象表,對象視圖。

Oracle 中的OOP概念:對象類型,可變數組,嵌套表,對象表,對象視圖。

對象類型:

優點:

1) 更容易與Java, C++編寫的對象應用程序交互

2) 獲取便捷。一次對象類型請求就可以從多個關系表中獲取信息,通過一次網絡往復即可返回

語法:

CREATE [OR REPLACE] TYPE type_name

{{AS| IS } OBJECT | UNDER super_type}

{

attribute_name datatype[,attribute_name datatype]… ---成員變量

[{MAP | ORDER} MEMBER function_name,] ---排序函數

[{FINAL | NOT FINAL} MEMBER function_name,] ---可否繼承的成員函數

[{INSTANTIABLE | NOT INSTANTIABLE } MEMBER function_name,] ---可否實例化的成員函數

[{MEMBER | STATIC } function_name,] ---靜態、非靜態成員函數

}[{FINAL | NOT FINAL}] ---對象可否繼承

[{INSTANTIABLE | NOT INSTANTIABLE }] ---對象可否實例化

/

對象類型的主體部分(即函數的實現部分,可選的):

CREATE [OR REPLACE]

TYPE BODY type_name {AS| IS }

[{MAP | ORDER} MEMBER function_body,] ---排序函數

[{MEMBER | STATIC } function_name,] ---靜態、非靜態成員函數

END;

/

例如:

create or replace

type person as object(

first_name varchar2(100),

last_name varchar2(100))

/

屬性類型可以是任何oracle 數據類型(包括自定義),除了如下:

LONG和LONG RAW

NCHAR、NCLOB 、NVARCHAR2

ROWID、UROWID

PL/SQL的特定類型:%TYPE %ROWTYPE

查看:

Desc person

構造函數:

set serveroutput on

declare

l_person person

begin

l_person := person(‘Donny’,’Chen’);

dbms_output.putline(l_person.first_name);

end;

/

構造函數要接受對象類型的所有屬性作為參數。因為這些參數沒有默認值,即使是null,也要提供。

舉例:

表中的對象類型:

對象類型可以作為數據庫中的列,所以稱為列對象

create table person_table

(

name person,

age number)

/

set desc depth all

desc person_table

set desc depth 1

插入數據:

insert into person_table

values(person(‘Donny’,’Chen’),30);

declare

l_person person

begin

l_person := person(‘Hua’,’Li’);

insert into person_table values(l_person,33);

end;

/

查詢數據:

select * from person_table

訪問對象類型的各個屬性:

select p.name.first_name

from person_table p

/

為避免名稱解析問題,要求查詢對象類型的屬性的時候,使用表別名。否則報錯,

舉例:對象中的對象(合成):create or replace

type employee as object(

name person,

empno number,

hiredate date)

#p#

修改和刪除對象:

9i之前,當建立的對象類型,以及依賴于此類型的對象或表之后,就無法再修改此對象類型了(增加刪除屬性和成員函數)。唯一的辦法是撤銷所有以來,即刪除依賴于此類型的對象或表。9i新特性,可以修改被以來的對象類型,成為類型演化。

有兩種方法:INVALIDATE 和 CASCADE

INVALIDATE比如:desc person_table

改變person類型,增加新屬性ssn

alter type person

add attribute ssn varchar2(11) INVALIDATE;

desc person (bug可能需要新開一個session)

INVALIDATE選項使的所有依賴于person類型的對象和表標記為INVALID,比如:

Desc person_table

需要手工驗證person_table:

alter table person_table upgrade including data;

desc person_table

upgrade including data表示根據新類型,物理上更新現有的數據的結構,ssn 置為null。

也可以upgrade not including data,不更新原有數據的結構。Dml訪問person實例數據的時候再更新。

Select * from person_table

CASCADE比如:

alter type person

add attribute dob date

cascade not including table data

/不用手工驗證依賴此對象類型的表,由數據庫自動驗證。

Desc person

Desc person_table

因為not including table data,沒有更新原有數據:

select * from person_table

刪除類型:force

方法:即對象中的過程和函數,3種類型:

STATIC: 只能夠在對象類型上調用,不專屬于某個實例。

MEMBER: 專屬于某個特定的實例

CONSTRUCTOR: 構造函數

create or replace

type employee as object(

name person,

empno number,

hiredate date,

sal number,

commission number,

member function total_compensation return number,

static function new(p_empno number,

p_person person) return employee)

/

desc employee

在類型主體實現這兩個方法:

create or replace

type body employee as

member function total_compensation return number is

begin

return nvl(self.sal,0) + nvl(self.commission, 0);

end;

static function new(p_empno number,

p_person person) return employee is

begin

return employee(p_person,p_empno,sysdate,10000,null);

end;

end;

/

比較抽象數據類型的數據:

declare

l_employee1 employee;

l_employee2 employee;

begin

l_employee1 :=employee.new(12345,null);

l_employee2 :=employee.new(67890,null);

if l_employee1= l_employee2 then

dbms_output.line_put(“They are equal”);

end if;

end;

/

使用map指定具體比較哪些屬性:

create or replace

type employee as object(

name person,

empno number,

hiredate date,

sal number,

commission number,

map member function convert return number)

/

create or replace

type body employee as

map member function convert return number is

begin

return self.empno;

end;

end;

/

再比較:

declare

l_employee1 employee;

l_employee2 employee;

begin

l_employee1 :=employee.new(12345,null);

l_employee2 :=employee.new(67890,null);

if l_employee1= l_employee2 then

dbms_output.line_put(“They are equal”);

end if;

if l_employee1> l_employee2 then

dbms_output.line_put(“employee1 is greater”);

end if;

if l_employee1< l_employee2 then

dbms_output.line_put(“employee2 is greater”);

end if;

end;

#p#

Order 方法:

create or replace

type employee as object(

name person,

empno number,

hiredate date,

sal number,

commission number,

order member function match(p_employee employee) return integer)

/

create or replace

type body employee as

order member function match(p_employee employee) return integer is

begin

if self.empno> p_employee.empno then

return 1;

elseif self.empno< p_employee.empno then

return -1;

else

return 0;

end if;

end;

end;

/

繼承:

FINAL / NOT FINAL

對象默認FINAL,表示不可以被繼承;

MEMBER方法也能指定是否FINAL,表示能否在子類中對他進行覆寫。默認NOT FINAL

Create or replace type super_type as object(

N number,

Final member procedure cannot_override

)

not final

/create or replace type sub_type under super_type(

overriding member procedure cannot_override

)

/

show error

若super_type 改成final

INSTANTIABLE / NOT INSTANTIABLE

可否被實例化,后者類似于抽象類

create or replace type shape as object(

number_of_sides number,

not instantiable member function calculate_area return number

)

not instantiable not final

/

實例化該類型對象:

declare

l_shape shape;

begin

l_shape:=shape(2);

end;

/

可變數組(VARRAYS):

create type employee_type as object(

employee_id number,

first_name varchar2(30),

last_name varchar2(30)

)

/

create type employee_list_type as varray(50) of employee_type

/

create table departments(

department_id number,

department_name varchar2(30),

manager employee_type,

employees employee_list_type)

/

insert into departments values

(10,

‘HR’,

employee_type(1,’Dony’,’Chen’),

employee_list_type(

employee_type(2,’Hua’,’Li’)

employee_type(3,’Wu’,’Wang’)

employee_type(4,’San’,’Zhang’))

)

/

column department_name format a13

column employee_type format a63 word_wrapped

select * from departments

/

嵌套表(Nested table):

create type order_item_type as object(

line_item_id number(3),

product_id number(6),

unit_price numbe(8,2),

quantity number(4)

)

/

create type order_item_list_type as table of order_item_type

/

create table orders(

order_id number(12) not null,

order_date date,

customer_id number(6),

order_items order_item_list_type)

nested table order_items store as order_items_tab

/

insert into orders values(

(1, sysdate, 10,

order_item_list_type(

order_item_type(1,2,3,4),

order_item_type(2,3,4,5)

))

/

多少個order_item_type ,無限制。

#p#

對象表:每行都代表一個對象,行對象。

創建對象:

create or replace

type address as object(

id number,

street varchar2(100),

state varchar2(2),

zipcode varchar2(11)

)

/

創建對象表:

create table address_table of address

/

desc address_table

插入數據:

可以像關系表一樣插入

insert into address_table values(1,’Oracle way’,’CA’,’90001’)

/也可以用默認構造函數插入對象:

insert into address_table

values(address(2,’Oracle way2’,’CA’,’90011’)

select * from address_ table

/VALUE()

以對象表別名作為參數,返回對象實例:

select value(a) from address_table a

/

REF數據類型:

在關系表中關聯對象

create table employee_location(

empno number,

loc_ref ref address scope is address_table)

/

loc_ref是個列,類型是指向address對象類型的ref, 即引用,或者指向address實例的指針。

scope is address_table 是可選的,表示ref指向的對象實例的位置,即只能指向address_table對象表中的address對象實例。

REF():

REF()函數可以建立指向對象表中對象實例的REF對象數據類型,以對象表的別名作為參數

插入數據:

insert into employee_location

select 12345, ref(a)

from address_table a

where id=1

/

insert into employee_location

select 45678, ref(a)

from address_table a

where id=2/

OID:

對象表中每一行對象都對應一個唯一的OID,對象標示符

Select * from employee_location

DEREF()

解析REF數據類型,返回真正指向的實例。以REF數據類型作為參數

select empno, deref(loc_ref)

from employee_location

懸空REF:

REF指向的對象實例被刪掉了,此時稱REF懸空(dangling),說明ref指向不存在的實例

Delete from address_table where id=1;

Select * from employee_location;

Select empno, deref(rec_loc) from employee_location;

懸空的ref會返回null,使用is dangling 確定哪些ref懸空:

select empno from employee_location

where loc_ref is dangling;

清除懸空的ref, 將ref更新為null:

update employee_location

set loc_ref =null

where loc_ref is dangling;

Select * from employee_location;

對象視圖:

在已有的關系型表上,建立對象模型:

關系表:

create table item

( itemcode varchar2(10),

item_on_hand number(10),

item_sode number(10)

);建立對象,使用相同的列:

create or replace type item_type as object

( itemcode varchar2(10),

item_on_hand number(10),

item_sode number(10)

);

建立對象視圖:

create view item_view of item_type

with object oid (itemcode)

as

select * from item

/

of item_type 說明基于對象

with object oid (itemcode) 明確生成OID

通過視圖操作數據:

insert into item_view values(item_type(‘i102’,15,50));

MAKE_REF()

關系主表1:

create table itmefile(

itemcode varchar2(5) primary key,

itemdesc varchar2(20),

p_category varchar2(20),

qty_hand number(5),

re_level number(5),

max_level number(5),

itemrate number(9,2));

關系從表2:

create table order_detail(

orderno varchar2(5),

itemcode varchar2(5) foreign key references itemfile(itemcode)

qty_ord number(5),

qty_deld number(5)

)

【編輯推薦】

  1. 磁盤排序對Oracle數據庫性能的影響(1)
  2. 前瞻性在Oracle數據庫維護中的作用
  3. 使用資源管理器優化Oracle性能
  4. Oracle性能優化之Rollback Segment優化
  5. Oracle檢索數據一致性與事務恢復
責任編輯:冰荷 來源: it168
相關推薦

2010-04-26 10:52:46

Oracle 數據庫

2010-04-23 09:32:39

Oracle數據庫實例

2010-04-01 16:40:17

Oracle數據庫

2011-03-25 11:13:15

Oracle數據庫進程

2010-04-08 09:46:27

Oracle體系結構

2009-09-04 09:54:59

數據庫名

2011-05-26 13:36:40

Oracle數據庫時間處理

2011-05-24 14:13:20

Oracle數據庫

2010-10-27 17:11:35

oracle查詢

2010-05-05 15:45:52

Oracle數據庫

2010-10-28 16:46:23

查詢Oracle數據庫

2010-04-23 14:32:01

Oracle數據庫

2009-05-18 13:18:54

字符Oracle字符串

2011-05-13 13:54:02

數據庫文檔數據庫

2010-04-26 13:23:49

Oracle數據庫

2010-04-13 10:15:17

Oracle數據庫

2023-09-05 08:40:57

刪除數據庫Oracle

2011-03-22 14:49:35

Oracle數據庫重定義表

2010-05-05 14:13:52

Oracle數據

2011-03-17 14:09:25

Oracle數據庫字符
點贊
收藏

51CTO技術棧公眾號

精品无人乱码| 久久久久久久伊人| av一级久久| 亚洲在线免费播放| 国产精品久久久久久免费观看 | 欧美性极品xxxx娇小| 日韩少妇中文字幕| 精品国产99久久久久久宅男i| 精品成人一区| 最近2019年中文视频免费在线观看 | 成人黄色在线免费| 久精品国产欧美| 热re99久久精品国产99热| 五月天中文字幕| 欧美激情日韩| 亚洲一区www| 国产69精品久久久久9| ass极品水嫩小美女ass| 中文字幕21页在线看| 国产精品不卡视频| 老牛影视免费一区二区| 午夜久久久久久久久久| 麻豆91精品91久久久的内涵| 午夜免费在线观看精品视频| 日韩在线中文字幕视频| 精品99久久| 亚洲福利小视频| 三级性生活视频| 高清av不卡| 亚洲午夜久久久久久久久电影网 | 国产麻花豆剧传媒精品mv在线| 免费日本一区二区三区视频| 久久视频一区二区| 国产一区二区三区四区五区加勒比| 亚洲一区二区色| 久久精品五月| 2021国产精品视频| 久久久精品91| 欧美黄色一级视频| 日韩有码在线电影| 中文字幕第24页| 精品一区在线| 亚洲精品小视频在线观看| 秘密基地免费观看完整版中文| 亚洲91在线| 欧美日韩电影在线| 四季av一区二区三区| 台湾成人免费视频| 91久久奴性调教| 国产精品涩涩涩视频网站| 神马午夜在线视频| 精品久久久一区二区| 久久99中文字幕| h片精品在线观看| 亚洲最大的成人av| 国产欧美久久久久| 性网站在线观看| 亚洲最快最全在线视频| 日韩精品在线观看av| 国产后进白嫩翘臀在线观看视频| 一区二区久久久久久| 狠狠噜天天噜日日噜| 欧美巨大xxxx做受沙滩| 亚洲国产综合色| 欧美男女爱爱视频| 电影一区二区三| 欧美性受xxxx黑人xyx| 污污网站免费看| 婷婷精品久久久久久久久久不卡| 69久久99精品久久久久婷婷| 久久6免费视频| 亚洲精品一二三**| 亚洲精品视频久久| 成年人看的免费视频| 亚洲成av人片乱码色午夜| 久久国产天堂福利天堂| 国产成人啪精品午夜在线观看| 国产一区二区精品| 国产精品国内视频| 精品人妻一区二区三区含羞草| 国产91精品精华液一区二区三区| 极品校花啪啪激情久久| 国内三级在线观看| 一区二区三区免费| 国产免费毛卡片| 国产精品久久久久久久久免费高清| 日韩一区二区三区免费观看| 天天插天天射天天干| 日韩精品水蜜桃| 欧美精品中文字幕一区| 一级黄色免费网站| 久久99精品久久久久久国产越南| 高清视频一区二区三区| 黄色软件在线| 亚洲精品乱码久久久久| 国产免费观看高清视频| 亚洲午夜剧场| 亚洲欧美中文日韩在线v日本| ass极品国模人体欣赏| 不卡一区2区| 欧美成人精品xxx| 婷婷激情五月网| 日本成人中文字幕在线视频 | 日韩av综合在线观看| 日本在线中文字幕一区二区三区| 8v天堂国产在线一区二区| 香蕉视频免费网站| 免费电影一区二区三区| 国产视频自拍一区| 麻豆视频在线观看| 久久久久网站| 99理论电影网| 国产福利在线| 精品日本美女福利在线观看| 在线观看免费视频高清游戏推荐| 中文字幕久久精品一区二区 | 国产精品免费视频xxxx| 亚洲精品久久久蜜桃动漫 | 亚洲网址在线| 国产精品小说在线| 污视频在线免费观看| 国产精品久久夜| 131美女爱做视频| 日韩在线免费| 精品少妇一区二区三区| 永久免费观看片现看| 欧美日韩在线免费| 性刺激的欧美三级视频| 日韩中文字幕| 一区二区三区日韩在线| 影音先锋亚洲天堂| 激情综合网激情| 免费精品视频一区二区三区| 18在线观看的| 欧美日韩精品电影| 强伦人妻一区二区三区| 国自产拍偷拍福利精品免费一| 国产精品久久久久久久久久久新郎| 国产精品久久久久久久免费| 国产亚洲婷婷免费| 国产美女网站在线观看| 玖玖玖视频精品| 色狠狠av一区二区三区香蕉蜜桃| 日韩精品在线观看免费| 国产成人精品aa毛片| 亚洲一区二区三区精品在线观看| 欧美xxx性| 日韩成人中文字幕在线观看| 黄色一级视频免费观看| 激情综合网天天干| 正在播放国产精品| 99久久久国产精品免费调教网站| 亚洲第一区中文99精品| 精品在线视频免费观看| 成人性生交大合| 久久久久久久香蕉| 国产欧美日韩电影| 久久精品视频亚洲| 在线免费一级片| 中文字幕av资源一区| 亚洲36d大奶网| 成人在线亚洲| 国产精品主播视频| av网站大全在线观看| 欧美午夜理伦三级在线观看| 舐め犯し波多野结衣在线观看| 性欧美长视频| 久久这里精品国产99丫e6| 欧产日产国产精品视频| 日韩精品www| 日本一区二区免费电影| 国产欧美日韩一区二区三区在线观看| 国内外免费激情视频| 国产99亚洲| 日本免费一区二区三区视频观看| caoporn国产精品免费视频| 欧美日精品一区视频| 亚洲天堂最新地址| 久久99久久99| 4444亚洲人成无码网在线观看| jizz性欧美23| 午夜精品在线观看| 午夜伦理在线| 日韩丝袜美女视频| 亚洲综合一二三| 久久一日本道色综合| 久久久国产欧美| 天天综合国产| 不卡视频一区| 91tv亚洲精品香蕉国产一区| 久久视频在线视频| 国模人体一区二区| 色综合久久中文字幕综合网| 日本不卡一区视频| 国产黄人亚洲片| 青青草成人免费在线视频| 成人嫩草影院| 亚洲a区在线视频| 成人影院在线视频| 在线色欧美三级视频| 精品人妻伦一二三区久久 | 精品久久五月天| 精品成人免费视频| 国产精品成人免费| 五月天丁香社区| 天堂午夜影视日韩欧美一区二区| 久无码久无码av无码| 精品国产一区探花在线观看| 成人国产精品免费视频| 国产福利电影在线播放| 中文字幕无线精品亚洲乱码一区 | 日韩成人在线视频| 国产精品久久久久久无人区| 亚洲一区日韩精品中文字幕| 免费人成又黄又爽又色| 国产999精品久久久久久绿帽| 黄色片视频在线播放| 欧美阿v一级看视频| 蜜桃狠狠色伊人亚洲综合网站| www.欧美视频| 97涩涩爰在线观看亚洲| 欧美黑人猛交的在线视频| 中文国产成人精品久久一| 日本黄色不卡视频| 欧美一区日韩一区| а中文在线天堂| 午夜av电影一区| 国产欧美小视频| 久久先锋影音av鲁色资源网| 潘金莲一级淫片aaaaa| 一区二区三区国产盗摄| 日韩伦理在线免费观看| 亚洲成人tv| 亚洲精品中文字幕在线| 一区二区三区视频免费观看| 国产精品二区在线| 成人午夜888| 亚洲一区亚洲二区亚洲三区| 日韩制服一区| 日韩av手机在线看| 成人性生交大片免费网站| 久久久亚洲福利精品午夜| 黄色免费网站在线| 日韩在线视频二区| 69xxxx欧美| 正在播放国产一区| 国产高清av在线| 亚洲少妇激情视频| sese一区| 一区二区三区精品99久久| 美国一级片在线免费观看视频| 日韩精品视频免费在线观看| 欧美一级免费片| 精品少妇一区二区三区视频免付费| 永久免费无码av网站在线观看| 色先锋久久av资源部| 三级视频在线观看| 午夜免费久久看| 日韩高清免费av| 午夜av区久久| 九九九在线观看| 欧美综合一区二区三区| 亚洲永久精品一区| 在线观看三级视频欧美| 国产精品尤物视频| 欧美撒尿777hd撒尿| 96亚洲精品久久久蜜桃| 欧美一区三区四区| 亚洲第九十九页| 亚洲国产小视频| 日韩欧美在线观看一区二区| 亚洲精品丝袜日韩| 国产大片在线免费观看| www.亚洲天堂| 成人在线app| 欧美成人精品激情在线观看 | 凸凹人妻人人澡人人添| 日韩精品在线私人| 国产精品毛片一区二区三区四区| 中文字幕精品av| 性欧美高清come| 91精品国产九九九久久久亚洲| 粉嫩一区二区| 国产一区私人高清影院| 涩涩屋成人免费视频软件| 国产aⅴ精品一区二区三区黄| 五月国产精品| 一区二区日本| 尹人成人综合网| 人妻无码视频一区二区三区| 国产一区在线不卡| 性活交片大全免费看| 国产女人水真多18毛片18精品视频 | 精品91久久久| 欧美伊人久久久久久午夜久久久久| 国产不卡精品视频| 精品视频在线播放免| 99riav在线| 久久久久久久久久久免费精品| 肉色欧美久久久久久久免费看| 成人国产在线激情| 免费看成人哺乳视频网站| 福利网在线观看| 国产日韩亚洲| 伊人五月天婷婷| 91在线一区二区三区| 女教师淫辱の教室蜜臀av软件| 亚洲午夜免费电影| 国产精品成人久久久| 欧美成人欧美edvon| 国产主播福利在线| 欧美国产日韩xxxxx| 成人免费短视频| 97免费资源站| 日韩精品水蜜桃| 国产精品第157页| 国产一区二区精品在线观看| a级在线观看视频| 亚洲一区在线观看网站| 亚洲一级在线播放| 精品香蕉一区二区三区| 黑人精品视频| 91精品视频在线播放| 免费毛片在线不卡| 人体内射精一区二区三区 | 天天影视色综合| 久久精品日产第一区二区三区高清版| 免费在线观看黄视频| 欧美日韩一二区| 男人久久精品| 久久久久亚洲精品国产| 亚洲国产高清在线观看| 亚洲v国产v在线观看| 国产一区二区三区成人欧美日韩在线观看| 三区视频在线观看| 日本一区二区免费在线| 欧美三级一区二区三区| 日韩av网址在线| 乱插在线www| 97人人模人人爽人人喊38tv| 97视频精品| 亚洲中文字幕无码不卡电影| 91香蕉视频mp4| 久久久久久久蜜桃| 日韩一区二区在线观看视频播放| 幼a在线观看| 国产91精品最新在线播放| 精品无人区麻豆乱码久久久| 少妇人妻互换不带套| 久久综合久久综合久久| 五月婷婷激情网| 亚洲第一av网站| 在线免费av资源| 精品无码久久久久国产| 宅男噜噜噜66一区二区| 大乳护士喂奶hd| 色婷婷综合久久久久中文一区二区| 日韩a在线看| 奇米成人av国产一区二区三区| 亚洲专区视频| 分分操这里只有精品| 久久―日本道色综合久久| 国产又大又黄又粗| 亚洲欧美日韩图片| 日韩国产网站| 日本一区免费看| 极品尤物av久久免费看| 亚洲天堂网av在线| 欧美一区二区三区免费大片| www.久久ai| 另类小说综合网| 日韩精品国产精品| 亚洲图片第一页| 欧美精品一二三| 日本在线天堂| 国产麻豆一区二区三区在线观看| 99国产精品| 手机看片福利视频| 欧美久久免费观看| 123区在线| 欧洲一区二区在线| 精品亚洲国产成人av制服丝袜 | 免费观看成年人视频| 欧洲精品在线视频| 日韩精品永久网址| www.日本久久| 亚洲精品ww久久久久久p站| 欧美老女人性开放| 国产精品永久免费| 欧美日韩国产综合网| 国产精品无码午夜福利| 欧美日韩精品一区二区三区四区| 手机在线免费观看av| 国产精品jizz视频| 开心九九激情九九欧美日韩精美视频电影| 国产一二三区精品| 亚洲理论在线a中文字幕| 国产精品蜜月aⅴ在线| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 中文字幕免费不卡|