Зад2КС (2). Использование
Скачать 34.57 Kb.
|
Лабораторная работа №2 ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ МАНИПУЛИРОВАНИЯ ДАННЫМИ В MICROSOFT SQL SERVER Цель работы - научиться использовать операторы манипулирования данными Select, Insert, Update, Delete. Содержание работы: Создать с помощью приведенных операторов пример базы данных «Книжное дело», описанный в предыдущей лабораторной работе (если БД отсутствует на сервере). С помощью операторов Insert создать программу в SQL Server Man agement Studio через «Создать запрос» для заполнения таблиц данными (по 3-5 записей). С помощью оператора Select по заданиям выполнить запросы к БД. Пояснения к выполнению работы Вся теория по данной работе представлена в конспекте лекций. Также при необходимости можно воспользоваться справочными материалами MS SQL Server 2005, запустив утилиту Book OnLine. Варианты заданий к лабораторной работе №2 Общие положения Создать новую базу данных с названием DB_Books с помощью оператора Create Database, создать в ней перечисленные таблицы c помощью операторов Create table по примеру лабораторной работы №1. Сохранить файл программы с названием ФамилияСтудента_ЛАб_1_DB_Books. В утилите SQL Server Management Studio с помощью кнопки «Создать запрос» создать отдельные программы по каждому запросу, которые сохранять на диске с названием: ФамилияСтудента_ЛАб_2_№_задания. В сами программы копировать текст задания в виде комментария. Можно со- 13 хранять все выполненные запросы в одном файле. Для проверки работы операторов SELECT предварительно создайте программу, которая с помощью операторов INSERT заполнит все таблицы БД DB_Books несколькими записями, сохраните программы с названием ФамилияСтуден-та_ЛАб_2_Insert. Список вариантов заданий
Сұрыптау Books кестесінен кітаптар туралы мәліметтерді таңдап алыңыз және кітап коды бойынша сұрыпау орындаңыз(поле Code_book). Books кестесінен кітап кодын, атауын және бет саны өрістерін(Code_book, Title_book және Pages) таңдап алыңыз және кітап атауы(Title_book өсу ретімен, бет саны (Pages) бойынша сұрыптау орындаңыз. 14 3. Deliveries кестесінен жеткізушілер тізімін(Name_delivery, Phone және INN)INN өрісі бойынша(кему ретімен) сұрыптаңыз. Өрістердің орналасу ретін өзгерту Deliveries кестесінінің барлық өрістерін келесі ретпен орналастырып таңдап алу: Name_delivery, INN, Phone, Address, Code_delivery. Publishing_house кестесінің өрістерін келесі ретпен таңдап алу: Publish, City, Code_publish. Екі кестеден бірнеше өрістерді таңдап алу Books кестесінен кітап атауын және бет санын (Title_book және Pages өрістері), ал Authors кестесінен сәйкес кітап авторын ( Name_ author өрісі) таңдап алу. Books кестесінен кітап аты мен бет санын (Title_book және Pages өрістері), ал Deliveries кестесінен сәйкес жеткіщуші атын ( Name_delivery өрісі) таңдап алу. Books кестесінен кітап аты мен бет санын (Title_book және Pages өрістері), ал Publishing_house кестесінен сәйкес баспасы мен шыққан орнын (Publish және City өрістері) таңдап алу. Нақты емес сәйкестендіру шарты Компания атауы, телефоны және ЖСН (Name_company, Phone және INN өрістері) берілген жеткізушілер анықтамалығынан (Deliveries кестесі) компания атауы (Name_company өрісі) 'ОАО' тіркесінен басталатынын таңдап алу. Books кестесінен кітап атауы мен бет санын (Title_book және Pages өрістері), ал Authors кестесінен сәйкес кітап авторын (Name_ author өрісі) таңдап алып , кітап авторы 'Мемуары' сөзінен басталатынын шығару. Фамилиясы, аты, әкесінің аты берілген Authors кестесінен авторы( Name_ author өрісі) 'Иванов' сөзінен басталатындарын шығару. Точное несовпадение значений одного из полей Publishing_house кестесінен баспасы(Publish өрісі) 'Алматы' қаласы болмайтын кітаптар тізімін шығару (City өрісі бойынша шарт қою). Вывести список названий книг из таблицы Books кетесінен баспасы (Publishing_house кестесіндегі Publish өрісі) «Эверо» болмайтын кітап атауларының(Title_book өрісі) тізімін шығару. 15 Диапазон аралғығындағы мәндері бойынша жазбаларды таңдау(Between) Authors кестесінен туған күні (Birthday өрісі) находится в диапазоне 01.01.1840-01.06.1860 аралығында болатын авторлардың фамилиясын, атын, әкесінің атын(Name_author өрісі) шығарыңыз. 12.03.2003 мен 15.06.2003 (Purchases кестесіндегі Date_order өрісі бойынша шарт қою) аралығында сатып алынған кітап атауларының(Books кестесінен Title_book өрісі) және (Purchases кестеіснен Amount өрісі) тізімін шығарыңыз. Кітаптағы бет санының(Pages өрісі бойынша шарт қою) мәндері 200 – 300 аралығында болатын кітаптардың атаулары(поле Title_book) мен бет санының(Pages өрісі) тізіміншығарыңыз. Кітап авторының фамилиясының алғашқы әрпі 'В' - ‘Г' (Name_author өрісі бойынша шарт) аралығында болатын Authors кестесіндегі автор фамилиясы, аты, әкесінің аты тізімін шығарыңыз. Диапазондағы мәндер бойынша(In) жазбаларды таңдау Кодтары 3, 7, 9, 11 (Purchases кестесіндегі Code_delivery өрісі бойынша шарт қою) болатын жеткізушілермен әкелінген кітаптар тізімі және санын(Books кестесіндегі Title_book өрісі) шығару. Баспасы: 'Алматы', 'Альфа', 'Наука' (условие по полю Publish из таблицы Publishing_house) болатын кітаптар тізімін(Books кестесіндегі Title_book өрісі) шығару. Авторлары: 'Ахметов А.Н.', 'Назаров Ж.С.', 'Арман А.К.’ (Authors кестесіндегі Name_author өрісі бойынша шарт) болатын кітаптар тізімін(Books кестесіндегі Title_book өрісі) шығару. Like көмегімен жазбаларды таңдау Authors кестесінен 'К' әрпінен басталатын авторлар тізімін(Name_author өрісі) шығару. Publishing_house кестесінен 'софт' тіркесі кезедесетін баспа атауларын(Publish өрісі) шығару. Deliveries кестесінен 'ский' тіркесімен аяқталатын компания атауларын(Name_company өрісі) шығарыңыз. Бірнеше шарт бойынша жазбаларды таңдау Кітаптар саны (поле Amount) 100-ден жоғары немесе кітап бағассы (поле Cost) 200 бен 500 аралығында болатын жазбаларды таңдау (Code_delivery, Date_order, Title_book). Баспа коды (поле Code_Publish ) 10 мен 25 аралығында және бет саны(поле Pages) 120-дан жоғары болатын жазбаларды таңдау(поле Code_author, Name_author, Title_book) 26. Вывести список издательств (поле Publish) из таблицы Publish- ing_house, в которых выпущены книги, названия которых (поле Title_book) начинаются со слова 'Труды' и город издания (поле City) - 'Новосибирск'. Многотабличные запросы (выборка из двух таблиц, выборка из трех таблиц с использованием JOIN) Вывести список названий компаний-поставщиков (поле Name_company) и названия книг (поле Title_book), которые они поставили в период с 01.01.2002 по 31.12.2003 (условие по полю Date_order). Вывести список авторов (поле Name_author), книги которых были выпущены в издательстве 'Мир' (условие по полю Publish). Вывести список поставщиков (поле Name_company), которые по ставляют книги издательства 'Питер' (условие по полю Publish). Вывести список авторов (поле Name_author) и названия книг (поле Title_book), которые были поставлены поставщиком 'ОАО Книготорг' (ус ловие по полю Name_company). Вычисления Вывести суммарную стоимость партии одноименных книг (исполь зовать поля Amount и Cost) и название книги (поле Title_book) в каждой поставке. Вывести стоимость одной печатной страницы каждой книги (ис пользовать поля Cost и Pages) и названия соответствующих книг (поле Title_book). Вывести количество лет с момента рождения авторов (использо вать поле Birthday) и имена соответствующих авторов (поле Name_author). Вычисление итоговых значений с использованием агрегатных функций Вывести общую сумму поставок книг (использовать поле Cost), выполненных 'ЗАО Оптторг' (условие по полю Name_company). Вывести общее количество всех поставок (использовать любое по ле из таблицы Purchases), выполненных в период с 01.01.2003 по 01.02.2003 (условие по полю Date_order). Вывести среднюю стоимость (использовать поле Cost) и среднее количество экземпляров книг (использовать поле Amount) в одной постав ке, где автором книги является 'Акунин' (условие по полю Name_author). Вывести все сведения о поставке (все поля таблицы Purchases), а также название книги (поле Title_book) с минимальной общей стоимостью (использовать поля Cost и Amount). 17 38. Вывести все сведения о поставке (все поля таблицы Purchases), а также название книги (поле Title_book) с максимальной общей стоимостью (использовать поля Cost и Amount). Изменение наименований полей Вывести название книги (поле Title_book), суммарную стоимость партии одноименных книг (использовать поля Amount и Cost), поместив в результат в поле с названием Itogo, в поставках за период с 01.01.2002 по 01.06.2002 (условие по полю Date_order). Вывести стоимость одной печатной страницы каждой книги (ис пользовать поля Cost и Pages), поместив результат в поле с названием One_page, и названия соответствующих книг (поле Title_book). Вывести общую сумму поставок книг (использовать поле Cost) и поместить результат в поле с названием Sum_cost, выполненных 'ОАО Луч' (условие по полю Name_company). Использование переменных в условии Вывести список сделок (все поля из таблицы Purchases) за послед ний месяц (условие с использованием поля Date_order). Вывести список авторов (поле Name_author), возраст которых меньше заданного пользователем (условие с использованием поля Birthday). Вывести список книг (поле Title_book), которых закуплено меньше, чем указано в запросе пользователя (условие с использованием поля Amount). Использование переменных вместо названий таблиц Вывести список названий компаний-поставщиков (поле Name_company) и названия книг (поле Title_book), которые они поставили. Вывести список авторов (поле Name_author), книги которых были выпущены в издательствах 'Мир', 'Питер Софт', 'Наука' (условие по полю Publish). Вывести список издательств (поле Name_company), книги которых были поставлены по цене 150 руб. (поле Cost). Выбор результата в курсор Вывести список названий книг (поле Title_book) и количества страниц (поле Pages) в каждой книге и поместить результат в курсор с на званием Temp1. Вывести список названий компаний-поставщиков (поле Name_company) и поместить результат в курсор с названием Temp2. 18 50. Вывести список авторов (поле Name_author) и поместить результат в курсор с названием Temp3. Использование функций совместно с подзапросом Вывести список книг (поле Title_book), у которых количество стра ниц (поле Pages) больше среднего количества страниц всех книг в таблице. Вывести список авторов (поле Name_author), возраст которых меньше среднего возраста всех авторов в таблице (условие по полю Birth day). Вывести список книг (поле Title_book), у которых количество стра ниц (поле Pages) равно минимальному количеству страниц книг, пред ставленных в таблице. Использование квантора существования в запросах Вывести список издательств (поле Publish), книги которых были приобретены оптом ('опт' из поля Type_Pur chase). Вывести список авторов (поле Name_author), книг которых нет в таблице Books. Вывести список книг (поле Title_book), которые были поставлены поставщиком 'ЗАО Квантор' (условие по полю Name_company). Оператор обработки данных Update Изменить в таблице Books содержимое поля Pages на 300, если код автора (поле Code_author) =56 и название книги (поле Title_book) ='Мемуары'. Изменить в таблице Deliveries содержимое поля Address на 'нет сведений', если значение поля является пустым. Увеличить в таблице Purchases цену (поле Cost) на 20 процентов, если заказы были оформлены в течение последнего месяца (условие по по лю Date_order). Оператор обработки данных Insert Добавить в таблицу Purchases новую запись, причем так, чтобы код покупки (поле Code_purchase) был автоматически увеличен на единицу, а в тип закупки (поле Type_purchase) внести значение 'опт'. Добавить в таблицу Books новую запись, причем вместо ключевого поля поставить код (поле Code_book), автоматически увеличенный на еди ницу от максимального кода в таблице, вместо названия книги (поле Ti- tle_book) написать 'Наука. Техника. Инновации'. Добавить в таблицу Publish_house новую запись, причем вместо ключевого поля поставить код (поле Code_publish), автоматически увели- 19 ченный на единицу от максимального кода в таблице, вместо названия города - 'Москва' (поле City), вместо издательства - 'Наука' (поле Publish). Оператор обработки данных Delete Удалить из таблицы Purchases все записи, у которых количество книг в заказе (поле Amount) = 0. Удалить из таблицы Authors все записи, у которых нет имени авто ра в поле Name_Author. Удалить из таблицы Deliveries все записи, у которых не указан ИНН (поле INN пустое). |