Синтаксис. CREATE TABLE table_nameCREATE TABLE table_name (field1 datatype, field2 datatype, … fieldN datatype) Например, при помощи процедуры Test_CreateT листинга 22.6 можно создать базу данных NEW_BASE и в этой базе — две таблицы: T1 и T2. Здесь для создания первой таблицы используется метод Execute для ADODB.Connection -объекта в строках 13–17 с SQL-инструкцией CREATE TABLE T1 (f11 VARCHAR(12) NOT NULL, f12 MONEY, f13 MONEY, f14 FLOAT) а для второй (в строках 19–23) — с SQL-инструкцией CREATE TABLE T2 (f21 VARCHAR(10) PRIMARY KEY, f22 MONEY, f23 VARCHAR(10), f24 FLOAT) Кроме определения типов данных, для первой таблицы указано, что поле f11 не может быть пустым, т.е. при создании записи в это поле обязательно следует поместить некоторое значение. Поле f21 таблицы T2 определено как ключевое. Для ознакомления с полным синтаксисом инструкции CREATE TABLE используйте справочную систему SQL-Server. Листинг 22.6 Создание базы данных и таблиц из VB-кода 1: Sub Test_CreateT() 2: ' тестирует ADODB_ConnectedSQL: устанавливает соединение и 3: ' создает новую базу данных с таблицами 4: 5: If ADODB_ConnectedSQL() Then 6: MsgBox "Похоже, соединение установлено..." 7: ' код, использующий установленное соединение: 8: 9: cn.Execute "USE master" 10: cn.Execute "CREATE DATABASE NEW_BASE" 11: 12: cn.Execute "USE NEW_BASE" 13: cn.Execute "CREATE TABLE T1 " & _ 14: "(f11 VARCHAR(12) NOT NULL, " & _ 15: " f12 MONEY, " & _ 16: " f13 MONEY, " & _ 17: " f14 FLOAT) " 18: 19: cn.Execute "CREATE TABLE T2 " & _ 20: "(f21 VARCHAR(10) PRIMARY KEY, " & _ 21: " f22 MONEY, " & _ 22: " f23 VARCHAR(10), " & _ 23: " f24 FLOAT) " 24: 25: cn.Close ' закрыть соединение 26: 27: Else 28: MsgBox "Что-то не получается подключиться к базе данных!" 29: End If 30: 31: End Sub Однажды созданную таблицу можно модифицировать. Именно с учетом этого можно при создании таблицы использовать самый простой синтаксис, а затем модифицировать таблицу для получения необходимых свойств. По крайней мере, многие системы с автоматической генерацией SQL-инструкций для построения баз данных, создают таблицы именно в такой последовательности. Для модификации существующей таблицы предназначена инструкция ALTER TABLE, которая может выполнять так много преобразований с таблицей, что имеет довольно сложный синтаксис. Используйте для работы с этой инструкцией справочную систему по T-SQL. Простой пример применения инструкции ALTER TABLE приведен в листинге 22.7. В коде процедуры Test_CreateT2 для базы Фирма2 (создаваемой в строке 10), создаются три таблицы (Подразделения, Товары и Запасы). В строках 19–20 записана инструкция для модификации таблицы Подразделения — создание первичного ключа КодПодразделения; в строках 25–26 записана инструкция для модификации таблицы Товары — создание первичного ключа КодТовара. В строках 31–36 записаны две инструкции, которые добавляют в таблицу Запасы два внешних ключа, связывая таким образом эту таблицу с двумя другими. Листинг 22.7 Создание базы данных и таблиц со связями из VB-кода 1: Sub Test_CreateT2() 2: ' тестирует ADODB_ConnectedSQL: устанавливает соединение и 3: ' создает новую базу данных с таблицами связями 4: 5: If ADODB_ConnectedSQL() Then 6: MsgBox "Похоже, соединение установлено..." 7: ' код, использующий установленное соединение: 8: 9: cn.Execute "USE master" 10: cn.Execute "CREATE DATABASE Фирма2" 11: 12: cn.Execute "USE Фирма2" 13: cn.Execute _ 14: "CREATE TABLE Подразделения (" & _ 15: "КодПодразделения varchar(4) NOT NULL," & _ 16: "НаимПодразделения varchar(50) NOT NULL," & _ 17: "Адрес varchar(60) NULL," & _ 18: "Телефон varchar(10) NULL)" & _ 19: "ALTER TABLE Подразделения " & _ 20: " ADD PRIMARY KEY NONCLUSTERED (КодПодразделения) " & _ 21: "CREATE TABLE Товары (" & _ 22: "КодТовара varchar(12) NOT NULL," & _ 23: "НаимТовара varchar(50)," & _ 24: "Цена MONEY)" & _ 25: "ALTER TABLE Товары " & _ 26: " ADD PRIMARY KEY NONCLUSTERED (КодТовара) " & _ 27: "CREATE TABLE Запасы (" & _ 28: "КодПодразделения varchar(4) NOT NULL," & _ 29: "КодТовара varchar(12) NOT NULL," & _ 30: "Количество int NULL)" & _ 31: "ALTER TABLE Запасы " & _ 32: " ADD FOREIGN KEY (КодТовара)" & _ 33: " REFERENCES Товары " & _ 34: "ALTER TABLE Запасы " & _ 35: " ADD FOREIGN KEY (КодПодразделения)" & _ 36: " REFERENCES Подразделения " 37: 38: cn.Close ' закрыть соединение 39: 40: Else 41: MsgBox "Что-то не получается подключиться к базе данных!" 42: End If 43: 44: End Sub Если выполнить этот код (из системы программирования Visual Basic или любого VBA-приложения), а затем вывести на Diagram Pane (в окне Enterprise Manager) все созданные таблицы, то результат — таблицы и связи между ними — будет настолько хорош (рис. 22.12), что, вероятно, вам понравится именно такой способ (имеющий «твердую» копию процесса) создания таблиц базы данных. Рис. 22.12 Результат выполнения кода листинга 22.7
|