SQL для Вікіпроектів/Список сторінок: відмінності між версіями

Вилучено вміст Додано вміст
Ilya (обговорення | внесок)
Створена сторінка: Виведемо всі колонки із таблиці сторінок page ([https://quarry.wmflabs.org/query/14106 Запит у Quarry]) <tt> SELECT...
 
Ilya (обговорення | внесок)
Немає опису редагування
Рядок 1:
Виведемо всі колонки із таблиці сторінок page ([https://quarry.wmflabs.org/query/14106 Запит у Quarry])
 
<source lang="sql>
<tt>
SELECT *
FROM ukwikibooks_p.page
</source>
ukwikibooks_p.page
</tt>
 
Запит повертає всі рядки та всі колонки із таблиці сторінок page.
Рядок 46 ⟶ 45:
Для цього виведемо із таблиці page лише колонки, які нас цікавлять: page_namespace і page_title ([https://quarry.wmflabs.org/query/14110 Запит у Quarry])
 
<source lang="sql>
<tt>
SELECT
page_namespace, page_title
FROM
ukwikibooks_p.page
</ttsource>
 
===== Сортування =====
Рядок 97 ⟶ 96:
Ми можемо вказати це явно, додавши до запиту <code lang="sql">ORDER BY page_namespace, page_title</code>, і отримати такий самий результат ([https://quarry.wmflabs.org/query/14111 Запит у Quarry])
 
<source lang="sql>
<tt>
SELECT
page_namespace, page_title
Рядок 104 ⟶ 103:
ORDER BY
page_namespace, page_title
</ttsource>
 
Тепер отримаємо такий же порядок сортування, як був у нас спочатку, коли ми отримували всі колонки. Для цього додамо сортування за колонкою page_id: <codett>ORDER BY page_id<></codett>
([https://quarry.wmflabs.org/query/14110 Запит у Quarry])
 
<source lang="sql>
<tt>
SELECT
page_id, page_namespace, page_title
Рядок 116 ⟶ 115:
ORDER BY
page_id
</ttsource>
 
Тепер результат відсортовано за page_id і перші рядки виглядають так:
Рядок 283 ⟶ 282:
Додамо умову, що вибираємо лише сторінки із основного простору (простору статей)
<tt><pre> WHERE page_namespace = 0 </pre></tt> і виведемо вікірозмітку посилання на статті ([https://quarry.wmflabs.org/query/14113 код у Quarry])
<source lang="sql>
<tt><pre>
SELECT
CONCAT('[[', page_title, ']]') AS page_link
Рядок 290 ⟶ 289:
WHERE
page_namespace = 0
</pre></ttsource>
 
Тепер ми можемо вивести список сторінок, що містить повне посилання на сторінку, яке включає і префікс простору назв ([https://quarry.wmflabs.org/query/14112 код у Quarry])
 
<source lang="sql>
<tt><pre>
SELECT
page_id,
Рядок 306 ⟶ 305:
ORDER BY
page_id
</pre></ttsource>
 
Результат:
Рядок 342 ⟶ 341:
|1659||14||Українська_мова||[[:{{ns:14}}:Українська_мова]]
|}
 
 
=== Кількість сторінок ===
[https://quarry.wmflabs.org/query/14107 Запит у Quarry]
<tt>
SELECT
count(*)
FROM
ukwikibooks_p.page
</tt>
 
У Вікіпідручнику запит видає цифру 2773, тоді як статистика самого сайту 3596. Кількість сторінок — доволі технічна, а не змістовна статистика і схоже рахується дещо по різному. Оскільки сторінок взагалі у Вікіпдіручнику небагато, то відмінність вийшла досить значна
 
 
Виведемо кількість сторінок у Вікіпедії: ([https://quarry.wmflabs.org/query/14108 Запит у Quarry])
<tt>
SELECT
count(*)
FROM
ukwiki_p.page
</tt>
 
За нашим запитом — 1 986 487, за статистикою сайту — 1 986 749.
Тут уже відмінність всього на <code>1 986 749 - 1 986 487 = 262</code> сторінки, або лише 0.01%. Тобто за великої кількості сторінок різниця між різними способами практично непомітна.