Перейти к содержимому

Как создать таблицу в access с помощью sql

  • автор:

SQL-Урок 14. Создание таблиц (CREATE TABLE)

Язык SQL используется не только для обработки информации, но и предназначен для выполнения всех операций с базами данных и таблицами, включая создание таблиц и работу с ними.

Существует два способа создания таблиц, используя:

Следует отметить, что, когда вы используете интерактивный инструментарий СУБД, на самом деле вся работа выполняется операторами SQL, то есть интерфейс сам создает эти команды незаметно для пользователя (это подобно записи макроса в Excel, когда макрорекодер записывает ваши действия и превращает их в команды VBA).

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

Для создания таблиц программным способом используют оператор CREATETABLE. Для этого нужно указать следующие данные:

Давайте создадим новую таблицу и назовем ее Customers:

CREATE TABLE Customers ( ID CHAR(10) NOT NULL Primary key, Custom_name CHAR(25) NOT NULL, Custom_address CHAR(25) NULL, Custom_city CHAR(25) NULL, Custom_Country CHAR(25) NULL, ArcDate CHAR(25) NOT NULL, DEFAULT NOWO) 

Да, мы сначала указываем название новой таблицы, затем в скобках перечисляем столбцы, которые будем создавать, причем их названия не могут повторяться в пределах одной таблицы. После названий столбцов указывается тип данных для каждого поля (CHAR(10)), затем указываем может поле содержать пустые значения (NULL или NOT NULL), а также нужно указать поле, которое будет первичным ключом (Primary keytbl.

Язык SQL также позволяет определять для каждого поля значение по умолчанию, то есть если пользователь не укажет значение для определенного поля — оно будет автоматически проставлено СУБД. Значение по умолчанию определяется ключевым словом DEFAULT при определении столбцов оператором CREATE TABLE.

2. Обновление таблиц

Для того чтобы изменить таблицу в SQL используется оператор ALTER TABLE. При использовании данного оператора следует ввести следующую информацию:

Например, давайте добавим новую колонку в таблицу Sellers, в которой будем указывать телефон реализатора:

ALTER TABLE Sellers ADD Phone CHAR (20) 

Помимо добавления столбцов мы также можем их удалять. Давайте теперь удалим поле Phone. Для этого пропишем следующий запрос:

ALTER TABLE Sellers DROP COLUMN Phone 

3. Удаление таблиц

Удаление таблиц осуществляется с помощью оператора DROP TABLE. Чтобы удалить таблицу Sellers_new, мы можем прописать следующий запрос:

DROP TABLE Sellers_new 

Во многих СУБД применяются правила, предотвращающие удаление таблиц, которые уже связаны с другими таблицами. Если эти правила действуют и вы удаляете такую ​​таблицу, то СУБД блокирует операцию удаления до тех пор пока не будет удалена связь. Такие меры предотвращают случайное удаление нужных таблиц.

  • Изменение регистра букв в тексте
  • Сумма прописью на украинском языке
  • Поиск латиницы в кириллице и наоборот
  • Транслитерация с украинского на английский

Создание и удаление таблиц и индексов с помощью Access SQL

Таблицы являются основными стандартными блоками реляционной базы данных. Таблица содержит строки (или записи) данных, и каждая строка организована в конечное число столбцов (или полей). Чтобы создать новую таблицу в Access с помощью Access SQL, необходимо присвоить таблице имя, имя поля и определить тип данных, которые будут содержаться в этих полях. Используйте инструкцию CREATE TABLE для определения таблицы в SQL. Предположим, что вы создаете базу данных счетов. Первым шагом является создание начальной таблицы клиентов.

CREATE TABLE tblCustomers (CustomerID INTEGER, [Last Name] TEXT(50), [First Name] TEXT(50), Phone TEXT(10), Email TEXT(50)) 

При создании и удалении таблиц следует учитывать следующие проблемы:

  • Если имя поля содержит пробел или какой-либо другой неальфанумерный символ, необходимо заключить это имя поля в квадратные скобки ([ ]).
  • Если не объявить длину для текстовых полей, по умолчанию они будут 255 символов. Для обеспечения согласованности и удобочитаемости кода всегда следует определять длину полей.

Поле можно объявить как NOT NULL, что означает, что значения NULL не могут быть вставлены в это конкретное поле; значение всегда является обязательным. Значение NULL не следует путать с пустой строкой или значением 0; это просто представление базы данных неизвестного значения.

CREATE TABLE tblCustomers (CustomerID INTEGER NOT NULL, [Last Name] TEXT(50) NOT NULL, [First Name] TEXT(50) NOT NULL, Phone TEXT(10), Email TEXT(50)) 

Чтобы удалить таблицу из базы данных, используйте инструкцию DROP TABLE .

DROP TABLE tblCustomers 

Создание и удаление индексов

Индекс — это внешняя структура данных, используемая для сортировки или размещения указателей на данные в таблице. При применении индекса к таблице вы указываете определенное расположение данных, чтобы к ним можно было быстрее обращаться. Однако если к таблице применяется слишком много индексов, производительность может снизиться из-за дополнительных накладных расходов, связанных с обслуживанием индекса, а также из-за того, что индекс может вызвать проблемы с блокировкой при использовании в многопользовательской среде. Индекс, используемый в правильном контексте, может значительно повысить производительность приложения.

Чтобы создать индекс в таблице, необходимо присвоить имя индексу, присвоить таблице имя для построения индекса, присвоить имя используемому полю или полям в таблице, а также присвоить имя параметрам, которые вы хотите использовать. Для создания индекса используется инструкция CREATE INDEX . Например, можно создать индекс на основе таблицы customers в базе данных выставления счетов, упомянутой ранее, с помощью следующего кода:

CREATE INDEX idxCustomerID ON tblCustomers (CustomerID) 

Индексированные поля можно сортировать одним из двух способов: по возрастанию (ASC) или по убыванию (DESC). Порядок по умолчанию возрастает, и его не требуется объявлять. Если используется порядок по возрастанию, данные будут отсортированы от 1 до 100. Если указать порядок убывания, данные будут отсортированы от 100 до 1. Необходимо объявить порядок сортировки с каждым полем в индексе.

CREATE INDEX idxCustomerID ON tblCustomers (CustomerID DESC) 

Существует четыре основных параметра, которые можно использовать с индексом: PRIMARY, DISALLOW NULL, IGNORE NULL и UNIQUE. Параметр PRIMARY определяет индекс в качестве первичного ключа для таблицы. Для каждой таблицы может быть только один индекс первичного ключа, хотя индекс первичного ключа можно объявить с несколькими полями. Используйте ключевое слово WITH для объявления параметров индекса.

CREATE INDEX idxCustomerID ON tblCustomers (CustomerID) WITH PRIMARY 

Чтобы создать индекс первичного ключа для нескольких полей, добавьте все имена полей в список полей.

CREATE INDEX idxCustomerName ON tblCustomers ([Last Name], [First Name]) WITH PRIMARY 

Параметр DISALLOW NULL предотвращает вставку данных NULL в поле. (Это похоже на объявление NOT NULL , используемое в инструкции CREATE TABLE .)

CREATE INDEX idxCustomerEmail ON tblCustomers (Email) WITH DISALLOW NULL 

Параметр IGNORE NULL приводит к тому, что данные NULL в таблице игнорируются для индекса. Это означает, что любая запись, которая имеет значение NULL в объявленном поле, не будет использоваться (или подсчитываться) в индексе.

CREATE INDEX idxCustomerLastName ON tblCustomers ([Last Name]) WITH IGNORE NULL 

Помимо параметров PRIMARY, DISALLOW NULL и IGNORE NULL , можно также объявить индекс как UNIQUE. Это означает, что в индексированные поля можно вставить только уникальные неповторяющиеся значения.

CREATE UNIQUE INDEX idxCustomerPhone ON tblCustomers (Phone) 

Чтобы удалить индекс из таблицы, используйте инструкцию DROP INDEX .

DROP INDEX idxName ON tblCustomers 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Обратная связь

Были ли сведения на этой странице полезными?

Обратная связь

Отправить и просмотреть отзыв по

Создание и изменение таблиц или индексов с помощью запроса определения данных

Вы можете создавать и изменять таблицы, ограничения, индексы и связи в Access, написав запросы определения данных SQL представлении. В этой статье объясняется, как использовать запросы определения данных для создания таблиц, ограничений, индексов и связей. Эта статья также поможет вам решить, когда использовать запрос на определение данных.

В этой статье

  • Обзор
  • Создание и изменение таблицы
  • Создание индекса
  • Создание ограничения или связи

Обзор

В отличие от других запросов Access, запрос определения данных не извлекает данные. Вместо этого запрос определения данных использует язык определения данных для создания, изменения или удаления объектов базы данных.

Примечание: Язык определения данных (DDL) является частью язык SQL (SQL).

Запросы определения данных могут быть очень удобными. Вы можете регулярно удалять и повторно создавать части схемы базы данных, просто выполнав некоторые запросы. Запрос на определение данных следует использовать, если вы знакомы с SQL и планируете удалить и повторно создать определенные таблицы, ограничения, индексы или связи.

Предупреждение: Использование запросов определения данных для изменения объектов базы данных может быть рискованным, поскольку действия не сопровождаются диалогами подтверждения. Если вы допустили ошибку, вы можете потерять данные или непреднамеренно изменить оформление таблицы. Будьте осторожны при использовании запроса определения данных для изменения объектов в базе данных. Если вы не несете ответственности за обслуживание используемой базы данных, перед запуском запроса на определение данных обратитесь к ее администратору.

Важно: Перед выполнением запроса на определение данных сделайте резервную копию всех таблиц.

Ключевые слова DDL

Ключевое слово

Использование групп

Создайте индекс или таблицу, которые еще не существуют.

Измените существующую таблицу или столбец.

Удалите существующую таблицу, столбец или ограничение.

Добавьте столбец или ограничение в таблицу.

Использование с add, ALTER или DROP

Использование с add, ALTER или DROP

Использование с помощью create

Использование с alter, CREATE или DROP

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

Для создания таблицы используется команда CREATE TABLE. Команда CREATE TABLE имеет следующий синтаксис:

CREATE TABLE table_name
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, . ][, CONSTRAINT constraint1 [, . ]])

