Программирование Викиданных/ТопКар SQL
Запросы на языке SQL к базе данных ТопКар.
См. Топонимия Карелии.
См. схему базы данных в проекте GitHub topkar.
См. код для сравнения результатов запросов к wikidata и topkar
Запрос править
Получить все объекты для которых не заполнено поле geotype_id править
SELECT id, name FROM toponyms WHERE geotype_id IS NULL
Получить id топонима, название топонима, geotype_id и имя geotype править
SELECT toponyms.id, toponyms.name, geotype_id, name_ru, wd FROM toponyms LEFT JOIN geotypes ON toponyms.id WHERE geotype_id = geotypes.id INTO OUTFILE 'output.txt'
Горы править
Получить все объекты гор из таблицы toponyms править
SELECT name FROM toponyms WHERE geotype_id = 53 INTO OUTFILE 'mountains.txt';
Получить все топонимы гор из таблицы toponyms и topnames править
CREATE TABLE sets_1 SELECT id, name, geotype_id FROM toponyms WHERE geotype_id = 53;
SELECT toponym_id, topnames.name FROM topnames INNER JOIN sets_1 ON toponym_id WHERE sets_1 .id = topnames.toponym_id
UNION
SELECT id, name FROM stream_1 INTO OUTFILE 'mountain.txt';
DROP TABLE sets_1
Озёра править
Получить все объекты озёр из таблицы toponyms править
SELECT name FROM toponyms WHERE geotype_id = 25 INTO OUTFILE 'lakes.txt';
Получить все топонимы озёр из таблицы toponyms и topnames править
CREATE TABLE sets_1 SELECT id, name, geotype_id FROM toponyms WHERE geotype_id = 25;
SELECT toponym_id, topnames.name FROM topnames INNER JOIN sets_1 ON toponym_id WHERE sets_1 .id = topnames.toponym_id
UNION
SELECT id, name FROM stream_1 INTO OUTFILE 'lakes.txt';
DROP TABLE sets_1
Реки править
Получить все объекты рек из таблицы toponyms править
SELECT name FROM toponyms WHERE geotype_id = 26 INTO OUTFILE 'rivers.txt';
Получить все топонимы рек из таблицы toponyms и topnames править
CREATE TABLE sets_1 SELECT id, name, geotype_id FROM toponyms WHERE geotype_id = 26;
SELECT toponym_id, topnames.name FROM topnames INNER JOIN sets_1 ON toponym_id WHERE sets_1 .id = topnames.toponym_id
UNION
SELECT id, name FROM stream_1 INTO OUTFILE 'rivers.txt';
DROP TABLE sets_1
Острова править
Получить все объекты островов из таблицы toponyms править
SELECT name FROM toponyms WHERE geotype_id = 51 INTO OUTFILE 'islands.txt';
Получить все топонимы рек из таблицы toponyms и topnames править
CREATE TABLE sets_1 SELECT id, name, geotype_id FROM toponyms WHERE geotype_id = 51;
SELECT toponym_id, topnames.name FROM topnames INNER JOIN sets_1 ON toponym_id WHERE sets_1 .id = topnames.toponym_id
UNION
SELECT id, name FROM stream_1 INTO OUTFILE 'islands.txt';
DROP TABLE sets_1
Деревни править
Получить все объекты деревень из таблицы toponyms править
SELECT name FROM toponyms WHERE geotype_id = 21 INTO OUTFILE 'villages.txt';
Получить все топонимы рек из таблицы toponyms и topnames править
CREATE TABLE sets_1 SELECT id, name, geotype_id FROM toponyms WHERE geotype_id = 21;
SELECT toponym_id, topnames.name FROM topnames INNER JOIN sets_1 ON toponym_id WHERE sets_1 .id = topnames.toponym_id
UNION
SELECT id, name FROM stream_1 INTO OUTFILE 'villages.txt';
DROP TABLE sets_1