Главная страница

Ответы на билеты по дисциплине Базы данных. Базы данных. Вопросы к экзамену по дисциплине Базы данных


Скачать 0.68 Mb.
НазваниеВопросы к экзамену по дисциплине Базы данных
АнкорОтветы на билеты по дисциплине Базы данных
Дата07.01.2023
Размер0.68 Mb.
Формат файлаdoc
Имя файлаБазы данных.doc
ТипВопросы к экзамену
#875067
страница4 из 7
1   2   3   4   5   6   7

DELETE FROM PaySumma P WHERE EXISTS

(SELECT * FROM Abonent A, Street S

WHERE S.StreetNM = ‘ТАТАРСКАЯ УЛИЦА’ AND A.StreetCD = S. StreetCD AND P.AccountCD = A. AccountCD);.

  1. При помощи какой команды осуществляется модификация данных в MSSQLServer?

Модификация данных может выполняться с помощью команд:

DELETE (удалить),

INSERT (вставить),

UPDATE (обновить).


  1. Приведите пример использования команды UPDATE с предложением FROM.

UPDATE [University].[dbo].[Fack]

SET [FackName] = 'КТАСиЗИ'

FROM [University].[dbo].[Fack], [University].[dbo].[Univeristy]

WHERE ([Univeristy].[UniveristyName] = 'КубГТУ') and ([Fack].[FackName]='КТАС')
SET указывает столбцы, которые будут изменяться, и значения, которые им присваиваются. С помощью предложения WHERE отбираются записи, которые будут обновляться. Команда UPDATE не может вставить в колонку данные «чужого» типа либо значения, которые нарушают правила ввода для столбца. В случае неудачи хотя бы с одним столбцом изменения произведены не будут.

  1. Приведите пример обновления множества записей.

Пусть требуется утроить цену всех продуктов таблицы поставки (кроме цены за кофе, где код продукта (Поле ПР) - ПР = 17).
UPDATE Поставки

SET Цена = Цена * 3

WHERE ПР <> 17;

  1. Приведите пример обновления записей с подзапросом.

В UPDATE можно в предложении WHERE использовать вложенные

запросы. Также допускается использование вложенного запроса в предложении SET.

Установить равной нулю цену и К_во продуктов для поставщиков из Москвы и Ростова.
UPDATE Поставки

SET Цена = 0, К_во = 0

WHERE ПС IN

(SELECT ПС

FROM Поставщики

WHERE Город IN ('Москва', 'Ростов'));

  1. Приведите пример обновления записей нескольких таблиц.

Пусть необходимо изменить данные о продукте с кодом 13 в двух таблицах «Состав» и «Наличие».

Например требуется изменить номер продукта ПР = 13 на ПР = 20.

UPDATE Продукты UPDATE Состав

SET ПР = 20 SET ПР = 20

WHERE ПР = 13; WHERE ПР = 13;
UPDATE Поставки UPDATE Наличие

SET ПР = 20 SET ПР = 20

WHERE ПР = 13; WHERE ПР = 13;
К сожалению, в единственном запросе невозможно обновить более одной таблицы, а так как код продукта входит в четыре таблицы, то пришлось сформировать четыре сходных запроса. Это может привести к противоречию базы данных (нарушению целостности по ссылкам), поскольку после выполнения первого предложения таблицы Состав, Поставки и Наличие ссылаются на уже несуществующий продукт. База становится непротиворечивой только после выполнения четвертого запроса.

  1. Общая структура команды SELECT. Где и для каких целей применяется выборка? Как просмотреть результаты выборки?

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

Синтаксически оператор SELECT состоит из нескольких предложений, большинство из которых не являются обязательными. Этот оператор должен обязательно иметь предложения SELECT и FROM. Они задают соответственно колонку(и) и таблицу(ы), из которых будут извлекаться данные. Предложение WHERE указывает, какие записи надо выбрать.

SELECT <Список столбцов>

FROM <Список таблиц>

[WHERE <Условия поиска>]
В случае если необходимо просто вывести информацию из всех столбцов, имеющихся в таблицах (указанных в предложении FROM), используйте звездочку (*). В этом случае поля на экран будут выводиться в том порядке, как они создавались с помощью команды CREATE TABLE.

SELECT *

FROM Groups

Результат выборки, например:

G_number P_name

-------- ------------

03-KT-21 программисты

03-KT-22 программисты

03-KT-23 программисты

(3 row(s) affected)

  1. Приведите примеры условий формирования условий отбора? Перечислить операторы, которые могут применяться в предложении WHERE?

Операторы, используемые в предложении WHERE

Тип операторов

Операторы

Сравнение

(=, >, <, >=, <=, <>, !=, !<, !>)

Интервал

BETWEEN, NOT BETWEEN

Список

IN, NOT IN

Сравнение строк

