Privacy Policy Cookie Policy Terms and Conditions Wikipedia:SQL-opdrachten - Wikipedia

Wikipedia:SQL-opdrachten

Wikipedia:Overzicht beheerpagina's

Tot april 2004 konden moderators via een speciale pagina SQL opdrachten doen op de Wikipedia database. Vanaf april 2004 tot juni 2005 was dat alleen mogelijk door zelf een database dump te downloaden en een query te doen m.b.v. bijvoorbeeld MySQL.

Maar sinds juni 2005 heeft een Duitse Wikipediaan een website ontwikkeld, Wikisign, waar je online een SQL opdracht kunt doen op een recente database dump.

Hier volgen enkele ideeën voor zoekopdrachten:

Inhoud

[bewerk] Nieuwe gebruikers vinden

De volgende zoekopdracht geeft een overzicht van de laatste 20 nieuwe geregistreerde gebruikers die een artikel hebben ingevoerd. Het zou bijvoorbeeld gebruikt kunnen worden om nieuwelingen te verwelkomen:

SELECT user_name, COUNT(*)
FROM user, cur
WHERE user_name=cur_user_text
GROUP BY user_id
ORDER BY user_id
DESC LIMIT 20 

Deze zoekopdracht is echter niet perfect; het registreert alleen wijzigingen waarbij niet iemand anders later dezelfde pagina heeft gewijzigd. Om die te vinden, kunt u gebruikmaken van:

SELECT user_name, COUNT(*)
FROM user, old
WHERE user_name=old_user_text
GROUP BY user_id
ORDER BY user_id
DESC LIMIT 20 

[bewerk] Problematische links

De volgende zoekopdracht vindt zogenaamde 'dubbele redirects', waarbij een pagina A redirect naar een pagina B, die zelf weer redirect naar een pagina C:

SELECT l_from, cb.cur_title, cb.cur_text
FROM links, cur AS ca, cur AS cb
WHERE ca.cur_is_redirect=1
 AND cb.cur_is_redirect=1
 AND l_to=cb.cur_id
 AND l_from=ca.cur_title
LIMIT 250

Om pagina's met verwijzingen naar zichzelf te zoeken, kan de volgende opdracht gebruikt worden (Let op! Deze kost veel rekentijd!)

SELECT cur_title
FROM cur, links
WHERE cur_is_redirect=0
 AND cur_namespace=0
 AND l_from=cur_title
 AND l_to=cur_id 

Voor redirects naar niet-bestaande pagina's kan de volgende opdracht gebruikt worden:

SELECT cur_title
FROM cur, brokenlinks
WHERE bl_from=cur_id
 AND cur_is_redirect=1 

Voor pagina's die verwijzen naar doorverwijspagina's (en daar waarschijnlijk beter omheen zouden kunnen worden geleid):

SELECT cur1.cur_title, COUNT(*) AS co
FROM cur AS cur1, links AS links1, links AS links2
WHERE links2.L_from <> "Wikipedia:Doorverwijspagina"
 AND links2.l_to = cur1.cur_id
 AND links1.l_from="Wikipedia:Doorverwijspagina"
 AND links1.l_to = cur1.cur_id
GROUP BY cur1.cur_title
ORDER BY co DESC
LIMIT 100

[bewerk] Statistieken trekken

Om de artikels met meer dan 1500 tekens te vinden:

SELECT COUNT(*)
FROM cur
WHERE LENGTH(cur_text)>1500
 AND cur_namespace=0 

[bewerk] Wikipedia Internationaal

Voor pagina's die nog geen en: verwijzing hebben:

SELECT cur_title
FROM cur
WHERE cur_text NOT LIKE "%[[en:%"
 AND cur_namespace=0
 AND cur_is_redirect=0

Een dergelijke lijst kan natuurlijk ook voor een andere taal worden aangemaakt (vervang dan de en: door de aanduiding van de betreffende taal), maar is dan natuurlijk wel een stuk langer...

[bewerk] Opsporen spellingsfouten

Om alle pagina's met "iets" te vinden. Opgepast: dit zou wel eens lang kunnen duren.

SELECT cur_title
FROM cur
WHERE cur_namespace=0
 AND cur_text REGEXP "[[:<:]]iets[[:>:]]"
ORDER BY cur_title 

[bewerk] Directe links vinden

Om directe links te vinden in een artikel. Dus iets als "http://www.eenofanderdomein.con/iets.gif". De "gif" in de query kan je aanpassen in de gewenste uitgang.

SELECT cur_title
FROM cur
WHERE cur_text LIKE "%http://%.gif%"
 AND cur_namespace=0

[bewerk] Alle pagina's van een naamruimte weergeven

Deze is om een lijst te maken met alle pagina's van de "wikipedia"-naamruimte.

SELECT CONCAT("Wikipedia:",cur_title) AS cur_title
FROM cur
WHERE cur_namespace=4
 AND cur_is_redirect=0
ORDER BY cur_title 

[bewerk] Alle beveiligde pagina's tonen

SELECT cur_namespace, cur_title
FROM cur
WHERE cur_restrictions != ''

