Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры БД.docx
Скачиваний:
16
Добавлен:
26.09.2019
Размер:
592.64 Кб
Скачать
  1. Правила именования постоянных и временных объектов баз данных в ms sql Server. Примеры.

Постоянные объекты базы

Эти объекты становятся доступны в любой утилите или приложении пользователя после соединения с сервером. Полное наименование таких объектов имеет вид:

Если имя сервера не задано, используется сервер, на котором выполняется оператор, содержащий данный объект;

Если имя базы не введено, используется контекстно-заданная база. Задать базу по умолчанию (контекстною) можно с помощью оператора USE <имя БД>. Эта база будет использоваться по умолчанию во всех последующих операторах до ее смены новым оператором USE.

<имя владельца объекта> – указывается имя пользователя в базе (USER), создавшего объект. Наличие имени владельца в имени объекта позволяет разным пользователям создавать объекты, не согласуя их имена между собой. Если при создании объекта имя владельца не было задано, автоматически подставляется имя dbo, обозначающее Database owner (владелец БД), которое принадлежит пользователю, создавшему базу данных. Если задано имя базы, но пропускается имя владельца, то в соответствии с синтаксисом, точки вокруг элемента <имя владельца объекта> должны быть заданы. Например, User_database..authors;

<имя объекта> – содержит идентификатор объекта (таблицы, процедуры и т.д.) базы.

Если объектом является таблица БД, то в определенных операторах далее через точку может быть задано имя столбца этой таблицы.

Сервер допускает использование в качестве имен объектов неправильных идентификаторов. В соответствии с синтаксисом такие идентификаторы должны быть заданы в квадратных скобках или двойных кавычках. Размер символов в именах значения не имеет.

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

локальная временная таблица, которая создаётся и сохраняется в сеансе связи (соединении) и недоступна в других соединениях. После разрыва соединения с сервером таблица автоматически удаляется. Локальная временная таблица должна иметь имя в виде #<идентификатор>,

глобальная временная таблица, в отличие от локальной, доступна в других соединениях, но только до разрыва соединения, создавшего таблицу. Имя глобальной временной таблицы имеет вид: ##<идентификатор>.

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

  1. Использование переменных в программах Transact SQL: декларирование, присваивание значений, использование в DML операторах, область определения локальных переменных. Примеры использования переменных.

Переменные бывают двух типов: локальные и глобальные.

Локальные переменные. Имя локальной переменной имеет вид: @<идентификатор>, где @ - признак переменной. Перед использованием локальной переменной в скрипте или в процедуре ее необходимо определить с помощью оператора

DECLARE @<идентификатор> <тип данных для переменной> [, …]

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

Сохранение значений, вычисляемых оператором SELECT в локальных переменных

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

@<имя локальной переменной> = <выражение>.

Например, операторы dычисляют и сохраняют в переменной @n количество строк в таблице authors. Последний оператор используется для вывода значения из переменной @n, поскольку присваивающий оператор SELECT не передает данные клиенту, пославшему запрос:

DECLARE @n int

SELECT @n = COUNT(*) FROM authors

SELECT @n (это выводит результат)

Последовательность операторов сохраняет в переменных, а затем выводит фамилию и имя автора из последней строки таблицы authors:

DECLARE @au_ln varchar(40),@au_fn varchar(20)

SELECT @au_ln = au_lname, @au_fn = au_fname FROM authors

SELECT @au_ln, @au_fn

Типы данных для переменных:

-Int char(<n>) – строка фикс.длины Float

Decimal varchar(<n>) – строка переменной длины

-DATETIME

SET DATEFORMAT <формат даты> SET DATEFORMAT dmy – день, месяц, год.

-MONEY – денежный, до 4 десятичных цифр -TABLE – значение – таблица.

Результат SELECT может быть сохранен в новой таблице базы или в переменной программы:

Select @<имя переменной>=<выражение>

DECLARE @p datetime

SELECT @p = max(ord_date) FROM dbo.titles INNER JOIN dbo.Sales ON dbo.titles.title_id = sales.title_id WHERE titles.title=’…’

SELECT titles.* ord_date FROM dbo.titles INNER JOIN dbo.Sales ON dbo.titles.title_id = sales. title_id WHERE ord_date>@p

Не знаю, что за запрос, но был в лекциях.

Использование табличной переменной.

DECLARE @Tab table (Fint, S varchar(70))

Insert @Tab select * FROM T1 Дважды добавляются строки из Т1

Insert @Tab select * FROM T1

SELECT * FROM @Tab вывод

Оператор SET SET @<имя переменной>=<выражение>, …

DECLARE @save_error int SET @save_error = @@Error

Вывод значений переменных

  1. SELECT DECLARE @X int, @Y varchar(12) SELECT @X,@Y Выведет: NULL NULL

  2. Print Print <выражение числовое, строковое> Print @save_error – выведет 0

DECLARE @X integer Print @X или Print @X+10 – выведет невидимый результат

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]