- •6 Работа в системе microsoft sql server
- •6.1 Общая характеристикаMssqlServer
- •6.2 Язык запросовTransact-sql
- •6.3 Системные базы данных и таблицы
- •6.4 Создание баз данных
- •6.4.1 Создание баз данных вSqlServerEnterpriseManager
- •6.4.2 Создание баз данных с помощьюTransact-sql
- •6.5 Добавление пользователей
- •6.6 Работа с таблицами
- •6.6.1 Способы создания таблиц и типы данных
- •6.6.2 Создание и связывание таблиц в sql Server Enterprise Manager
- •6.6.3 Создание и модификация таблиц вTransact-sql
- •6.7 Выборка данных и создание представлений
- •6.8 Основы программирования
- •6.8.1 Основные команды и функции
- •6.8.2 Пример создания кода в теле хранимой процедуры
- •6.9 УстановкаMs sql server
6.6.3 Создание и модификация таблиц вTransact-sql
Создание таблицы можно выполнить по команде Transact-SQL формата, показанного на рис. 6.24.
CREATE TABLE [[база данных .] владелец. ] таблица
(поле тип_данных [not nul | nul]
[IDENTITY] [(начальное_значение, приращение)][ограничение]
[, поле тип_данных [not nul | nul]
[IDENTITY] [(начальное_значение, приращение)]] [ограничения]...)
[ON группа_файлов]
Имя таблицы и столбца таблицы может иметь до 128 символов. Имена столбцов заключают в круглые скобки. Указание свойства IDENTITY при описании позволяет задать поле с автоматическим приращением значений. Свойство IDENTITY позволяет определить для столбца таблицы начальное значение, которое автоматически помещается в столбец в первую строку, и приращение, автоматически добавляемое к последнему значению, введенному в столбец текущей строки. При добавлении в таблицу новых строк в этот столбец значения вводятся автоматически путем добавления приращения к значению из последней строки.
Свойство IDENTITY можно задать для столбцов численных типов: INT, SMALLINT, TINYINT, DECIMAL(p, 0) и NUMERIC(p, 0). Это свойство нельзя задавать для столбцов с атрибутом NULL. Если при задании свойства IDENTITY не указать начальное значение и приращение, то по умолчанию они примут значение 1.
В составе ограничений поля могут быть указаны первичный ключ, уникальность значения поля, внешний ключ и другие. В том числе здесь может быть указано стандартное значение поля с помощью параметра
DEFAULT <значение по умолчанию>.
При создании таблицы можно указать базу данных и владельца, которым она принадлежит.
Рис. 6.24 Синтаксис команды Transact-SQL для создания таблицы
Удобно предварительно определить текущую базу данных с помощью команды
USE <база_данных>.
При этом все последующие команды выполняются для этой базы данных.
Часто таблицы создают с помощью учетной записи сетевого администратора для ограничения прав доступа к ним. Владелец базы данных и сетевой администратор могут выдавать разрешение другим пользователям на выполнение команды CREATE TABLE для создания таблиц в базе данных.
Манипулирование данными в таблицах реализуется стандартными операторами SQL. Например, добавление данных в таблицу можно выполнить с помощью оператора, показанного на рис. 6.25, который практически не отличается от описанного выше в п. 3.7.11.
INSERT INTO имя_таблицы
(столбец_1, ... , столбец_n)
VALUES ('строка_1', ... ,'строка_n')
Рис. 6.25 Синтаксис команды добавления данных в таблицу
6.7 Выборка данных и создание представлений
Для подготовки SQL-запроса на выборку данных из таблицы в SQL Server можно использовать средства, описанные выше в п. 6.2.
Шаги создания представления:
1. Выбрать элемент View в окне SQL Server Enterprise Manager и в контекстном меню (ЩПК) пункт New View. Откроется окно, представленное на рис. 6.26.
Рис. 6.26 Окно формирования представления
2. Открыть контекстное меню, как показано на рис.6.26, и выбрать таблицы, на основании которых будет построено представление (рис.6.27).
Рис. 6.27 Выбор таблиц для формирования представления
3. Выбрать поля, включаемые в представления, щелкая мышью в квадратиках, стоящих слева от имен полей таблиц. При этом в редакторе кода формируется параллельно SQL-запрос на формирование представления. Пример формируемого запроса на создание представления приведен в рис. 6.28.
SELECT dbo.Sclad.tovar, dbo.Sclad.price, dbo.Firms.title
FROM dbo.Sclad INNER JOIN
dbo.Firms ON dbo.Sclad.tovar = dbo.Firms.tovar
WHERE (dbo.Sclad.price > 1000)
Строка WHERE нами добавлена вручную. Строки SELECT и FROM система сформировала автоматически при выборе имен полей, включаемых в представление.
Рис. 6.28 Пример запроса на создание представления
4. Выполнить представление, чтобы просмотреть его, щелкнув мышью на иконке с восклицательным знаком. Результат работы представления будет помещен в нижнее окно.
5. Сохранить представление, для чего нажать мышкой на иконку с изображением дискетки и указать имя представления.