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

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

Готовы ли вы начать создавать базы данных и таблицы на языке структурированных запросов? В этой статье мы рассмотрим процесс создания таблиц вручную с помощью команд CREATE DATABASE и CREATE TABLE. Если вы новичок в SQL, вы можете сначала рассмотреть некоторые основы SQL.

Бизнес-требования

Прежде чем сесть за клавиатуру, мы должны убедиться, что у нас есть четкое понимание требований заказчика. Какой лучший способ получить это понимание? Разговор с заказчиком, конечно! Посоветовавшись с директором по персоналу XYZ, мы узнали, что они являются компанией по продаже виджетов и в первую очередь заинтересованы в отслеживании информации о своих сотрудниках по продажам.

Корпорация XYZ делит свои отделы продаж на восточные и западные регионы, каждый из которых разделен на множество территорий, охватываемых отдельными торговыми представителями. Отдел кадров хотел бы отслеживать территорию, охватываемую каждым сотрудником, а также информацию о зарплате каждого сотрудника и структуру надзора. Чтобы удовлетворить эти требования, мы разработали базу данных, состоящую из трех таблиц, показанных на диаграмме Entity-Relationship на этой странице.

Выбор платформы базы данных

Мы решили использовать систему управления базами данных (или СУБД), которая построена на языке структурированных запросов (SQL). Поэтому все наши команды создания баз данных и таблиц должны быть написаны с учетом стандарта ANSI SQL.

Как дополнительное преимущество, использование ANSI-совместимого SQL гарантирует, что эти команды будут работать на любой СУБД, поддерживающей стандарт SQL, включая Oracle и Microsoft SQL Server. Если вы еще не выбрали платформу для своей базы данных, Параметры программного обеспечения базы данных проведут вас через процесс выбора.

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

Наш первый шаг – создать саму базу данных. Многие системы управления базами данных предлагают ряд опций для настройки параметров базы данных на этом этапе, но наша база данных позволяет только простое создание базы данных. Как и во всех наших командах, вы можете обратиться к документации для вашей СУБД, чтобы определить, соответствуют ли какие-либо дополнительные параметры, поддерживаемые вашей конкретной системой, вашим потребностям. Давайте используем команду CREATE DATABASE для настройки нашей базы данных:

 СОЗДАЙТЕ БАЗЫ ДАННЫХ 

Обратите особое внимание на использование заглавных букв в примере выше. Обычные практики программистов SQL используют все заглавные буквы для ключевых слов SQL, таких как «CREATE» и «DATABASE», при использовании всех строчных букв для пользовательских имен, таких как имя базы данных персонала. Эти соглашения обеспечивают легкую читабельность.

Теперь, когда мы спроектировали и создали нашу базу данных, мы готовы приступить к созданию трех таблиц, используемых для хранения персональных данных корпорации XYZ.

Создание нашей первой таблицы

Наша первая таблица состоит из личных данных для каждого сотрудника нашей компании. Нам необходимо указать имя, зарплату, удостоверение личности и руководителя каждого сотрудника. Рекомендуется разделять фамилии и имена на отдельные поля, чтобы упростить поиск и сортировку данных в будущем. Кроме того, мы будем отслеживать каждого менеджера сотрудника, вставляя ссылку на идентификатор сотрудника менеджера в каждой записи сотрудника. Давайте сначала посмотрим на таблицу желаемого сотрудника.

Атрибут ReportsTo хранит идентификатор менеджера для каждого сотрудника. Из показанных образцов записей мы можем определить, что Сью Скампи является менеджером как Тома Кендалла, так и Джона Смита. Однако в базе данных нет информации о менеджере Сью, о чем свидетельствует запись NULL в ее ряду.

Теперь мы можем использовать SQL для создания таблицы в нашей базе данных персонала. Прежде чем сделать это, давайте удостоверимся, что мы находимся в правильной базе данных, введя команду USE:

 ИСПОЛЬЗОВАНИЕ персонала; 

В качестве альтернативы, «персонал базы данных»; Команда будет выполнять ту же функцию. Теперь мы можем взглянуть на команду SQL, используемую для создания таблицы наших сотрудников:

 CREATE TABLE сотрудников 
(employeeid INTEGER NOT NULL,
фамилия VARCHAR (25) NOT NULL,
имя VARCHAR (25) NOT NULL,
сообщает INTEGER NULL); < br />

Как и в приведенном выше примере, обратите внимание, что соглашение о программировании требует, чтобы мы использовали все заглавные буквы для ключевых слов SQL и строчные буквы для именованных столбцов и таблиц. Сначала приведенная выше команда может показаться запутанной, но на самом деле за ней стоит простая структура. Вот обобщенное представление, которое может немного прояснить ситуацию:

 CREATE TABLE table_name 
(параметры типа данных атрибута_имя,
...,
параметры типа данных атрибута_имя);

Атрибуты и типы данных

В предыдущем примере имя таблицы – сотрудники, и мы включаем четыре атрибута: employeeid, фамилия, имя и отчеты. Тип данных указывает тип информации, которую мы хотим хранить в каждом поле.Идентификатор сотрудника представляет собой простое целое число, поэтому мы будем использовать тип данных INTEGER как для поля employeeid, так и для поля reportsto. Имена сотрудников будут символьными строками переменной длины, и мы не ожидаем, что какой-либо сотрудник будет иметь имя или фамилию длиннее 25 символов. Поэтому мы будем использовать тип VARCHAR (25) для этих полей.

Значения NULL

Мы также можем указать NULL или NOT NULL в поле опций оператора CREATE. Это просто сообщает базе данных, допускаются ли значения NULL (или пустые) для этого атрибута при добавлении строк в базу данных. В нашем примере отдел кадров требует, чтобы идентификатор сотрудника и полное имя были сохранены для каждого сотрудника. Однако не у каждого сотрудника есть менеджер (генеральный директор никому не подчиняется!), Поэтому мы допускаем пустые записи в этом поле. Обратите внимание, что значение NULL является значением по умолчанию, и пропуск этой опции неявно разрешит значения NULL для атрибута.

Построение оставшихся таблиц

Теперь давайте посмотрим на таблицу территорий. При быстром взгляде на эти данные видно, что нам нужно хранить целое число и две строки переменной длины. Как и в нашем предыдущем примере, мы не ожидаем, что идентификатор региона будет содержать более 25 символов. Однако некоторые из наших территорий имеют более длинные имена, поэтому мы расширим допустимую длину этого атрибута до 40 символов.

Давайте посмотрим на соответствующий SQL:

 СОЗДАТЬ СТОЛОВЫЕ территории 
(территория INTEGER NOT NULL,
территория Описание VARCHAR (40) NOT NULL,
regionid VARCHAR (25) NOT NULL);

Наконец, мы будем использовать таблицу EmployeeTerritories для хранения отношений между сотрудниками и территориями. Подробная информация о каждом сотруднике и территории хранится в наших предыдущих двух таблицах. Поэтому нам нужно только сохранить два целых идентификационных номера в этой таблице. Если нам нужно расширить эту информацию, мы можем использовать JOIN в наших командах выбора данных для получения информации из нескольких таблиц.

Этот метод хранения данных снижает избыточность в нашей базе данных и обеспечивает оптимальное использование пространства на наших дисках хранения. Мы подробно рассмотрим команду JOIN в следующем уроке. Вот код SQL для реализации нашей финальной таблицы:

 CREATE TABLE employeeterritories 
(employeeid INTEGER NOT NULL,
территория INTEGER NOT NULL);

Механизм SQL обеспечивает изменение структуры базы данных после создания

Если вы особенно проницательны сегодня, вы могли заметить, что мы «случайно» пропустили одно из требований к дизайну при реализации наших таблиц базы данных. Директор по персоналу XYZ Corporation попросил, чтобы база данных отслеживала информацию о зарплате сотрудника, и мы не предусмотрели это в таблицах базы данных, которые мы создали.

Однако еще не все потеряно. Мы можем использовать команду ALTER TABLE, чтобы добавить этот атрибут в нашу существующую базу данных. Мы хотим сохранить зарплату как целочисленное значение. Синтаксис очень похож на синтаксис команды CREATE TABLE, вот он:

 Сотрудники ALTER TABLE 
ДОБАВИТЬ Зарплату INTEGER NULL;

Обратите внимание, что мы указали, что значения NULL разрешены для этого атрибута. В большинстве случаев нет опции при добавлении столбца в существующую таблицу. Это связано с тем, что таблица уже содержит строки без записи для этого атрибута. Поэтому СУБД автоматически вставляет значение NULL, чтобы заполнить пустоту.

Оцените статью
Solutics.ru
Добавить комментарий