新聞中心
在計算機科學(xué)與信息技術(shù)領(lǐng)域中,數(shù)據(jù)庫是存儲和組織數(shù)據(jù)的一個重要工具。在處理大量數(shù)據(jù)時,數(shù)據(jù)庫是必不可少的。數(shù)據(jù)庫SQL語言作為數(shù)據(jù)庫的操作語言,已成為數(shù)據(jù)庫管理的標準。學(xué)習(xí)SQL語言對于提高數(shù)據(jù)庫操作效率和精度具有重要意義。因此,對于開發(fā)人員來說,學(xué)習(xí)SQL語言是必不可少的。而數(shù)據(jù)庫sql語言視頻教程,由于其具有直觀性和可重復(fù)性,已成為學(xué)習(xí)者的首選教程。

一、 教程簡介
「深入淺出」數(shù)據(jù)庫SQL語言視頻教程是一套全面的SQL語言視頻教程,它由簡到難,循序漸進地介紹SQL語言的各種操作方法和技巧。它適用于初學(xué)者和有一定經(jīng)驗的開發(fā)者。該教程主要涵蓋SQL語言的基本語句、函數(shù)和操作符等內(nèi)容。此外,它還包含了大量的實例和練習(xí)。學(xué)習(xí)者可以通過這些實例和練習(xí),深入理解SQL語言的各種應(yīng)用場景和技巧,并在實踐中獲得更多的經(jīng)驗。通過學(xué)習(xí)這個教程,學(xué)習(xí)者可以精通SQL語言的各種操作方法和技巧,提高數(shù)據(jù)庫操作效率和精度。
二、 教程特點
1、 知識點覆蓋全面
「深入淺出」數(shù)據(jù)庫SQL語言視頻教程采用全面的講解,介紹SQL語言的各種操作方法和技巧,包括SQL基本語句、函數(shù)和操作符等。同時,教程中還介紹了SQL在不同應(yīng)用場景中的應(yīng)用。
2、 直觀易懂
「深入淺出」數(shù)據(jù)庫SQL語言視頻教程采用視頻教學(xué)方式,讓學(xué)習(xí)者在演示的過程中學(xué)習(xí)知識。學(xué)習(xí)者可以根據(jù)視頻中的演示,快速掌握SQL的各種操作方法和技巧。在演示過程中,教程注重講解關(guān)鍵點,讓學(xué)習(xí)者更加易于理解。
3、 可重復(fù)性強
「深入淺出」數(shù)據(jù)庫SQL語言視頻教程的演示內(nèi)容都是錄制下來的,學(xué)習(xí)者可以在任何時間和地點重復(fù)觀看課程,以加深理解。此外,在視頻教程中,演示過程可以通過暫停和回放的方式,隨時調(diào)整學(xué)習(xí)進度,形成學(xué)習(xí)效果。
4、 練習(xí)豐富
在「深入淺出」數(shù)據(jù)庫SQL語言視頻教程中,每個知識點和演示內(nèi)容都配有豐富的練習(xí)題和實例,供學(xué)習(xí)者在實踐中鞏固所學(xué)知識。通過這些實例和練習(xí),學(xué)習(xí)者可以更好地掌握SQL語言的各種應(yīng)用場景和技巧,并在實踐中獲得更多的經(jīng)驗。
5、 靈活性高
「深入淺出」數(shù)據(jù)庫SQL語言視頻教程適用于不同的學(xué)習(xí)需求和學(xué)習(xí)現(xiàn)狀。學(xué)習(xí)者可以自由選擇教材和學(xué)習(xí)進度,以滿足自己的學(xué)習(xí)需求。同時,練習(xí)題也提供了不同難度的練習(xí),讓學(xué)習(xí)者能根據(jù)自己的實際情況選擇。
三、 教程適用人群
「深入淺出」數(shù)據(jù)庫SQL語言視頻教程適用于以下學(xué)習(xí)者:
1、 剛開始學(xué)習(xí)SQL語言的新手學(xué)習(xí)者。
2、 有一定SQL語言使用經(jīng)驗的開發(fā)者,希望進一步了解SQL語言的操作技巧和應(yīng)用場景。
3、 希望提高數(shù)據(jù)庫操作效率和精度的所有人。
四、 教程價值
1、 提高數(shù)據(jù)庫操作效率和精度
通過學(xué)習(xí)「深入淺出」數(shù)據(jù)庫SQL語言視頻教程,學(xué)習(xí)者可以掌握SQL語言的各種操作方法和技巧,從而提高數(shù)據(jù)庫操作效率和精度。
2、 更好的應(yīng)對工作需求
學(xué)習(xí)SQL語言是IT從業(yè)者的必備技能。通過學(xué)習(xí)「深入淺出」數(shù)據(jù)庫SQL語言視頻教程,學(xué)習(xí)者可以更好地應(yīng)對工作需求。
3、 豐富的自我學(xué)習(xí)資源
學(xué)習(xí)「深入淺出」數(shù)據(jù)庫SQL語言視頻教程是一種學(xué)習(xí)方式,并且學(xué)習(xí)資源是不的。通過該教程,學(xué)習(xí)者可以積累更多的經(jīng)驗和知識,并且充分利用這些資源進行自我提升。
五、 教程
「深入淺出」數(shù)據(jù)庫SQL語言視頻教程是一門講解全面、知識體系完整的SQL學(xué)習(xí)資源。學(xué)習(xí)者可以根據(jù)自己的實際情況進行選擇。通過學(xué)習(xí)該教程,學(xué)習(xí)者可以快速掌握SQL語言的各種操作方法和技巧,提高數(shù)據(jù)庫操作效率和精度。從而更好地應(yīng)對工作需求,積累更多的經(jīng)驗和知識,實現(xiàn) 自我提升。
相關(guān)問題拓展閱讀:
- SQL怎么用
SQL怎么用
掌握SQL四條最基本的數(shù)據(jù)操作語句:Insert,Select,Update和Delete。
練掌握SQL是數(shù)據(jù)庫用戶的寶貴財 富。掌握四條最基本的數(shù)據(jù)操作語句—SQL的核心功能—來依次介紹比較操作符、選擇斷言以及三值邏輯。當你完成這些學(xué)習(xí)后,顯然你已經(jīng)開始算是精通SQL了。
在我們開始之前,先使用CREATE TABLE語句來創(chuàng)建一個表(如圖1所示)。DDL語句對數(shù)據(jù)庫對象如表、列和視進行定義。它們并不對表中的行進行處理,這是因為DDL語句并不處理數(shù)據(jù)庫中實際的數(shù)據(jù)。這些工作由另一類SQL語句—數(shù)據(jù)操作語言(DML)語句進行處理。
SQL中有四種基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于這是大多數(shù)SQL用戶經(jīng)常用到的,我們有必要在此對它們進行一一說明。在圖1中我們給出了一個名為EMPLOYEES的表。其中的每一行對應(yīng)一個特定的雇員記錄。請熟悉這張表,我們在后面的例子中將要用到它。
INSERT語句
用戶可以用INSERT語句將一行記錄插入到指定的一個表中。例如,要將雇員John Smith的記錄插入到本例的表中,可以使用如下語句:
INSERT INTO EMPLOYEES VALUES
(‘Smith’,’John’,”,
‘Los Angles’,16,45000);
通過這樣的INSERT語句,系統(tǒng)將試著將這些值填入到相應(yīng)的列中。這些列按照我們創(chuàng)建表時定義的順序排列。在本例中,之一個值“Smith”將填到之一個列LAST_NAME中;第二個值“John”將填到第二列FIRST_NAME中……以此類推。
我們說過系統(tǒng)會“試著”將值填入,除了執(zhí)行規(guī)則之外它還要進行類型檢查。如果類型不符(如將一個字符串填入到類型為數(shù)字的列中),系統(tǒng)將拒絕這一次操作并返回一個錯誤信息。
如果SQL拒絕了你所填入的一列值,語句中其他各列的值也不會填入。這是因為SQL提供對事務(wù)的支持。一次事務(wù)將數(shù)據(jù)庫從一種一致性轉(zhuǎn)移到另一種一致性。如果事務(wù)的某一部分失敗,則整個事務(wù)都會失敗,系統(tǒng)將會被恢復(fù)(或稱之為回退)到此事務(wù)之前的狀態(tài)。
回到原來的INSERT的例子,請注意所有的整形十進制數(shù)都不需要用單引號引起來,而字符串和日期類型的值都要用單引號來區(qū)別。為了增加可讀性而在數(shù)字間插入逗號將會引起錯誤。記住,在SQL中逗號是元素的分隔符。
同樣要注意輸入文字值時要使用單引號。雙引號用來封裝限界標識符。
對于日期類型,我們必須使用SQL標準日期格式(yyyy-mm-dd),但是在系統(tǒng)中可碧純以進行定義,以接受其他的格式。當然,2023年臨近,請你更好還是使用四位來表示年份。
既然你已經(jīng)理解了INSERT語句是怎樣工作的了,讓我們轉(zhuǎn)到EMPLOYEES表中的其他部分:
INSERT INTO EMPLOYEES VALUES
(‘Bunyan’,’Paul’,”,
‘Boston’,12,70000);
INSERT INTO EMPLOYEES VALUES
(‘John’,’Adams’租答,”,
‘Boston’,20,100000);
INSERT INTO EMPLOYEES VALUES
(‘Smith’,’Pocahontas’,”,
‘Los Angles’,12,100000);
INSERT INTO EMPLOYEES VALUES
(‘Smith’,’Bessie’,”,
‘Boston’,5,202300);
INSERT INTO EMPLOYEES VALUES
(‘Jones’,’Davy’,”,
‘Boston’,8,45000);
INSERT INTO EMPLOYEES VALUES
(‘Jones’,’Indiana’,”,
‘Chicago’,NULL,NULL);
在最后一項中,我們不知道Jones先生的工薪級別和年薪,所以我們輸入NULL(不要引號)悔型咐。NULL是SQL中的一種特殊情況,我們以后將進行詳細的討論?,F(xiàn)在我們只需認為NULL表示一種未知的值。
有時,像我們剛才所討論的情況,我們可能希望對某一些而不是全部的列進行賦值。除了對要省略的列輸入NULL外,還可以采用另外一種INSERT語句,如下:
INSERT INTO EMPLOYEES(
FIRST_NAME, LAST_NAME,
HIRE_DATE, BRANCH_OFFICE)
VALUE(
‘Indiana’,’Jones’,
”,’Indianapolis’);
這樣,我們先在表名之后列出一系列列名。未列出的列中將自動填入缺省值,如果沒有設(shè)置缺省值則填入NULL。請注意我們改變了列的順序,而值的順序要對應(yīng)新的列的順序。如果該語句中省略了FIRST_NAME和LAST_NAME項(這兩項規(guī)定不能為空),SQL操作將失敗。
讓我們來看一看上述INSERT語句的語法圖:
INSERT INTO table
VALUES
(columnvalue );
和前一篇文章中一樣,我們用方括號來表示可選項,大括號表示可以重復(fù)任意次數(shù)的項(不能在實際的SQL語句中使用這些特殊字符)。VALUE子句和可選的列名列表中必須使用圓括號。
SELECT語句
SELECT語句可以從一個或多個表中選取特定的行和列。因為查詢和檢索數(shù)據(jù)是數(shù)據(jù)庫管理中最重要的功能,所以SELECT語句在SQL中是工作量更大的部分。實際上,僅僅是訪問數(shù)據(jù)庫來分析數(shù)據(jù)并生成報表的人可以對其他SQL語句一竅不通。
SELECT語句的結(jié)果通常是生成另外一個表。在執(zhí)行過程中系統(tǒng)根據(jù)用戶的標準從數(shù)據(jù)庫中選出匹配的行和列,并將結(jié)果放到臨時的表中。在直接SQL(direct SQL)中,它將結(jié)果顯示在終端的顯示屏上,或者將結(jié)果送到打印機或文件中。也可以結(jié)合其他SQL語句來將結(jié)果放到一個已知名稱的表中。
SELECT語句功能強大。雖然表面上看來它只用來完成本文之一部分中提到的關(guān)系代數(shù)運算“選擇”(或稱“限制”),但實際上它也可以完成其他兩種關(guān)系運算—“投影”和“連接”,SELECT語句還可以完成聚合計算并對數(shù)據(jù)進行排序。
SELECT語句最簡單的語法如下:
SELECT columns FROM tables;
當我們以這種形式執(zhí)行一條SELECT語句時,系統(tǒng)返回由所選擇的列以及用戶選擇的表中所有指定的行組成的一個結(jié)果表。這就是實現(xiàn)關(guān)系投影運算的一個形式。
讓我們看一下使用圖1中EMPLOYEES表的一些例子(這個表是我們以后所有SELECT語句實例都要使用的。而我們在圖2和圖3中給出了查詢的實際結(jié)果。我們將在其他的例子中使用這些結(jié)果)。
假設(shè)你想查看雇員工作部門的列表。那下面就是你所需要編寫的SQL查詢:
SELECT BRANCH_OFFICE FROM EMPLOYEES;
以上SELECT語句的執(zhí)行將產(chǎn)生如圖2中表2所示的結(jié)果。
由于我們在SELECT語句中只指定了一個列,所以我們的結(jié)果表中也只有一個列。注意結(jié)果表中具有重復(fù)的行,這是因為有多個雇員在同一部門工作(記住SQL從所選的所有行中將值返回)。要消除結(jié)果中的重復(fù)行,只要在SELECT語句中加上DISTINCT子句:
SELECT DISTINCT BRANCH_OFFICE
FROM EMPLOYEES;
這次查詢的結(jié)果如表3所示。
現(xiàn)在已經(jīng)消除了重復(fù)的行,但結(jié)果并不是按照順序排列的。如果你希望以字母表順序?qū)⒔Y(jié)果列出又該怎么做呢?只要使用ORDER BY子句就可以按照升序或降序來排列結(jié)果:
SELECT DISTINCT BRANCH_OFFICE
FROM EMPLOYEES
ORDER BY BRANCH_OFFICE ASC;
這一查詢的結(jié)果如表4所示。請注意在ORDER BY之后是如何放置列名BRANCH _OFFICE的,這就是我們想要對其進行排序的列。為什么即使是結(jié)果表中只有一個列時我們也必須指出列名呢?這是因為我們還能夠按照表中其他列進行排序,即使它們并不顯示出來。列名BRANCH_ OFFICE之后的關(guān)鍵字ASC表示按照升序排列。如果你希望以降序排列,那么可以用關(guān)鍵字DESC。
同樣我們應(yīng)該指出ORDER BY子句只將臨時表中的結(jié)果進行排序;并不影響原來的表。
假設(shè)我們希望得到按部門排序并從工資更高的雇員到工資更低的雇員排列的列表。除了工資括號中的內(nèi)容,我們還希望看到按照聘用時間從最近聘用的雇員開始列出的列表。以下是你將要用到的語句:
SELECT BRANCH_OFFICE,FIRST_NAME,
LAST_NAME,SALARY,HIRE_DATE
FROM EMPLOYEES
ORDER BY SALARY DESC,
HIRE_DATE DESC;
這里我們進行了多列的選擇和排序。排序的優(yōu)先級由語句中的列名順序所決定。SQL將先對列出的之一個列進行排序。如果在之一個列中出現(xiàn)了重復(fù)的行時,這些行將被按照第二列進行排序,如果在第二列中又出現(xiàn)了重復(fù)的行時,這些行又將被按照第三列進行排序……如此類推。這次查詢的結(jié)果如表5所示。
將一個很長的表中的所有列名寫出來是一件相當麻煩的事,所以SQL允許在選擇表中所有的列時使用*號:
SELECT * FROM EMPLOYEES;
這次查詢返回整個EMPLOYEES表,如表1所示。
下面我們對開始時給出的SELECT語句的語法進行一下更新(豎直線表示一個可選項,允許在其中選擇一項。):
SELECT
(column )| *
FROM table
| DESC
| DESC }>>;
定義選擇標準
在我們目前所介紹的SELECT語句中,我們對結(jié)果表中的列作出了選擇但返回的是表中所有的行。讓我們看一下如何對SELECT語句進行限制使得它只返回希望得到的行:
SELECT columns FROM tables ;
WHERE子句對條件進行了設(shè)置,只有滿足條件的行才被包括到結(jié)果表中。這些條件由斷言(predicate)進行指定(斷言指出了關(guān)于某件事情的一種可能的事實)。如果該斷言對于某個給定的行成立,該行將被包括到結(jié)果表中,否則該行被忽略。在SQL語句中斷言通常通過比較來表示。例如,假如你需要查詢所有姓為Jones的職員,則可以使用以下SELECT語句:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = ‘Jones’;
LAST_NAME = ‘Jones’部分就是斷言。在執(zhí)行該語句時,SQL將每一行的LAST_NAME列與“Jones”進行比較。如果某一職員的姓為“Jones”,即斷言成立,該職員的信息將被包括到結(jié)果表中(見表6)。
使用最多的六種比較
我們上例中的斷言包括一種基于“等值”的比較(LAST_NAME = ‘Jones’),但是SQL斷言還可以包含其他幾種類型的比較。其中最常用的為:
等于 =
不等于
小于
小于或等于 =
下面給出了不是基于等值比較的一個例子:
SELECT * FROM EMPLOYEES
WHERE SALARY > 50000;
這一查詢將返回年薪高于$50,000.00的職員(參見表7)。
邏輯連接符
有時我們需要定義一條不止一種斷言的SELECT語句。舉例來說,如果你僅僅想查看Davy Jones的信息的話,表6中的結(jié)果將是不正確的。為了進一步定義一個WHERE子句,用戶可以使用邏輯連接符AND,OR和NOT。為了只得到職員Davy Jones的記錄,用戶可以輸入如下語句:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = ‘Jones’ AND FIRST_NAME = ‘Davy’;
在本例中,我們通過邏輯連接符AND將兩個斷言連接起來。只有兩個斷言都滿足時整個表達式才會滿足。如果用戶需要定義一個SELECT語句來使得當其中任何一項成立就滿足條件時,可以使用OR連接符:
SELECT * FROM EMPLOYEES
WHERE LAST_NAME = ‘Jones’ OR LAST_NAME = ‘Smith’;
有時定義一個斷言的更好方法是通過相反的描述來說明。如果你想要查看除了Boston辦事處的職員以外的其他所有職員的信息時,你可以進行如下的查詢:
SELECT * FROM EMPLOYEES
WHERE NOT(BRANCH_OFFICE = ‘Boston’);
關(guān)鍵字NOT后面跟著用圓括號括起來的比較表達式。其結(jié)果是對結(jié)果取否定。如果某一職員所在部門的辦事處在Boston,括號內(nèi)的表達式返回true,但是NOT操作符將該值取反,所以該行將不被選中。
斷言可以與其他的斷言嵌套使用。為了保證它們以正確的順序進行求值,可以用括號將它們括起來:
SELECT * FROM EMPLOYEES
WHERE (LAST_NAME = ‘Jones’
AND FIRST_NAME = ‘Indiana’)
OR (LAST_NAME = ‘Smith’
AND FIRST_NAME = ‘Bessie’);
SQL沿用數(shù)學(xué)上標準的表達式求值的約定—圓括號內(nèi)的表達式將更先進行求值,其他表達式將從左到右進行求值。
以上對邏輯連接符進行了說明,在對下面的內(nèi)容進行說明之前,我們再一次對SELECT語句的語法進行更新:
SELECT
(column )| *
FROM table
|
| >
WHERE predicate ;
NULL和三值邏輯
在SQL中NULL是一個復(fù)雜的話題,關(guān)于NULL的詳細描述更適合于在SQL的高級教程而不是現(xiàn)在的入門教程中進行介紹。但由于NULL需要進行特殊處理,并且你也很可能會遇到它,所以我們還是簡略地進行一下說明。
首先,在斷言中進行NULL判斷時需要特殊的語法。例如,如果用戶需要顯示所有年薪未知的職員的全部信息,用戶可以使用如下SELECT語句:
SELECT * FROM EMPLOYEES
WHERE SALARY IS NULL;
相反,如果用戶需要所有已知年薪數(shù)據(jù)的職員的信息,你可以使用以下語句:
SELECT * FROM EMPLOYEES
WHERE SALARY IS NOT NULL;
請注意我們在列名之后使用了關(guān)鍵字IS NULL或IS NOT NULL,而不是標準的比較形式:COLUMN = NULL、COLUMN NULL或是邏輯操作符NOT(NULL)。
這種形式相當簡單。但當你不明確地測試NULL(而它們確實存在)時,事情會變得很混亂。
例如,回過頭來看我們圖1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等級或年薪值都是未知的。這兩個列都包含NULL。可以想象運行如下的查詢:
SELECT * FROM EMPLOYEES
WHERE GRADE
此時,Indiana Jones應(yīng)該出現(xiàn)在結(jié)果表中。因為NULL都是相等的,所以可以想象它們是能夠通過GRADE小于等于SALARY的檢查的。這其實是一個毫無疑義的查詢,但是并沒有關(guān)系。SQL允許進行這樣的比較,只要兩個列都是數(shù)字類型的。然而,Indiana Jones并沒有出現(xiàn)在查詢的結(jié)果中,為什么?
正如我們早先提到過的,NULL表示未知的值(而不是象某些人所想象的那樣表示一個為NULL的值)。對于SQL來說意味著這個值是未知的,而只要這個值為未知,就不能將其與其他值比較(即使其他值也是NULL)。所以SQL允許除了在true 和false之外還有第三種類型的真值,稱之為“非確定”(unknown)值。
如果比較的兩邊都是NULL,整個斷言就被認為是非確定的。將一個非確定斷言取反或使用AND或OR與其他斷言進行合并之后,其結(jié)果仍是非確定的。由于結(jié)果表中只包括斷言值為“真”的行,所以NULL不可能滿足該檢查。從而需要使用特殊的操作符IS NULL和IS NOT NULL。
UPDATE語句
UPDATE語句允許用戶在已知的表中對現(xiàn)有的行進行修改。
例如,我們剛剛發(fā)現(xiàn)Indiana Jones的等級為16,工資為$40,000.00,我們可以通過下面的SQL語句對數(shù)據(jù)庫進行更新(并清除那些煩人的NULL)。
UPDATE EMPLOYEES
SET GRADE = 16, SALARY = 40000
WHERE FIRST_NAME = ‘Indiana’
AND LAST_NAME = ‘Jones’;
上面的例子說明了一個單行更新,但是UPDATE語句可以對多行進行操作。滿足WHERE條件的所有行都將被更新。如果,你想讓Boston辦事處中的所有職員搬到New York,你可以使用如下語句:
UPDATE EMPLOYEES
SET BRANCH_OFFICE = ‘New York’
WHERE BRANCH_OFFICE = ‘Boston’;
如果忽略WHERE子句,表中所有行中的部門值都將被更新為’New York’。
UPDATE語句的語法流圖如下面所示:
UPDATE table
SET column = value
>;
DELETE語句
DELETE語句用來刪除已知表中的行。如同UPDATE語句中一樣,所有滿足WHERE子句中條件的行都將被刪除。由于SQL中沒有UNDO語句或是“你確認刪除嗎?”之類的警告,在執(zhí)行這條語句時千萬要小心。如果決定取消Los Angeles辦事處并解雇辦事處的所有職員,這一卑鄙的工作可以由以下這條語句來實現(xiàn):
DELETE FROM EMPLOYEES
WHERE BRANCH_OFFICE = ‘Los Angeles’;
如同UPDATE語句中一樣,省略WHERE子句將使得操作施加到表中所有的行。
DELETE語句的語法流圖如下面所示:
DELETE FROM table
>;
數(shù)據(jù)庫sql語言視頻教程的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫sql語言視頻教程,「深入淺出」數(shù)據(jù)庫SQL語言視頻教程,提高操作效率,SQL怎么用的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章題目:「深入淺出」數(shù)據(jù)庫SQL語言視頻教程,提高操作效率(數(shù)據(jù)庫sql語言視頻教程)
標題網(wǎng)址:http://fisionsoft.com.cn/article/cohsjeo.html


咨詢
建站咨詢
