Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сведения о языке SQL.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
159.14 Кб
Скачать

Удаление записей

Для удаления записей из таблицы служит команда DELETE FROM. В конструкции WHERE указывается условие, по которому отбираются удаляемые записи.

-- удалить определенные записи (четные)

DELETE FROM tblname

WHERE id%2 = 0; -- для Oracle: WHERE mod(id,2)=0;

-- удаление всех записей таблицы

DELETE FROM tblname;

Выборка записей

Выбор данных выполняется командой SELECT. Ниже приведен примерный список используемых ею конструкций и ключевых слов, полный же список зависит от реализации СУБД:

  • AS - определяет временный синоним источника данных или столбца;

  • FROM - указывает источники данных как таблицы, представления, другие выборки. По необходимости здесь можно указать соединение источников - каким образом запись одного источника сопоставляется с записью другого;

  • WHERE - позволяет указать условия по которым нужно производить отбор данных. Если хоть одно из перечисленных условий не выполняется, запись не попадает в выборку. Здесь также можно указать соединение источников;

  • ORDER BY - позволяет отсортировать выборку по указанным полям;

  • ASC, DESC - задают направление сортировки;

  • GROUP BY - позволяет разбить выборку на группы по указанному полю. Все записи, имеющие одно и то же значение в указанном поле, будут принадлежать одной группе;

  • HAVING - позволяет задать условие включения группы в выборку. Набор возможных условий как у WHERE плюс возможность использования агрегатных функций;

  • FOR UPDATE - позволяет заблокировать выбранные данные для изменения;

  • DISTINCT - позволяет включить в выборку только уникальные записи. Конечно это замедляет запрос, но бывает необходимо при использовании агрегатных функций.

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

-- создание таблицы

create table tblname (

id integer,

num double precision,

constraint pk_tblname primary key (id)

);

-- вставка данных

insert into tblname values(1,2.0);

insert into tblname values(2,3.3);

insert into tblname values(3,6.6);

insert into tblname values(4,2.0);

insert into tblname values(5,3.3);

insert into tblname values(6,6.6);

commit;

Выборка констант

Для выбора констант может указываться любой источник. Однако, если мы хотим просто подсчитать значение какого-то выражения, то указывать источник имеющий сотню тысяч записей затратно по ресурсам. Поэтому многие СУБД позволяют выбрать константы без указания источника. Oracle не поддерживает синтаксис SELECT без FROM, а для выбора констант используется специальная системная таблица dual.

-- вычисляем три простых выражения

SELECT 2+2, 2*2 , 2/2;

SELECT 2+2, 2*2 , 2/2 FROM dual; -- для Oracle

-- в выборке будет 6 одинаковых записей

SELECT 2+2, 2*2 , 2/2 FROM tblname;

Выборка по столбцам таблиц

Если источники данных указаны, то кроме констант можно выбирать столбцы или строить выражения с их использованием. Столбец определяется как имя_источника.имя_столбца. Если источник данных один, то его имя можно опустить. Для выбора всех столбцов всех источников используется символ *. Аналогично можно выбрать все столбцы указанного источника: имя_источника.*. Ниже приведен пример выборки всех записей нашей таблицы.

-- перечисляем столбцы

SELECT tblname.id, tblname.num FROM tblname;

SELECT tblname.num FROM tblname;

SELECT tblname.num*2 FROM tblname;

-- все столбцы указанного источника

SELECT tblname.* FROM tblname;

-- все столбцы всех источников

SELECT * FROM tblname;