LIKE, NOT LIKE

Проверка значения

IS NULL, IS NOT NULL

Логические

AND, OR

Отрицание

NOT


При использовании операторов сравнения необходимо придерживаться двух простых правил:

  • Выражения могут содержать константы, имена столбцов, функции, вложенные запросы и арифметические операторы.

  • Использовать одинарные кавычки с данными типа char, varchar, text, datetime и smalldatetime. Хотя двойные кавычки не запрещены, одинарные кавычки предпочтительней для совместимости со стандартом ANSI.

  • Операторы сравнения

Оператор

Значение

=

Равно

>

Больше чем

<

Меньше чем

>=

Не меньше

<=

Не больше

!=

Не равно

<>

Не равно

Обычно в предложении WHERE приходится использовать несколько условий поиска, которые объединяются логическими операторами AND, OR, NOT (их еще называют булевыми операторами). Смысл этих операторов такой же, как и во всех языках программирования: AND – это логическое И, a OR – ИЛИ.

При выборке символьных данных иногда возникают трудноразрешимые вопросы, связанные с тем, что мы не всегда можем точно вспомнить какую-либо информацию. В этом случае на помощь приходит оператор LIKE. Синтаксис оператора LIKE:

WHERE <Имя столбца> [NOT] LIKE < 'Шаблон' > [ESCAPE <Символ>]

  1. Дополнительные возможности вывода в предложении SELECT.

По умолчанию сортировка производится по возрастанию. Если вам нужна сортировка в обратном порядке, можете воспользоваться опцией DESC предложения ORDER BY. Например, если в предыдущем запросе в предложении ORDER BY будет добавлена опция DESC, то выборка будет отсортирована в обратном алфавитному порядке:

SELECT 'Студенты:'+space(1), S_lastname Фамилия, S_name Имя, S_patronymic Отчество

FROM Student

ORDER BY S_lastname, S_name, S_patronymic DESC

  1. Проверка на принадлежность диапазону значений. Проверка на соответствие шаблону.

Другой формой условия поиска является проверка на принадлежность

диапазону значений, которая реализуется с помощью ключевого слова

BETWEEN. Синтаксис использования этого условия поиска следующий:

<значение> [NOT] BETWEEN <значение1> AND <значение2>.

Например, если необходимо найти номера лицевых счетов абонентов, у которых значения начислений за оказанные услуги лежат в диапазоне от 60 до 250, то соответствующий запрос будет выглядеть следующим образом:

SELECT AccountCD, Nаchislsum

FROM NachislSumma

WHERE NachislSum BETWEEN 60 AND 250;.

Результат выполнения запроса:

ACCOUNTCD NACHISLSUM

115705 250,00

080047 80,00

080047 80,00

115705 250,00

443069 80,00

005488 62,13

080270 60,10
Проверка на соответствие шаблону, которая осуществляется с помощью ключевого слова LIKE, позволяет определить, соответствует ли значение данных некоторому шаблону. Синтаксис использования этого условия поиска следующий:

<значение> [NOT] LIKE 'шаблон' [ESCAPE 'символ_пропуска'].

Например, пусть необходимо выбрать из таблицы Abonent абонентов, фамилии которых начинаются с буквы С. Для условия поиска используется шаблон 'С%' следующим образом:

SELECT Fio FROM Abonent WHERE Fio LIKE 'C%';.

Результат выполнения запроса:

FIO

СВИРИНА З.А.

СТАРОДУБЦЕВ Е.В.

  1. Составные условия поиска.

- NOT задает отрицание условия поиска, к которому применяется, и имеет наивысший приоритет. Используется следующий синтаксис: NOT <условие_поиска>;

- AND создает сложный предикат, объединяя два или более условий поиска, каждое из которых должно быть истинным, чтобы был истинным и весь предикат. Данная операция является следующей по приоритету после NOT. Используется следующий синтаксис: <условие_поиска1> AND <условие_поиска2> …;

- OR создает сложный предикат, объединяя два или более условий поиска, из которых хотя бы одно должно быть истинным, чтобы был истинным и весь предикат. Является последней по приоритету из трех логических операций и имеет следующий синтаксис: <условие_поиска1> OR <условие_поиска2> ….

  1. Дайте определения функции агрегирования. Перечислить функции агрегирования, опишите их назначение?

Для подведения итогов по данным, содержащимся в БД, в языке SQL предусмотрены агрегатные (статистические) функции. Агрегатная функция берет в качестве аргумента какой-либо столбец (для множества строк), а возвращает одно значение, определяемое типом функции:

AVG – среднее значение в столбце;

SUM – сумма значений в столбце;

MAX – наибольшее значение в столбце;

MIN – наименьшее значение в столбце;

COUNT – количество значений в столбце.

Примеры использования:

