Имя_столбца as выражение

Выражение может содержать в себе имена вторых столбцов, арифметические операции и встроенные функции T-SQL.

Описание ограничений табличного уровня кроме этого может начинаться с главного слова CONSTRAINT и имени ограничения (каковые не являются необходимыми) по окончании чего направляться конкретно само ограничение.

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

CREATE DOMAIN имя_пользовательского_типа имя_встроенного_типа ограничения

Так, пользовательский тип строится на базе некоего встроенного типа, на что наложены ограничения уровня атрибутов. Разглядим пример:

CREATE DOMAIN item_id char(5) NOT NULL CHECK (item_id like ‘[A-Z][A-Z][0-9][0-9][0-9]’)

В данном примере, мы создали пользовательский тип под именем item_id, что базируется на встроенном типе char(5), т.е. представляет собой текстовую строчок из 5 знаков, наряду с этим первые 2 знака являются буквами латинского алфавита (заглавными), а последние три – цифры от 0 до 9. Помимо этого, столбцы типа item_id не смогут содержать безлюдных значений, что задается ограничением NOT NULL.

Завершим изучение команды Create table примеров sql-кода создания таблиц, каковые мы проектировали на первых 2-х лабораторных работах:

CREATE TABLE worker

(

wrkr_id item_id PRIMARY KEY,

wrkr_name varchar(30) NOT NULL UNIQUE,

h_rate smallmoney,

skill_type varchar(10),

supv_id item_id

)

CREATE TABLE building

(

bldg_id item_id PRIMARY KEY,

address varchar(40),

bldg_type varchar(9) DEFAULT ‘Офис’ CHECK (bldg_type in ‘Офис’, ‘Склад’, ‘Жилой дом’, ‘Магазин’),

status decimal(1) DEFAULT 1 CHECK (status between 0 and 4)

)

CREATE TABLE assignment

(

wrkr_id item_id,

bldg_id item_id,

start_day datetime,

num_days smallint CHECK (num_days 0),

CONSTRAINT assignment_pk PRIMARY KEY (wrkr_id, bldg_id),

CONSTRAINT assignment_fk_wrkr FOREIGN KEY wrkr_id REFERENCES worker ON DELETE SET NULL,

CONSTRAINT assignment_fk_bldg FOREIGN KEY bldg_id REFERENCES building ON DELETE SET NULL

)

По окончании того, как таблицы созданы возможно отредактировать их структуру либо удалить их. Удаление производиться посредством команды: DROP TABLE имя_таблицы. Команда трансформации структуры таблицы имеет более сложный синтаксис:

ALTER TABLE имя_таблицы

{

alter column описание_столбца,

add описание_столбца,

drop column имя_столбца,

add описание_ограничения,

drop constraint имя_ограничения,

enable | disable trigger имя_триггера

}

Разглядим более детально те команды, каковые употребляются в alter table:

  • Alter column – употребляется для трансформации существующих в таблице столбцов. По окончании нее направляться новое описание некоего столбца, наряду с этим имя столбца сохраняется;
  • Add – додаёт новый столбец в таблицу. Может быть добавлен как простой, так и вычисляемый столбец. Помимо этого, посредством данной команды возможно добавить новое ограничение уровня таблицы;
  • Drop column – удаляет столбец с указанным именем;
  • Drop constraint – удаляет ограничение с указанным именем;
  • Enable trigger либо Disable trigger – разрешают включить либо временно отключить исполнение указанного триггера. Распространяется лишь на те триггеры, каковые связаны с данной таблицей.

Для работы с данными T-SQL применяет команды SELECT, INSERT, UPDATE и DELETE, каковые детально рассмотрены в [7].

Вопросы к допуску

1. Что именуется таблицей базы данных? Для чего употребляются таблицы?

2. Какие конкретно таблицы именуют нормализованными?

3. Что именуется первичным ключом таблицы?

4. Что именуется другим ключом?

5. Что именуется внешним ключом таблицы?

6. Сформулируйте правило ссылочной целостности для внешних ключей;

7. Перечислите ограничения, накладываемые на таблицу в реляционной модели данных;

8. Какие конкретно виды ограничений употребляются в MS SQL Server?

Контрольные вопросы

1. Какие конкретно средства для таблиц употребляются в MS SQL Server 2000?

2. Обрисуйте процесс создания таблицы посредством мастера;

3. Обрисуйте окно конструктора таблиц. На какие конкретно части оно делится? Для чего предназначены эти части?

4. Обрисуйте процесс создания таблицы посредством конструктора;

5. Какая команда T-SQL употребляется для таблиц? Какой синтаксис она имеет?

