亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PowerShell > 正文

powershell玩轉sqlite數據庫詳細介紹

2020-03-26 18:52:42
字體:
來源:轉載
供稿:網友

腳本經常需要處理文本,有時候是行列整齊文本。那么powershell腳本處理行列文本有幾種方法呢?一種是excel,另外的一些是?access?sqlite?

sqlite是一個很小巧的,很方便嵌入到腳本語言中的,關系型數據庫。它給powershell提供了一個免費的,處理行列整齊數據,存儲數據,統計數據的極品神器。
只要你學會了它,上天入地皆可去得。而且以后學sql server,mysql,都類似,沒有難度。

帶著引號搜本文關鍵字: "^_^上天入地皆可去^_^"
發文初衷:世界上幾乎沒有講powershell調用sqlite的帖子。

初稿,會更新。有錯誤歡迎指正,謝謝。

------------------【sqlite 字段類型】------------------

sqlite只有5種數據類型,用于存儲。
數據類型 占用字節 描述
NULL 
TEXT ? 使用數據庫編碼(UTF-8,UTF-16BE或者UTF-16LE)存放
INTEGER 根據值的大小以1,2,3,4,6或8字節存放 值是有符號整形
REAL 以8字節IEEE浮點數存放 
BLOB 最多 1,000,000,000 字節 只是一個數據塊,完全按照輸入存放(即沒有準換)存放。

使用時會將【內存數據類型】和【存儲數據類型】之間進行轉換。
如將布爾值,轉換成INTEEGER存儲。具體參見手冊:

http://www.sqlite.org/datatype3.html

沒有日期型,沒有布爾型,這一點要注意。

------------------【應用場景,重要!】------------------

powershell 傳教士 原創文章 始作于 2016-01-01 元旦, 改 允許轉載,但必須保留名字和出處,否則追究法律責任

下為個人整理的應用場合,如有不妥,請斧正。

1 存儲數據。中量數據。
這個中量數據是指,由于sqlite表不支持分區,所以應該在一億條以下,或者更少。
excel表存儲數據有個行數(記錄條數)限制,104萬左右。比如我有110萬數據,只有一列,要統計列最大值。這時用excel就不方便了。
excel中每單元格最大存儲32k字節,access2016中,每個text字段的容量存儲為64k字節,行數倒是夠用。

2 各種數據統計。
3 由于sqlite支持純內存數據庫,把所有庫放在內存中??梢越Y合上述兩種需求。即從大庫查詢(或導出)部分數據,在內存中進行統計。
4 缺點是:數據展示不好。不像excel、access那樣(對業務人員)有表,圖。
5 sqlite是關系型數據庫,join,group by,order by這些基本功能和mysql,sql server比不遜色。單線程性能也很好。另外單機,綠色,軟件1M以下,支持數據量極大,比access強。

------------------【圖形管理工具】------------------

英文:
SQLiteStudio http://sqlitestudio.pl/
SQLiteManager http://www.sqlabs.com/
SQLite Expert http://www.sqliteexpert.com/
SQLite Developer http://www.sqlitedeveloper.com/
SQLiteSpy http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index
RazorSQL http://www.razorsql.com/

中文:
SQLite Administrator http://sqliteadmin.orbmu2k.de/ 打不開3.x版本數據庫
Database.NET http://fishcodelib.com/database.htm 推薦

------------------【下載安裝】------------------
ps調用sqlite的兩種方法。這里我們主要介紹第二種
1 https://psqlite.codeplex.com/
2 https://github.com/RamblingCookieMonster/PSSQLite
上述2種,都支持支持winxp,powershell2.0,及以上。

2.1 下載:
https://github.com/RamblingCookieMonster/PSSQLite/archive/master.zip

VEVB武林網下載:PSSQLite-master.zip

2.2 建立【C:/Users/你的用戶名/Documents/WindowsPowerShell/Modules】目錄,并解壓:
把 PSSQLite-master/PSSQLite 這個目錄復制到,你的模塊目錄中。
即modules目錄中,含有PSSQLite這個目錄。

