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

Как создать таблицу в 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 

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

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

§ 24. Использование SQL для построения запросов

Мастер запросов и Конструктор — всего лишь визуальные инструменты для создания запросов. Любой запрос, созданный в 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 Товары.[Номер склада], Товары.Наименование, Товары.Поставщик, Товары.Цена, Товары.Количество

WHERE (((Товары.[Номер склада])=2))

Пример 24.4. Создание запроса SQL в Access.

Выбор режима SQL:

Окно для ввода запроса SQL:

24.2. Определение структуры базы данных

С помощью операторов DDL языка SQL определяется структура БД, т. е. создаются объекты базы данных (пример 24.5) и задаются их свойства.

Назначение команд DDL определяется первым словом в записи команды:

  • CREATE (создать) — создает объект базы данных (таблицу, представление и др.);
  • ALTER (изменить) — изменяет объект;
  • DROP (удалить) — удаляет объект.

Синтаксис команды DDL:

Синтаксис команды на создание таблицы базы данных:

Основные типы данных, используемые в DDL, в сравнении с типами данных в Access:

Тип

Тип данных в Access

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

Вы можете создавать и изменять таблицы, ограничения, индексы и связи в 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. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Создание таблиц через SQL

Поделитесь пожалуйста материалами, примерами, как создать правильно SQL запрос в Access на создание таблиц, установку первичного ключа и внешнего ключа. В инете искала, полезного не смогла найти ничего

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

SQL-запрос на создание таблиц
В общем дело обстоит следующем образом: Нужно заполнить БД программы тестирования, что бы потом.

Создание таблиц SQL-запросом
Доброго времени суток! Пытаюсь питоном создать таблицу БД и записать в неё данные с помощью.

Сформировать SQL-запросы на создание таблиц, определив первичные ключи
Здравствуйте. Не получается сделать задание: База данных содержит две таблицы: «Начисления» и.

Програмный метод !импорта! таблиц через ODBC(SQL Server 2000)
Собственно, сабж. Может есть у кого-нить ссылочка али примерчик какой?

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

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