Данные и записи данных

Что такое записи данных ? Как опрашивать данные? Как добавлять новые данные в базу данных? Как удалять данные из базы данных ? Как изменять данные в базе данных?

SELECT - опрашивать данные

-- english, deutsch, russian --

Синтаксис

Описание:

    SELECT возвращает как результат строки данных, которые создаются из данных, содержащихся в указанных исходных таблицах данных. С помощью SELECT можно, например, выбирать определенные строки из одной таблицы данных, или суммировать элементы этой таблицы, или же создавать новую таблицу-результат из многих исходных.

DISTINCT

    DISTINCT указывает базе данных исключать дупликаты из результата команды SELECT.

    Пример:

SELECT DISTINCT vnum
FROM torder;

Здесь выбираются все различные (без дупликатов) элементы столбца vnum таблицы torder.

FROM { таблица [ псевдоним ] } [,...]

    С помощью FROM сообщают базе данных из каких таблиц выбирать данные.

    Пример:

SELECT vnum
FROM torder;

Здесь выбираются все элементы поля vnum таблицы torder.

WHERE условие

    С помощью WHERE ограничивают выбор данных из указанных таблиц.

    Пример:

SELECT tkunden.knum, tverkauf.vnum, tverkauf.prov
FROM tkunden, tverkauf
WHERE tkunden.vnum=tverkauf.vnum; 

Результатом является здесь таблица из строк, состоющих из поля knum таблицы tkunden и полей vnum и prov таблицы tverkauf, где с помощью WHERE указывается как находить строки таблицы tverkauf соответствующие строкам из таблицы tkunden.

GROUP BY { поле | Integer } [,...]

    GROUP BY используется вместе с функциями агрегирования данных для того, чтобы последние действовали на определенные группы строк результирующей таблицы данных. На месте имен полей могут быть использованы их порядковые номера в списке полей результирующей таблицы.

    Пример:

SELECT vnum, MAX(preis)
FROM torder
GROUP BY vnum;

Здесь выбираются в качестве результата все максимальные значения поля preis про найденную группу строк с идентичным значением поля vnum.

HAVING условие

    HAVING используется вместе с GROUP для того чтобы выбирать только определенные группы строк данных, которые удовлетворяют указанному условию.

    Пример:

SELECT vnum, MAX(preis)
FROM torder
GROUP BY vnum
HAVING AVG(preis) > 10

Здесь выбираются все максимальные значения поля preis про найденную группу строк данных с идентичным vnum, удовлетворяющию дополнительному условию, что средняя величина preis больше 10.

ORDER BY { поле | Integer [ ASC|DESC ] } [,...]

    ORDER BY сортирует строки результирующей таблицы данных. Если ORDER BY используется внутри GROUP BY, то строки сортируются внутри каждой группы результирующих строк. Вместо имен полей могут быть использованы их порядковые номера в списке полей результирующей таблицы. ASC сортирует данные в восходящем порядке, DESC - в обратном.

    Пример:

UNION [ALL] SELECT-команда

    UNION используется для того, чтобы объединять результаты двух или более команд SELECT. Поля всех результирующих таблиц должны быть совместимыми. Если ALL не использовано, то дупликаты исключаются из объединения результатов.

    Пример:

SELECT vnum, vname
FROM tverkauf
WHERE stadt='Berlin'
UNION
SELECT knum, kname
FROM tkunden
WHERE stadt='Berlin'
ORDER BY 1;

Здесь результатом является таблица, содержащая все vnum и knum таблицы tverkauf так же, как и всеv num и kname таблицы tkunden, где поле stadt имеет значение 'Berlin'. Результат сортируется по первому столбцу и дупликаты исключаются.

INTERSECT [ALL] SELECT-команда

    ANSI DB2 Informix Oracle SQL Server Interbase
    нет да да да ? ?

    INTERSECT используется для того, чтобы объединять результаты двух или более команд SELECT, при этом в резултат включаются только строки содержащиеся в первой команде SELECT, как и во второй. Поля всех результирующих таблиц должны быть совместимыми. Если ALL не использовано, то дупликаты исключаются из объединения результатов.

    Пример:

SELECT vnum, vname
FROM tverkauf
WHERE stadt='Berlin'
INTERSECT
SELECT knum, kname
FROM tkunden
WHERE stadt='Berlin'
ORDER BY 1; 

Здесь интересуют все строки первой результирующей таблицы, которые так же содержатся и во второй. Дупликаты исключаются из результата.

