SQL за обикновените смъртни. SQL заявки за обикновените смъртни Майкъл Дж
SQL ЗА СМЪРТНИТЕ е пълно въведение в структуриран езикзаявки, написани специално за начинаещи. Ако сте нов в управлението на бази данни, тази книга ще ви научи как да работите с SQL лесно и плавно, като използвате прости заявки и сложни операции. За да овладеете SQL:
- Осмислете концепциите за управление на бази данни с кратко и просто въведение в релационните бази данни.
- Следвайте тези инструкции за използване на основни SQL команди за намиране и работа с информация, поставена в таблици с данни. Научете как да избирате и обобщавате данни, както и умело да ги управлявате.
- Работете ефективно със съставни таблици с данни, като прилагате усъвършенствани техники за заявки към повече от една таблица едновременно, като конструирате сложни заявкии подзаявки.
- Създайте нови таблици с данни за бизнес приложения за търговия на дребно. Научете важни принципи за ефективно проектиране на бази данни и техники за осигуряване на целостта и защитата на данните.
- Научете се да използвате SQL с езици за програмиране, като използвате специалната глава за програмист.
SQL ЗА СМЪРТНИТЕ СМЪРТНИ е незаменим наръчник за всяко внедряване на Structured Query Language, което включва бърза препратка към стандартния SQL и описание на общите свойства на нестандартния SQL.
1. Въведение в релационните бази данни
2. Въведение в SQL
3. Използване на SQL за извличане на данни от таблици
4. Използване на релационни и булеви оператори за създаване на по-сложни предикати
5. Използване на специални оператори в „условия“
6. Обобщаване на данни с помощта на функции за агрегиране
7. Форматиране на резултатите от заявката
8. Използване на множество таблици в една заявка
9. Операция за свързване, чиито операнди са представени от една таблица
10. Заявки за влагане
11. Свързани подзаявки
12. Използване на оператора EXISTS
13. Използване на оператори ANY, ALL и SOME
14. Използване на клаузата UNION
15. Въвеждане, изтриване и промяна на стойности на полета
16. Използване на подзаявки с команди за актуализиране
17. Създаване на таблици
18. Ограничения върху набора от валидни стойности на данни
19. Поддръжка на целостта на данните
20. Въведение в изгледите
21. Промяна на стойности с изгледи
22. Определяне на права за достъп до данни
23. Глобални аспекти на SQL
24. Как се поддържа редът в базата данни? SQL данни
25. Използване на SQL с други езици за програмиране (вграден SQL)
Приложения
А. Отговори на упражненията
Б. SQL типове данни
C. Някои общи отклонения от SQL стандарта
D. Помощ за синтаксис и команди
E. Таблици, използвани в примерите
f.sql днес
Въведение в релационните бази данни
… Ние също ще използваме двата термина взаимозаменяемо, когато обсъждаме SQL. Вече сте запознати с простите таблици. Въпреки цялата си краткост и простота, те са доста подходящи за демонстриране на най-важните характеристики на езика, както по-късно ще видите сами. Понякога ще въведем други таблици или ще разгледаме други данни в една от тези таблици, за да покажем някои допълнителни функциитехните приложения. Вече сме готови да се потопим директно в SQL. Следваща глава, до
към който ще трябва да се връщате от време на време, дава ви обща представа за езика и ви ориентира в изложения в книгата материал.
Въведение в SQL
Тази глава обхваща голям бройосновна информация, която дава обща представа за SQL. Научихте как е структуриран, как се използва, как изразява данни, как е дефиниран и от кого (и несъответствията, които идват с него), както и някои от конвенциите и терминологията, използвани за описването му. Следващата глава обяснява подробно формирането и работата на командите. Ще се запознаете с командата, която ви позволява да извличате информация от таблици и е една от най-често използваните в SQL. Ще можете сами да извличате определена информация от базата данни.
Глобални аспекти на SQL
- Синоними (как да създадете нови имена за обекти с данни)
- Пространство в базата данни (dbspace) (как да се раздели наличното пространство в базата данни)
- Обработка на транзакция (как да запазите или отхвърлите промените в базата данни)
- Контрол на паралелността (как SQL ви позволява да елиминирате влиянието на командите една върху друга)
Синонимите са обекти, имат имена и (понякога) собственици, но не съществуват независимо от таблицата, чието име заместват. Те могат да бъдат споделени и по този начин достъпни за всеки, който има достъп до обекта, или могат да бъдат собственост само на определен потребител. Dbspaces са подраздели на базата данни, разпределени на потребителите. Свързаните таблици, които се обединяват често, се съхраняват най-добре в едно и също dbspace. COMMIT и ROLLBACK са команди, използвани за записване като група на всички промени в базата данни от предишната команда COMMIT или ROLLBACK или от началото на сесията, или за отхвърлянето им. Контролът на паралелността определя степента, в която едновременните команди влияят една на друга. Това е мястото, където „работещите“ разлики влизат в действие в това как функционират базите данни и как да се изолират резултатите от изпълнението на команда.
Как се поддържа редът в SQL база данни
И така, SQL системите използват набор от таблици, който се нарича системен каталог на структурата на базата данни. Тези таблици могат да бъдат запитвани, но не могат да бъдат актуализирани. Можете също да добавяте (и изтривате) колони за коментари към таблиците SYSTEMCATALOG и SYSTEMCOLUMNS. Създаването на изгледи за тези таблици е отличен начин да се определи точно до каква информация потребителите имат разрешение за достъп. Това приключва нашето обсъждане на SQL интерактивно. Следващата глава ще разгледа проблемите SQL приложениядиректно в програми, написани на езици за програмиране; тази употреба ви позволява да се възползвате от взаимодействието на програмата с базата данни.
Използване на SQL с други езици за програмиране (вграден SQL)
SQL командите са включени в процедурните езици за програмиране, за да комбинират силните страни на двата подхода. Внедряването на тази функция изисква някои SQL разширения. Вградените SQL команди се превеждат с помощта на програма, наречена прекомпилатор (препроцесор), за да се създаде програма, която компилаторът на език от високо ниво разбира. Вградените SQL команди се заменят с извикващи подпрограми, които са създадени с помощта на вградения препроцесор; тези процедури се наричат модули за достъп. С този подход ANSI поддържа вграден SQL за езици Програмиране на Паскал, FORTRAN, COBOL, PL/1. Други езици също се използват от разработчиците. Най-важният от тях е C. Когато описвате вградения SQL, обърнете специално внимание на следното:
- Всички вградени SQL команди започват с думите EXEC SQL и завършват в зависимост от използвания език на високо ниво.
- Всички езикови променливи на високо ниво, използвани в SQL команди, трябва да бъдат изброени в раздела за SQL декларации, преди да бъдат използвани.
- Ако езикови променливи от високо ниво се използват в SQL команди, те трябва да бъдат предхождани от двоеточие.
- Резултатът от заявката може да се съхранява директно в езикови променливи от високо ниво, използвайки INTO, ако и само ако заявката извлича един ред.
- Курсорите могат да се използват за съхраняване на изхода на заявката и достъп до него ред по ред. Курсорите се декларират (заедно с дефиницията на заявката, чийто изход съдържа курсора), отворени (съответстващи на изпълнението на заявката) и затворени (съответстващи на премахване на изхода от курсора, прекъсване на връзката между изхода и курсора). Докато курсорът е отворен, можете да използвате командата FETCH за достъп до изхода на заявката, един ред за всяко изпълнение на командата FETCH.
- Курсорите могат да бъдат актуализирани или само за четене. За да може да се актуализира, курсорът трябва да отговаря на всички същите критерии като изгледа. Той не трябва да използва ПОРЪЧАЙ оферти VU и UNION, които не са разрешени за използване в изгледа. Курсорът, който не може да се актуализира, е курсор само за четене.
- Ако курсорът може да се актуализира, той може да се използва за манипулиране на редове, използвани от вградените SQL команди UPDATE и DELETE от клаузата WHERE CURRENT OF. DELETE или UPDATE трябва да принадлежат към същата таблица, която е достъпна чрез курсора на заявката.
- SQLCODE може да се декларира като променлива от числов тип за всяка програма, която използва вграден SQL. Стойностите на тази променлива се задават автоматично след изпълнение на всяка SQL команда.
- Ако SQL командата се изпълнява нормално, но не генерира изход или не прави очакваните промени в базата данни, SQLCODE е настроен на 100. Ако командата генерира грешка, тогава SQLCODE е настроен на някаква отрицателна стойност, която описва причината за грешката , в зависимост от конкретната SQL система. В противен случай SQLCODE е нула.
- Клаузата WHENEVER може да се използва за указване на действието, което да се предприеме, ако SQLCODE се изчисли на 100 (НЕ НАМЕРЕНО - не е намерено) или отрицателна стойност (SQLERROR - възникна грешка при изпълнение на SQL). Това действие е да отидете до определена точка в програмата (GOTO<метка>) или за извършване на „празно действие“ (ПРОДЪЛЖИ, еквивалентно на „не правете нищо“). По подразбиране е "празно действие".
- Като индикатори могат да се използват само числови променливи. Индикаторните променливи следват имена на други променливи в SQL израза без никакви разделителни знаци, с изключение на думата INDICATOR.
- Обикновено стойността на индикаторната променлива е 0. Ако SQL командата се опита да постави NULL стойност в езикова променлива от високо ниво, която използва този индикатор, тогава тя приема отрицателна стойност. Това свойство може да се използва за защита от грешки и като флаг за маркиране на NULL стойности в SQL за специална интерпретация в основната програма.
- Индикаторните променливи могат да се използват за вмъкване на NULL стойности в оператори SQL INSERT или UPDATE. Те приемат положителни стойности, когато възникне ситуация на съкращаване на низ.