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

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

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

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

Следует помнить о следующих проблемах при создании и удалении таблиц:

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

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

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

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

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

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

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

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

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

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

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

Помимо параметров PRIMARY, DISALLOW NULL и IGNORE NULL можно также объявить индекс УНИКАЛЬНЫМ, что означает, что в индексное поле могут быть вставлены только уникальные, не повторяющие значения.

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

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

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

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

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

В этой статье

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».

На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных».

Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.

Введите следующую SQL:

CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

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

Для изменения таблицы используется команда 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-знаковое текстовое поле для хранения сведений о состоянии каждого автомобиля. Здесь доступны перечисленные ниже возможности

На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».

На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных».

Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.

Введите следующую SQL:

ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

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

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

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

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

Аргумент WITH PRIMARY устанавливает индексные поля или поля в первичный ключ таблицы.

Аргумент WITH DISALLOW NULL требует, чтобы индекс требовал в введенное значение для индексного поля, то есть не допускается использовать значения NULL.

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

На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».

На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных».

Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.

Введите следующую SQL:

CREATE INDEX YearIndex ON Cars (Year)

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

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

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

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

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

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

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

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

На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».

На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных».

Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.

Введите следующую SQL:

ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

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

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

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

На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».

На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных».

Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.

Введите следующую SQL:

CREATE TABLE CarCondition (Condition TEXT(10))

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Создайте первичный ключ для таблицы с помощью выписки ALTER TABLE:

ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

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

INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;

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

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

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

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

На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».

На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных».

Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.

Введите следующую SQL:

ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

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

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

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

На вкладке «Создание» в группе «Макрос &» нажмите кнопку «Конструктор запросов».

На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Определение данных».

Сетка конструктора скрыта, SQL в представлении отображается вкладка объекта.

Введите следующую SQL:

ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (имя, год, условие, цена)

На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Информатика. 10 класс (Повышенный уровень)

Мастер запросов и Конструктор — всего лишь визуальные инструменты для создания запросов. Любой запрос, созданный в Access с помощью визуальных инструментов, можно просмотреть в режиме SQL (пример 24.1). В этом режиме запрос отображается как запись на языке SQL (англ. Structured Query Language — структурированный язык запросов).

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

Некоторые возможности языка SQL:

1. Создание, изменение и удаление таблиц БД.
2. Выборка информации из БД.
3. Добавление записей в таблицу БД.
4. Редактирование и удаление записей в таблице БД.

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

Достоинства языка SQL:

1. Декларативность — указывает, какие операции нужно выполнить. Способ их реализации выбирается автоматич ески.
2. Наличие международных стандартов.
3. Независимость от конкретной СУБД.

Недостатки языка SQL:

1. Стандарт языка сложен и объемен.
2. Возможность отступления от стандарта (многие компании вносят свои изменения в язык).

Синтаксис SQL близок к естественному английскому языку. Команды SQL выглядят как обычные предложения английского языка и просты в понимании.

Команда SQL состоит из операторов (ключевых слов) и идентификаторов (пример 24.2). Если в запросе несколько команд, то в конце команды ставится точка с запятой (;). В Access одновременно можно выполнить только одну команду SQL, поэтому точку с запятой можно не ставить. Согласно общепринятому стилю для записи ключевых слов рекомендуется использовать прописные буквы.

Если идентификатор содержит пробелы, то он заключается в квадратные скобки (пример 24.3).

В Access используется интерактивная версия языка SQL — Microsoft Jet SQL. Чтобы создать запрос SQL в Access (пример 24.4), необходимо:

1) перейти в меню Создание;

2) выбрать Конструктор запросов;

3) закрыть окно Добавление таблицы;

4) выбрать Режим SQL;

5) в открывшемся окне ввести текст запроса и при необходимости сохранить запрос;

6) выполнить запрос, нажав кнопку на Панели инструментов.

В Access реализованы следующие составные части языка SQL:

1. Язык определения данных (Data Definition Language — DDL). Используется для определения структуры базы данных.
2. Язык манипулирования данными (Data Manipulation Language — DML). Предоставляет возможность выборки информации из базы данных и ее преобразования.

Пример 24.1. Представление запроса на языке SQL.

Запрос в режиме Конструктор, который позволяет найти сеансы, стоимость билетов на которые не превышает 9 р. 50 к.:

Результат запроса (режим таблицы):

Язык SQL был предложен компанией IBM в начале 70-х гг. для проверки возможностей реляционной модели БД.

Разработчики языка запросов SQL:

Дональд Чэмбэрлин
(Donald D. Chamberlin)

Рэй Бойс
(Ray Boyce)

Первый международный стандарт языка SQL был принят в 1989 г.

В настоящее время действует стандарт, принятый в 2003 г. (SQL:2003), с некоторыми модификациями и дополнениями, внесенными позже (SQL:2008, SQL:2011, SQL:2016).

SQL является непроцедурным языком программирования. Команды SQL могут выполняться непосредственно в интерактивном режиме, а также встраиваются в базовый язык программирования, которым может быть любой стандартный язык, например C++.

Пример 24.2. В запросе SQL из примера 24.1:

SELECT — определяет поля, которые содержат запрашиваемые данные.

FROM — определяет таблицу, содержащую поля, указанные в SELECT.

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

Идентификаторы полей

Сеансы.Кинотеатр, Сеансы.Фильм, Сеансы.Время, Сеансы.Стоимость — содержат адрес (имя объекта БД) и название поля.

Пример 24.3. Синтаксис идентификаторов SQL.

SELECT Товары.[Номер склада], Товары.Наименование, Товары.Поставщик, Товары.Цена, Товары.Количество

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

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