ЧаÑÑÑ II. ЯзÑк SQL
Ð ÑÑой ÑаÑÑи книги опиÑÑваеÑÑÑ Ð¸ÑполÑзование ÑзÑка SQL в Postgres Pro. ÐÑ Ð½Ð°ÑнÑм Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð¾Ð±Ñего ÑинÑакÑиÑа SQL, заÑем ÑаÑÑкажем, как ÑоздаваÑÑ ÑÑÑÑкÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ , как наполнÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ как вÑполнÑÑÑ Ð·Ð°Ð¿ÑоÑÑ Ðº ней. РпÑодолжении бÑдÑÑ Ð¿ÐµÑеÑиÑÐ»ÐµÐ½Ñ ÑÑÑеÑÑвÑÑÑие ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ ÑÑнкÑии, пÑименÑемÑе Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ SQL. РнаконеÑ, законÑиÑÑÑ ÑÑа ÑаÑÑÑ ÑаÑÑмоÑÑением важнÑÑ Ð°ÑпекÑов наÑÑÑойки Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑималÑной пÑоизводиÑелÑноÑÑи.
ÐаÑеÑиал ÑÑой ÑаÑÑи ÑпоÑÑдоÑен Ñак, ÑÑÐ¾Ð±Ñ Ð½Ð¾Ð²Ð¸Ñок мог пÑоÑиÑаÑÑ ÐµÑ Ð¾Ñ Ð½Ð°Ñала до конÑа и полноÑÑÑÑ Ð¿Ð¾Ð½ÑÑÑ Ð²Ñе ÑемÑ, не Ð·Ð°Ð±ÐµÐ³Ð°Ñ Ð²Ð¿ÐµÑÑд. ÐÑи ÑÑом Ð³Ð»Ð°Ð²Ñ ÑÐ´ÐµÐ»Ð°Ð½Ñ ÑамодоÑÑаÑоÑнÑми, Ñак ÑÑо опÑÑнÑе полÑзоваÑели могÑÑ ÑиÑаÑÑ Ð³Ð»Ð°Ð²Ñ Ð¿Ð¾ оÑделÑноÑÑи. ÐнÑоÑмаÑÐ¸Ñ Ð² ÑÑой ÑаÑÑи книги пÑедÑÑавлена в повеÑÑвоваÑелÑном ÑÑиле и Ñазделена по Ñемам. ÐÑли же Ð²Ð°Ñ Ð¸Ð½ÑеÑеÑÑÐµÑ ÑоÑмалÑное и полное опиÑание опÑеделÑнной командÑ, Ñм. ЧаÑÑÑ VI.
ЧиÑаÑели ÑÑой ÑаÑÑи книги Ð´Ð¾Ð»Ð¶Ð½Ñ Ñже знаÑÑ, как подклÑÑаÑÑÑÑ Ðº базе даннÑÑ Postgres Pro и вÑполнÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL. ÐÑли Ð²Ñ ÐµÑÑ Ð½Ðµ знаеÑе ÑÑого, ÑекомендÑеÑÑÑ ÑнаÑала пÑоÑиÑаÑÑ Ð§Ð°ÑÑÑ I. ÐÐ¾Ð¼Ð°Ð½Ð´Ñ SQL обÑÑно вводÑÑÑÑ Ð² psql â инÑеÑакÑивном ÑеÑминалÑном пÑиложении Postgres Pro, но можно воÑполÑзоваÑÑÑÑ Ð¸ дÑÑгими пÑогÑаммами Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñми ÑÑнкÑиÑми.
СодеÑжание
- 4. СинÑакÑÐ¸Ñ SQL
- 5. ÐпÑеделение даннÑÑ
- 5.1. ÐÑÐ½Ð¾Ð²Ñ ÑаблиÑ
- 5.2. ÐнаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ
- 5.3. ÐенеÑиÑÑемÑе ÑÑолбÑÑ
- 5.4. ÐгÑаниÑениÑ
- 5.5. СиÑÑемнÑе ÑÑолбÑÑ
- 5.6. Ðзменение ÑаблиÑ
- 5.7. ÐÑава
- 5.8. ÐолиÑики заÑиÑÑ ÑÑÑок
- 5.9. Ð¡Ñ ÐµÐ¼Ñ
- 5.10. ÐаÑледование
- 5.11. СекÑиониÑование ÑаблиÑ
- 5.12. СÑоÑонние даннÑе
- 5.13. ÐÑÑгие обÑекÑÑ Ð±Ð°Ð· даннÑÑ
- 5.14. ÐÑÑлеживание завиÑимоÑÑей
- 5.2. ÐнаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ
- 5.1. ÐÑÐ½Ð¾Ð²Ñ ÑаблиÑ
- 6. ÐодиÑикаÑÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ
- 7. ÐапÑоÑÑ
- 7.1. ÐбзоÑ
- 7.2. ТаблиÑнÑе вÑÑажениÑ
- 7.3. СпиÑки вÑбоÑки
- 7.4. СоÑеÑание запÑоÑов (
UNION,INTERSECT,EXCEPT)- 7.5. СоÑÑиÑовка ÑÑÑок (
ORDER BY)- 7.6.
LIMITиOFFSET- 7.7. СпиÑки
VALUES- 7.8. ÐапÑоÑÑ
WITH(ÐбÑие ÑаблиÑнÑе вÑÑажениÑ) - 7.2. ТаблиÑнÑе вÑÑажениÑ
- 7.1. ÐбзоÑ
- 8. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
- 8.1. ЧиÑловÑе ÑипÑ
- 8.2. ÐенежнÑе ÑипÑ
- 8.3. СимволÑнÑе ÑипÑ
- 8.4. ÐвоиÑнÑе ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
- 8.5. Ð¢Ð¸Ð¿Ñ Ð´Ð°ÑÑ/вÑемени
- 8.6. ÐогиÑеÑкий Ñип
- 8.7. Ð¢Ð¸Ð¿Ñ Ð¿ÐµÑеÑиÑлений
- 8.8. ÐеомеÑÑиÑеÑкие ÑипÑ
- 8.9. ТипÑ, опиÑÑваÑÑие ÑеÑевÑе адÑеÑа
- 8.10. ÐиÑовÑе ÑÑÑоки
- 8.11. ТипÑ, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑекÑÑового поиÑка
- 8.12. Тип UUID
- 8.13. Тип XML
- 8.14. Ð¢Ð¸Ð¿Ñ JSON
- 8.15. ÐаÑÑивÑ
- 8.16. СоÑÑавнÑе ÑипÑ
- 8.17. ÐиапазоннÑе ÑипÑ
- 8.18. Ð¢Ð¸Ð¿Ñ Ð´Ð¾Ð¼ÐµÐ½Ð¾Ð²
- 8.19. ÐденÑиÑикаÑоÑÑ Ð¾Ð±ÑекÑов
- 8.20. Тип
pg_lsn- 8.21. ÐÑевдоÑипÑ
- 8.2. ÐенежнÑе ÑипÑ
- 8.1. ЧиÑловÑе ÑипÑ
- 9. ФÑнкÑии и опеÑаÑоÑÑ
- 9.1. ÐогиÑеÑкие опеÑаÑоÑÑ
- 9.2. ФÑнкÑии и опеÑаÑоÑÑ ÑÑавнениÑ
- 9.3. ÐаÑемаÑиÑеÑкие ÑÑнкÑии и опеÑаÑоÑÑ
- 9.4. СÑÑоковÑе ÑÑнкÑии и опеÑаÑоÑÑ
- 9.5. ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð²Ð¾Ð¸ÑнÑÑ ÑÑÑок
- 9.6. ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð±Ð¸ÑовÑми ÑÑÑоками
- 9.7. ÐоиÑк по ÑаблонÑ
- 9.8. ФÑнкÑии ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
- 9.9. ÐпеÑаÑоÑÑ Ð¸ ÑÑнкÑии даÑÑ/вÑемени
- 9.10. ФÑнкÑии Ð´Ð»Ñ Ð¿ÐµÑеÑиÑлений
- 9.11. ÐеомеÑÑиÑеÑкие ÑÑнкÑии и опеÑаÑоÑÑ
- 9.12. ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ ÑеÑевÑми адÑеÑами
- 9.13. ФÑнкÑии и опеÑаÑоÑÑ ÑекÑÑового поиÑка
- 9.14. ФÑнкÑии генеÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ UUID
- 9.15. XML-ÑÑнкÑии
- 9.16. ФÑнкÑии и опеÑаÑоÑÑ JSON
- 9.17. ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑми
- 9.18. УÑловнÑе вÑÑажениÑ
- 9.19. ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð¼Ð°ÑÑивами
- 9.20. ÐиапазоннÑе/мÑлÑÑидиапазоннÑе ÑÑнкÑии и опеÑаÑоÑÑ
- 9.21. ÐгÑегаÑнÑе ÑÑнкÑии
- 9.22. ÐконнÑе ÑÑнкÑии
- 9.23. ÐÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð·Ð°Ð¿ÑоÑов
- 9.24. СÑавнение ÑаблиÑнÑÑ ÑÑÑок и маÑÑивов
- 9.25. ФÑнкÑии, возвÑаÑаÑÑие множеÑÑва
- 9.26. СиÑÑемнÑе инÑоÑмаÑионнÑе ÑÑнкÑии и опеÑаÑоÑÑ
- 9.27. ФÑнкÑии Ð´Ð»Ñ ÑиÑÑемного админиÑÑÑиÑованиÑ
- 9.28. ТÑиггеÑнÑе ÑÑнкÑии
- 9.29. ФÑнкÑии ÑобÑÑийнÑÑ ÑÑиггеÑов
- 9.30. СиÑÑемнÑе инÑоÑмаÑионнÑе ÑÑнкÑии
- 9.2. ФÑнкÑии и опеÑаÑоÑÑ ÑÑавнениÑ
- 9.1. ÐогиÑеÑкие опеÑаÑоÑÑ
- 10. ÐÑеобÑазование Ñипов
- 11. ÐндекÑÑ
- 11.1. Ðведение
- 11.2. Ð¢Ð¸Ð¿Ñ Ð¸Ð½Ð´ÐµÐºÑов
- 11.3. СоÑÑавнÑе индекÑÑ
- 11.4. ÐндекÑÑ Ð¸ пÑедложениÑ
ORDER BY- 11.5. ÐбÑединение неÑколÑÐºÐ¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
- 11.6. УникалÑнÑе индекÑÑ
- 11.7. ÐндекÑÑ Ð¿Ð¾ вÑÑажениÑм
- 11.8. ЧаÑÑиÑнÑе индекÑÑ
- 11.9. СканиÑование ÑолÑко индекÑа и покÑÑваÑÑие индекÑÑ
- 11.10. СемейÑÑва и клаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов
- 11.11. ÐндекÑÑ Ð¸ пÑавила ÑоÑÑиÑовки
- 11.12. ÐонÑÑÐ¾Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
- 11.2. Ð¢Ð¸Ð¿Ñ Ð¸Ð½Ð´ÐµÐºÑов
- 11.1. Ðведение
- 12. ÐолноÑекÑÑовÑй поиÑк
- 12.1. Ðведение
- 12.2. ТаблиÑÑ Ð¸ индекÑÑ
- 12.3. УпÑавление ÑекÑÑовÑм поиÑком
- 12.4. ÐополниÑелÑнÑе возможноÑÑи
- 12.5. ÐнализаÑоÑÑ
- 12.6. СловаÑи
- 12.7. ÐÑÐ¸Ð¼ÐµÑ ÐºÐ¾Ð½ÑигÑÑаÑии
- 12.8. ТеÑÑиÑование и оÑладка ÑекÑÑового поиÑка
- 12.9. Ð¢Ð¸Ð¿Ñ Ð¸Ð½Ð´ÐµÐºÑов, пÑедпоÑиÑаемÑе Ð´Ð»Ñ ÑекÑÑового поиÑка
- 12.10. ÐоддеÑжка psql
- 12.11. ÐгÑаниÑениÑ
- 12.2. ТаблиÑÑ Ð¸ индекÑÑ
- 12.1. Ðведение
- 13. УпÑавление конкÑÑенÑнÑм доÑÑÑпом
- 13.1. Ðведение
- 13.2. ÐзолÑÑÐ¸Ñ ÑÑанзакÑий
- 13.3. ЯвнÑе блокиÑовки
- 13.4. ÐÑовеÑки ÑелоÑÑноÑÑи даннÑÑ Ð½Ð° ÑÑовне пÑиложениÑ
- 13.5. ÐбÑабоÑка Ñбоев ÑеÑиализаÑии
- 13.6. ÐгÑаниÑениÑ
- 13.7. ÐлокиÑовки и индекÑÑ
- 13.2. ÐзолÑÑÐ¸Ñ ÑÑанзакÑий
- 13.1. Ðведение
- 14. ÐпÑимизаÑÐ¸Ñ Ð¿ÑоизводиÑелÑноÑÑи
- 14.1. ÐÑполÑзование
EXPLAIN- 14.2. СÑаÑиÑÑика, иÑполÑзÑÐµÐ¼Ð°Ñ Ð¿Ð»Ð°Ð½Ð¸ÑовÑиком
- 14.3. УпÑавление планиÑовÑиком Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑвнÑÑ Ð¿Ñедложений
JOIN- 14.4. Ðаполнение Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
- 14.5. ÐпÑимизаÑиÑ, ÑгÑожаÑÑÐ°Ñ ÑÑабилÑноÑÑи
- 14.2. СÑаÑиÑÑика, иÑполÑзÑÐµÐ¼Ð°Ñ Ð¿Ð»Ð°Ð½Ð¸ÑовÑиком
- 14.1. ÐÑполÑзование
- 15. ÐаÑаллелÑнÑй запÑоÑ