чтобы вычислить среднее значение оплат всех абонентов, необходимо выполнить следующий запрос:

SELECT AVG(Paysum) FROM Paysumma;.

Результат выполнения :

AVG

45,17

для нахождения суммы всех значений начислений можно использовать следующий запрос:

SELECT SUM(NachislSum) FROM NachislSumma;.

Результат выполнения:

SUM

2 213,61

чтобы найти в таблице PaySumma максимальное и минимальное значения оплат можно выполнить следующий запрос:

SELECT MAX(PaySum), MIN(PaySum) FROM PaySumma;.

Результат выполнения:

MAX MIN

250,00 8,30

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

SELECT COUNT(DISTINCT AccountCD) FROM Request;.

Результат выполнения :

COUNT

10

  1. Какое предложение применяется для сортировки данных выборки, условия его применения? Каким образом осуществляется выборка из нескольких страниц? Приведите пример создания таблицы на основе выборки.

  2. Скалярные функции SQL.

Скалярные пользовательские функции возвращают скалярный (однозначный) результат, такой как строка или число. На типы данных, возвращаемых скалярной функцией, накладывается несколько ограничений. Запрещается использовать нескалярные типы, такие как курсоры и таблицы. Кроме того, скалярные функции не могут возвращать значения с типом timestamp, text, ntext или image, а также значения, имеющие тип данных, определенный пользователем, даже если базовый тип при этом является скаляром.

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

Строковые ф-ии

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

SELECT A.AccountCD, SUBSTRING (A.Fio FROM 1 for 3) AS Fio3

FROM Abonent A;

Числовые ф-ии

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

Ф-ии даты и времени

Для выделения значений дня, месяца и года из даты используется функция EXTRACT. Синтаксис этой функции следующий:

EXTRACT( { DAY | MONTH | YEAR} FROM <значение> ),

где <значение> - любое выражение, возвращающее результат типа «дата-время» (т.е. название таблицы в формате даты).

Ф-ия преобразования типа

  1. Агрегатные функции SQL.(см вопрос 67)

  2. Условные операторы в SQL.

  3. Многотабличные и вложенные запросы. Соединение таблиц.

  4. Дайте определения триггеру. Приведите примеры возможных триггеров? Описать синтаксис набора команд создания триггеров? Что необходимо учитывать при использовании триггеров?

Триггерэто специальный тип хранимой процедуры, которая запускается автома­тически системой SQL Server при модифицировании какой-либо таблицы одним из трех операторов: UPDATE, INSERT или DELETE. Триггеры, как другие хранимые процедуры, могут содержать простые или сложные операторы T-SQL. В отличие от других типов хранимых процедур триггеры запускаются автоматически при указан­ных модификациях данных; их нельзя запустить вручную по имени. Триггер создается по одной таблице базы данных, но он может осуществлять доступ и к другим таблицам и объектам других баз данных. Триггеры нельзя создать по временным таблицам или системным таблицам, а только по определенным пользователем таблицам или представлениям.

Существует пять типов триггеров: UPDATE, INSERT, DELETE, INSTEAD OF и AFTER.
Команда CREATE TRIGGER имеет следующий синтаксис:

CREATE TRIGGER [<Имя владельца>.]<Имя триггера>

ON [<Имя владельца>.]<Имя таблицы>

FOR { INSERT | UPDATE | DELETE [, ...]}

AS

<Команда>
Пример:

CREATE TRIGGER Table_delete

ON Student_c

FOR DELETE

AS

DELETE S_lastname

FROM Student, Deleted

WHERE EXISTS Student.S_lastname = Deleted.Lastname
Необходимо учитывать, что есть команды, которые нельзя использовать в триггерах:

  • все команды CREATE применительно к объектам DATABASE, TABLE, INDEX, PROCEDURE, DEFAULT, RULE, TRIGGER и VIEW;

  • все команды DROP;

  • ALTER TABLE и ALTER DATABASE;

  • TRUNCATE TABLE;

  • GRANT и REVOKE;

  • UPDATE STATISTICS;

  • RECONFIGURE;

  • LOAD DATABASE и LOAD TRANSACTION;

  • все команды DISK;

  • SELECT INTO (из-за того, что она создает таблицу).

  1. Дайте определение соединению. Перечислите основные конструкции для формирования соединений.

  2. Приведите пример использования конструкции JOIN. Приведите пример использования конструкции INNERJOIN.

Конструкция JOIN выполняет именно ту задачу, на которую указывает смысл соот­ветствующего английского глагола, — соединяет информацию из двух таблиц в один результирующий набор.
Отличительная особенность INNER JOIN состоит в том, что она возвращает только те строки, которые были согласованны по всем полям. Наиболее предпочтительный формат кода для конструкции INNER JOIN выглядит примерно таким образом:
1   2   3   4   5   6   7


написать администратору сайта