Содержание
- 2. Домашнее задание Вывести номер заказа, описание продукта и имя сотрудник, принявшего заказ. В выводе должно быть
- 3. Домашнее задание Вывести номер заказа, описание продукта и имя сотрудник, принявшего заказ. В выводе должно быть
- 4. Домашнее задание Вывести номер заказа, имя сотрудника, принявшего заказ, а также город, в котором работает сотрудник.
- 5. Домашнее задание Вывести номер заказа, имя сотрудника, принявшего заказ, а также город, в котором работает сотрудник.
- 6. Домашнее задание Вывести номер заказа, дату заказа, название компании и ее кредитный лимит для тех заказов,
- 7. Домашнее задание Вывести номер заказа, дату заказа, название компании и ее кредитный лимит для тех заказов,
- 8. Домашнее задание Вывести номер заказа, имя сотрудника, принявшего заказа, а также отношение суммы заказа к квоте
- 9. Домашнее задание Вывести номер заказа, имя сотрудника, принявшего заказа, а также отношение суммы заказа к квоте
- 10. Домашнее задание Вывести город, в котором расположен офис, и кол-во сотрудников в офисе для всех офисов,
- 11. Домашнее задание SELECT CASE WHEN REP_OFFICE IS NULL THEN 'N/A' ELSE CITY END AS city, COUNT(*)
- 12. Домашнее задание Вывести номер заказа, идентификатор продукта в заказе, сумму заказа и описание продуктов для всех
- 13. Домашнее задание SELECT ORDER_NUM, MFR, PRODUCT, DESCRIPTION, AMOUNT FROM ORDERS INNER JOIN PRODUCTS ON ORDERS.PRODUCT =
- 14. Домашнее задание Для каждого сотрудника, нанятого до 1 января 2008 года, по каждому продукту, подсчитать количество
- 15. Домашнее задание SELECT SALESREPS.NAME, PRODUCTS.DESCRIPTION, COUNT(DISTINCT ORDER_DATE) AS COUNT_OF_DATES FROM ORDERS INNER JOIN PRODUCTS ON ORDERS.MFR
- 16. Домашнее задание Вывести описания тех продуктов, для которых существуют заказы, сделанные для компаний, которые обслуживаются сотрудником
- 17. Домашнее задание SELECT DESCRIPTION FROM PRODUCTS INNER JOIN ORDERS ON PRODUCTS.PRODUCT_ID = ORDERS.PRODUCT AND PRODUCTS.MFR_ID =
- 18. Домашнее задание Вывести описание товаров, для которых имеются заказы на сумму менее 35000, кроме тех заказов,
- 19. Домашнее задание Вывести описание товаров, для которых имеются заказы на сумму менее 35000, кроме тех заказов,
- 20. Домашнее задание Пусть если кредитный лимит для компании более 60000$, то ее рейтинг ‘A’, если больше
- 21. Домашнее задание SELECT CASE WHEN CREDIT_LIMIT > 60000 THEN 'A' WHEN CREDIT_LIMIT > 45000 THEN 'B'
- 22. Обновление данных Внесение изменений в базу данных Целостность данных Обработка транзакций
- 23. Внесение изменений в БД INSERT UPDATE DELETE MERGE
- 24. Добавление новых данных Однострочная инструкция INSERT Многострочная инструкция INSERT Пакетная загрузка
- 25. Добавление новых данных Если вы принимаете на работу нового служащего, в таблицу SALESREPS необходимо добавить новую
- 26. Однострочная инструкция INSERT
- 27. Однострочная инструкция INSERT INSERT INTO SALESREPS (NAME, AGE, EMPL_NUM, SALES, TITLE, HIRE_DATE, REP_OFFICE) VALUES (‘Henry Jacobsen’,
- 28. Однострочная инструкция INSERT Добавить информацию о новом клиенте и заказе для служащего Якобсена INSERT INTO CUSTOMERS(COMPANY,
- 29. Вставка значений NULL При добавлении в таблицу новой строки данных всем столбцам, имена которых отсутствуют в
- 30. Вставка всех столбцов Для удобства в SQL разрешается не исключать список столбцов в инструкцию INSERT. INSERT
- 31. Многострочная инструкция INSERT INSERT INTO OLDORDERS (ORDER_NUM, ORDER_DATE, AMOUNT) SELECT ORDER_NUM, ORDER_DATE, AMOUNT FROM ORDERS WHERE
- 32. Удаление существующих данных Если клиент отменяет заказ, необходимо удалить соответствующую строку из таблицы ORDERS. Если служащий
- 33. Инструкция DELETE Инструкция DELETE удаляет выбранные записи из одной таблицы. Предположим, что недавно принятый на работу
- 34. Инструкция DELETE Удалить информацию о Генри Якобсене из базы данных DELETE FROM SALESREPS WHERE NAME =
- 35. Инструкция DELETE Удалить информацию о Генри Якобсене из базы данных DELETE FROM SALESREPS WHERE NAME =
- 36. Инструкция DELETE Удалить данные о всех клиентах, обслуживаемых Биллом Адамсом, Мери Джонс и Дэном Робертсом DELETE
- 37. Удаление всех строк DELETE FROM ORDERS; Хотя в результате выполнения приведенной инструкции DELETE таблица ORDERS становится
- 38. Инструкция DELETE с подзапросом Удалить все заказы, принятые Сью Смит Ошибка: DELETE FROM ORDERS, SALESREPS WHERE
- 39. Инструкция DELETE с подзапросом Удалить данные о всех клиентах, обслуживаемых служащими, у которых фактический объем продаж
- 40. Инструкция DELETE с подзапросом Удалить данные о всех клиентах, обслуживаемых служащими, у которых фактический объем продаж
- 41. Инструкция DELETE с подзапросом Удалить данные о всех cлужащих, у которых сумма текущих заказов меньше двух
- 42. Инструкция DELETE с подзапросом Удалить данные о всех клиентах, которые не делали заказов с 10 ноября
- 43. Обновление существующих данных Если клиент изменяет количество заказанного товара, в соответствующей строке таблицы ORDERS должен быть
- 44. Обновление существующих данных UPDATE SET [, имя_столбца = выражение] [WHERE условие_отбора]
- 45. Обновление существующих данных Увеличить предельный кредит для компании Acme Manufacturing до $60000 и закрепить ее за
- 46. Обновление существующих данных Перевести всех служащих из чикагского офиса (ид. 12) в нью-йорский офис (ид. 11)
- 47. Обновление существующих данных Перевести всех служащих из чикагского офиса (ид. 12) в нью-йорский офис (ид. 11)
- 48. Обновление существующих данных Перевести всех клиентов, обслуживаемых служащими с ид. 105, 106, 107 к служащему 102.
- 49. Обновление существующих данных Установить личный план продаж в 100000$ всем служащим, не имеющим в настоящий момент
- 50. Обновление существующих данных Обновление всех строк. Увеличить все планы на 5%. UPDATE SALESREPS SET QUOTA =
- 51. Инструкция UPDATE с подзапросом Увеличить на 5000$ лимит кредита для тех клиентов, которые сделали заказ на
- 52. Инструкция UPDATE с подзапросом Переназначить клиентов, обслуживаемых служащими, чей объем продаж меньше 80 процентов их личного
- 53. Инструкция UPDATE с подзапросом Переназначить клиентов, обслуживаемых служащими, чей объем продаж меньше 80 процентов их личного
- 54. Инструкция UPDATE с подзапросом Всех служающих, обслуживающих более трех клиентов, подчинить непосредственно Сэму Кларку (ид. 106).
- 55. Резюме Однострочная инструкция INSERT добавляет в таблицу одну строку данных. Значения новой строки задаются в инструкции
- 56. Целостность данных Термин целостность данных относится к правильности и полноте информации, содержащейся в базе данных. При
- 57. Целостность данных В базу могут быть внесены неправильные данные, скажем, заказ, в котором указан несуществующий товар.
- 58. Условия целостности данных Для сохранения непротиворечивости и правильности хранимой информации в РСУБД устанавливается одно или несколько
- 59. Условия целостности данных - Обязательное наличие данных. Некоторые столбцы в БД должны содержать значения в каждой
- 60. Условия целостности данных - Условие на значение. У каждого столбца в БД есть свой домен, т.е.
- 61. Условия целостности данных - Логическая целостность данных. Первичный ключ таблицы должен в каждой строке иметь уникальное
- 62. Условия целостности данных - Ссылочная целостность. В реляционной БД каждая строка дочерней таблицы связана с помощью
- 63. Условия целостности данных - Другие соотношения между данными. Моделируемая БД ситуация реального мира зачастую накладывает собственные
- 64. Условия целостности данных - Бизнес-правила. Обновление информации в БД может быть ограничено бизнес-правилами, которым подчиняются сделки,
- 65. Условия целостности данных - Непротиворечивость. Многие реальные деловые операции вызывают в БД несколько изменений одновременно. Например,
- 66. Обязательность данных Это наиболее простое, условие целостности данных требует, чтобы некоторые столбцы не содержали значений NULL.
- 67. Обязательность данных Если на столбец наложено ограничение NOT NULL, то для выполнения этого условия СУБД обеспечивает
- 68. Ограничения на значения столбца В SQL ограничения на значения столбца аналогично условию отбора в предложении WHERE,
- 69. Ограничения на значения столбца Если условие не выполняется, то инструкция INSERT или UPDATE завершается ошибкой. Ограничение
- 70. Домены Домен в SQL обобщает понятие ограничения на значения столбца и позволяет применять одно и то
- 71. Целостность данных Каждая строка таблицы должна иметь уникальное значение первичного ключа, иначе база данных потеряет свою
- 72. Целостность данных При указании первичного ключа в определении таблицы СУБД автоматически проверяет уникальность его значений при
- 73. Прочие условия уникальности столбцов Иногда требуется, чтобы столбец, не являющийся первичным ключом таблицы, все же содержал
- 74. Прочие условия уникальности столбцов Предположим, например, что требуется ограничить данные в таблице SALESREPS таким образом, чтобы
- 75. Прочие условия уникальности столбцов Фундаментальные отличия между первичным ключом и условием уникальности: Таблица может иметь только
- 76. Уникальность и значения NULL Значения NULL создают проблемы в столбце первичного ключа таблицы или в столбце,
- 77. Уникальность и значения NULL Но стандарт SQL не накладывает такое ограничение на столбцы в условии уникальности,
- 78. Уникальность и значения NULL CREATE TABLE ADVISOR_ASSIGNMENTS ( STUDENT_NAME VARCHAR(25), ADVISOR_NAME VARCHAR(25), UNIQUE (STUDENT_NAME, ADVISOR_NAME));
- 79. Уникальность и значения NULL
- 80. Ссылочная целостность Столбец OFFICE является первичным ключом таблицы OFFICES и уникальным образом идентифицирует каждую строку в
- 81. Ссылочная целостность Столбцы REP_OFFICE и OFFICE создают между строками таблиц OFFICES и SALESREPS отношение “предок-потомок”. Для
- 82. Ссылочная целостность Предположим, что вы пытаетесь вставить в таблицу SALESREPS новую строку, содержащую недопустимый идентификатор офиса,
- 83. Ссылочная целостность Допустимое значение для столбца REP_OFFICE должно быть равно одному из значений, содержащихся в столбце
- 84. Ссылочная целостность (проблемы) Добавление новой дочерней строки. Когда происходит добавление новой строки в дочернюю таблицу (SALESREPS),
- 85. Ссылочная целостность (проблемы) Обновление внешнего ключа в дочерней структуре. Это та же проблема, что и в
- 86. Ссылочная целостность (проблемы) Удаление родительской строки. Если из родительской таблицы (OFFICES) будет удалена строка, у которой
- 87. Ссылочная целостность (проблемы) Обновление первичного ключа в родительской строке. Это иная форма проблемы, рассмотренной в предыдущем
- 88. Ссылочная целостность (проблемы) Первая проблема (добавление строки в дочернюю таблицу) решается путем проверки значений в столбцах
- 89. Ссылочная целостность (проблемы) Вторая проблема (обновление дочерней таблицы) решается аналогично, путем проверки нового значения внешнего ключа.
- 90. Ссылочная целостность (проблемы) Третья проблема (удаление родительской строки) является более сложной. Предположим, что вы закрыли офис
- 91. Ссылочная целостность (проблемы) Не удалять из БД офис до тех пор, пока служащие не будут переведены
- 92. Ссылочная целостность (проблемы) Аналогичные сложности существуют и в 4 ситуации (обновление первичного ключа в родительской таблице).
- 93. Ссылочная целостность (проблемы) - Не изменять идентификатор офиса до тех пор, пока служащие не будут переведены
- 94. Ссылочная целостность (проблемы) Автоматически обновить идентификатор офиса этих двух служащих в таблице SALESREPS для того, чтобы
- 95. Ссылочная целостность (проблемы) В столбце REP_OFFICE установить по умолчанию для этих двух служащих некоторое значение, например
- 96. Правила удаления и обновления Для каждого отношения “предок-потомок” в БД, создаваемого внешним ключом, стандарт SQL позволяет
- 97. Правила удаления и обновления Можно задать одно из 4 правил: - RESTRICT – запрещает удаление строки
- 98. Правила удаления и обновления CASCADE – определяет, что при удалении родительской строки все дочерние строки также
- 99. Правила удаления и обновления SET NULL – определяет, что при удалении родительской строки внешним ключам во
- 100. Правила удаления и обновления SET DEFAULT - указывает, что при обновлении значения первичного ключа в родительской
- 101. Правила удаления и обновления ALTER TABLE OFFICES ADD CONSTRAINT HASMGR FOREIGN KEY (MGR) REFERENCES SALESREPS(EMPL_NUM) ON
- 102. Каскадные удаления и обновления Правило RESTRICT является одноуровневым в том смысле, что в отношении “предок-потомок” оно
- 103. Каскадные удаления и обновления Правила удаления и обновления SET NULL и SET DEFAULT являются двухуровневыми; их
- 104. Ссылочные циклы В учебной БД таблица SALESREPS содержит столбец REP_OFFICE – внешний ключ для таблицы OFFICES.
- 105. Ссылочные циклы Предположим, что в 2 таблицах не допускаются значения NULL. INSERT INTO SALESREPS (EMPL_NUN, NAME,
- 106. Ссылочные циклы INSERT INTO SALESREPS (EMPL_NUN, NAME, REP_OFFICE, HIRE_DATE, SALES) VALUES (115, ‘Ben Adams’, NULL, ‘2008-01-01’,
- 107. Внешние ключи и значения NULL В отличие от первичных ключей, внешние ключи в реляционной базе данных
- 108. Расширенные возможности ограничений Ограничения столбцов Домены Ограничения таблиц Утверждения
- 109. Типы ограничений SQL Ограничения NOT NULL Ограничение PRIMARY KEY Ограничение UNIQUE Ограничение FOREIGN KEY Ограничение CHECK
- 111. Скачать презентацию