- •Лабораторная работа № 2 Логическая структура и физическая реализация баз данных
- •Основы программирования на Transact – sql
- •1. Стандартными идентификаторами: Table X; Key Col;
- •Лабораторная работа № 4 Создание, отладка и оптимизация sql – модулей
- •1. Нельзя в одном пакете изменять таблицу и ссылаться на ее новую колонку.
- •View не могут комбинироваться с другими командами в том же пакете.
- •Создание и обслуживание баз данных сервера
- •Лабораторная работа №6 Проектирование логической структуры базы данных
- •Создание, модификация и удаление таблиц
- •2. Выберите элемент Table в указанной базе данных.
- •Добавление, извлечение, модификация и удаление данных в таблицах
- •Раздел into позволяет создать новую таблицу для хранения результатов запроса, структура которой будет определяться списком выбора, т.Е. Динамически при выполнении запроса.
- •I)Использование команды select...Into:
- •V)Объединение таблиц с помощью раздела union:
- •X)Использование раздела compute:
- •Создание и управление представлениями
- •Создание, изменение, применение и удаление функций и хранимых процедур
- •Создание, программирование и управление триггерами
- •2. Тестирование триггера:
- •Лабораторная работа №15 Создание, применение и управление курсорами
- •3. Выборка данных:
- •Реализация клиентских приложений баз данных
- •Компонент ado-Запрос (tadoQuery) Назначение
- •Использование
- •Компонент ado-набор данных (tadoDataSet) Назначение
- •Система безопасности sql Server 2000
- •Лабораторная работа № 18 Регистрация серверов sql
- •Лабораторная работа № 19 Запуск, остановка и приостановка служб сервера
- •12. Если выбрали вариант sql Server, то необходимо установить параметры:
- •Лабораторная работа № 21. Публикация данных с помощью html-страниц в системе sql Server 2000
I)Использование команды select...Into:
EXEC sp_dboption ‘InsertDB’, ‘select into/bulkCopy’, ‘on’ SELECT Col1 AS Счетчик, Col2 AS Имя,
Col3 AS Версия, Col5 AS Номер
Into Новая_TabF From TabF
J)Выборка начальных строк таблицы:
USE Northwind
Select Top 7 * From Territories --различные
Select Top 10 Percent * From Territories --различные упорядоченные по TerritoryID Select Order By TerritoryID With Ties * From Territories --все 7
Select All * From Territories --все строки таблицы
Select Distinct * From Territories -- все без дублирующих
K)Использование псевдонимов в запросе:
USE Pubs
Select Top 10 au_id, au_fname AS [Фамилия], au_lname
From Authors --имя 2-го столбца изменено
L)Включение в результат дополнительного столбца-выражения:
Select Top 7 NewID() AS Глобальный_уникальный_номер, '--', au_id, DatePart
(ms,GetDate())
From Authors --три колонки являются выражениями,из них две-безыменные
M)Использование подзапроса,возвращающего одну строку:
Select Top 5 (Select au_fname From authors --значение подзапроса определяется
Where au_id='527-72-3246') AS Подзапрос, --заново для каждой строки
title_id
From Titles
N)Включение столбца-счетчика:
Select Top 50 Percent jobs.IDENTITYCOL AS Number, job_id, job_desc From jobs
-- для одной таблицы задание ее имени для счетчика необязательно, т.е.jobs
необязательно
O)Использование ключевых слов CROSS JOIN для связывания двух таблиц:
USE Pubs
SELECT discounts.stor_id, discounts. discounttype, stores.stor_name
FROM discounts CROSS JOIN stores --3*6=18 строк
-- убедиться, что CROSS JOIN можно заменить запятой
P)Использование ключевых слов INNER JOIN для связывания двух таблиц: SELECT authors.au_lname, authors.au_fname, titleauthor.au_ord, titleauthor.royaltyper FROM authors INEER JOIN titleauthor
ON authors.au_id = titleauthor.au_id
WHERE authors.sate = 'CA'
-- убедиться, что можно INNER JOIN заменить пробелом
Q)Использование ключевых слов LEFT OUTER JOIN для связывания двух таблиц:
SELECT authors.au_lname, authors.au_fname, titleauthor.royaltyper
FROM authors LEFT OUTER JOIN titleauthor
ON authors.au_id = titleauthor.au_id
WHERE (authors.state = 'CA') --19 строк
R)Использование ключевых слов RIGHT OUTER JOIN для связывания двух таблиц: SELECT titleauthor.au_ord, titleauthor.royaltyper, authors.au_lname, authors.au_fname FROM titleauthor RIGHT OUTER JOIN authors
ON titleauthor.au_id = authors.au_id
WHERE (authors.state = 'CA') --19 строк
S)Использование ключевых слов FULL OUTER JOIN для связывания двух таблиц:
SELECT discounts.stor_id, discounts.discounttype, stores.stor_name
FROM discounts FULL OUTER JOIN stores
ON discounts.stor_id = stores.stor_id --8 строк
-- убедиться, что в примерах Q,R и S слово OUTER можно опустить
T)Использование раздела WHERE оператора SELECT: Select * From authors Where 3=6 --0 строк Select * From authors Where state <> 'CA' --Калифорния Declare @@Var1 int
Set @@Var1 = 4095
Slect title_id, type, pub_id, price From titles
Where ((ytd_sales = @@Var1) OR
(price BETWEEN 5 AND 15)) --9 строк
-- заменить OR на AND и убедиться, что получится одна строка
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts, stores --здесь”,”-это CROSS JOIN Where disscounts.stor_id = stores.stor_id --1 строка
--это уже INNER OUTER JOIN
-- Аналог этой команды следующий:
Select discounts/stor_id, discounts.discounttype, stores.stor_name
From discounts INEER JOIN stores
ON discounts.stor_id = stores.stor_id
-- этот запрос эффективнее предшествующего.
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts, stores
Where discounts.stor_id, *= stores.stor_id--3 строки
-- это - аналог LEFT OUTER JOIN: Select discounts.stor_id, discounts.disconttype, stores.stor_name From discounts LEFT OUTER JOIN stores
ON discounts.stor_id = stores.stor_id --3 строки
Select discounts.stor_id, discounts.discounttype, stores.stor_name
Where discounts.stor_id =* stores.stor_id
-- это - аналог RIGHT OUTER JOIN Select discounts.stor_id, discounts.discounttype, stores.stor_name From discounts RIGHT OUTER JOIN stores
ON discounts.stor_id = stores.stor_id --6 строк
U)Использование разделов GROUP BY и HAVING:
Select type, SUM(price), COUNT(*)
From titles -- type-тип изданий
Group By type --6 строк
-- выдается колонка type, колонка SUM и счетчик COUNT Select type, SUM(price), count = COUNT(*) -- имя столбца
Form titles
Where type < 'ps'
Group BY type --3 строки
Select type, SUM(price), count = COUNT(*) -- имя счетчика count
From titles
Where type < 'ps'
Group By ALL type --6 строк
-- строки с type >= 'ps'- без агрегирования
Select type, pub_id, SUM(price), COUNT(*) From titles
Where price <> 0
Group By type, pub_id --7 агрегированных строк
Select type, pub_id, SUM(price), COUNT(*) From titles
Where price <> 0
Group By type, pub_id With Cube --суперагрегирование
Select type, pub_id, SUM(price), COUNT(*) From titles
Where price <> 0
Group By type, pub_id --13 строк
With ROLLUP