Для команды CREATE TABLE требуются только команды CREATE TABLE и имя таблицы, но обычно требуется определить некоторые поля или другие аспекты таблицы. Рассмотрим этот простой пример.

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

Примечание: Для выполнения запроса определения данных может потребоваться сначала включить содержимое базы данных:

  • Нажмите на панели сообщений кнопку Включить содержимое.

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

  1. На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».
  2. На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных». Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.
  3. Введите следующую SQL: CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)
  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Изменение таблицы

Для изменения таблицы используется команда ALTER TABLE. Для добавления, изменения или удаления столбцов или ограничений можно использовать команду ALTER TABLE. Команда ALTER TABLE имеет следующий синтаксис:

ALTER TABLE table_name predicate

где предика может быть любым из следующих:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Предположим, что вы хотите добавить 10-знаковое текстовое поле для хранения сведений о состоянии каждого автомобиля. Здесь доступны перечисленные ниже возможности

  1. На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».
  2. На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных». Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.
  3. Введите следующую SQL: ALTER TABLE Cars ADD COLUMN Condition TEXT(10)
  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Создание индекса

Чтобы создать индекс в существующей таблице, используйте команду CREATE INDEX. Команда CREATE INDEX имеет следующий синтаксис:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], . ])
[WITH ]

Требуются только команды CREATE INDEX, имя индекса, аргумент ON, имя таблицы с полями, которые требуется индексировать, и список полей, которые нужно включить в индекс.

  • Аргумент DESC вызывает упорядочение индекса по убытию (это может быть полезно при частом запуске запросов, которые искать верхние значения для индекса поля или сортировки индекса в порядке убыния). По умолчанию индекс создается в порядке возрастания.
  • Аргумент WITH PRIMARY устанавливает индексные поля или поля в первичный ключ таблицы.
  • Аргумент WITH DISALLOW NULL требует, чтобы индекс требовал в введенное значение для индексного поля, то есть не допускается использовать значения NULL.