2.3 查看模塊中的所有命令:
Import-Module pssqlite
get-command * -module pssqlite

返回
CommandType Name Version Source
----------- ---- ------- ------
Function Invoke-SQLiteBulkCopy 1.0.1 pssqlite
Function Invoke-SqliteQuery 1.0.1 pssqlite
Function New-SQLiteConnection 1.0.1 pssqlite
Function Out-DataTable 1.0.1 pssqlite

2.4 一鍵安裝命令:
#一鍵安裝命令依賴.net 4.5 及以上。powershell 3.0 及以上。如果不滿足條件,請用手動安裝方法。
mkdir "$env:USERPROFILE/Documents/WindowsPowerShell/Modules"
Invoke-WebRequest https://github.com/RamblingCookieMonster/PSSQLite/archive/master.zip -OutFile ./master.zip
add-Type -AssemblyName 'System.IO.Compression.Filesystem'
[System.IO.Compression.ZipFile]::ExtractToDirectory("$pwd/master.zip","$pwd")
Copy-Item -Recurse PSSQLite-master/PSSQLite "$env:USERPROFILE/Documents/WindowsPowerShell/Modules"
Import-Module pssqlite
get-command * -module pssqlite

------------------【命令幫助】------------------

Invoke-SqliteQuery -DataSource $庫文件名 -query $查詢字符串 -as 輸出格式(PSObject,DataRow,DataTable,DataSet,SingleValue)


$內存庫 = New-SQLiteConnection -DataSource :MEMORY:
Invoke-SqliteQuery -SQLiteConnection $內存庫 -Query "CREATE TABLE OrdersToNames (OrderID INT PRIMARY KEY, fullname TEXT);" #建表語句
Invoke-SqliteQuery -SQLiteConnection $內存庫 -Query "INSERT INTO OrdersToNames (OrderID, fullname) VALUES (1,'Cookie Monster');" #插入語句
Invoke-SqliteQuery -SQLiteConnection $內存庫 -Query "SELECT xxx FROM yyy WHERE mmm=nnn;" #你想要的統計語句

問:csv如何入庫?
答:
最好用圖形工具搞,也可以用下列類似命令。
$dt1 = get-process | Out-DataTable
Invoke-SQLiteBulkCopy -DataTable $st1 -DataSource $DataSource -Table 表名
具體參見例子2

------------------【powershell操作sqlite經驗】------------------
1 不外乎查詢出行,查詢出列, 或查詢出表,然后foreach。
2 不外乎去重,合并結果,統計最大,列中數字合計。


問:乍開始我不熟悉sql語句咋辦?
答:
用拐棍!完全使用圖形程序(找傳教士要navicat for sqlite)來建表,導入數據,在圖形軟件中運行sql。

問:現在我已經會用【常用sql語句】+【圖形程序】來處理數據了。為啥還要用腳本呢?
答:
圖形程序畢竟只是根拐杖。你要處理的數據有可能要先取到一行,(比如用"_"先拆分,分成n列)預先用ps處理后再入庫。
庫里輸出的行列,也很容易(用Out-GridView進行展示等。)所以說還是要ps+sqlite共同處理的。

---------------【根據官網手冊,增減的sql教程】----------------
sqlite官網,手冊位置:

http://www.sqlite.org/lang.html


問:什么是(關系型)數據庫索引,索引有什么好處壞處?
答:
索引是把無序的每條數據,添加了一個從小到大的順序,變成了有序的數據。
每個字段都可以添加一個索引?;蛘遪個字段公用一個索引。
索引加速了查詢速度,降低了插入速度。

問:如何快速插入數據?
答:
1 較少并發寫入,最好只有一個線程在讀寫。
2 盡量減少索引。
3 使用事務。事務是由類似【START TRANSACTION】,【COMMIT】sql關鍵字包含的命令。
事務的作用是,在所有數據插入后,即【COMMIT】后,才一次性修改所有索引,而不是插入一條,修改一次索引。
4 使用.net連接器封裝的事務。即類似sql bulkcopy 之類的方法。