EXCEPT [ALL] SELECT-команда

    Важно: в некоторых диалектах SQL используется вместо EXCEPT MINUS или DIFFERENCE, синтаксис же от этого не меняется

    ANSI DB2 Informix Oracle SQL Server Interbase
    нет да ? ? ? ?

    EXCEPT используется для того, чтобы объединять результаты двух или более команд SELECT, при этом в результат включаются только строки, содержащиеся в первой команде SELECT и не содержащиеся во второй. Поля всех результирующих таблиц должны быть совместимыми. Если ALL не использовано, то дупликаты исключаются из объединения результатов.

    Пример:

SELECT vnum, vname
FROM tverkauf
WHERE stadt='Berlin'
EXCEPT
SELECT knum, kname
FROM tkunden
WHERE stadt='Berlin'
ORDER BY 1; 

Здесь интересуют все строки первой результирующей таблицы, которые не имеют дупликатов во второй.

INTO { TEMP | SCRATCH } таблица

    ANSI DB2 Informix Oracle SQL Server Interbase
    нет да да ? нет нет

    INTO TEMP используется для создания вспомогательных таблиц в активной базе данных, которые автоматически удаляются из последней после окончания связи с ней. Часто используется для оптимизации команд SQL. INTO SCRATCH отличается от INTO TEMP тем, что временная таблица фрагментируется по всем дискам.

INSERT - добавлять данные

Синтаксис

Описание:

    INSERT INTO добавляет новые строки в указанную таблицу данных, которые состоят из констант или же являются результатом исполнения команды SELECT.

    Пример

INSERT INTO tberlin
SELECT *
FROM tverkauf
WHERE stadt='Berlin'

Здесь добавляются все строки таблицы tverkauf, где поле stadt имеет значение 'Berlin', в таблицу tberlin.

VALUES ( константа [,...] )

    С помощью VALUES записывают новую строку, состоящую из указанных констант, в таблицу данных.

    Пример:

INSERT INTO tverkauf (vnum,vname,stadt)
VALUES ( 1001, 'Müller', 'Berlin' ); 

Здесь добавляется новая строка в таблицу tverkauf, содержащая следующие элементы : 1001,'Müller','Berlin',NULL.

DELETE FROM - удалять данные

Синтаксис:

Описание:

    С помощью DELETE FROM удаляются строки из таблицы базы данных.

    Пример:

DELETE FROM tverkauf
WHERE stadt='Kleinstadt'

Здесь удаляются все строки таблицы tverkauf, где поле stadt имеет значение 'Kleinstadt'.

UPDATE - изменять данные

Синтаксис

Описание:

    UPDATE используется для того, чтобы заменять определенные значения в элементах таблицы данных другими.

SET { поле=значение } [,...]

    С помощью SET заменяют значения полей в таблице указанными в списке.

    Пример:

UPDATE tverkauf
SET prov = prov + .01
WHERE 2 <=
( SELECT COUNT(knum) FROM tkunden WHERE tkunden.vnum=tverkauf.vnum ); 

Здесь увеличивается значение поля prov таблицы tverkauf на .01 в тех строках, которым соответствуют не более двух строк в таблице tkunden.

CASE - команда

Синтаксис

Описание

    С помощью CASE данные могут быть обработаны в зависимости от других данных. Внимание, команда поддерживается не всеми базами данных.

    Пример:

SELECT knum, kname,
CASE
  WHEN stadt <> 'Berlin'
  THEN LEFT('Das ist ein Nichtberliner, der sehr schlecht ist...',40)
  ELSE stadt
END berlin_yes_no
FROM tkunden
WHERE rating>1; 

Здесь выбираются все клиенты, рэйтинг которых больше, чем 1, где различают только на живущих в Берлине и прочих.

LOAD - загрузить данные из файла

Синтаксис

Описание:

    Используется для того, чтобы добавлять данные в таблицу базы данных из текстового файла. В качестве разделителя полей данных в строке может использоваться любой символ. Если разделитель не указан, то '|' используется по умолчанию.

    Пример:

LOAD FROM 'neworders.txt' DELIMITER '|'
INSERT INTO torder;

Загружает новые/дополнительные записи данных из текстового файла, в котором разделителем полей является |, в таблицу torder.

UNLOAD - выгрузить данные в текстовый файл

Синтаксис:

Описание:

    Используется для того, чтобы записывать результат SELECT-команды в текстовый файл. В качестве разделителя полей данных в строке может использоваться любой символ. Если разделитель не указан, то '|' используется по умолчанию.

    Пример:

UNLOAD TO 'allorders.txt' DELIMITER '|'
SELECT * FROM torder;

Сохраняет все данные таблицы torder в текстовом файле allorders.txt, в качестве разделителя полей используется |.