6. Как создавать вычисляемые столбцы в таблицах?

7. Как именно возможно создать пользовательский тип средствами T-SQL?

8. Как средствами T-SQL возможно связать таблицы между собой?

9. Какой командой T-SQL возможно удалять таблицы?

10. Как отредактировать структуру таблицы посредством T-SQL?

11. Как добавить и удалить столбцы в уже созданной таблице?

12. Как добавить и удалить в уже созданную таблицу ограничения уровня таблицы?

Лабораторная работа №4:
«Создание представлений в MS SQL Server 2000»

Задание:

  • Создать представления посредством T-SQL, применяя Query Analyzer;
  • Показать умение трудиться с представлениями в Query Analyzer – просмотр, удаление и редактирование таблиц посредством T-SQL;
  • Показать работу с представлениями в Enterprise Manager – создание, редактирование, просмотр.

Теоретический материал:

Представления (view) – возможно выяснить как виртуальные таблицы, содержимое которых генерируется динамически в следствии исполнения некоего запроса. По сути, представления это и имеется хранимый именованный запрос. В базе данных сохраняется лишь структура представления, информация генерируется машинально, при вызове представления. направляться подчернуть, что, изменяя данные в представлениях, мы изменяем их и в таблицах, служащих источником для представлений. Т.е. возможно сказать о том, что в представлениях сохраняются «живые» эти.

Представления возможно применять для извлечения каких-либо данных из таблиц базы данных, но самый распространенным сценарием применения представлений есть организация доступа пользователей к базе данных. Зададим себе вопрос: «Для чего применять представления, в случае если возможно трудиться конкретно с таблицами?» Дело в том, что таблицы помогают для хранения информации о некоем объекте. Но пользователь, решая собственные задачи, может применять далеко не все данные, хранящуюся в таблице (к примеру, отбирая ее по некоему критерию) либо применять данные, хранящуюся в нескольких таблицах. Пользователю смогут потребоваться кое-какие сводные эти за какой-либо период. Таблицы не могут дать требуемую функциональность, нужно создавать запросы. В случае если какие-либо запросы приходится создавать и выполнять достаточно довольно часто – хорошим вариантом будет создать их один раз и сохранить в базе данных, т.е. создать представления.

Увидим кроме этого, что представления являются эргономичным инструментом разграничения доступа. Предположим, что нужно дать пользователю работать лишь с некоторыми строчками таблицы (комплекта таблиц), а доступ к остальным строчкам для него должен быть запрещен. Механизмы разрешений в MS SQL Server 2000 не распространяются на строчки таблиц. Так, данную задачу возможно решить, создав представление и дав права пользователю на работу с понятием, а не конкретно с таблицей. направляться подчернуть, что подобная практика есть очень распространенной.

Разглядим задачу создания представлений. Существует три метода:

  • Применение мастера Create View wizard;
  • Применение конструктора, встроенного в Enterprise Manager;
  • Посредством T-SQL;

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

Применение конструктора разрешает создавать более эластичные представления. Окно конструктора возможно условно поделить на 4 части:

  • Источники данных – в данной части находятся представления и таблицы на базе которых создается данное представление. Возможно додавать и удалять таблицы посредством команд контекстного меню либо кнопок на панели инструментов. Тут же возможно указать столбцы, каковые должны войти в создаваемое представление;
  • Вторая сверху область предназначена для установки черт представления. Тут возможно дать псевдонимы (другие имена) столбцам, задать ее порядок и сортировку для конкретных столбцов, наложить условия на строчки данных, и т.п.;
  • Третья область – область кода SQL. В ней динамически отображаются в SQL-код команды SELECT все сделанные в первых двух частях трансформации;
  • Последняя часть – грид, динамически показывает итог исполнения представления.

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

Применение конструктора требует от создателя представлений более важных знаний о работе с базами данных и создании запросов, например, нежели применения мастера. Но и в следствии возможно создавать такие представления, каковые не может сгенерировать мастер. Серьёзным хорошим причиной есть да и то, что конструктор запрос в MS SQL Server 2000 фактически подобен конструктору запросов в настольной СУБД той же компании – MS Access. Это разрешает в некоей степени уменьшить процесс перехода от одной СУБД к второй.

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

В языке T-SQL для представлений используется команда create view, имеющая следующий синтаксис:

CREATE VIEW имя_представления

AS запрос_sql

[WITH CHECK OPTION]

Как несложно подметить, главную часть команды занимает sql-запрос, формирующий данные, отображаемую понятием. В представлениях дано применять фактически все конструкции команды SELECT, за исключением главных слов INTO, COMPUTE, COMPUTE BY. Более детально, процесс создания sql-конструкции и запросов команды select были рассмотрены в [7].