[bewerk] Diversen

To make a list of active Wikipedians i would like a query that gives back all registerd users that have made at least X edits in the last X days. giskart 13:06 Feb 2, 2003 (UTC)

Hmm, doing this exactly is kinda tricky, but approximately sure. :) Something like these; you have to separately query the current and old revisions, at least for now:
SELECT cur_user_text, COUNT(*) AS count
FROM cur
WHERE cur_timestamp > '20030127000000' AND cur_user != 0
GROUP BY cur_user
HAVING count > 5
ORDER BY count DESC
SELECT old_user_text, COUNT(*) AS count
FROM old
WHERE old_timestamp > '20030127000000' AND old_user != 0
GROUP BY old_user
HAVING count > 5
ORDER BY count DESC
You'll have to manually construct a timestamp with the cutoff date you want; the above is 27 January 2003 at midnight. Use a smaller count than the 'real' cutoff, as edits will be split between the two tables. --Brion 18:10 Feb 2, 2003 (UTC)

[bewerk] Vervangende opdrachten voor de uitgeschakelde speciale pagina's

SELECT cur_title, 'xxx', LENGTH(cur_text), '!'
FROM cur
WHERE cur_namespace=0
 AND cur_is_redirect=0
ORDER BY LENGTH(cur_text)
LIMIT 200
SELECT cur_title, 'xxx', LENGTH(cur_text), '!'
FROM cur
WHERE cur_namespace=0
 AND cur_is_redirect=0
ORDER BY LENGTH(cur_text) DESC
LIMIT 200
SELECT bl_to, 'xxx', COUNT(DISTINCT bl_from) AS nlinks, '!'
FROM brokenlinks
GROUP BY bl_to
HAVING nlinks > 1
ORDER BY nlinks DESC
SELECT links2.l_from, 'xxx', cur1.cur_title, '!'
FROM cur AS cur1, links AS links1, links AS links2
WHERE links2.L_from <> "Wikipedia:Doorverwijspagina"
 AND links2.l_to=cur1.cur_id
 AND links1.l_from="Wikipedia:Doorverwijspagina"
 AND links1.l_to=cur1.cur_id
ORDER BY links2.l_from
LIMIT 200

(hier moeten helaas de Overleg/Gebruiker/Wikipedia-pagina's nog met de hand tussenuit gezocht worden)

SELECT l_from, 'xxx', cb.cur_title, 'yyy', cb.cur_text, '!'
FROM links, cur AS ca, cur AS cb
WHERE ca.cur_is_redirect=1
 AND cb.cur_is_redirect=1
 AND l_to=cb.cur_id
 AND l_from=ca.cur_title
LIMIT 250
SELECT cur_namespace, cur_title, '!'
FROM cur, brokenlinks
WHERE bl_from=cur_id
 AND cur_is_redirect=1
  • Zelfverwijzingen:
SELECT cur_title, '!'
FROM cur, links
WHERE cur_namespace=0
 AND l_from=cur_title
 AND l_to=cur_id
  • Aantal tabellen:
SELECT count(*)
FROM cur
WHERE cur_namespace=0
 AND cur_is_redirect=0
 AND cur_text LIKE '%<Table%' 

Dit is niet identiek aan het aantal echte tabellen, bijvoorbeeld worden er veel tabellen gebruikt om alleen de afbeelding aan de rechterzijde van de pagina te tonen.

  • Aantal artikelen met een afbeelding en een tabel (meestal betekent dit een afbeelding in een tabel):
SELECT count(*)
FROM cur
WHERE cur_namespace=0
 AND cur_is_redirect=0
 AND cur_text LIKE '%<table%'
 AND cur_text LIKE '%[afbeelding%'
LIMIT 100

Het aftrekken van bovenstaande twee levert een betere benadering van het aantal echte tabellen.

  • Behalve met tabellen maken andere encyclopedien vaak reclame met het aantal afbeeldingen. Voor wikipedia kan dit aantal bepaald worden met
SELECT count(*)
FROM image

[bewerk] Wijzigen status gebruiker

Werkt enkel indien men reeds systeemontwikkelaars status heeft

UPDATE user
SET user_rights='sysop,developer'
WHERE user_id=X;

x is de naam van de doelgebruiker.

[bewerk] Gebruikers met sysop/ontwikkelaarsstatus vinden

SELECT CONCAT("* [[Gebruiker:",user_name,"|",user_name,"]]")
FROM user
WHERE user_rights != ""
ORDER BY user_name
LIMIT 100

[bewerk] Verdachte tekens voor toekomstige upgrades

SELECT cur_namespace, cur_title
FROM cur
WHERE cur_text REGEXP CONCAT('[',char(0x80),'-',char(0x90),char(0x95),'-',char(0x9f),']')
ORDER BY cur_title
LIMIT 100

[bewerk] Nog meer ideeën

Op de Engelse versie van deze pagina kunt u nog meer ideeën vinden, en links naar een overzicht van de diverse database-elementen, zodat u ook zelf een query kunt samenstellen.

 
in andere talen
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu