Когда необходимо ввести название таблицы
После создания описателя надо создать таблицу(ы), в которой будут храниться данные.
Для создания новой таблицы надо:
- В редакторе баз данных слева нажать кнопку
Таблицы . - Затем нажать кнопку
Создать. или сделать щелчок правой кнопкой мыши в области таблиц и выбрать пункт Создать . - В диалоговом окне Сохранить таблицу выбрать источник, если нужного источника в списке нет, то добавить новый .
- В строке Имя таблицы ввести имя для создаваемой таблицы.
- Нажать кнопку Сохранить . После произведенных действий появится окно Новая таблица , в ней список полей организован в табличной форме, для каждого поля отображается его порядковый номер, название поля, тип поля, длина (для полей строкового типа), а также ключик, помечающий, что поле входит в первичный индекс. Всегда при создании таблицы в список полей автоматически добавляется поле « Sys » . Это поле нужно для таблиц, которые должны быть связаны непосредственно с объектами слоя. Данное поле индексированное, его так же называют ключевым или уникальным полем, в нем не допускается ввод повторяющихся значений. Уникальность поля указывается стоящим напротив поля ключиком
. В системе по умолчанию оно используется для связи графической и семантической информации. Если у таблиц, связанных с объектами данное поле удалить, то при попытке изменить таблицу будет выдана ошибка: « не удаётся обновить данные, так как базовая таблица * не проиндексирована » . Для таблиц, не связанных напрямую с объектами карты это поле можно удалить. - Нажать кнопку Добавить поле , после чего в таблице появится новое поле. В данном поле в столбце Имя поля ввести название.
- В столбце Тип из открывающегося списка выбрать нужный тип поля. Список возможных типов полей зависит от используемой базы данных, а также от выбранного « режима » : обычного или экспертного. Наиболее часто используемые типы данных:
- Строковое — символьный тип данных, имеет диапазон от 0 до 255 символов (используется как правило для наименований).
- Короткое целое — целочисленный цифровой тип данных, позволяет хранить целые числа диапазоном от -32768 до 32767.
- Длинное целое — цифровой тип данных, позволяет хранить целые числа диапазоном от -2147483648 до 2147483647.
- Вещественное — цифровой тип данных, имеет диапазон приблизительно [-1.7×10^-308, -1.7×10^+308] и [+1.7×10^-308, +1.7×10^+308] (используется для тех данных, у которых по мимо целой части может быть еще и дробная).
- Длинный текст — строковый тип данных. Часто используемый вариант при хранении больших текстовых данных.
- Логическое — может сохранять следующие значения: true/да или false/нет.
- BLOB — специальный тип данных, предназначенный для хранения изображений, текстов, аудио, видео и zip архивов;
- Дата и время — данный тип данных предназначен для хранения даты и времени. Если требуется только дата, то используйте тип Date, он доступен в экспертном режиме.

Рисунок 529. Диалоговое окно создания таблицы
Создание таблиц в классических базах данных Access с помощью средства чтения с экрана
Эта статья предназначена для людей с нарушениями зрения или когнитивных функций, использующих программы чтения с экрана, такие как WindowsЭкранный диктор, JAWS или NVDA, с продуктами Microsoft 365. Эта статья входит в набор содержимого поддержки средства чтения с экрана Microsoft 365, где содержатся дополнительные сведения о специальных возможностях в наших приложениях. Чтобы получить справку общего характера, посетите службу поддержки Майкрософт.
Используйте Access с клавиатурой и средством чтения с экрана для добавления таблиц в базу данных Access рабочего стола. Мы протестировали его с помощью экранного диктора и NVDA, но он может работать с другими средствами чтения с экрана, если они следуют общим стандартам и методам специальных возможностей. Вы также узнаете, как сохранять, переименовывать и удалять таблицы.
- Новые возможности Microsoft 365 становятся доступны подписчикам Microsoft 365 по мере выхода, поэтому в вашем приложении эти возможности пока могут отсутствовать. Чтобы узнать о том, как можно быстрее получать новые возможности, станьте участником программы предварительной оценки Office.
- Дополнительные сведения о средствах чтения с экрана см. в статье О работе средств чтения с экрана в Microsoft 365.
В этом разделе
- Таблицы в Access
- Добавление таблицы
- Переименование заголовка поля
- Вставка поля
- Добавление поля
Таблицы в Access
Таблицы — это неотъемлемая часть любой базы данных, так как именно в них содержатся все сведения и данные. Например, база данных для бизнеса может содержать таблицу Контактов , в ней хранятся имена поставщиков, адреса электронной почты и номера телефонов. Перед созданием таблиц проанализируйте свои требования и определите, какие именно таблицы могут вам понадобиться. Справочные сведения о планировании и разработке базы данных см. в статье Основные сведения о создании баз данных.
Реляционная база данных, например Access, обычно содержит несколько логически связанных таблиц. В хорошо спроектированной базе данных в каждой таблице хранятся сведения о конкретном объекте, например о работниках или товарах. Таблица содержит записи (строки), поля (столбцы) и значения полей (ячейки) для каждой записи.
- Запись (строка) содержит конкретные данные, например информацию об определенном работнике или продукте.
- Поле (столбец) содержит данные об одном аспекте элемента таблицы, например имя, адрес электронной почты или цену.
- Значение поля (ячейка) для записи содержит данные разных типов, например текст, числа, даты и гиперссылки.
Хотя в каждой таблице хранятся данные о определенной теме, в таблицах в реляционной базе данных, такой как Access, хранятся данные о связанных субъектах. Например, база данных может содержать следующее:
- Таблица «Клиенты», в которую перечислены клиенты вашей компании и их адреса.
- Таблица Products, в которую перечислены продукты, которые вы продаете, включая цены и изображения для каждого элемента.
- Таблица Orders, которая отслеживает заказы клиентов
Для этого используются связи. Связь — это логическое отношение между двумя таблицами, основанное на их общих полях. Сведения о создании связей между таблицами в базе данных Access рабочего стола см. в статье Создание, изменение или удаление связи.
Добавление таблицы
- Откройте новую или существующую базу данных.
- Чтобы создать таблицу, нажмите клавиши ALT+C, T, N, чтобы выбрать Таблица на вкладке Создание ленты. Будет добавлена новая таблица, и вы услышите сообщение «Таблица N». Основное внимание уделяется второму значению поля первой записи. (По умолчанию первое поле имеет название Код.)
- Введите данные в таблицу. Вы также можете вставить данные из другого источника, например из книги Excel. Дополнительные сведения см. в статье Копирование и вставка с помощью буфера обмена Office. При вводе значения поля в новое поле и переходе к следующему значению поля с помощью клавиш со стрелками Access автоматически присваивает поле имя FieldN.
Переименование заголовка поля
Можно переименовать заголовок поля (столбца) в таблице.
- Чтобы выбрать поле, в любой записи поместите фокус в поле и нажмите клавиши CTRL+ПРОБЕЛ. Выбран столбец.
- Чтобы открыть контекстное меню, нажмите клавиши SHIFT+F10.
- Чтобы выбрать команду Переименовать поле, нажмите клавишу N. Фокус переместится на заголовок поля, и вы услышите фразу «Вывод меню, таблица, строка N», имя поля и «Тип и текст». Введите новое имя поля.
Совет: Понятные имена заголовков, такие как Название продукта или Цена, помогают узнать, что содержит каждое поле, не видя его содержимое.
Вставка поля
Поле (столбец) можно вставить слева от любого существующего поля в таблице.
- Чтобы выбрать поле, которое нужно вставить слева, в любой строке поместите фокус в поле и нажмите клавиши CTRL+ПРОБЕЛ. Выбран столбец.
- Чтобы открыть контекстное меню, нажмите клавиши SHIFT+F10.
- Чтобы выбрать Вставить поле, нажмите клавишу F четыре раза, а затем нажмите клавишу ВВОД. Фокус переместится на первую запись нового поля.
Добавление поля
Вы можете создать новое поле (столбец) в правой части таблицы.
- Перейдите к записи, вокруг которой нужно добавить новое поле.
- Чтобы перейти к первой записи таблицы, нажмите клавиши CTRL+HOME.
- Чтобы перейти к последней записи последнего поля в таблице, нажмите клавиши CTRL+END.
- Чтобы создать новое поле в правой части таблицы, нажимайте клавишу СТРЕЛКА ВПРАВО, пока не услышите номер строки и «Столбец, щелкните, чтобы добавить».
- Введите значение поля для текущей записи. При переходе в другую ячейку новое поле добавляется с именем FieldN по умолчанию.
- Чтобы перейти к первой записи нового поля, нажмите клавиши CTRL+СТРЕЛКА ВВЕРХ.
Сохранение таблицы
После создания новой таблицы или изменения существующей таблицы сохраните свою работу.
-
Чтобы сохранить таблицу, нажмите клавиши CTRL+S или ALT+F, S. При первом сохранении таблицы откроется диалоговое окно Сохранить как , и вы услышите сообщение «Сохранить как» и имя таблицы по умолчанию.
- При попытке закрыть таблицу без сохранения изменений появится диалоговое окно подтверждения. Чтобы сохранить таблицу перед ее закрытием, нажмите клавиши ALT+Y. Чтобы отменить изменения, нажмите клавиши ALT+N.
- При сохранении изменений в существующей таблице таблица имеет имя, присвоенное ранее. Чтобы изменить имя таблицы при сохранении, нажмите клавишу F12. Откроется диалоговое окно Сохранить как , и вы можете ввести новое имя.
Совет: Договоритесь о том, по какому принципу будете называть объекты в базе данных, и следуйте этим правилам.
Переименование таблицы
Примечание: Нельзя переименовать открытую таблицу. Чтобы закрыть активную таблицу, нажмите клавиши CTRL+W. Фокус переместится на следующую открытую таблицу. Если открытых таблиц не осталось, фокус переместится в область навигации .
- В области навигации нажимайте клавишу TAB, пока не услышите сообщение «Таблицы», а затем нажимайте клавишу СТРЕЛКА ВНИЗ, пока не услышите нужную таблицу.
- Чтобы открыть контекстное меню для таблицы, нажмите клавиши SHIFT+F10.
- Чтобы выбрать команду Переименовать в контекстном меню, дважды нажмите клавишу M, а затем нажмите клавишу ВВОД. Прозвучит фраза «Переименовать».
- Введите новое имя и нажмите клавишу ВВОД.
Удаление таблицы
- В представлении таблицы закройте все таблицы. Фокус переместится в область навигации.
- Нажимайте клавишу СТРЕЛКА ВНИЗ, пока не услышите таблицу, которую нужно удалить.
- Нажмите клавишу DELETE. Откроется окно с запросом на подтверждение удаления. Фокус помещается на кнопку Да.
- Чтобы удалить таблицу, нажмите клавишу ВВОД.
Примечание: Чтобы перейти в представление таблицыиз конструктора , нажмите клавиши ALT+H, W, а затем — H. Чтобы перейти в режим конструктора из представления таблицы , нажмите клавиши ALT+H, W, а затем — D.
См. также
Техническая поддержка пользователей с особыми потребностями
Корпорация Майкрософт стремится к тому, чтобы все наши клиенты получали наилучшие продукты и обслуживание. Если у вас ограниченные возможности или вас интересуют вопросы, связанные со специальными возможностями, обратитесь в службу Microsoft Disability Answer Desk для получения технической поддержки. Специалисты Microsoft Disability Answer Desk знакомы со многими популярными специальными возможностями и могут оказывать поддержку на английском, испанском, французском языках, а также на американском жестовом языке. Перейдите на сайт Microsoft Disability Answer Desk, чтобы узнать контактные сведения для вашего региона.
Если вы представитель государственного учреждения или коммерческой организации, обратитесь в службу Disability Answer Desk для предприятий.
Создание таблицы и добавление полей
В базе данных можно хранить данные в виде таблиц — тематических списков строк и столбцов. Например, вы можете создать таблицу «Контакты» для хранения имен, адресов и телефонных номеров или таблицу «Товары» для хранения сведений о товарах. В этой статье описано, как создать таблицу, добавить в нее поля, настроить первичный ключ и свойства таблицы и полей.
Перед созданием таблиц и добавлением полей изучите основные понятия. Дополнительные сведения см. в статье Общие сведения о таблицах.
В этой статье
Создание таблицы
В простой базе данных, такой как список контактов, может быть всего одна таблица. Однако во многих базах данных используется несколько таблиц. При создании базы данных на компьютере создается файл, который используется как контейнер для всех ее объектов, включая таблицы.
Есть несколько способов создать таблицу: вы можете создать новую базу данных, вставить таблицу в существующую базу данных или импортировать таблицу из другого источника данных, например книги Microsoft Office Excel, документа Microsoft Office Word, текстового файла или другой базы данных, либо связать таблицу с этим источником. Когда вы создаете новую базу данных, в нее автоматически вставляется новая пустая таблица. Затем вы можете ввести в нее данные, чтобы начать определение полей.
Создание таблицы в новой базе данных
- Щелкните Файл >Создать и выберите пункт Пустая база данных рабочего стола.
- В поле Файл введите имя файла новой базы данных.
- Чтобы сохранить базу данных в другом месте, щелкните значок папки.
- Нажмите кнопку Создать. Откроется новая база данных, в которой будет создана и открыта в режиме таблицы новая таблица с именем «Таблица1».
Создание таблицы в существующей базе данных
- Щелкните Файл >Открыть и выберите базу данных, если она указана в разделе Последние. В противном случае выберите один из вариантов поиска базы данных.
- В диалоговом окне Открытие файла базы данных найдите базу данных, которую вы хотите открыть,и нажмите кнопку Открыть.
- на вкладке Создание в группе Таблицы нажмите кнопку Таблица. В базу данных будет вставлена новая таблица, которая откроется в режиме таблицы.
Использование импорта или связывания для создания таблицы
Чтобы создать таблицу, вы можете импортировать данные из другого файла (например, из листа Excel, списка SharePoint, XML-файла, другой базы данных Access, папки Microsoft Outlook и т. д.) либо связать таблицу с ним.
При импорте данных создается их копия в новой таблице текущей базы данных. Последующие изменения, вносимые в исходные данные, не будут влиять на импортированные данные, и наоборот. После подключения к источнику и импорта данных можно использовать импортированные данные без подключения к источнику. В структуру импортированной таблицы можно вносить изменения.
Когда осуществляется связывание с данными, в текущей базе данных создается связанная таблица, обеспечивающая динамическое подключение к данным, хранящимся в другом месте. Изменения данных в связанной таблице отражаются в источнике, а изменения в источнике — в связанной таблице. Для работы со связанной таблицей необходимо подключение к источнику данных. Изменить структуру связанной таблицы нельзя.
Примечание: Нельзя изменять данные на листе Excel с помощью связанной таблицы. В качестве обходного способа можно импортировать исходные данные в базу данных Access, а затем создать связь с базой данных из Excel.
Создание таблицы с помощью импорта внешних данных или связи с ними
- Откройте меню Файл и выберите команду Открыть.
- В диалоговом окне Открытие файла базы данных выберите и откройте базу данных, в которой вы хотите создать таблицу.
- На вкладке Внешние данные в группе Импорт & Link выберите Новый источник данных, а затем выберите один из доступных источников данных в появившемся подменю. Обратите внимание, что для Access 2016 и более ранних версий доступные источники данных перечислены в виде команд непосредственно в группе Импорт & link.
- Следуйте инструкциям в появляющихся диалоговых окнах. Будет создана таблица, имя которой появится в области навигации.
Создание таблицы с использованием сайта SharePoint
Для создания таблицы базы данных можно использовать импортировать список SharePoint или создать связь с ним. Кроме того, вы можете создать новый список SharePoint на основе готового шаблона. В Access доступны такие шаблоны, как «Контакты», «Задачи», «Вопросы» и «События».
- Откройте меню Файл и выберите команду Открыть.
- В диалоговом окне Открытие файла базы данных выберите базу данных, в которой вы хотите создать таблицу, и нажмите кнопку Открыть.
- На вкладке Создание в группе Таблицы нажмите кнопку Списки SharePoint.
- Выполните одно из указанных ниже действий. Создание списка SharePoint на основе шаблона
- Выберите пункт Контакты, Задачи, Вопросы или События.
- В диалоговом окне Создание нового списка введите URL-адрес сайта SharePoint, на котором вы хотите создать список.
- Введите имя и описание для нового списка в полях Укажите имя нового списка и Описание.
- Чтобы открыть связанную таблицу после ее создания, установите флажок Открыть список по окончании экспорта (он установлен по умолчанию).
Создание настраиваемого списка
- Выберите пункт Другой.
- В диалоговом окне Создание нового списка введите URL-адрес сайта SharePoint, на котором вы хотите создать список.
- Введите имя и описание для нового списка в полях Укажите имя нового списка и Описание.
- Чтобы открыть связанную таблицу после ее создания, установите флажок Открыть список по окончании экспорта (он установлен по умолчанию).
Импорт данных из существующего списка
- Выберите пункт Существующий список SharePoint.
- В диалоговом окне Внешние данные введите URL-адрес сайта SharePoint, содержащего данные, которые нужно импортировать.
- Выберите пункт Импортировать данные источника в новую таблицу в текущей базе данных и нажмите кнопку Далее.
- Установите флажки всех списков SharePoint, которые нужно импортировать.
Связь со списком
- Выберите пункт Существующий список SharePoint.
- В диалоговом окне Внешние данные — сайт SharePoint введите URL-адрес сайта SharePoint, содержащего список, связь с которым нужно создать.
- Выберите пункт Создать связанную таблицу для связи с источником данных и нажмите кнопку Далее.
- Установите флажки всех списков SharePoint, связи с которыми нужно создать.
Создание таблицы с использованием веб-службы
В базе данных можно создать таблицу, подключенную к данным на веб-сайте с интерфейсом веб-службы. Таблицы веб-служб доступны только для чтения.
- На вкладке Внешние данные в группе Импорт & link выберите Создать источник данных, затем выберите Из источника в сети, а затем — Службы данных. Обратите внимание, что для Access 2016 и более ранних версий на вкладке Внешние данные в группе Импорт & link нажмите кнопку Дополнительно, а затем — Службы данных.
- Если нужное подключение уже установлено, перейдите к действию 5. В противном случае перейдите к следующему действию.
- Нажмите кнопку Установить новое подключение.
- Выберите нужный файл подключения и нажмите кнопку ОК.
- В диалоговом окне Создание связи с данными веб-службы разверните нужное подключение.
- Выберите таблицу, связь с которой требуется создать. Ее поля отобразятся в правой части диалогового окна.
- Можно ввести имя связанной таблицы в поле Укажите имя ссылки. Access будет выводить это имя связанной таблицы в области навигации.
- Нажмите кнопку ОК. Будет создана связанная таблица.
Настройка свойств таблицы
Кроме настройки свойств полей, можно задать свойства, которые применяются ко всей таблице или ко всем записям.
- Выберите таблицу, для которой требуется задать свойства.
- На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.
- На вкладке Конструктор таблиц в группе Показать и скрыть щелкните Лист свойств. Откроется страница свойств таблицы.
- На странице свойств откройте вкладку Общие.
- Щелкните поле слева от свойства, которое вы хотите задать, и введите значение. Чтобы сохранить изменения, не забудьте нажать клавиши CTRL+S.
Свойство таблицы Задача Представления на веб-сайте SharePoint Укажите, должны ли представления, основанные на таблице, отображаться на сайте SharePoint. Примечание: Действие этого параметра зависит от значения свойства базы данных Отображать все представления на сайте SharePoint.
- Чтобы в окне подтаблицы отображались все строки, оставьте значение 0.
- Чтобы задать высоту подтаблицы, введите нужное значение.
Укажите направление отображения данных в соответствии с направлением письма (слева направо или справа налево).
Укажите описание таблицы, которое будет появляться в качестве всплывающей подсказки для этой таблицы.
Режим по умолчанию
Укажите режим открытия таблицы, используемый по умолчанию (Режим таблицы, Сводная таблица или Сводная диаграмма). Режимы сводной таблицы и сводной диаграммы в Access недоступны, начиная с Access 2013.
Условие на значение
Введите выражение, которое должно быть истинно при добавлении или изменении любой записи.
Сообщение об ошибке
Введите сообщение, отображаемое в том случае, если запись не соответствует выражению в свойстве Правило проверки.
Определите условия отображения строк в режиме таблицы.
Порядок сортировки
Выберите одно или несколько полей, чтобы задать порядок сортировки по умолчанию для строк в режиме таблицы.
Имя подтаблицы
Укажите, должна ли подтаблица отображаться в режиме таблицы. Если да, укажите таблицу или запрос, из которых подтаблица должна получать строки.
Подчиненные поля
Укажите поля в таблице или запросе, используемые в подтаблице и соответствующие свойству Основные поля, заданному для таблицы.
Основные поля
Укажите поля таблицы, соответствующие свойству Подчиненные поля, заданному для таблицы.
Фильтр при загрузке
Укажите, необходимо ли автоматически применять условия фильтра, заданные с помощью свойства Фильтр (если присвоено значение Да), при открытии таблицы в режиме таблицы.
Сортировка при загрузке
Укажите, необходимо ли автоматически применять условия сортировки, заданные с помощью свойства Порядок сортировки (если присвоено значение Да), при открытии таблицы в режиме таблицы.
Совет. Если в поле свойства недостаточно места для ввода или изменения значения, нажмите сочетание клавиш SHIFT+F2, чтобы открыть поле Область ввода. Если при назначении выражению свойства Правило проверки требуется помощь, нажмите кнопку рядом с полем свойства Правило проверки, чтобы открыть построитель выражений.
Сохранение таблицы
После создания или изменения таблицы следует сохранить ее структуру. При первом сохранении таблице необходимо присвоить имя, описывающее содержащиеся в ней данные. Можно использовать до 64 знаков (букв или цифр), включая пробелы. Например, вы можете назвать таблицу «Клиенты», «Перечень запасных частей» или «Товары».
Access предоставляет вам гибкие возможности при именовании таблиц, однако есть и некоторые ограничения. Имя может сдержать до 64 знаков, включать любое сочетание букв, цифр, пробелов и специальных символов, за исключением точек (.), восклицательных знаков (!), квадратных скобок ([]), начального пробела, начального знака равенства (=) или непечатаемых символов, таких как возврат каретки. Кроме того, имя не должно содержать следующие символы: ` / \ : ; * ? » ‘ < >| # < >% ~ &.
Совет: Договоритесь о том, по какому принципу будете называть объекты в базе данных, и следуйте этим правилам.
- Выберите Файл >Сохранить или нажмите клавиши CTRL+S.
- Если вы сохраняете таблицу в первый раз, введите ее имя и нажмите кнопку ОК.
Настройка первичного ключа
Для таблицы следует задать первичный ключ, если только у вас нет веских оснований не делать этого. Access автоматически создает индекс для первичного ключа, что повышает производительность базы данных. Кроме того, Access гарантирует, что каждая запись имеет значение в поле первичного ключа и это значение всегда уникально. Это крайне важно, поскольку в противном случае нельзя надежно отличить одну строку от другой.
При создании таблицы в режиме таблицы Access автоматически создает первичный ключ с именем «Код» и присваивает ему тип данных «Счетчик».
Изменить или удалить первичный ключ, а также задать первичный ключ для таблицы, в которой его еще нет, можно в Конструкторе.
Определение полей, используемых в качестве первичного ключа
Иногда данные, которые можно использовать в качестве первичного ключа, уже есть. Например, у сотрудников уже могут быть идентификационные номера. Если вы создаете таблицу для отслеживания данных о сотрудниках, в качестве первичного ключа можно использовать их идентификаторы. Иногда идентификаторы сотрудников уникальны только в сочетании с кодами отделов; в этом случае в качестве первичного ключа необходимо использовать сочетание этих полей. Первичный ключ должен обладать следующими характеристиками:
- Значение данного поля или сочетания полей должно быть уникальным для каждой записи.
- Поле или сочетание полей не должно быть пустым (у них всегда должно быть значение).
- Значения не должны изменяться.
Если данных, подходящих на роль первичного ключа, нет, для этого можно создать новое поле. При создании поля для использования в качестве первичного ключа выберите для него тип «Счетчик» — это обеспечит соответствие трем характеристикам, указанным выше.
Настройка или изменение первичного ключа
- Выберите таблицу, для которой вы хотите задать или изменить первичный ключ.
- На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.
- На бланке таблицы выберите поле или поля, которые вы хотите использовать в качестве первичного ключа. Чтобы выделить одно поле, щелкните область выделения строки для него. Чтобы выделить несколько полей, щелкните область выделения для каждого поля, удерживая нажатой клавишу CTRL.
- На вкладке Конструктор таблиц в группе Сервис щелкните Первичный ключ. Индикатор ключа будет добавлен слева от поля или полей, определенных как первичный ключ.
Удаление первичного ключа
- Выберите таблицу, первичный ключ которой вы хотите удалить.
- На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.
- Щелкните область выделения строки для текущего первичного ключа. Если первичный ключ состоит из нескольких полей, щелкните область выделения строки для каждого из них, удерживая нажатой клавишу CTRL.
- На вкладке Конструктор таблиц в группе Сервис щелкните Первичный ключ. Индикатор ключа будет удален из поля или полей, ранее определенных в качестве первичного ключа.
Если попытаться сохранить новую таблицу без первичного ключа, Access предложит создать поле для него. Если нажать кнопку Да, Access создаст поле «Код» с типом данных «Счетчик», в котором будет хранится уникальное значение для каждой записи. Если в таблице уже есть поле с типом «Счетчик», оно будет использовано в качестве первичного ключа. Если нажать кнопку Нет, Access не добавит новое поле и не задаст первичный ключ.
Добавление полей
Чтобы сохранить новый фрагмент данных для уже имеющейся таблицы Access, рекомендуется добавить в нее поле. Например, предположим, что есть таблица с полями, в которых указаны фамилия, имя, адрес электронной почты, номер телефона и почтовый адрес каждого клиента. Если нужно начать отслеживать предпочтительный способ связи для каждого клиента, для хранения таких данных добавляется поле.
Все элементы данных, которые необходимо отслеживать, хранятся в отдельных полях. Например, в таблице контактов можно создать поля «Имя», «Фамилия», «Телефон» и «Адрес», а в таблице товаров — поля «Название товара», «Код товара» и «Цена».
У каждого поля есть некоторые основные характеристики, например имя, которое уникальным образом определяет его в пределах таблицы, тип данных, указывающий на характер данных, операции, которые можно выполнять с данными, и объем места, выделяемого для каждого значения.
Прежде чем создавать поля, разделите данные на минимальные полезные элементы. Потом вам будет намного проще объединить данные, чем разделить их. Например, вместо поля «Полное имя» лучше создать отдельные поля «Имя» и «Фамилия». Благодаря этому вам будет проще искать и сортировать данные по имени, фамилии или их сочетанию. Если вы собираетесь создавать отчет, выполнять сортировку, поиск или вычисления по элементу данных, выделите его в отдельное поле.
Для поля можно задать свойства, определяющие его вид и поведение. Например, свойство Формат задает отображение данных в таблице или форме, включающей поле.
Добавление поля путем ввода данных
Чтобы при создании новой или открытии существующей таблицы в режиме таблицы добавить в нее поле, введите данные в столбец таблицы Добавить поле(1). В зависимости от того, какое значение введено, тип данных для поля назначается автоматически. Если введенное значение не имеет определенного типа данных, Access выбирает текстовый тип, но при необходимости его можно изменить.
Ввод данных в столбец Добавить поле:
- Чтобы создать или открыть таблицу в режиме таблицы, в области навигации щелкните нужную таблицу правой кнопкой мыши и затем в контекстном меню выберите пункт Режим таблицы.
- Введите имя создаваемого поля в столбец Добавить поле. Используйте описательное имя, помогающее идентифицировать поле.
- Введите данные в новое поле.
Добавление поля с помощью шаблона
Иногда проще выбрать поле из готового списка, чем создавать его вручную. Для выбора поля из списка шаблонов используется список Другие поля. Шаблон поля – это заданный набор характеристик и свойств, описывающих его. Определение шаблона поля включает имя поля, тип данных, значение свойства Формат и ряд других свойств.

- На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Режим таблицы.
- На вкладке Поля таблицы в группе Добавить & удалить щелкните Другие поля.
- Чтобы вставить новый столбец, выберите поле в списке Другие поля. Access помещает поле справа от столбца, в котором находится курсор. Если вы выберете один из заголовков Quick Start, например «Адрес», Access воздаст множество полей в таблице для разных составляющих частей адреса.
Задание свойств полей
Для поля можно задать свойства, определяющие его вид и поведение.
Например, с помощью свойств поля можно:
- изменить вид данных в поле;
- предотвратить ввод неправильных данных в поле;
- задать для поля значение по умолчанию;
- ускорить поиск и сортировку по полю.
Некоторые свойства поля можно настроить в режиме таблицы, однако для доступа ко всем свойствам и их настройки необходимо использовать конструктор.
Настраиваемые свойства зависят от типа данных поля.
Задание свойств поля в режиме таблицы
В режиме таблицы можно переименовать поле, изменить его тип, свойство Формат и некоторые другие свойства.
- В области навигации щелкните правой кнопкой мыши таблицу, которую вы хотите открыть.
- В контекстном меню выберите пункт Режим таблицы.
Переименование поля
Когда вы добавляете поле путем ввода данных в режиме таблицы, Access автоматически присваивает ему универсальное имя. Первому новому полю назначается имя «Поле1», второму — «Поле2» и т. д. По умолчанию имя поля используется в качестве его метки везде, где поле отображается (например, в заголовке столбца таблицы). Если вы присвоите полям описательные имена, вам будет легче просматривать и изменять записи.
- Щелкните правой кнопкой мыши заголовок поля, которое требуется переименовать (например, «Поле1»).
- В контекстном меню выберите пункт Переименовать поле.
- Введите новое имя в заголовок поля. Имена полей могут содержать до 64 символов (цифр или букв), включая пробелы.
Изменение типа данных поля
При создании поля путем ввода данных в режиме таблицы приложение Access анализирует данные, чтобы определить подходящий тип данных для поля. Например, если ввести 01.01.2024, Access распознает эти данные как дату и задает для поля тип данных Date/Time. Если Access не может окончательно определить тип данных, тип данных по умолчанию имеет значение Short Text (Text, если вы используете Access 2016 или более ранних версий).
Тип данных поля определяет, какие еще свойства вы можете для него задать. Например, можно задать только свойство «Только добавление» для поля с типом данных Гиперссылка или Тип данных «Длинный текст» (Memo, если вы используете Access 2016 или более ранних версий).
Бывают ситуации, когда нужно изменить тип данных поля вручную. Представьте, что вам нужно ввести номера комнат, напоминающие даты (например, 10.2017). Если ввести значение 10.2017 в новое поле в режиме таблицы, функция автоматического определения типа данных выберет для поля тип данных «Дата и время». Поскольку номера комнат являются метками, а не датами, для них должен быть установлен тип данных «Текст». Чтобы изменить тип данных поля, выполните указанные ниже действия.
- На ленте щелкните вкладку Поля таблицы .
- В группе Форматирование в списке Тип данных выберите нужный тип данных. Доступные типы данных Полный список доступных типов данных для баз данных Access вы найдете в статье Типы данных для баз данных Access рабочего стола. Советы по типам данных
- Максимальный размер файла базы данных Access составляет 2 ГБ.
- Чтобы оптимизировать производительность, при создании текстовых и числовых полей укажите оптимальный Размер поля. Например, если вы собираетесь хранить почтовые индексы известной длины, задайте соответствующие размеры поля. Для этого введите нужное значение в поле Размер поля. Дополнительные сведения см. в разделе Задание других свойств поля.
- Для телефонных номеров, артикулов и других номеров, которые не предполагается использовать в математических вычислениях, вместо числового необходимо выбрать текстовый тип данных. Числовые значения, которые хранятся как текст, проще сортировать и фильтровать.
Изменение формата поля
Кроме определения типа данных нового поля Access может задать для него значение свойства Формат, зависящее от введенных данных. Например, если ввести значение 10:50, Access выберет тип данных «Дата и время» и присвоит свойству Формат значение «Средний формат времени». Чтобы вручную изменить значение свойства Формат, сделайте следующее.
- На ленте щелкните вкладку Поля таблицы .
- В группе Форматирование в поле Формат введите нужный формат.
Примечание: Для полей некоторых типов (например, текстовых) список Формат может быть недоступен.
Задание других свойств поля
- В режиме таблицы щелкните поле, для которого нужно задать свойство.
- На вкладке Поля таблицы в группах Свойства, Форматирование или Проверка полей выберите нужные свойства.
Задание свойств поля в Конструкторе
При работе с таблицей в Конструкторе можно настраивать любые свойства полей. Тип данных поля задается на бланке таблицы, а другие свойства — в области Свойства поля.
- В области навигации щелкните таблицу правой кнопкой мыши.
- В контекстном меню выберите пункт Конструктор.
Изменение типа данных поля
После создания поля можно изменить его различные параметры.
Предупреждение: Эти параметры можно изменять также у полей, которые были созданы ранее. Тем не менее если в поле уже есть данные, некоторые действия могут быть недоступны или привести к повреждению данных.
- На бланке таблицы найдите поле, для которого вы хотите задать тип данных.
- В столбце Тип данных выберите значение из списка. Доступные типы данных Полный список доступных типов данных для баз данных Access вы найдете в статье Типы данных для баз данных Access рабочего стола. Советы по типам данных
- Максимальный размер файла базы данных Access составляет 2 ГБ.
- Для телефонных номеров, артикулов и других номеров, которые не предполагается использовать в математических вычислениях, вместо числового необходимо выбрать текстовый тип данных. Числовые значения, которые хранятся как текст, проще сортировать и фильтровать, но их сложно использовать в вычислениях.
- Для текстового и числового типа данных вы можете более точно задать размер поля или тип данных с помощью свойства Размер поля.
Задание других свойств поля
Примечание: Не все форматы доступны для всех типов данных. Сначала задайте тип данных, а затем при необходимости настройте формат.
- На бланке таблицы выберите поле, для которого вы хотите задать свойства. Свойства поля выводятся в области Свойства поля. Свойства, которые можно задать, зависят от типа данных этого поля.
- В области Свойства поля введите нужные параметры для каждого свойства или нажмите клавишу F6 и выберите свойство с помощью клавиш со стрелками. Какие свойства полей доступны? Полный список свойств полей, доступных для каждого типа данных в базах данных приложения Access см. в статье Введение в использование типов данных и свойств полей.
Примечание: Не все свойства доступны для каждого поля. Свойства поля определяются его типом данных.
Совет: Если вам требуется помощь в создании маски ввода или выражения условия на значение, нажмите кнопку рядом с полем свойства для отображения соответствующего построителя.
Перемещение поля
Чтобы переместить поле, перетащите его на нужное место. Чтобы выбрать несколько соседних полей для перемещения, щелкните первое поле, и, удерживая нажатой клавишу SHIFT, щелкните последнее поле. После этого можно перетащить выделенную группу полей на новое место.
При перетаскивании поля меняется его положение в таблице, порядок полей в конструкторе при этом не изменяется. При программном доступе к полям используется исходный порядок. Например, если перетащить поле в новое положение в режиме таблицы, а затем с помощью кнопки «Форма» создать на основе этой таблицы форму, поле будет расположено в исходном положении.
Как создавать таблицы в MySQL (Create Table)
Рассказываем о типах данных, атрибутах, ограничениях и об изменениях в уже созданной таблице.
Эта инструкция — часть курса «MySQL для новичков».
Смотреть весь курс
Введение
В данной статье мы рассмотрим, как правильно создавать таблицы в MySQL. Для этого разберем основные типы данных, атрибуты, ограничения, и что можно исправить в уже созданной таблице. Чтобы сократить последующие изменения, стоит заранее продумать структуру таблицы и ее содержимое. Наиболее важные пункты:
- Названия таблиц и столбцов.
- Типы данных столбцов.
- Атрибуты и ограничения.
Ниже разберем подробнее, как реализовать этот короткий список для MySQL наиболее эффективно.
Синтаксис Create table в MySQL и создание таблиц
Поскольку наш путь в базы данных только начинается, стоит вспомнить основы. Реляционные базы данных хранят данные в таблицах, и каждая таблица содержит набор столбцов. У столбца есть название и тип данных. Команда создания таблицы должна содержать все вышеупомянутое:
CREATE TABLE table_name ( column_name_1 column_type_1, column_name_2 column_type_2, . column_name_N column_type_N, );table_name — имя таблицы;
column_name — имя столбца;
column_type — тип данных столбца.
Теперь разберем процесс создания таблицы детально.
Названия таблиц и столбцов
Таблицы и столбцы стоит называть осмысленно и прозрачно, чтобы было понятно, как другому разработчику, так и вам самим спустя полгода. Даже если это учебная база только для вашего пользования, рекомендуем сразу привыкать делать правильно.
Имена могут содержать символы подчеркивания для большей наглядности. Классический пример непонятных названий — table1, table2 и т. п. Использование транслита, неясных сокращений и, разумеется, наличие орфографических ошибок тоже не приветствуется. Хороший пример коротких информативных названий: Customers, Users, Orders, так как по названию таблицы должно быть очевидно, какие данные таблица будет содержать. Эта же логика применима и к названию столбцов.
Максимальная длина названия и для таблицы, и для столбцов — 64 символа.
Типы данных столбцов
Для каждого столбца таблицы будет определен тип данных. Неправильное использование типов данных увеличивает как объем занимаемой памяти, так и время выполнения запросов к таблице. Это может быть незаметно на таблицах в несколько строк, но очень существенно, если количество строк будет измеряться десятками и сотнями тысяч, и это далеко не предел для рабочей базы данных. Проведем краткий обзор наиболее часто используемых типов.
Числовые типы
- INT — целочисленные значения от −2147483648 до 2147483647, 4 байта.
- DECIMAL — хранит числа с заданной точностью. Использует два параметра — максимальное количество цифр всего числа (precision) и количество цифр дробной части (scale). Рекомендуемый тип данных для работы с валютами и координатами. Можно использовать синонимы NUMERIC, DEC, FIXED.
- TINYINT — целые числа от −127 до 128, занимает 1 байт хранимой памяти.
- BOOL — 0 или 1. Однозначный ответ на однозначный вопрос — false или true. Название столбцов типа boolean часто начинается с is, has, can, allow. По факту это даже не отдельный тип данных, а псевдоним для типа TINYINT (1). Тип настолько востребован на практике, что для него в MySQL создали встроенные константы FALSE (0) или TRUE (1). Можно использовать синоним BOOLEAN.
- FLOAT — дробные числа с плавающей запятой (точкой).
Символьные
- VARCHAR(N) — N определяет максимально возможную длину строки. Создан для хранения текстовых данных переменной длины, поэтому память хранения зависит от длины строки. Наиболее часто используемый тип строковых данных.
- CHAR(N) — как и с varchar, N указывает максимальную длину строки. Char создан хранить данные строго фиксированной длины, и каждая запись будет занимать ровно столько памяти, сколько требуется для хранения строки длиной N.
- TEXT — подходит для хранения большого объема текста до 65 KB, например, целой статьи.
Дата и время
- DATE — только дата. Диапазон от 1000-01-01 по 9999-12-31. Подходит для хранения дат рождения, исторических дат, начиная с 11 века. Память хранения — 3 байта.
- TIME — только время — часы, минуты, секунды — «hh:mm:ss». Память хранения — 3 байта.
- DATETIME — соединяет оба предыдущих типа — дату и время. Использует 8 байтов памяти.
- TIMESTAMP — хранит дату и время начиная с 1970 года. Подходит для большинства бизнес-задач. Потребляет 4 байта памяти, что в два раза меньше, чем DATETIME, поскольку использует более скромный диапазон дат.
Бинарные
Используются для хранения файлов, фото, документов, аудио и видеоконтента. Все это хранится в бинарном виде.
Подробный разбор типов данных, включая более специализированные типы, например, ENUM, SET или BIGINT UNSIGNED, будет в отдельной тематической статье.
Практика с примерами
Для лучшего понимания приведем пример, создав простую таблицу для хранения данных сотрудников, где
- id — уникальный номер,
- name — ФИО,
- position — должность
- birthday — дата рождения
Синтаксис create table с основными параметрами:
CREATE TABLE Staff ( id INT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday Date );Тут могут появиться вопросы. Откуда MySQL знает, что номер уникален? Если еще нет должности для этого сотрудника, что будет, если оставить поле пустым?
Все это (как и многое другое) придется указать с помощью дополнительных параметров — атрибутов.Часто таблицы создаются и заполняются скриптами. Если мы вызовем команду CREATE TABLE Staff, а таблица Staff уже есть в базе, команда выдаст ошибку. Поэтому перед созданием разумно проверить, содержит ли уже база таблицу Staff. Достаточно добавить IF NOT EXISTS, чтобы выполнить эту проверку в MySQL, то есть вместо
CREATE TABLE StaffCREATE TABLE IF NOT EXISTS StaffПовторный запуск команды выведет предупреждение:
1050 Table 'Staff' already existsЕсли таблица уже создана и нужно создать таблицу с тем же именем с «чистого листа», старую таблицу можно удалить командой:
DROP TABLE table_name;Атрибуты (ATTRIBUTES) и ограничения (CONSTRAINTS)
PRIMARY KEY
Предназначение индексов — обеспечить быстрый доступ к табличным данным. Основная идея — существенное ускорение поиска. Создание первичного ключа, внешних ключей, определение уникальных значений в столбце — во всех этих случаях будут созданы индексы. Существуют определенные ограничения на построения индексов в зависимости от типов данных, но разбор этих нюансов будет в других статьях.
Пользы индексов на примерах: для поиска уникального значения среди 10000 строк придется проверить, в худшем случае, все 10000 без индекса, с индексом — всего 14. Поиск по миллиону записей займет не больше в 20 проверок — это реализация идеи бинарного поиска.
Создадим таблицу Staff с номером сотрудника в качестве первичного ключа. Первичный ключ гарантирует нам, что номер точно будет уникальным, а поиск по нему — быстрым.
CREATE TABLE Staff ( id INT PRIMARY KEY, name VARCHAR(255), position VARCHAR(30), birthday Date, has_children BOOLEAN );NOT NULL
При заполнении таблицы мы утверждаем, что значение этого столбца должно быть установлено. Если нет явного указания NOT NULL, и этот столбец не PRIMARY KEY, то столбец позволяет хранить NULL, то есть хранение NULL — поведение по умолчанию. Для первичного ключа это ограничение можно не указывать, так как первичный ключ всегда гарантирует NOT NULL.
Изменим команду CREATE TABLE, добавив NOT NULL ограничения: таким образом, мы обозначим обязательные для заполнения столбцы (т.е. столбцы, поля в которых не могут оставаться пустыми при наличии записи в таблице):
CREATE TABLE Staff ( id INT PRIMARY KEY, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_children BOOLEAN NOT NULL );DEFAULT
Можно указать значение по умолчанию, т.е. текст или число, которые будут сохранены, если не указано другое значение. Применяется не ко всем типам: BLOB, TEXT, GEOMETRY и JSON не поддерживают это ограничение.
Эта величина должна быть константой, функция или выражение не допустимы.Продолжим изменять команду, установив ограничение DEFAULT для поля BOOLEAN.
CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_children BOOLEAN DEFAULT(FALSE) NOT NULL );Для типа данных BOOLEAN можно использовать встроенные константы FALSE и TRUE. Вместо DEFAULT(FALSE) можно указать DEFAULT(0) — эти записи эквивалентны.
AUTO_INCREMENT
Каждый раз, когда в таблицу будет добавлена запись, значение этого столбца автоматически увеличится. На всю таблицу этот атрибут применим только к одному столбцу, причем этот столбец должен быть ключом. Рекомендуется использовать для целочисленных значений. Нельзя сочетать с DEFAULT.
CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_children BOOLEAN DEFAULT(FALSE) NOT NULL );Теперь номер сотрудника будет автоматически последовательно увеличиваться при каждой новой записи в таблицу.
Интересно, что при CREATE TABLE MySQL не позволяет установить стартовое значение для AUTO_INCREMENT. Можно назначить стартовое значение для счетчика AUTO_INCREMENT уже созданной таблицы.
ALTER TABLE Staff AUTO_INCREMENT=10001;Первая запись после такой модификации получит >
UNIQUE
Это ограничение устанавливает, что все значения данного столбца будут уникальны в пределах таблицы, и создает индекс. Можно применять к столбцам с поддержкой NULL, но так как NULL будет считаться уникальным значением, возможна только одна NULL-запись.
CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_child BOOLEAN DEFAULT(0) NOT NULL, phone VARCHAR(20) UNIQUE NOT NULL );CHECK
Позволяет установить дополнительную проверку данных для столбца или набора столбцов. Это тоже CONSTRAINT, так как накладывает ограничение.
На примере ограничим дату рождения сотрудника.Синтаксис позволяет устанавливать CHECK как в описании столбца при CREATE TABLE:
birthday DATE NOT NULL CHECK (birthday > ‘1900-01-01’),так отдельно от описания столбцов:
CHECK (birthday > ‘1900-01-01’),В этих случаях название проверки будет определено автоматически. При вставке данных, не прошедших проверку, будет сообщение об ошибке Check constraint ‘staff_chk_1’ is violated. Ситуация усложняется, когда установлено несколько CHECK, поэтому рекомендуется давать понятное имя.
Воспользуемся полной командой для создания CHECK и определим не только ограничение даты рождения, но и допустимые форматы телефона через регулярное выражение.
CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position VARCHAR(30), birthday DATE NOT NULL, has_child BOOLEAN DEFAULT(0) NOT NULL, phone VARCHAR(20) UNIQUE NOT NULL, CONSTRAINT staff_chk_birthday CHECK (birthday > '1900-01-01'), CONSTRAINT staff_chk_phone CHECK (phone REGEXP '[+]?[0-9] ?\\(?[0-9]\\)? ?[0-9][0-9 -]+[0-9]') );Для добавления ограничений используем оператор CONSTRAINT, при этом, все названия уникальны, как и имена таблиц. Учитывая, что по умолчанию названия включают в себя и имя таблицы, рекомендуем придерживаться этого правила. Если используется CONSTRAINT, мы обязаны дать имя ограничению, которое вводим.
FOREIGN KEY или внешний ключ
Внешний ключ — это ссылка на столбец или группу столбцов другой таблицы. Это тоже ограничение (CONSTRAINT), так как мы сможем использовать только значения, для которых есть соответствие по внешнему ключу. Таблицу с внешним ключом называют зависимой.
FOREIGN KEY (column_name1, column_name2) REFERENCES external_table_name(external_column_name1, external_column_name2)Сначала указывается выражение FOREIGN KEY и набор столбцов таблицы, откуда строим FOREIGN KEY. Затем ключевое слово REFERENCES указывает на имя внешней таблицы и набор столбцов этой внешней таблицы. В конце можно добавить операторы ON DELETE и ON UPDATE, с помощью которых настраивается поведение при удалении или обновлении данных в главной таблице. Это делать не обязательно, так как предусмотрено поведение по умолчанию. Поведение по умолчанию запрещает удалять или изменять записи из внешней таблицы, если на эти записи есть ссылки по внешнему ключу.
Возможные опции для ON DELETE и ON UPDATE:
CASCADE: автоматическое удаление/изменение строк зависимой таблицы при удалении/изменении связанных строк главной таблицы.
SET NULL: при удалении/изменении связанных строк главной таблицы будет установлено значение NULL в строках зависимой таблицы. Столбец зависимой таблицы должен поддерживать установку NULL, т.е. параметр NOT NULL в этом случае устанавливать нельзя.
RESTRICT: не даёт удалить/изменить строку главной таблицы при наличии связанных строк в зависимой таблице. Если не указана иная опция, по умолчанию будет использовано NO ACTION, что, по сути, то же самое, что и RESTRICT.Рассмотрим пример:
Для таблицы Staff было определено текстовое поле position для хранения должности.
Так как список сотрудников в компании обычно больше, чем список занимаемых должностей, есть смысл создать справочник должностей.CREATE TABLE Positions ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL );Поскольку из Staff мы будем ссылаться на Positions, таблица персонала Staff будет зависимой от Positions. Изменим синтаксис CREATE TABLE для таблицы Staff, чтобы должность была ссылкой на запись в таблице Positions.
CREATE TABLE Staff ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, position_id int, birthday DATE NOT NULL, has_child BOOLEAN DEFAULT(0) NOT NULL, phone VARCHAR(20) UNIQUE NOT NULL, FOREIGN KEY (position_id) REFERENCES Positions (id) );При CREATE TABLE, чтобы не усложнять описание столбца, рекомендуется указывать внешний ключ и все его атрибуты после перечисления создаваемых столбцов.
Можно ли добавить внешний ключ, если таблица уже создана и в ней есть данные? Можно! Для внесения изменений в таблицу используем ALTER TABLE.ALTER TABLE Staff ADD FOREIGN KEY (position_id) REFERENCES Positions(id);Или в развернутой форме, определяя имя ключа fk_position_id явным образом:
ALTER TABLE Staff ADD CONSTRAINT fk_position_id FOREIGN KEY (position_id) REFERENCES Positions(id);Главное условие в этом случае — согласованность данных. Это значит, что для всех записей внешнего ключа position_id должно найтись соответствие в целевой таблице Positions по столбцу id.
Создание таблиц на основе уже существующих, временные таблицы
Мы рассмотрели создание таблицы с «чистого листа», но есть два других способа:
LIKE
Создание таблицы на основе уже существующей таблицы. Копирует структуру — количество, названия и типы столбцов, индексы, все ограничения, кроме внешних ключей. Как мы помним, внешний ключ создает индекс. При создании через LIKE индексы в новой таблице будут построены также, как и в старой, но внешние ключи не скопируются. Таблица будет создана без записей и без счетчиков AUTO_INCREMENT.
CREATE TABLE new_table LIKE source_table;SELECT
Можно создать таблицу на основе SELECT-запроса — результат этой выборки будет записан в новую таблицу. Такая таблица не будет иметь индексов, ограничений и ключей. Все столбцы, с учетом порядка, типов данных и названий, будут взяты из запроса — поля из SELECT станут столбцами новой таблицы. При этом можно переопределить изначальные названия полей, что особенно актуально, когда в выборку попадают столбцы с одинаковыми названиями (на уровне таблицы названия столбцов всегда уникальны).
CREATE TABLE new_table [AS] SELECT * FROM source_table;Разберем пример создания новой таблицы через SELECT, используя две таблицы в выборке — Staff и Positions. В запросе определим три поля: id, staff, position — это будут столбцы новой таблицы StaffData211015 (срез сотрудников на определённую дату). Без присвоения псевдонимов (name as staff, name as position) в выборке получилось бы два одинаковых поля name, что не позволило бы создать таблицу из-за duplicate column name ошибки.
CREATE TABLE StaffData211015 SELECT s.Id, s.name as staff, p.name as position FROM Staff s JOIN Positions p ON s.position_id = p.idTEMPORARY
При подготовке отчетов или обработке данных на стороне базы, нередко может потребоваться сохранять промежуточные результаты в отдельные таблицы.
После завершения всех вычислений внутри скрипта эти вспомогательные таблицы нам будут уже не нужны. В таких ситуациях удобно использовать временные таблицы, которые будут существовать до завершения работы скрипта.Чтобы обозначить таблицу как временную, нужно добавить TEMPORARY в CREATE TABLE:
CREATE TEMPORARY TABLE table_name;Работа с уже созданной таблицей
Когда таблица создана, работа с ней только начинается. Операторы и команды для работы с данными рассмотрены в другой статье, а сейчас посмотрим, что же можно исправить, если потребовалось внести изменения.
Переименование
Ключевая команда — RENAME.
- Изменить имя таблицы:
RENAME TABLE old_table_name TO new_table_name;- Изменить название столбца:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;Удаление данных
- DELETE FROM Staff; — удалит все записи из таблицы. Условие в WHERE позволит удалить только определенные строки, в примере ниже удалим только одну строку с DELETE FROM Staff WHERE TABLE Staff; — используется для полной очистки всей таблицы. При TRUNCATE счетчики AUTO_INCREMENT сбросятся. Если бы мы удалили все в строки командой DELETE, то новые строки учитывали бы накопленный за время жизни таблицы AUTO_INCREMENT.
- DROP TABLE Staff; — команда удаления таблицы.
Изменение структуры таблицы
Команда ALTER TABLE включает в себя множество опций, рассмотрим основные вместе с примерами на таблице Staff.
Добавление столбцов
Добавим три столбца: электронную почту, возраст и наличие автомобиля. Так как в таблице уже есть записи, мы не можем пока что отметить эти поля как NOT NULL, по умолчанию они будут позволять хранить NULL.
ALTER TABLE Staff ADD email VARCHAR(50), ADD age INT, ADD has_auto BOOLEAN;Удаление столбцов
Удалим столбец с возрастом, так как сейчас возраст сотрудников в базе всегда статичен, а должен быть вычисляемым полем в зависимости от текущей даты.
ALTER TABLE Staff DROP COLUMN age;Значение по умолчанию
Выставим значение по умолчанию для столбца has_auto:
ALTER TABLE Staff ALTER COLUMN has_auto SET DEFAULT(FALSE);Изменение типа данных столбца
Для столбца name изменим тип данных:
ALTER TABLE Staff MODIFY COLUMN name VARCHAR(500) NOT NULL;Максимальная длина поля была увеличена. Если не указать NOT NULL явно, то поле станет NULL по умолчанию.
Установка CHECK
Добавим ограничение формата для email через регулярное выражение:
ALTER TABLE Staff ADD CONSTRAINT staff_chk_email CHECK (email REGEXP '^[^@]+@[^@]+\\.[^@]$');Заключение
Любой путь начинается с первых шагов. В работе с базами данных этими шагами является создание структуры таблиц. Продуманная композиция сущностей (таблиц) и связей между ними — основа проектирования любого вашего приложения от интернет-магазинов до мощных систем управления предприятиями.