問:事務相關的sql語句是?
答:
BEGIN TRANSACTION; 事務開始
COMMIT TRANSACTION; 顯示事務被提交,數據表中的數據也發生了變化。
ROLLBACK TRANSACTION; 回滾

問:為什么傳教士也很愛sqlite?
答:
PRAGMA encoding; # 這個命令將返回庫編碼默認值,utf-8
用 中文表名,字段名毫無問題!?。?/p>

問:打開庫文件名后,列出所有《庫名》的sql語句是?
答:
PRAGMA database_list;

問:打開sqlite庫文件后,默認的數據庫名是?
答:
main

問:列出所有表名的sql語句是?
答:
SELECT name FROM sqlite_master WHERE type='table' order by name;

問:測試表是否存在的sql語句是?
答:
SELECT name FROM sqlite_master WHERE name='表名' ;

問:列出某個表的所有索引,要用的sql語句是?
答:
PRAGMA index_list(表名);

問:建立表的sql語句是?
答:
CREATE TABLE IF NOT EXISTS '表名' ('自增' INTEGER PRIMARY KEY AUTOINCREMENT, '字段名2' REAL)
CREATE TABLE IF NOT EXISTS '表名' ('字段名1' INTEGER AUTOINCREMENT, '字段名2' REAL, '字段名3' TEXT, '字段名4' BLOB,PRIMARY KEY ('字段名1'))
CREATE TEMP TABLE #建臨時表
PRIMARY KEY #主鍵
AUTOINCREMENT #自增

問:建立,刪除索引的sql語句是?
答:
CREATE INDEX IF NOT EXISTS 索引名 ON 表名(字段名)
CREATE INDEX IF NOT EXISTS 索引名 ON 表名(字段名 ASC,字段名2 DESC)
CREATE UNIQUE INDEX IF NOT EXISTS 索引名 ON 表名(字段名 DESC)#唯一索引

刪除索引:
DROP INDEX IF EXISTS 索引名

傳教士問:
我搜遍了全世界,包括官方,也搞不清楚為啥不是DROP INDEX IF EXISTS 索引名 on 表名?而是DROP INDEX IF EXISTS 數據庫名.索引名
一個庫里,可以有多個表啊,請問誰能答?

問:什么是sqlite數據清理?有什么好處?
答:
刪除一條記錄時只是打上刪除標記。數據清理是徹底刪除數據。
大量的插入、更新和刪除等操作后,清理下數據,有助于讀取性能。還會歸還空間給操作系統。
sqlite的數據清理,只能對整個數據庫來操作。

問:數據清理命令是?
答:
Attached 數據庫名 連接數據庫。
vacuum 刪除已經打上刪除標記的表,記錄。
reindex 重生成索引

問:查看表結構的sql語句是?
答:
PRAGMA table_info(表名);

問:清空表的sql語句是?
答:
delete from 表名;
update sqlite_sequence SET seq = 0 where name ='表名'; #自增字段歸零。sqlite_sequence是main庫中的特殊表。

問:插入數據的sql語句是?
答:
INSERT INTO 表名 VALUES(null,21.5,'this is a texttest.','blob WER@#$@$%^^')

問:空值是?
答:
null

http://www.sqlite.org/lang_select.html
問:查詢數據的sql語句是?
答:
SELECT '字段名' FROM '表名' WHERE 條件

問:查詢結果去重的sql語句是?
答:
SELECT DISTINCT '字段名'
SELECT DISTINCT '字段名1','字段名2','字段名3','字段名4' #所有字段的值完全相同,才算重復。

問:集合去重的sql語句是?
答:
SELECT 返回的集合1
UNION
SELECT 返回的集合2

問:查詢結果按 '字段名' 分組輸出的sql語句是?
答:
SELECT '字段名' FROM '表名' WHERE 條件 GROUP BY '字段名' ;
GROUP BY 一定要放在WHERE之后,GROUP BY 一定要放在ORDER BY之前。

問:查詢結果按 '字段名' 排序輸出的sql語句是?
答:
SELECT '字段名' FROM '表名' WHERE 條件 ORDER BY '字段名' ASC ;
SELECT '字段名' FROM '表名' WHERE 條件 ORDER BY '字段名' DESC ;

