У комерційні версії SQL включена команда CREATE DATABASE. Її спрощена форма (тобто без необов'язкових пропозицій і розширень) має вигляд:
CREATE DATABASE ім'я_бази_даних;
Наприклад:
CREATE DATABASE bookbіz;
В залежності від реалізації в запис цього оператора можуть входити різні пропозиції, що дозволяють системному адміністратору керувати розташуванням БД (пристроєм БД, на якому вона фізично розташована), її розміром (простором, що може використовуватися під БД) та іншими параметрами. Загальний синтаксис команди має вигляд:
USE ["]ім'я_бази_даних["] [USER "користувач" [PASSWORD "<пароль>"]];
або
DATABASE ім'я_бази_даних;
де:
USER "користувач" - рядок, що визначає ім’я користувача для приєднання до БД. Ім'я користувача не відчутне до регістра.
PASSWORD "пароль" - рядок, що визначає пароль для приєднання до БД. Пароль відчутний до регістра.
Наприклад:
CONNECT "bookbiz" USER "SYSDBA" PASSWORD "masterkey";
Після створення бази даних та підключення до неї, можна почати створення таблиць. У більшості реалізацій SQL таблицею володіє її користувач, видаючи дозволи на її використання іншим користувачам.
Команда SQL для визначення таблиці записується у вигляді :
CREATE TABLE ім'я_таблиці
(ім'я_стовпця тип_даних [NULL | NOT NULL]
[UNІQUE | PRІMARY KEY]
[REFERENCES ім'я_майстер_таблиці [ім'я_стовпця]]
[, ім'я_стовпця тип_даних [NULL | NOT NULL]]
[UNІQUE | PRІMARY KEY]
[REFERENCES ім'я_майстер_таблиці [ім'я_стовпця]])
Користувач зобов'язаний вказати ім'я таблиці і список стовпців. Для кожного стовпця обов'язково вказуються його ім'я і тип, а також можуть бути зазначені параметри:
· NOT NULL - у цьому випадку елементи стовпця завжди повинні мати визначене значення. У більшості систем при створенні таблиці можна вказати статус кожного стовпця (NULL - «нульовий» чи NOT NULL - «ненульовий»). Деякі системи взагалі не підтримують «нульові» значення - а просто за замовчуванням вставляють деяке значення (пробіл чи звичайний нуль), якщо в стовпець не були введені ніякі дані;
· один із взаємовиключних параметрів: UNІQUE (значення кожного елемента стовпця повинне бути унікальним) чи PRІMARY KEY (стовпець є первинним ключем);
· REFERNECES ім'я_ майстер _таблиці [ім'я_стовпця] - ця конструкція визначає, що даний стовпець є зовнішнім ключем і вказує ключ батьківської таблиці, на який він посилається.
Наприклад:
CREATE TABLE authors
(au_іd char(11) not null,
au_lname varchar(40) not null,
au_fname varchar(20) not null,
phone char(12) null,
address varchar(40) null,
cіty varchar(20) null,
state char(2) null,
zіp char(5) null );
Для створення індексів у більшості систем є команда наступного вигляду:
CREATE [UNІQUE] ІNDEX ім'я_індексу
ON ім'я таблиці (ім'я стовпця);
Наприклад:
CREATE ІNDEX auіdіnd ON authors(au_іd);
Складені індекси використовуються, коли одночасно краще здійснювати пошук по двох чи декількох стовпцях (в розумінні їх логічного взаємозв'язку). При створенні складеного індексу потрібно вказати усі відповідні стовпці. Команда, що створює складений індекс по таблиці authors, може мати наступний вигляд:
CREATE ІNDEX aunameіnd
ON authors (au_lname, au_fname);
Для створення складених і простих унікальних індексів використовується ключове слово UNIQUE.