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

Функции PostgreSql

  • to_char(timestamp, format) - время в строку;

  • to_char(interval, format) - интервал времени в строку;

  • to_char(number, format) - число в строку;

  • to_date(str, format) - строку в дату;

  • to_number(str, format) - строку в число;

  • to_timestamp(str, format) - строку во время.

Основные элементы форматирования совпадают с Oracle.

Функции MySql

  • date_format(date,format) - дату в строку;

  • time_format(time,format) - время в строку;

  • format(number,precision) - число в cтроку типа '#,###,###.##', где число знаков определяется вторым аргументом.

Ниже приведен список основных элементов форматирования для даты и времени:

  • %c - месяц числом;

  • %d - день месяца;

  • %H - часы (от 0 до 24);

  • %h - часы (1 до 12);

  • %i - минуты;

  • %s - секунды;

  • %T - время в формате "hh:mm:ss";

  • %Y - год, четыре цифры;

  • %y - год, две цифры.

< /ul>

select date_format(date '2010-02-01',

'%c месяца %d дней %Y год') as c

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

Для создания простой таблицы используется команда CREATE TABLE. Ниже приведен пример для Oracle, для других тип number надо заменить на integer или double.

CREATE TABLE tblname (

id number,

num number, -- число

-- фиксированная строка

fstr char(45),

-- строка с переменным размером, но не больше 45

str varchar(45),

birth date -- дата

);

Значения полей по умолчанию

После типа столбца можно задать дополнительные свойства столбца как значение по умолчанию и указать, возможно ли значение null. Для одних БД порядок принципиален (Oracle) для других нет (MySQL).

CREATE TABLE tblname (

id number,

num number DEFAULT 3.14 NOT NULL,

fstr char(45),

str varchar(45),

birth date

);

Ключи и ограничения

Обычно после перечисления столбцов в определении таблицы указывают дополнительные ограничения, например, ключи. Естественно, таблица, на которую ссылается внешний ключ должна существовать, а тип внешнего ключа должен совпадать с типом столбца на который ссылается. Например, для MySQL, если столбец внешнего ключа был определен как fk_key1 INTEGER, а первичный ключ таблицы tb как id INTEGER UNSIGNED, то таблица просто не будет создана. В некоторых базах ограничения можно задавать как свойство столбца, но на мой взгляд слишком длинно получается.

-- правильно для большинства реализаций SQL

CREATE TABLE tblname (

id integer,

fstr char(45),

str varchar(45),

-- в MySQL precision можно опустить

num double precision,

birth date,

fk_key1 integer,

-- столбец id используем в качестве первичного ключа

CONSTRAINT pk_tblname PRIMARY KEY (id),

-- уникальный ключ, т.е. значения в столбце fstr

-- будут уникальны

CONSTRAINT uk_tblname1 UNIQUE (fstr),

-- ограничение на значение

CONSTRAINT tblname_numcheck CHECK (num<100.34),

-- внешний ключ, в скобка столбец нашей таблицы

-- tb таблица, id столбец на которые ссылается

-- внешний ключ

CONSTRAINT fk_tblname FOREIGN KEY (fk_key1)

REFERENCES tb(id)

);

-- именовать ограничения не обязательно

-- в этом случае СУБД сгенерирует имена сама

CREATE TABLE tblname (

id integer,

fstr char(45),

str varchar(45),

num double,

birth date,

fk_key1 integer,

PRIMARY KEY (id),

UNIQUE (fstr),

CHECK (num<100.34),

FOREIGN KEY (fk_key1)

REFERENCES tb(id)

);