Предположим, что у вас есть таблица «Автомобили» с полями, в которым хранятся имя, год, цена и условия использования автомобилей, которые вы хотите приобрести. Предположим также, что таблица стала большой и вы часто включаете в запросы поле «Год». Чтобы запросы быстро возвращали результаты, можно создать индекс для поля Year, вы используя следующую процедуру:

  1. На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».
  2. На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных». Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.
  3. Введите следующую SQL: CREATE INDEX YearIndex ON Cars (Year)
  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Создание ограничения или связи

Ограничение — это логическое условие, которое должно соответствовать полю или сочетанию полей при вставке значений. Например, ограничение UNIQUE не позволяет полю с ограниченными ограничениями принять значение, которое будет дублироваться существующее значение в поле.

Связь — это тип ограничения, которое ссылается на значения поля или сочетания полей в другой таблице, чтобы определить, можно ли вставить значение в поле с ограничениями или сочетание полей. Специальное ключевое слово не указывает на то, что ограничение является связью.

Чтобы создать ограничение, используйте предложение CONSTRAINT в команде CREATE TABLE или ALTER TABLE. Существует два типа предложений CONSTRAINT: одно — для создания ограничения на одно поле, а другое — для ограничения нескольких полей.

Ограничения по одному полю

Предложение CONSTRAINT по одному полю должно следовать за определением поля, которое его ограничивает, и имеет следующий синтаксис:

