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

35.Традиционные операции над множествами. Пересечение и разность.

В стандарте языка SQL имеются предложения для выполнения операций пересечения и разности: -intersect

-except

Которые работают аналогично как пред union.

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

Для разности в результирующий набор попадут те строки 1-ого запроса, которые отсутствуют во 2-ом.

Однако, многие СУБД не поддерживают эти предложения. Это справедливо и для Microsoft SQL Server. Поэтому для выполнения операций пересечения и разности могут быть использованы другие средства. Напр, оператор EXISTS , который исп-ся с подзапросом. Предикат EXISTS принимает значение истина, если подзапрос возвращает какое-либо количество строк, иначе его значение=ложь. Для NOT EXISTS все наоборот. Обычно предикат EXISTS исп-ся в зависимых подзапросах. Этот подзапрос имеет внешнюю ссылку со значением в основном запросе. Результат подзапроса может зависеть от этого значения и должен оценив-ся отдельно для каждой строки запроса, в котором содержится данный подзапрос. Поэтому предикат EXISTS может иметь разные значения для кажд строки основного запроса. пример(пересечение). Найти тех производителей ПК-блокнотов, которые производят принтеры. select distinct lap.maker from product as lap where type=’laptop’ and exists (select maker from product where type=’printer’ and maker=lap.maker)

Maker

A

В подзапросе выбираются производители принтеров и срав-ся с производителем, значение которого предается из осн запроса. В осн запрос отбираются производители ПК-блокнотов.

Пример(разность). Найти тех произ-ей ПК-блокнотов, которые не производятпринтеры.

select distinct lap.maker from product as lap where type=’laptop’ and not exists (select maker from product where type=’printer’ and maker=lap.maker)

36.Команды описания данных ddl.

1.Создание базы данных

Create datebase

Синтаксис команды:

Create datebase_name;

Name – имя создаваемой БД

Пример: Create datebase comp_firma;

2. удаление БД

drop datebase

Синтаксис команды:

drop datebase_name;

name – имя удаляемой БД

3.Создание таблицы

Create table

Пример: Create table product 1(maker text);

После выполнения этой комады будет создана таблица product 1 одним столбцом maker, в котором будет запис-ся данные типа text. Т.к данные в эту таблицу ещё не вводились,кол-во строк в столбце = 0. Параметры product 1 и maker назыв-ся идентификаторами,т.к они задают имена для конкретных объектов БД, В данном случае – имя для таблицы и столбца. Символы исп-ые для идентификаторов должны удовлетворять определенным правилам. В обычных идентификаторах может исп-ся только буквы,цифры и символы подчеркивания.Идентификатор не должен содержать знаков пунктуации, пробела и спец.символов.Кроме того он не может нач-ся с цифры или знака подчеркивания.

Команда для создания таблицы с несколькими столбцами: Create table table_name(column_name1 type, column_name2 type,…); table_name – имя новой таблицы.

Column_name – имена полей ,которые будут присутствовать в создаваемой таблице.

Type – определяет тип создаваемого поля.

Пример:создадим таблицу prouct.

Create table product (maker text,model text,type text);

К типу данных можно присоед-ть модификаторы, которые задают его «поведение»,и те операции,которые можно(или наоборот запрещено )вып-ть соотв-ми столбцами.

- not null – означает,что данное поле не может содержать неопред-ое значение,т.е поле обез-но д/б инициализировано при вставке новой записи в таблицу.(если не задано значение по умолчанию).

Пример: если для нашей табл. продукт нужно указать,что поле maker не может иметь неопред-го зн-ия,то команда create table запишется так: create table product (maker text. Not null, model text,type text);

  • Primary key – отражает,что поле явл-ся первичным ключом,т.е идентификатором записи на к-ый можно ссылаться.

Пример: create table product(maker text,model text,type text,primary key(model));

create table product(maker text,model text,primary key,type text);

  • Auto_increment – при вставке новой записи поле получит уникальное значение, так что в таблице никогда не будет существовать 2 поля с одинаковыми именами.

  • Default – задает значение по умолчанию,для поля,к-ый будет использовано для этого поля,если не было указано зн-ие.

Пример: create table product1(maker text default ‘F’);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]