問:隱藏的自增列叫什么?
答:
rowid或_rowid_
在沒有INTEGER類型的主鍵時,存在這個隱藏字段。

問:sqlite有個叫sqlite3.exe的客戶端軟件。我可以用這個sqlite.exe + cmd + bat 玩轉sqlite數據庫么?
答:
基本不行。
簡單來說powershell有內置的值類型,如小數數值,和表datetable。而bat中沒有。
powershell字符串對象長度大,bat數據超過8000左右字母不行。

------------------【例子】------------------ 

# 例子1 :專門給菜鳥編寫的 PowerShell 操作Sqlite的例子。大量硬編碼,快速上手。win10測試通過。

Import-Module pssqlite$sqlite庫文件名 = "a:/pscode/sqlite/test001.db" # 內存庫用 ':MEMORY:'$sqlite庫名 = "" #默認main$sqlite表名 = "biao001"#region sql#---$建立_表_的sql語句 = ""$建立_索引_的sql語句 = "CREATE INDEX IF NOT EXISTS $將要建立的索引名 ON $sqlite表名($將要建立索引的字段名)"#powershell 傳教士 原創例子 始作于 2016-01-01 元旦 允許轉載,但必須保留名字和出處,否則追究法律責任#---$列出所有_庫名_的sql語句 = 'PRAGMA database_list;'$列出所有_表名_的sql語句 = "SELECT name FROM sqlite_master WHERE type='table' order by name;"$列出某個_表結構_的sql語句 = "PRAGMA table_info($sqlite表名);"$列出某個_表的所有索引_的sql語句 = "PRAGMA index_list($sqlite表名); "#---$測試_表是否存在_的sql語句 = "SELECT name FROM sqlite_master WHERE name='$sqlite表名' ; "#---$插入一條_數據數據_的sql語句 = ''#---$查詢_表_的sql語句 = ''#---$清空_表_的sql語句 = "delete from $sqlite表名 ;"#---#endregion sql# 前提1 庫文件確實存在,有【$sqlite庫文件名】。則建立連接。# 前提2 庫文件不存在,有【$sqlite庫文件名】和【$建立_表的sql語句】。則建立連接,然后建立表。# 前提3 有【$建立_表的sql語句】和【$sqlite庫文件名 = ':MEMORY:'】字符串。則建立連接,然后建立表。if ($sqlite庫文件名 -eq ':MEMORY:'){ Write-Verbose '新建【內存】sqlite庫文件' $我的Sqlite連接 = New-SQLiteConnection -DataSource $sqlite庫文件名 Invoke-SqliteQuery -query $建立_表的sql語句 -DataSource $sqlite庫文件名 }else{ if (test-path $sqlite庫文件名) {  Write-Verbose 'sqlite庫文件已經存在'  $我的Sqlite連接 = New-SQLiteConnection -DataSource $sqlite庫文件名 } else {  Write-Verbose '新建sqlite庫文件'  $我的Sqlite連接 = New-SQLiteConnection -DataSource $sqlite庫文件名  #新建表  $字段字串 = ""  $建立_表_的sql語句 = @"CREATE TABLE IF NOT EXISTS '$sqlite表名' ($字段字串)"@  Invoke-SqliteQuery -query $建立_表_的sql語句 -DataSource $sqlite庫文件名 }}# 列出庫,列出表。前提【$我的Sqlite連接】已經建立。Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $列出所有_庫名_的sql語句 Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $列出所有_表名_的sql語句# 建表索引。前提【$sqlite表名】,【$將要建立的索引名】,【$將要建立索引的字段名】已經賦值。$將要建立的索引名 = 'yyy'$將要建立索引的字段名 = 'bbb'$建立_索引_的sql語句 = "CREATE INDEX IF NOT EXISTS $將要建立的索引名 ON $sqlite表名($將要建立索引的字段名)"Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $建立_索引_的sql語句# 測表是否存在,查表結構,查表索引。前提【$sqlite表名】已經賦值。Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $測試_表是否存在_的sql語句 #返回表名 Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $列出某個_表結構_的sql語句 Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $列出某個_表的所有索引_的sql語句$查詢_表_的sql語句 = "select * from '$sqlite表名'  ;"$查詢_表_的sql語句Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $查詢_表_的sql語句#插入數據$字段1值 = 'null'$字段2值 = '121215687'$字段3值 = ''$插入一條_數據數據_的sql語句 = "INSERT INTO $sqlite表名 VALUES($字段1值,$字段2值) ;" #本例表只有2個字段 Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $插入一條_數據數據_的sql語句#查詢數據$查詢_表_的sql語句 = "select * from '$sqlite表名' ;"$查詢_表_的sql語句Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $查詢_表_的sql語句#清空$清空_表_的sql語句 = "delete from $sqlite表名 ;"Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $清空_表_的sql語句Invoke-SqliteQuery -SQLiteConnection $我的Sqlite連接 -Query $查詢_表_的sql語句

