Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Операторы языка SQL



Запрос к БД внутри транзакции пишется на языке SQL, с помощью которого формируются предложения [41]:

- определения данных – создание/уничтожение новых таблиц;

- запросов на выборку данных;

- модификации БД (добавление, удаление, изменение);

- управления данными (управление транзакциями, привилегиями).

Кроме того, SQL позволяет выполнять:

- арифметические вычисления;

- упорядочивание строк, столбцов при выводе на экран/принтер;

- интерпретацию данных;

- сохранение результатов запроса в других таблицах;

- группирование данных, суммирование, подсчет и т.д.

Достоинства языка SQL:

- стандартность (поддерживается стандартами ANSI и ISO);

- независимость от конкретных СУБД, т.е. БД можно переносить с одной СУБД на другую без доработок;

- поддержка реляционных БД;

- немедленный доступ к данным без написания программ;

- обеспечение различного представления данных;

- возможность динамического изменения и расширения структуры БД;

- поддержка архитектуры «клиент-сервер».

У каждого объекта БД (сервер, таблица, поле таблицы) есть свое уникальное имя (в SQL имя должно содержать до 18 символов английского алфавита большими буквами).

Рассмотрим три таблицы:

OBJECTS – таблица «Технологические объекты»;

N_OBJ – номер объекта (поле «N_об»);

TIP – тип объекта;

NAIM - наименование объекта;

GOD - год постройки;

SENSORS – таблица «Датчики»;

N_SENS - инвентарный номер датчика (поле «N_дтч»);

TIP - тип датчика;

FIRMA - фирма-производитель;

MARKA - марка датчика;

GOD_UST - год установки на объект;

N_OBJ - номер объекта, на котором установлен датчик;

IZMER – таблица «Измерения»;

N_SENS - инвентарный номер датчика;

DATE - дата измерения;

TIME - время измерения;

MEAN - значение измеренной величины.

Например, если таблица OBJECTS находится на сервере SERV, то полное имя таблицы будет

SERV.OBJECTS

Для доступа к конкретному полю этой таблицы:

SERV.OBJECTS.TIP

Для заполнения таблицы используются следующие типы данных:

DEC(точность) - десятичное число с дробной частью;

NUMERIC - десятичное число с определенной точностью;

INT или INTEGER – целое число;

SMALLINT – целое число;

FLOAT(точность) – экспоненциальная форма числа;

REAL – вещественное число с заданной точностью;

DOUBLE – эквивалент REAL с более высокой точностью;

CHAR(макс. количество символов) – строковая переменная;

TIME – время.

Выборка данных из таблицы производится оператором SELECT.

Например, команда

SELECT N_SENS, TIP, N_OBJ FROM SENSORS;

выедет таблицу с тремя колонками (номер датчика, тип и номер объекта) с данными из таблицы SENSORS. Признаком завершения команды является точка с запятой.

SELECT * FROM SENSORS;

выводит все данные из таблицы SENSORS.

SELECT DISTINCT TIP, FIRMA, MARKA FROM SENSORS;

выведет все марки датчиков без дублирования (операнд DISTINCT).

Использование условий поиска:

SELECT N_SENS, TIP, MARKA FROM SENSORS

WHERE FIRMA=’Метран’;

выводит список всех датчиков, произведенных фирмой «Метран».

SELECT FIRMA, MARKA, TIP FROM SENSORS

WHERE GOD_UST>2000;

выводит список датчиков, установленных после 2000 года.

В операторе WHERE должны быть использованы логические операции: >, <, =, >=, <=, AND, OR, NOT. Кроме того, могут использоваться специальные операнды IN, BETWEEN, LIKE, IS NULL.

Операнд IN определяет набор значений, в который данное значение должно быть включено, например,

SELECT MARKA, GOD_UST FROM SENSORS

WHERE FIRMA IN (‘Метран’, ‘Siemens’, ‘Fisher’);

выводит только датчики указанных фирм;

SELECT MARKA, FIRMA FROM SENSORS

WHERE GOD_UST BETWEEN 1985 AND 1989;

выводит список датчиков, установленный в период с 1985 по 1989 год;

SELECT N_SENS FROM SENSORS WHERE MARKA IS NULL;

выводит список датчиков, у которых не указана марка.

Для получения итоговых данных могут использоваться функции: SUM – сумма значений, COUNT – количество, AVG – среднее значение, MAX и MIN – максимальное и минимальное значения.

Для группирования данных используется операнд GROUP BY:

SELECT N_SENS, MAX(MEAN) FROM IZMER

WHERE (DATE > 01/05/03 AND DATE < 31/05/03)

GROUP BY N_SENS;

выдаст таблицу из двух колонок: номер датчика и его максимальное значение, которое он дал за май 2003 года.

Упорядочивание таблиц по возрастанию производится операндом ORDER BY <поле> ASC или убыванию ORDER BY <поле> DESC.

Для объединения нескольких запросов в одну транзакцию используется оператор UNION:

SELECT … UNION SELECT …;

Для многотабличных запросов используются полные имена полей:

SELECT SENSORS.TIP,IZMER.DATE,IZMER.TIME,IZMER.MEAN

FROM SENSORS, IZMER

WHERE SENSORS.N_SENS=IZMER.N_SENS;

выводит таблицу из четырех колонок: тип датчика, дата, время и значение изерения.

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

Добавление новых записей в таблицу производится оператором INSERT INTO <таблица> VALUES, например:

INSERT INTO SENSORS VALUES (10260, ‘FE’,

‘Grundfos’, ‘Flow’, 2003, 102);

INSERT INTO SENSORS(N_SENS, TIP, N_OBJ)

VALUES (10278, ‘LE’, 102);

добавляет в таблицу SENSORS запись о новом уровнемере с номером 10278, установленном на объекте 102, без указания марки и фирмы-изготовителя.

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

DELETE FROM IZMER WHERE DATE=01/05/2003;

удалит все записи за 1 мая 2003 года.

Изменение записей производится командой UPDATE:

UPDATE SENSORS

SET FIRMA=’Теплоприбор’, MARKA=’ТХА-0515’

WHERE TIP=’TE’;

заменит все датчики температуры на термопары ТХА-0515 фиры «Теплоприбор».

Создание новой таблицы

CREATE TABLE SENSORS

(N_SENS INTEGER, TIP CHAR(5), MARKA CHAR(20),

GOD_UST INTEGER, N_OBJ INTEGER);

создает пустую таблицу SENSORS с указанными полями. После каждого имени поля указан тип хранимых в нем данных.

Изменение структуры таблицы:

ALTER TABLE SENSORS ADD REMNT INTEGER;

добавление поля REMNT в таблицу SENSORS.





Дата публикования: 2015-09-17; Прочитано: 436 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...