Чтение онлайн

на главную

Жанры

Обработка баз данных на Visual Basic®.NET

Прайс Кевин Т.

Шрифт:
НА ЗАМЕТКУ

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

Например, усовершенствовать таблицу tblRegion, созданную в предыдущем примере, можно добавлением уникального индекса к полю State, поскольку оно используется в объединении. Ниже представлена команда SQL, создающая эту таблицу с использованием предложения CONSTRAINT.

CREATE TABLE tblRegion (

 State char (2),

 Region varchar (50),

 CONSTRAINT StateIndex UNIQUE (State)

)

Этот

запрос создает таблицу с уникальным индексом по полю State, причем этот индекс имеет имя StateIndex.

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

CREATE TABLE tblRegionNew (

 State char Region varchar (50),

 CONSTRAINT StatePrimary PRIMARY KEY (State)

)

Назначение внешнего ключа

Для того чтобы назначить поле в качестве внешнего ключа, используйте ограничение FOREIGN KEY. Например, в структуре нашей базы данных существует отношение типа один-ко-многим между полем State таблицы tblRegion и соответствующим полем State таблицы tblCustomer. Команда SQL, используемая для создания таблицы tblCustomer, может выглядеть так, как показано ниже.

CREATE TABLE tblCustomer (

 ID int identity(1,1),

 FirstName varchar (20),

 LastName varchar (30),

 Address varchar (100),

 City varchar (75),

 State varchar (2),

 CONSTRAINT IDPrimary PRIMARY KEY (ID),

 CONSTRAINT StateForeign FOREIGN KEY (State)

 REFERENCES tblRegionNew (State)

)

Обратите внимание, что внешний ключ в команде CREATE TABLE не создает индекс по этому внешнему ключу. Он только служит для создания отношения между двумя таблицами.

Создание индексов с помощью команды CREATE INDEX

Помимо создания индексов в процессе формирования таблицы (с помощью предложения CONSTRAINT), можно также создавать индексы уже после того, как таблица сформирована (с помощью предложения CREATE INDEX). Это полезно в тех случаях, когда таблица уже существует (в то время как предложение CONSTRAINT применяется для формирования индексов только в момент создания таблицы).

Для создания индекса в существующей таблице используйте приведенную

ниже команду SQL.

CREATE INDEX StateIndex

ON tblCustomer (State)

Для того чтобы создать уникальный индекс, используйте ключевое слово UNIQUE, как показано ниже.

CREATE UNIQUE INDEX StateIndex

ON tblRegion (State)

Чтобы создать первичный индекс в существующей таблице, используйте приведенную ниже команду SQL.

CREATE UNIQUE NONCLUSTERED INDEX StateIndex ON tblRegion (

 State

) ON [PRIMARY]

Удаление таблиц и индексов с помощью предложения DROP

Удалять элементы базы данных можно с помощью предложения DROP. Например, чтобы удалить таблицу, используйте приведенную ниже команду SQL.

DROP TABLE tblRegion

С помощью предложения DROP можно также удалить индекс в таблице, как показано ниже.

DROP INDEX tblRegion.StateIndex

Обратите внимание, что для удаления первичного ключа нужно знать имя этого ключа.

У вас также есть возможность удалять отдельные поля таблиц. Для этого нужно использовать предложение DROP внутри предложения ALTER TABLE, как показано в следующем разделе. А для удаления базы данных применяется команда DROP DATABASE.

Модификация структуры таблицы с помощью предложения ALTER

С помощью предложения ALTER можно изменить определения полей в таблице. Например, чтобы добавить поле CustomerType в tblCustomer, используйте приведенную ниже команду SQL.

ALTER TABLE tblCustomer

ADD CustomerType int

Для того чтобы удалить поле из базы данных, используйте предложение DROP COLUMN вместе с предложением ALTER TABLE, как показано ниже.

ALTER TABLE tblCustomer

DROP COLUMN CustomerType

Кроме того, с помощью предложения ALTER TABLE можно добавить в таблицу ограничения. Например, для создания отношения между таблицами tblCustomer и tblOrder с помощью предложения ALTER TABLE используйте приведенную ниже команду SQL.

ALTER TABLE tblOrder

ADD CONSTRAINT OrderForeignKey

FOREIGN KEY (CustomerID)

REFERENCES tblCustomer (ID)

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

Резюме

Эта глава посвящена технологии создания запросов, которые могут использоваться в приложениях доступа к базам данных, созданных в среде Visual Basic .NET. Здесь рассматривались запросы, которые возвращают необходимые записи, а также запросы, которые создают и модифицируют структуру баз данных.

Поделиться:
Популярные книги

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Совок 2

Агарев Вадим
2. Совок
Фантастика:
альтернативная история
7.61
рейтинг книги
Совок 2

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Ты предал нашу семью

Рей Полина
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты предал нашу семью

Уязвимость

Рам Янка
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Уязвимость

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец

Попаданка для Дракона, или Жена любой ценой

Герр Ольга
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Попаданка для Дракона, или Жена любой ценой

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Не кровный Брат

Безрукова Елена
Любовные романы:
эро литература
6.83
рейтинг книги
Не кровный Брат

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III