例子2:專門給菜鳥編寫的 PowerShell 操作Sqlite bulkcopy的例子。大量硬編碼,快速上手。win10測試通過。

Import-Module pssqlite$sqlite庫文件名 = "a:/pscode/sqlite/test006.db" # 內存庫用 ':MEMORY:'$sqlite庫名 = "" #默認main$sqlite表名 = "biao001"if (test-path $sqlite庫文件名){ Write-error 'sqlite庫文件已經存在' exit 1}$點net的DataTable = get-process | Out-DataTable #數據來源$列集合 = $點net的DataTable.Columns[array]$每個字段名 = @()foreach ($temp001 in $列集合){ $每個字段名 += $temp001.ColumnName}#powershell 傳教士 原創例子 始作于 2016-01-01 元旦 允許轉載,但必須保留名字和出處,否則追究法律責任$每個字段類型 = 'text'$temp002 = $每個字段名[0]$建立_表_的sql語句 = @"CREATE TABLE IF NOT EXISTS '$sqlite表名' ($temp002 $每個字段類型)"@#Write-Warning $建立_表_的sql語句Invoke-SqliteQuery -query $建立_表_的sql語句 -DataSource $sqlite庫文件名for ($i = 1;$i -le $每個字段名.Count ;$i++){ $temp003 = $每個字段名[$i] $建立_表_的sql語句 = @"ALTER TABLE '$sqlite表名' ADD COLUMN '$temp003' $每個字段類型 ;"@# Write-Warning $建立_表_的sql語句 Invoke-SqliteQuery -query $建立_表_的sql語句 -DataSource $sqlite庫文件名}Invoke-SQLiteBulkCopy -DataTable $點net的DataTable -DataSource $sqlite庫文件名 -Table $sqlite表名 -force

