Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / Ответы 1-19.docx
Скачиваний:
32
Добавлен:
11.06.2015
Размер:
219.47 Кб
Скачать

Insert into users_base (user_name, city, birth_day) values (‘Александр’, ‘Ростов’, ’20.06.1991’);

Команду INSERT можно использовать для вставки данных из другой таблицы:

INSERT INTO Name_Table_2

SELECT Name_1, Name_3, Name_4

From Name_Table_1

WERE Name_5=3

UPDATE users_base SET user_name = ‘Алексей’;

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

DELETE FROM users_base WHERE user_name = ‘Василий’;

Команда DELETE удаляет строку целиком, определяет строку по ключевому слову WHERE. Этот запрос удалит все строки, в которых значение столбца user_name=Василий.

Совместное использование SQL c традиционными языками программирования (Си, Паскаль, др.)

OPEN File_1

EXEC SQL

DECLARE File_1

FOR

SELECT *

FROM Table_1

WERE Name_2= nn

END-EXEC

CLOSE File_1

Выполнение запроса можно разделить на три фазы. Первая фаза это компиляция или разбор (parse) запроса, вторая - подстановка значений переменных (bind), и третья выборка результатов (fetch). Во время компиляции SQL запрос преобразуется во внутреннее представление в те коды, которые воспринимаются СУБД. СУБД выполняет следующие действия:

  • просматривает словарь данных и выполняет проверку прав доступа. Для этого СУБД генерирует несколько SQL запросов, которые называются рекурсивными запросами (recursive queries), с помощью который проверяет, имеет ли данный пользователь право доступа к указанному столбцу и т.д.

  • оптимизирует запрос. Здесь выполняется та оптимизация, которая вызвана обращением к представлениям (view) и выполнением подзапросов.

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

Вторая фаза, фаза подстановки (bind), выполняется после компиляции запроса. Во время этой фазы выполняется подстановка значения переменных в запрос. Например, при обработке запроса:

SELECT 'x' FROM person WHERE name = :1

значение некоей переменной 1 будет подставлено в запрос по адресу, зарезервированному указателем :1.

Определения представления данных - окно, через которое видна часть БД (из одной или нескольких таблиц)

CREATE VIEW Table_V

AS SELECT Name_2, Name_3, Name_4, Name_5

FROM Table_1

Критерии, функции, условия

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

SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Алексей’;

Такой запрос выведет только те строки, которые будут соответствовать условию where.

ORDER BY - условие для сортировки выбранных строк. Имеет два критерия ASC и DESC. ASC (сортировка от А до Я или от 0 до 9). DESC (противоположно от ASC). Пример:

SELECT id, city, birth_day FROM users_base ORDER BY user_name ASC;

Это условие можно использовать совместно с условием WHERE. Пример:

SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Алексей’ ORDER BY id ASC;

DISTINCT - аргумент, который устраняет двойные значения из предложения SELECT. То есть если имеются повторяющиеся значения в столбце, допустим, user_name, то DISTINCT выведет только одно, например, если в БД есть два человека по имени ‘Алексей’, то запрос с использованием функции DISTINCT выведет только одно значение, которое встретит первым. Пример:

SELECT DISTINCT user_name FROM users_base;

AND - берет два Буля (в форме A AND B) как аргументы и оценивает их по отношению к истине, верны ли они оба. Пример:

SELECT * FROM users_base WHERE city = ‘Ростов’ AND user_name = ‘Александр’;

OR - берет два Буля (в форме A OR B) как аргументы и оценивает на правильность, верен ли один из них. Пример:

SELECT * FROM users_base WHERE city = ‘Ростов’ OR user_name = ‘Александр’;

NOT - берет одиночный Булев (в форме NOT A) как аргументы и заменяет его значение с неверного на верное или верное на неверное. Пример:

SELECT * FROM users_base WHERE city = ‘Ростов’ OR NOT user_name = ‘Александр’;

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

SELECT * FROM users_base WHERE city IN (‘Владивосток’, ‘Ростов’);

Between - похож на оператор IN, определяет диапазон, значения которого должны уменьшаться, что делает предикат верным. Пример:

SELECT * FROM users_base WHERE id BETWEEN 1 AND 10;

COUNT – выводит количество строк. Пример:

SELECT COUNT (*) FROM users_base ;

SELECT COUNT (DISTINCT user_name) FROM users_base;

SUM - производит арифметическую сумму всех выбранных значений данного поля. SELECT SUM (id) FROM users_base.

AVG - производит усреднение всех выбранных значений данного поля. Пример:

SELECT AVG (id) FROM users_base ;

MAX - производит наибольшее из всех выбранных значений данного поля.

MIN - производит наименьшее из всех выбранных значений данного поля.

Соседние файлы в папке Экзамен