Interbase sql create table

Довідник за інструкціями і функцій InterBase SQL

CREATE TABLE

CREATE TABLE встановлює нову таблицю, її стовпці і обмеження цілісності в існуючій базі даних. Користувач, який створює таблицю, стає власником таблиці і отримує повні привілеї для цього, включаючи можливість надання (GRANT) привілеїв іншим користувачам, триггерам, і збереженим процедурам.

CREATE TABLE підтримує кілька опцій для визначення стовпців:

  • Локальні стовпці визначають ім'я і тип даних для даних введених в стовпець.
  • Обчислювані стовпці, що базуються на розширенні. Значення стовпця обчислюється кожен раз при доступі до таблиці. Якщо тип даних не визначений, InterBase обчислює як відповідний. Стовпці, до яких звертається вираз, повинні існувати раніше, ніж стовпець може бути визначений.
  • Засновані на доменах стовпці, успадковані все характеристики домену, але визначення стовпчика може включати нове значення за замовчуванням, атрибут NOT NULL, додаткові обмеження CHECK або перевизначати порядок сортування, які скасовують визначення домену.
  • Опис типу даних для стовпця типу CHAR, VARCHAR або BLOB-техт може включати пропозицію CHARACTER SET визначаючи специфічну кодування для одиночного стовпчика. Інакше стовпець використовує визначену за замовчуванням для бази даних кодування. Якщо кодування бази даних змінена, всі стовпці згодом певні мають нову систему кодування, але існуючі стовпчики не змінюються.

Пропозиція COLLATE дозволяє вказати специфічний порядок сортування для типів даних CHAR, VARCAHR і BLOB-текст. Вибір порядку сортування обмежений тими які підтримуються для даного кодування стовпчика, це або кодування за замовчуванням для бази даних в цілому або інша встановлена ​​в реченні CHARACTER SET як частина визначення типу даних. Дивись Language Reference. щоб отримати повний список можливих угруповань.

Атрибут NOT NULL запобігає введення NULL або невідомого значення в стовпець. Атрибут NOT NULL проявляється у всіх INSERT і UPDATE операціях на колонку.

Обмеження цілісності можуть бути визначені для таблиці, коли вона створена. Обмеження цілісності це правила, які контролюють базу даних і її компоненти, зв'язку типу стовпець-таблиця і таблиця-таблиця, і перевірку даних, що вводяться. Вони охоплюють всі транзакції до бази даних і автоматично підтримуються системою. CREATE TABLE може створювати такі типи обмежень цілісності:

  • PRIMARY KEY (первинний ключ) - унікально ідентифікує кожну рядок таблиці. Значення в цьому стовпці або в упорядкованому наборі стовпців не можуть повторяться в більш ніж одному рядку. Стовпець PRIMARY KEY повинен бути визначений тільки з атрибутом NOT NULL. Таблиця може мати тільки один PRIMARY KEY, який може бути визначений на одному або більше стовпців.
  • UNIQUE (унікальні) ключі гарантують, що не існує двох рядків мають одне і теж значення в специфічному стовпці або впорядкованому наборі стовпців. Унікальний стовпець повинен бути визначений з атрибутом NOT NULL. Таблиця може мати один або більше UNIQUE ключів. UNIQUE ключ може бути використаний FOREIGN KEY (зовнішній ключ) в іншій таблиці.
  • Довідкові обмеження гарантують, що значення в наборі стовпців, які визначені в FOREIGN KEY приймають ті ж самі значення, які присутні в стовпці UNIQUE або PRIMARY KEY в довідковій таблиці.
  • CHECK обмеження наказують . які повинні приймати значення істинно для доданих або змінених даних. можуть вимагати певної комбінації або порядку значень або рівності значенням, введеному в інші стовпці.

Для не йменувався обмежень, система створює унікальне ім'я збережене в системній таблиці RDB $ RELATION_CONSTRAINTS.

Зверніть увагу: Обмеження не припустимі на виразах.

Оція EXTERNA FILE створює таблицю, чиї дані постійно розташовані у зовнішній таблиці або файлі, а не в базі даних InteBase. Використовуйте цю опцій для:

  • Визначення таблиці InterBase. що складається з стовпців і даних із зовнішніх джерел, таких як дані в файлах керованих іншою операційною системою або додатками, які не є базами даних.
  • Передачі даних в існуючу таблицю InterBase з зовнішнього файлу.

Зверніть увагу: Пропозиція COLLATE не може бути визначено для стовпців BLOB.