CONSTRAINT constraint_name REFERENCES foreign_table [(foreign_field)]
[ON UPDATE ]
[ON DELETE ]>

Предположим, что у вас есть таблица «Автомобили» с полями, в которым хранятся имя, год, цена и условия использования автомобилей, которые вы хотите приобрести. Кроме того, предположим, что вы часто забудете ввести значение для условия автомобиля и всегда хотите записать эти сведения. Вы можете создать ограничение для поля «Условие», чтобы не оставить его пустым, вы можете сделать следующее:

  1. На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».
  2. На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных». Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.
  3. Введите следующую SQL: ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL
  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Предположим, что через некоторое время в поле «Условие» есть много похожих значений, которые должны быть одинаковыми. Например, у одних автомобилей плохое значение, а у других — плохое.

Примечание: Если вы хотите следовать остальным процедурам, добавьте поддельные данные в таблицу «Автомобили», созданную на предыдущих шагах.

После очистки значений, чтобы они были согласованы, можно создать таблицу с именем CarCondition с одним полем с именем Condition, которое содержит все значения, которые вы хотите использовать для условия автомобиля:

Примечание: На SQL этого шага есть запрос на добавление. В отличие от запроса на определение данных, запрос на приложение заканчивается за заданной осью 1.

Создание связи с помощью ограничения

Чтобы требовать, чтобы любое новое значение, вставленное в поле «Условие» таблицы «Автомобили», совпадала со значением поля Condition в таблице CarCondition, вы можете создать связь между carCondition и Cars в поле «Условие», используя следующую процедуру:

  1. На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».
  2. На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных». Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.
  3. Введите следующую SQL: ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)
  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Ограничения на несколько полей

Предложение CONSTRAINT с несколькими полями может использоваться только за пределами предложения определения поля и имеет следующий синтаксис:

