Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МДК02.02 Лекция 2_1.docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
62 Кб
Скачать
☆

Id_клиента integer primary key,

Имя VARCHAR (25),

Адрес addr,

Телефон VARCHAR (15) ARRAY [3] );

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

Insert into Клиенты (Имя, Телефон)

Values ('Петров Петр Петрович', {'444-4444', '123-4567', '777-8899'});

Тип данных MULTISET (мультимножество) появился впервые в SQL:2003. Если массив - это упорядоченное множество эле­ментов, однозначно связанных с их местом в массиве посредст­вом индекса, то мультимножество - неупорядоченная совокуп­ность элементов. Этот тип данных используется очень редко.

Кроме этого существуют так называемые Пользовательские типы данных, создаваемые разработчиком по своему усмотрению, которые делят на две группы: отдельные типы – простейшие типы, создаваемые на основе ранее определенных типов, структурированные типы – создаваемые задания своих собственных атрибутов и методов (аналогия ООП).

3. Неопределенные значения

Если в ячейку (поле) таблицы вы вводите какие-то значения (бу­квы, цифры, пробелы или еще что-нибудь), то эти ячейки приоб­ретают так называемые определенные значения. С определенны­ми значениями, принадлежащими тому или иному типу, можно выполнять какие-то операции. Однако вы можете создать запись (строку) таблицы, ничего не вводя в ее поля (столбцы). Такая запись ничего не содержит. Запись в таблице, которая создана, но в которую не введены конкретные значения, называется пустой. В каждой ячейке пустой записи содержится так называемое не­определенное значение, обозначаемое через NULL. Значение NULL понимается как неопределенное или неизвестное.

Итак, каждый раз, когда вы добавляете в таблицу новую запись, не вводя в нее каких-либо конкретных значений, СУБД устанав­ливает в ее полях значение NULL.

Значение NULL вы можете интерпретировать так, как вам хочется, например, "еще не введено", "пока не известно". Однако незави­симо от смысловой интерпретации СУБД будет интерпретиро­вать значение NULL вполне определенно.

Важно понимать, что число 0 или пустая строка ' ' являются вполне определенными значениями и отличаются от NULL, хотя визуально пустая строка и неопределенное значение могут ото­бражаться одинаково - в виде пустой ячейки таблицы. Многие функции SQL возвращают в зависимости от обстоятельств какое-то определенное значение либо NULL. Это необходимо учитывать при составлении SQL-выражений, поскольку комбинация NULL и других вполне конкретных значений может дать тот или иной результат в зависимости от конкретной операции.

При проектировании баз данных можно указать, что некоторые столбцы не могут иметь значение NULL, т. е. их значения обяза­тельно должны быть определены (при определении столбца в операторе CREATE TABLE указывается NOT NULL). Однако во многих случаях значения NULL являются очень полезными.

В следующем примере из таблицы клиенты выбираются все записи, в которых не определено имя клиента:

SELECT * FROM Клиенты WHERE Имя IS NULL;

4. Преобразование типов

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

  • строковые CHARACTER и CHARACTER VARYING;

  • все числовые типы;

  • дата, время, дата-время и соответствующие интервалы.

Соответствующие типы не обязательно приводить друг к другу.

Приведение значения одного типа к другому осуществляется с помощью функции CAST ():

CAST(выражение AS тип);

Например:

CAST('1234.52' AS NUMERIC (9,2));

CAST('2005-10-03' AS DATE);

CAST(CURRENT_TIMESTAMP (2) AS CHAR (20));