Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Подмножество sql для манипулирования данными: предложения insert, delete, update. Правила написания запросов: предложение select.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Существуют четыре предложения подмножества SQL для манипулирования данными: · SELECT – выборка данных из таблиц · INSERT – вставка данных · DELETE –удаление данных · UPDATE –обновление данных
Для вставки новых строк в таблицы используется предложение INSERT. Пример использования предложения INSERT для вставки строки в таблицу: INSERT INTO Tabl4 (A,C,D,F,G) VALUES (1,‘asdf’,’05/10/2003’,20,7) При использовании предложения INSERT указывается имя таблицы, в которую вставляются новые данные, имена колонок таблицы и значения, соответствующие заданным колонкам таблицы. Для автоинкрементных полей значения задавать не следует. В списке вставляемых значений также могут быть пропущены значения для колонок, имеющих признак обязательности NULL. При использовании предложения INSERT имеется возможность вставлять сразу несколько строк, которые являются результатом выполнения предложения SELECT: INSERT INTO Tabl1 SELECT A,C FROM Tabl4 WHERE A>5
Для удаления строк из таблицы в языке SQL используется предложение DELETE. Пример удаления всех строк из таблицы Tabl4: DELETE FROM Tabl4 В случае если требуется удалить часть строк таблицы, то необходимо задать условие удаления: DELETE FROM Tabl4 WHERE (A =5) or (A=10) DELETE FROM Tabl4 WHERE C like ‘a%c’ В данном примере удаляются строки, в которых значение С с ‘а’ и заканчивается на ‘с’.
Для обновления данных в таблицах применяется предложение UPDATE. При использовании предложения UPDATE требуется указать: · таблицу, данные которой подвергаются обновлению, · колонки таблицы, для которых задаются новые значения, условие для строк, которые подвергаются обновлению. пр: UPDATE tb1 SET prov = prov + 1 WHERE fld < 2;
Для выборки данных из таблицы используется предложение SELECT. SELECT -- ALL ------- схема, столбец -- -- DISTINCT ----------------------- список столбцов возвращаемых запросом FROM -- схема, таблица.. ---------------- обязательно, список таблиц для выполнения запроса WHERE -- условие поиска ----------------- условие поиска (часть строк, подходящих условию) GROUP BY -- схема, столбец ------------- итоговой запрос разбивается на группы HAVING -- условие поиска -----------------условие возврата групп(только вместе с GROUP BY) ORDER BY -- спецификатор сортировки -- определяет порядок сортировки результата
Рассмотрим работу SELECT на основе таблиц: Branch (Bno, Street, Area, City, Tel_No, Fax_No) Staff (Sno, FName, LName, Address, Tel_No, Position, DOB, Salary, Bno) Property_For_Rent (Pno, Street, Area, City, Rooms, Type,Rent,Ono,Sno,Bno) Renter (Rno, FName, LName, Address, Tel_No, Bno)
Viewing (Rno, Pno, Date, Comment) Выборка всех строк Составить список всех сведений о сотрудниках SELECT * FROM Staff SELECT Sno,FName,LName, Address, Tel_No, Position, DOB, Salary, Bno FROM Staff
Создание отчета о заработной плате всех работников с указанием только табельного номера работника, имени и фамилии. SELECT Sno,Fname,Lname,Salary FROM Staff
Составить список номеров сдаваемых в аренду объектов, осмотренных клиентами, с удалением из отчета дублированных строк SELECT distinct Pno FROM Viewing
Создать отчет о годовой зарплате персонала SELECT Sno, Fname, Lname, Salary*12 AS Annul_Salary FROM Staff
Выборка части строк Сравнение Получить отчет о персонале с размером заработной платы больше 10000 рублей в месяц SELECT Sno, Fname, Lname, Salary FROM Staff WHERE Salary>10000 Перечислить адреса всех отделений в Москве и Твери SELECT Bno, Street, Area, City FROM Branch WHERE city = ‘Москва’ OR city =’Тверь’ Использование диапазонов Перечислить персонал с зарплатой от 20000 до 30000 рублей SELECT Sno,Fname,Lname,Salary FROM Staff WHERE Salary>20000 AND Salary<30000 SELECT Sno,Fname,Lname,Salary FROM Staff WHERE Salary BETWEEN 20000 AND 30000 Вхождение во множество Составить список всех руководителей и их заместителей SELECT Sno, FName, LName, Position FROM Staff WHERE position IN (‘Manager’, ‘Deputy’) Использование шаблона Найти всех работников, проживающих в Москве SELECT Sno, FName, LName, Address, Salary WHERE address like ‘%Москва%’ % - любая последовательность из нуля или более символов, _ - любой одиночный символ Использование NULL в условии поиска Составить отчет обо всех помещениях объекта с номером PG4, по которым не было предоставлено комментариев. SELECT rno, date FROM viewing WHERE pno = ‘PG4’ AND comment is null Сортировка результатов выборки Отчет о зарплате всех работников компании в порядке убывания суммы зарплаты SELECT sno, fname, lname, salary FROM staff ORDER BY salary desc Сортировка по нескольким столбцам Подготовить сокращенный список сдаваемых в аренду объектов, упорядоченный по типу SELECT pno, type, rooms, rent FROM property_for_rent ORDER BY type, rent desc – сортировка по величине арендной платы в пределах одного типа Использование агрегатных функций Определить количество сдаваемых в аренду объектов недвижимости со ставкой арендной платы меньше 10000 рублей в месяц SELECT count(*) AS Cnt FROM property_for_rent WHERE rent<10000
Определить, сколько различных сдаваемых в аренду объектов было осмотрено клиентами в мае 2000 года SELECT count(distinct pno) AS Cnt FROM viewing WHERE date BETWEEN ‘05/01/00’ AND ‘05/31/00’
Определить общее кол-во менеджеров компании и вычислить сумму их годовой зарплаты SELECT count(sno) AS cnt, sum(salary)*12 AS sum FROM straff WHERE position = ‘manager’
Вычислить размер минимальной, максимальной и средней зарплаты SELECT min(salary) AS min, max(salary) AS max, avg(salary) AS avg FROM staff Группировка результатов Определить, количество персонала в каждом из отделений, а также суммарную зарплату. SELECT bno, count(sno) AS Cnt, sum(salary) AS sum FROM staff GROUP BY bno ORDER BY bno
Для каждого отделения компании с численностью персонала более пяти человек определить количество работающих и сумму их заработной платы SELECT bno, count(sno) AS Cnt, sum(salary) AS sum FROM staff GROUP BY bno HAVING count(sno)>5 ORDER BY bno Подзапросы Составить список персонала, работающего в отделении компании, расположенном на улице ‘Киевская’ в доме 16 SELECT sno, fname, lname, position FROM staff WHERE bno = (SELECT bno FROM branch WHERE street =’Киевкая 16’)
Составить список всех сотрудников, имеющих зарплату выше средней, указав то, насколько их зарплата превышает среднюю зарплату по предприятию SELECT sno, fname, lname, position, salary – (SELECT avg(salary) FROM staff) AS diff FROM staff WHERE salary > (SELECT avg(salary) FROM staff)
Составить перечень сдаваемых в аренду объектов, за которые отвечают работники отделения компании, расположенного на улице ‘Киевская’ в доме 16 SELECT pno, street, area, city, pcode, type, rooms, rent FROM property_for_rent WHERE sno IN (SELECT sno FROM staff WHERE bno = (SELECT bno FROM branch WHERE street =’Киевкая 16’)) Использование ключевых слов ANY (SOME) и ALL Найти всех работников, чья зарплата превышает зарплату хотя бы одного работника отделения компании под номером ‘B3’ SELECT sno, fname, lname, position, salary FROM staff WHERE salary >SOME (SELECT salary FROM staff WHERE bno=’B3’)
Найти всех работников, чья заработная плата больше платы любого работника отделения компании под номером ‘B3’ SELECT sno, fname, lname, position, salary FROM staff WHERE salary > ALL (SELECT salary FROM staff WHERE bno=’B3’) Многотабличные запросы Составить список имен всех клиентов, которые уже осмотрели хотя бы один сдаваемый в аренду объект недвижимости и сообщили свое мнение о нем. SELECT r.rno, fname, lname,comment FROM renter r, viewing v WHERE r.rno=v.rno
Для каждого отделения перечислите работников, отвечающих за какие-либо арендуемые объекты, с указанием города, в котором данное отделение, и номеров объектов SELECT b.bno, b.city, s.sno, fname,lname,pno FROM branch b, staff s, property_for_rent p WHERE b.bno=s.bno and s.sno=p.sno ORDER BY b.bno,s.sno,pno
Левое открытое соединение Перечислить отделения компании и сдаваемые в аренду объекты, которые расположены в одном и том же городе, а также прочие отделения компании SELECT b.*, p.* FROM branch b LEFT JOIN property_for_rent p ON b.city=p.city
Полное открытое соединение Перечислить отделения компании и сдаваемые в аренду объекты, которые расположены в одном и том же городе, а также прочие отделения компании и объекты недвижимости SELECT b.*, p.* FROM branch FULL JOIN property_for_rent p ON b.city=p.city
EXISTS Перечислить всех сотрудников компании, которые работают в ее московском отделении SELECT sno, fname, lname, position FROM staff s WHERE EXISTS (SELECT * FROM branch b WHERE s.bno=b.bno AND city = ‘Москва’)
Union Создать список всех регионов, в которых либо находятся отделения компании, либо располагаются сдаваемые в аренду объекты SELECT area FROM branch WHERE area is not null UNION SELECT area FROM property_for_rent WHERE area is not null)
Intersect Создать список всех городов, в которых располагаются и отделения, и арендуемые объекты SELECT city FROM branch INTERSECT SELECT city FROM property_for_rent
|
||||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 490; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.2 (0.008 с.) |