Необязательная конструкция with check option разрешает обеспечивать, что для строчков представления не будет не запрещаеться исполнение трансформаций, способные привести к исчезновению строчка из представления. К примеру, в случае если в команде where запроса было задано условие age18, то сервер будет запрещать для представления исполнения трансформаций, каковые устанавливают для столбца age значения громадные, чем 18.

Для модификации представлений в T-SQL используют команду ALTER VIEW, синтаксис которой всецело подобен синтаксису команды CREATE VIEW. Т.е. модификация представления практически является переписыванием его заново. В Enterprise Manager для этого вызывается окно редактирования представления, в котором записан его код на языке T-SQL, в который возможно внести трансформации.

Для удаления представлений применяют команду drop, имеющую следующий синтаксис:

DROP VIEW имя_представления

Разглядим пример создания представления на языке T-SQL:

CREATE VIEW w_skills_345

AS

Select wrkr_name, skill_type, h_rate

From worker inner join assignment on (worker.wrkr_id = assignment.wrkr_id)

Where bldg_id = 345

В данном примере мы создаем представление, содержащее данные о рабочих, назначенных на работы в строение с кодовым номером 345.

Вопросы к допуску

1. Что именуется понятием?

2. Для решения каких задач используют представления?

3. В каком виде хранится представление в базе данных MS SQL Server 2000?

4. Какие конкретно ограничения накладываются на представление в MS SQL Server 2000?

5. Перечислите комплект команд SQL-92, применяемый для запросов на выборку;

Контрольные вопросы

1. Какие конкретно методы для представлений предлагаются в MS SQL Server 2000?

2. Обрисуйте процесс создания представления посредством мастера Create View Wizard;

3. На какие конкретно части делится окно конструктора представлений? Обрисуйте эти части, укажите их назначение;

4. Обрисуйте процесс создания представления посредством конструктора;

5. Какая команда T-SQL употребляется для представлений?

6. Для чего употребляется инструкция with check option?

7. Как создавать вычислимые столбцы в представлениях?

8. Как возможно задать личные имена для столбцов представления?

9. Какие конкретно методы используются для редактирования представления?

10. Какими методами возможно удалить представление?

Лабораторная работа №5:
«Разработка SQL-сценариев»

Задание:

  • Создать пара сценариев на языке T-SQL, применяя Query Analyzer;
  • Показать работу сценариев в среде Query Analyzer.

Теоретический материал:

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

MS SQL Server 2000 предлагает второй путь – разработку сценариев обработки данных, каковые будут выполняться конкретно на сервере и смогут быть позваны из внешней программы либо командной строчка. Такие сценарии стали называться sql-сценариев. Они имеют собственное имя и сохраняются в отдельных файлах с расширением «.sql».

Для sql-сценариев в язык T-SQL были введены операторы, благодаря которым возможно создавать разные программные конструкции. Разглядим эти операторы более детально:

В первую очередь, направляться выделить операторы exec и go. Первый из них, разрешает запустить некий sql-сценарий. Этот оператор возможно позван как раздельно, так и в некоего другого сценария. Синтаксис оператора:

Exec имя_сценария.sql

Следующий оператор – оператор go, разрешает разделять сценарий на пакеты. Под пакетом в T-SQL понимается комплект операторов, в один момент отправляемых на сервер для выполнения. Деление на пакеты кроме несложного удобства разделения сценария на составные части, разрешает в одном и том же сценарии решать такие задачи, как создание объекта, его обработка, уничтожение результатов объекта и вывод обработки. Если бы механизм пакетов отсутствовал, нереально было бы приступить к обработке объекта, т.к. он был бы создан на сервере лишь по окончании окончания работы сценария.

Трудясь с пакетами, нужно выполнять следующие правила:

  • В пределах одного пакета нельзя модифицировать таблицу (командой alter table) и обращаться к новым столбцам;
  • Команды create view, create proc, create trigger и create default не смогут соседствовать с другими операторами в пределах одного пакета. Фактически, данное правило свидетельствует, что эти команды должны завершаться оператором go;

Для хранения промежуточной информации в языке T-SQL применяют временные объекты. Применение временных объектов комфортно тем, что не требуется заботиться об их удалении из памяти, MS SQL Server 2000 сделает это машинально. К подобным объектам относятся переменные и временные таблицы. Переменные применяют для хранения атомарных значений, а временные таблицы – для хранения комплектов строчков.

Для переменной применяют команду declare. Команды имеет следующий синтаксис:

Как объединить текстовые эти из разных ячеек Excel в одной ячейке


Также читать:

Понравилась статья? Поделиться с друзьями: