[27.04.11] Лекция №10 (Лекции по банкам данных)
Описание файла
Файл "[27.04.11] Лекция №10" внутри архива находится в следующих папках: Лекции по банкам данных, [drafts] Банки данных, 13 - [11.05.11] РК 3. Документ из архива "Лекции по банкам данных", который расположен в категории "". Всё это находится в предмете "банки данных" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "банки данных" в общих файлах.
Онлайн просмотр документа "[27.04.11] Лекция №10"
Текст из документа "[27.04.11] Лекция №10"
Лекция №9 [20.04.11]
Запросы
Сейчас хотим запрос на покупателя с порядковым номером 32:
SELECT ID,lastname,firstname
FROM customer
WHERE ID=32.
Теперь вывести фамилию, имя, адрес, штат и зипкод всех покупателей штата Калифорния, Флорида и Аризона (то есть, для перечислимого типа):
SELECT lastname,firstname,address,state,zipcode
FROM customer
WHERE state IN(‘CA’,’FL’,’AZ’).
Вывести номера заказов, которые были сделано с 01.06.10 по 30.06.10:
SELECT ID
FROM orders
WHERE orderdate BETWEEN ’01-JUN-10’ AND ’30-JUN-10’.
Вывести номер и фамилию покупателей, которые до сих пор не предоставили информацию о своём адресе и городе:
SELECT ID,lastname
FROM customer
WHERE (address IS NULL) OR (city IS NULL).
Вывести номер, фамилию и имя покупателей, которых создал пользователь Иванов:
SELECT ID,lastname,firstname
FROM ivanov.customer.
Отсортировать покупателей по фамилии, а однофамильцев – по имени, и вывести номер, фамилию и имя:
SELECT ID,lastname,firstname
FROM customer ORDER BY lastname,firstname.
Запрос в запросе (вложенный запрос):
Вывести номер, фамилию, имя покупателей, которые не сделали заказов. Записались у нас, а заказов не сделали. Выцепим из таблицы заказов номера покупателей, которые сделали заказы (ну просто все ID покупателей, потому что в таблице заказов содержатся только те, кто сделал заказ), и сделаем отрицание в селекции для таблицы покупателей, там вычислятся те, кто не сделал заказов:
SELECT ID,lastname,firstname
FROM customer
WHERE ID NOT IN(SELECT custumerID FROM orders).
Ввод данных
Ввести заказ в таблицу заказов:
INSERT INTO orders VALUES(239,2,’06-JUN-10’,’06-JUN-10’,’23-JUN-10’,’F’).
А вот если мы вводим не для всех столбцов:
INSERT INTO orders (ID,customerID,orderdate,status) VALUES (270,7,’07-JUN-10’,’B’).
А теперь много строк. Например, из одной таблицы (orderhistory) переносим в нашу (конечно, столбцы и схема таблицы совпадают):
INSERT INTO orderhistory (SELECT * FROM orders WHERE orderdata<=’31-MAY-10’).
Изменение данных
У покупателя с номером 7 изменить адрес:
UPADATE customer SET address=’107499, Москва, …’ WHERE ID=7.
Выставить NULL в столбце "факс" (сгорели все факсы к чертям. Да, у всех):
UPDATE customer SET fax=NULL.
Удаление данных (строк)
В таблице "пункт заказа" удалить строку для заказа с номером 739:
DELETE FROM item WHERE orderID=739.
Хотим удалить все строки:
DELETE FROM orderhistory.
Транзакции
Транзакция – совокупность операторов, выполняющаяся как одно неделимое целое.
Оператор конца текущей транзакции: COMMIT.