6-modul · 3-dars: Data types
Daraja: O'rta
Data types. PostgreSQL bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Data types tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya smallint, integer va bigint butun son; numeric aniq o'nli hisob-kitob uchun, real va double precision taxminiy suzuvchi nuqta uchun ishlatiladi. Pul hisobida kerakli aniqlikni oldindan belgilang. timestamp vaqt mintaqasiz kalendar vaqtidir. timestamptz vaqt lahzasini saqlaydi va sessiya mintaqasida ko'rsatadi; kiritilgan asl mintaqa nomini alohida saqlamasangiz u qaytmaydi. UUIDni Java UUID.randomUUID yoki bazadagi mos funksiya yaratishi mumkin; server versiyasi va extension talabini tekshiring. json asl matnni, jsonb qayta ishlangan tuzilmani saqlaydi. -> JSON qiymat, ->> text qaytaradi. hstore extensioni text kalit-qiymat juftliklariga mo'ljallangan. DOMAIN mavjud turga qoida qo'shadi, CREATE TYPE enum yoki composite kabi yangi tur yaratadi. SEQUENCE mustaqil son generatori; identity ustuni uni avtomatik ulaydi. Rollbackdan keyin raqamlarda bo'shliq qolishi normal. TEMP TABLE sessiya yoki tanlangan tranzaksiya chegarasiga bog'liq. CREATE TABLE AS so'rov natijasini nusxalaydi, lekin barcha constraint/indexlarni ko'chirmaydi; LIKE INCLUDING ALL va COPY ham boshqa vazifalarni bajaradi.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/6-module%28database%29.md) [Rasmiy qo‘llanma](https://www.postgresql.org/docs/current/)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
SELECT '{"user":{"age":20}}'::jsonb -> 'user' AS obyekt,
'{"age":20}'::jsonb ->> 'age' AS matn;
SELECT now() AT TIME ZONE 'Asia/Tashkent';
Keng tarqalgan xatolar
- Identity qiymatini qatorlar soni yoki uzluksiz hisob-faktura raqami deb qabul qilmang.
Mashqlar
- JSONdan yoshni text sifatida olib integerga aylantiring; vaqt mintaqasini almashtirib bir lahzani ko'rsating.
- Bir xil ma'lumotni text va varchar(50) da saqlab, uzun qiymat kiritganda nima bo'lishini ko'ring.
Teglar: nazariya, pdp, modul-06