文章到這就結束了,需要的朋友可以多看看實例。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情图片区| 91精品国产91久久久久福利| 精品精品国产国产自在线| 欧美电影免费观看| yellow中文字幕久久| 亚洲精品电影久久久| 欧美日韩免费网站| 日本一区二区在线免费播放| 欧美大人香蕉在线| 久久婷婷国产麻豆91天堂| 精品国产91乱高清在线观看| 免费不卡在线观看av| 亚洲在线一区二区| 亚洲在线免费观看| www.欧美免费| 热久久这里只有精品| 欧美成人sm免费视频| 久久精品国产一区二区三区| 国内揄拍国内精品| 欧美日韩中文在线观看| 日韩精品视频观看| 91福利视频在线观看| 亚洲视频综合网| 亚洲国产欧美自拍| 国产精品高潮呻吟久久av无限| 91中文字幕在线| 亚洲最新在线视频| 精品国产91乱高清在线观看| 亚洲色图欧美制服丝袜另类第一页| 亚洲成人aaa| 国产精品精品久久久| 国产成人精品免高潮在线观看| 国产日韩换脸av一区在线观看| 日韩免费观看视频| 最近2019年日本中文免费字幕| 亚洲综合自拍一区| 久久久久久av| 日本a级片电影一区二区| 97视频在线看| 91精品久久久久久久久久| 欧美电影免费观看高清完整| 精品国产一区二区三区在线观看| 久久视频国产精品免费视频在线| 欧美日韩成人在线播放| 久久精品99久久香蕉国产色戒| 日韩免费观看网站| 久久久av一区| 欧美高清自拍一区| 日韩a**站在线观看| 中文字幕最新精品| 欧美黄色三级网站| 国内偷自视频区视频综合| 亚洲精品www| 亚洲一区二区三区四区在线播放| 26uuu亚洲国产精品| 国产精品99久久久久久久久久久久| 欧美极品少妇xxxxⅹ免费视频| 色偷偷偷亚洲综合网另类| 91国产精品视频在线| 亚洲欧洲日产国产网站| 91色视频在线导航| 久久久噜噜噜久久| 伊人一区二区三区久久精品| 国产亚洲精品综合一区91| 一区二区三区 在线观看视| 一色桃子一区二区| 欧美日韩成人在线播放| 88xx成人精品| 深夜福利91大全| 成人做爰www免费看视频网站| 中文字幕亚洲二区| 日韩美女免费线视频| 国产999精品久久久影片官网| 精品福利樱桃av导航| 精品国产一区二区三区四区在线观看| 国产精品久久久久久av| 久久久久五月天| 一区二区三区久久精品| 亚洲精品国产拍免费91在线| 91丝袜美腿美女视频网站| 久久久www成人免费精品| 自拍亚洲一区欧美另类| 中文综合在线观看| 美女黄色丝袜一区| 国产精品久久久| 日韩欧美中文字幕在线观看| 亚洲性日韩精品一区二区| 成人午夜高潮视频| 日韩资源在线观看| 欧美性精品220| 久久久久久久久久久亚洲| 色偷偷亚洲男人天堂| 欧美www视频在线观看| 日韩中文字幕在线观看| 亚洲色图美腿丝袜| 久久国产精品影视| 国产精品成久久久久三级| 中文字幕亚洲综合久久| 国产女精品视频网站免费| 国语自产在线不卡| 欧美日韩国产综合新一区| 久久久国产91| 国产精品久久久久久网站| 亚洲欧美一区二区三区久久| 亚洲va男人天堂| 亚洲精品国产欧美| 日韩美女视频在线观看| 午夜精品久久久久久久99热| 久久久精品免费| 亚洲欧美国产精品专区久久| 欧美亚洲成人免费| 精品中文字幕视频| 97**国产露脸精品国产| 亚洲伊人久久综合| 日韩精品极品视频免费观看| 欧美日韩成人黄色| 日韩在线视频网| 欧美精品日韩www.p站| 亚洲欧洲xxxx| 欧美日韩中文在线观看| 国产日韩在线看| 亚洲另类激情图| 中文国产成人精品久久一| 亚洲视频专区在线| 日韩一区二区久久久| 亚洲天堂成人在线视频| 欧美日韩国产在线播放| 欧美精品在线免费| 日本亚洲欧美成人| 亚洲午夜色婷婷在线| 国产精品99久久久久久久久久久久| 国产午夜精品久久久| 不卡伊人av在线播放| 一个人看的www久久| 国产精品成人aaaaa网站| 欧美视频第一页| 欧美激情视频一区二区三区不卡| 日韩精品视频在线观看网址| 国产精品电影网站| 国产精品27p| 亚洲色图在线观看| 成人免费观看a| 欧美日韩色婷婷| 久久99久久99精品中文字幕| 亚洲字幕在线观看| 国产91精品视频在线观看| 国产成人拍精品视频午夜网站| 久久视频国产精品免费视频在线| 岛国av一区二区三区| 日韩在线播放av| 亚洲欧美中文字幕| 国产丝袜一区二区三区免费视频| 九九热r在线视频精品| 日本精品中文字幕| 久久久爽爽爽美女图片| 国产一区香蕉久久| 日韩av大片免费看| 国产日韩欧美在线观看| 国产亚洲精品久久久久动| 久久久久久91香蕉国产| 日韩精品视频观看| 中文字幕九色91在线| 一区二区三区天堂av| 欧美视频在线看|