Ответы к экзамену по БД (542444), страница 12
Текст из файла (страница 12)
Например, ограничения UNIQUE илиPRIMARY_KEY предотвращают занесение значений, дублирующих существующие.Ограничение CHECK предотвращает занесение значения, не соответствующегокритерию поиска, a NOT NULL — пустого значенияПравилоОбъект БД, связанный со столбцами или с пользовательскими типами данных,который задает значения данных, приемлемые в данном столбце. Лучше использоватьограничения CHECK, которые предоставляют ту же самую функциональность исоответствуют стандарту SQL-92УмолчаниеЗначение, автоматически присваиваемое системой данным, параметру, режимусопоставления или имени, если оно не задано пользователем.
Также определяетдействие, автоматически выполняемое при конкретных событиях в отсутствиедействий, заданных пользователемТриггерХранимая процедура, исполняемая при модификации данных в заданной таблице.Триггеры часто создают для поддержки ссылочной целостности или согласованностилогически связанных данных в различных таблицахВыражение — это комбинация символов и операторов, которая получает на вход скалярнуювеличину, а на выходе дает другую величину или исполняет какое-то действие. В Transact-SQLвыражения делятся на 3 типа: DDL, DCL и DML. DDL (Data Definition Language) — используются для создания объектов в базе данных.
Основныепредставители данного класса: CREATE — создание объектов, ALTER — изменение объектов,DROP — удаление объектов.Язык DDL (data definition language, язык определения данных) применяется для определенияобъектов баз данных (таких как базы данных, таблиц и представления) и для управления этимиобъектами. Операторы языка DDL обычно включают в себя команды CREATE, ALTER и DROP длякаждого из объектов, с которым производится работа. Например, для первоначального созданиятаблицы, для изменения ее свойств (скажем, для создания или для удаления колонок) и дляуничтожения таблицы соответственно применяются операторы CREATE TABLE, ALTERTABLE и DROP TABLE.Оператор CREATE TABLEПрименим DDL для создания в базе данных MyDB таблицы с именем Customer_Data(Сведения_о_заказчиках). Для создания таблицы применяется оператор CREATE TABLE.
Нашатаблица-пример будет задана как имеющая четыре колонки, при помощи следующих операторов:Use MyDBCREATE TABLE Customer_Data(customer_idsmallint,first_namechar(20),last_namechar(20),phonechar(10))GOЭти операторы создают структуру таблицы Customer_Data. Таблица Customer_Data останется пустойдо тех пор, пока в нее не будут введены данные или она не будет заполнена при помощи массовогокопирования.Оператор ALTER TABLEОператор ALTER TABLE применяется для изменения определения или атрибутов таблицы.Применим для добавления в существующую таблицу Customer_Data колонки middle_initial:ALTER TABLE Customer_DataADD middle_initial char(1)GOТеперь определение таблицы содержит не четыре колонки, как было первоначально, а пять колонок.Оператор DROP TABLEОператор DROP TABLE применяется для уничтожения определений таблиц и всех данных, индексов,триггеров, ограничений и специальных разрешений, относящихся к удаляемым таблицам.
Дляуничтожения нашей таблицы Customer_Data применяется команда:DROP TABLE Customer_DataGO29. Т-SQL. Поиск данных с помощью оператора Select. Структура команды Select.Функции between, in, like и null. Агрегатные функции. Опции group by, having, order by.Примеры.Оператор SELECT позволяет производить выборки данных из таблиц и преобразовывать кнужному виду полученные результаты.Синтаксис:SELECT [ALL | DISTINCT ] {*|[имя_столбца [AS новое_имя]]} [,...n]FROM имя_таблицы [[AS] псевдоним] [,...n][WHERE <условие_поиска>][GROUP BY имя_столбца [,...n]][HAVING <критерии выбора групп>][ORDER BY имя_столбца [,...n]]Символом * можно выбрать все поля, а вместо имени поля применить выражение из несколькихимен.
Если обрабатывается ряд таблиц, то (при наличии одноименных полей в разных таблицах) всписке полей используется полная спецификация поля, т.е. Имя_таблицы.Имя_поля.SELECT – закрытая операция: результат запроса к таблице представляет собой другую таблицу.Параметр WHERE определяет критерий отбора записей из входного набора. Но в таблице могутприсутствовать повторяющиеся записи (дубликаты). Предикат ALL задает включение в выходнойнабор всех дубликатов, отобранных по критерию WHERE.
Нет необходимости указывать ALL явно,поскольку это значение действует по умолчанию. Предикат DISTINCT следует применять в техслучаях, когда требуется отбросить блоки данных, содержащие дублирующие записи в выбранныхполях. Значения для каждого из приведенных в инструкции SELECT полей должны бытьуникальными, чтобы содержащая их запись смогла войти в выходной набор.С помощью WHERE-параметра пользователь определяет, какие блоки данных из приведенных всписке FROM таблиц появятся в результате запроса. За ключевым словом WHERE следуетперечень условий поиска, определяющих те строки, которые должны быть выбраны привыполнении запроса.
Существует пять основных типов условий поиска (или предикатов):1. СравнениеВ языке SQL можно использовать следующие операторы сравнения: = – равенство; < – меньше; > –больше; <= – меньше или равно; >= – больше или равно; <> – не равно. Более сложные предикатымогут быть построены с помощью логических операторов AND, OR или NOT, а также скобок,используемых для определения порядка вычисления выражения.2.
ДиапазонОператор BETWEEN используется для поиска значения внутри некоторого интервала,определяемого своими минимальным и максимальным значениями. При этом указанные значениявключаются в условие поиска.Пример. Вывести список товаров, цена которых лежит в диапазоне от 100 до 150.SELECT Название, ЦенаFROM ТоварWHERE Цена Between 100 And 150При использовании отрицания NOT BETWEEN требуется, чтобы проверяемое значение лежало внеграниц заданного диапазона.3. Принадлежность множествуОператор IN используется для сравнения некоторого значения со списком заданных значений, приэтом проверяется, соответствует ли результат вычисления выражения одному из значений впредоставленном списке. При помощи оператора IN может быть достигнут тот же результат, что и вслучае применения оператора OR, однако оператор IN выполняется быстрее.Пример.
Вывести список клиентов из Москвы или из Самары.SELECT Фамилия, ГородКлиентаFROM КлиентWHERE ГородКлиента in ("Москва", "Самара")NOT IN используется для отбора любых значений, кроме тех, которые указаны в представленномсписке.4. Соответствие шаблонуС помощью оператора LIKE можно выполнять сравнение выражения с заданным шаблоном, вкотором допускается использование символов-заменителей:• Символ % – вместо этого символа может быть подставлено любое количество произвольныхсимволов.• Символ _ заменяет один символ строки.• [] – вместо символа строки будет подставлен один из возможных символов, указанный в этихограничителях.• [^] – вместо соответствующего символа строки будут подставлены все символы, кромеуказанных в ограничителях.Пример. Найти клиентов, у которых в номере телефона вторая цифра – 2 или 4.SELECT Клиент.Фамилия, Клиент.ТелефонFROM КлиентWHERE Клиент.Телефон Like "_[2,4]%"5. Значение NULLОператор IS NULL используется для сравнения текущего значения со значением NULL –специальным значением, указывающим на отсутствие любого значения.
NULL – это не то же самое,что знак пробела (пробел – допустимый символ) или ноль (0 – допустимоечисло). NULL отличается и от строки нулевой длины (пустой строки).Пример. Найти сотрудников, у которых нет телефона (поле Телефон не содержит никакогозначения).SELECT Фамилия, ТелефонFROM КлиентWHERE Телефон Is NullIS NOT NULL используется для проверки присутствия значения в поле.Агрегатные функции.С помощью итоговых (агрегатных) функций в рамках SQL-запроса можно получить рядобобщающих статистических сведений о множестве отобранных значений выходного набора.••••Count (Выражение) - определяет количество записей в выходном наборе SQL-запроса;Min/Max (Выражение) - определяют наименьшее и наибольшее из множества значений внекотором поле запроса;Avg (Выражение) - эта функция позволяет рассчитать среднее значение множества значений,хранящихся в определенном поле отобранных запросом записей.
Оно являетсяарифметическим средним значением, т.е. суммой значений, деленной на их количество.Sum (Выражение) - вычисляет сумму множества значений, содержащихся в определенномполе отобранных запросом записей.Если до применения обобщающей функции необходимо исключить дублирующиеся значения,следует перед именем столбца в определении функции поместить ключевое слово DISTINCT. Ононе имеет смысла для функций MIN и MAX, однако его использование может повлиять нарезультаты выполнения функций SUM и AVG, поэтому необходимо заранее обдумать, должно лионо присутствовать в каждом конкретном случае. Кроме того, ключевое слово DISTINCT можетбыть указано в любом запросе не более одного раза.Агрегатные функции могут использоваться только в списке предложения SELECT и в составепредложения HAVING.