CONSTRAINT constraint_name
UNIQUE (unique1[, unique2[, . ]]) |
NOT NULL (notnull1[, notnull2[, . ]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, . ]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, . ]])] |
[ON UPDATE ]
[ON DELETE ]>

Рассмотрим еще один пример, в который используется таблица «Автомобили». Предположим, что две записи в таблице «Автомобили» не имеют одного и того же набора значений для значений «Имя», «Год», «Условие» и «Цена». Чтобы создать ограничение UNIQUE, применяемое к этим полям, с помощью следующей процедуры:

  1. На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».
  2. На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных». Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.
  3. Введите следующую SQL: ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (имя, год, условие, цена)
  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Как создать таблицу в access с помощью sql

При создании таблицы-справочника его данные будут взяты из таблицы. Процесс создания такого справочника состоит из нескольких этапов:

  1. Импортировать таблицу с данными в Zulu.
  2. Добавить импортированную таблицу в редактор базы данных.
  3. Создать и настроить таблицу-справочник.

1 этап — импорт таблицы с данными в ZuluGIS

Имеется возможность импортировать таблицы из текстовых файлов (.txt, .csv), книг Excel, баз данных SQLite, Microsoft Access, Microsoft SQL Server. Также таблицы можно импортировать из других описателей баз данных ZuluGIS.

Таблицу удобней импортировать через редактор базы данных. Подробно о импорте таблиц каждого формата можно узнать в разделе «Импорт таблицы».

2 этап — добавление импортированной таблицы в редактор базы данных

  1. В редакторе баз данных нажать кнопку Таблицы .
  2. Сделать щелчок правой кнопкой мыши в зоне расположения таблиц. В появившемся контекстном меню выбрать пункт Добавить , выбрать импортированную на предыдущем этапе таблицу и нажать кнопку Открыть .

3 этап — создание и настройка таблицы-справочника

  1. В редакторе баз данных нажать кнопку Справочники .
  2. Нажать кнопку Создать. .
  3. В диалоговом окне Новый справочник щелчком левой кнопки мыши указать тип справочника — Таблица-справочник , нажать кнопку ОК .
  4. В появившемся окне выбора таблиц указать таблицу, значения которой будут браться для справочника, нажать кнопку Выбрать .
  5. В окне настройки справочника необходимо указать поле связи. Для этого надо нажать кнопку Выбор. , и в открывшемся списке полей таблицы выбрать поле по которому будет осуществлена связь между таблицами, нажать кнопку ОК . Если списка полей не видно, то надо щелкнуть левой кнопкой мыши по «+» рядом с названием таблицы.
  6. Если в импортированной таблице поля задавались латинскими буквами, то лучше задать пользовательские поля полей запроса, их можно задать в столбце Название .
  7. В том случае, когда в таблице больше двух столбцов, то из списка поле-заголовок необходимо выбрать столбец, из которого будут браться данные. Если поле не выбрано, то по умолчанию данные будут взяты из первого по порядку столбца импортируемой таблицы.

Окно Справочник

Рисунок 543. Окно Справочник

  • При желании можно задать дополнительные свойства справочника, их можно открыть с помощью кнопки Параметры. . В стоке Название задается название справочника, в стоке Описание возможно описать опишите содержимое справочника. Для сохранения введенных данных надо нажать кнопку ОК .
  • Для завершения процедуры создания справочника надо нажать кнопку Сохранить . Если ранее в свойствах не было задано название справочника, то система потребует его ввести. Кнопка Закрыть закроет окно создания справочника.
  • Создание таблицы-справочника по умолчанию производится в упрощенном режиме. Для перехода в экспертный режим надо в окне Справочник в области строк сделать щелчок правой кнопкой мыши и выбрать пункт Экспертный режим . Возврат в упрощенный режим осуществляется аналогичным образом. Экспертный режим рассчитан на более опытных пользователей, именно в нем происходит создание справочника через запрос.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *