PostgreSQL Tutorial
207 subscribers
17 photos
1 video
4 files
1 link
PostgreSQL bo'yicha bilimlar kanali.

Admin : @Mistrdev

Invite link:
https://t.me/+_cTGIsLgMGVhNzA6
Download Telegram
AND va OR operatorlari.


AND - operatori biz bergan column va value ga mos bolgan malumotlarni olib beradi. Va biz bergan ma'lumotlar bitta row ga tegishli bo'lishi shart.

SELECT first_name, last_name FROM my_contacts WHERE profession = 'doctor' AND profession = 'backend-dev';

OR - operatori biz bergan column va value ga mos bo'lgan malumotlarni olib beradi va biz bergan ma'lumotlar bittadan kop rowlarga ham tegishli bo'ladi.

SELECT first_name, last_name FROM my_contacts WHERE profession = 'doctor' OR interests = 'programming';
❀2πŸ‘2πŸ‘1
LIKE - operatori.

LIKE - operatori biz bergan value ga qarab bazadan shunga o'xshash malumotlarni topib beradi.

SELECT * FROM my_contacts WHERE last_name LIKE '%ov';
Bu sorov bizga ov bilan tugagan malumotlarni olib beradi. Ya'ni % ('foiz') belgisidan oldin qandaydir so'z bor lekin u so'z ov bilan tugagan bo'lsa o'sha malumotlarni bizga chiqarib beradi.


SELECT * FROM my_contacts WHERE interests LIKE 'football%';
Bu so'rov bizga biz ko'rsatgan column ya'ni interests ning ichidan football so'zi bilan boshlangan barcha malumotlarni olib beradi.

SELECT * FROM my_contacts WHERE first_name LIKE 'T%m';
Bu so'rov biz ko'rsatgan value bo'yicha columndan T bilan boshlangan va m bilan tugagan natijalarni qaytaradi.
πŸ‘4
PostgreSQL Tutorial
LIKE - operatori. LIKE - operatori biz bergan value ga qarab bazadan shunga o'xshash malumotlarni topib beradi. SELECT * FROM my_contacts WHERE last_name LIKE '%ov'; Bu sorov bizga ov bilan tugagan malumotlarni olib beradi. Ya'ni % ('foiz') belgisidan oldin…
SELECT * FROM my_contacts WHERE last_name NOT LIKE '%ov';
Bu so'rov bizga last_name columnida ov bilan tugamagan malumotlarni chiqarib beradi.
πŸ‘4
BETWEEN - operatori.
BETWEEN - bizga biz ko'rsatgan valuelar oraligidagi malumotlarni olish uchun yordam beradi.

SELECT * FROM doughnut_list WHERE price BETWEEN 4 AND 8;
Ushbu buyruq bizga column ichidan narxi 4 va 8 oraligidagi malumotlarni olib beradi.
πŸ‘3
IN - operatori.
IN - operatori biz bergan value ga mos va column ichida mavjud bo'lgan malumotlarni chaqirish uchun ishlatiladi.

SELECT * FROM my_contacts WHERE profession IN ('driver', 'cheef', 'backend-dev');

Agar siz IN ning ichidagi malumotlar bor column larni chiqarmasligingiz kerak bo'lib qolsa unda NOT IN dan foydalanib ketishingiz mumkin bo'ladi.

SELECT * FROM my_contacts WHERE profession NOT IN ('driver', 'cheef', 'backend-dev');
πŸ‘7
1. SUM - bu biz ko'rsatib o'tgan column bo'yicha hammasini hisoblab beradi. Masalan bizda narxlar degan column mavjud bo'ladigan bo'lsa undagi hamma narxlarni qo'shib jami narxni hisoblab beradi.

SELECT SUM(price) FROM example_table;

2. ORDER BY - bu biz ko'rsatib o'tgan column bo'yicha agar value lar text bolsa alifbo tartibida chiqarib beradi, agar raqam bo'lsa kichikdan kattaga qarab saralab chiqarib beradi.

SELECT * FROM example_table ORDER BY type;

3. ORDER BY, DESC - bu biz ko'rsatib o'tgan column bo'yicha agar value text bo'lsa alifboga teskariga tartibda saralab beradi, agar son bo'lsa ya'ni integer bo'lsa kattadan kichikka qarab saralab beradi.

SELECT * FROM exampl_table ORDER BY type DESC;
πŸ‘4
Kanaldagi malumotlar foydali bo'layaptimi?
Anonymous Poll
76%
Ha, albatta
24%
Yo'q
πŸ†’8πŸŽ‰2πŸ‘1
1. SELECT MIN(price) FROM example_table;

bu jadvaldagi eng kichik price ni chiqarib beradi.

2. SELECT MAX(price) FROM exaple_table;

bu jadvaldagi eng katta price ni chiqarib beradi.

3. SELECT AVG(price) FROM example_table;

bu jadvaldagi price ning o'rtachasini chiqarib beradi.

4. SELECT COUNT(price) FROM example_table;

bu jadvaldagi nechta roq borligini sanab beradi.

5. SELECT MAX(price) FROM example_table GROUP BY type;

bu so'rov example_table jadvalidan type columini bo'yicha eng katta price ni chiqarib beradi.

6. SELECT DISTINCT name FROM example_table;

bu so'rov example_table jadvalidagi name column i bo'yicha name dagi o'xshash value lar bittadan kop bo'lsa bitta qilib chiqarib beradi.

7. SELECT * FROM example_table LIMIT 2;

bu so'rov jadvaldagi malumotlarning boshidagi ikkitasini chiqarib berishga xizmat qiladi.


Postlarim foydali bo'layotgan bo'lsa shunchaki tekin reaksiyasini bosib ketingggg.
Keyingi postimiz nasib qilsa ALTER TABLE haqida bo'ladi. 😎
πŸ‘9πŸ‘1
ALTER TABLE example_table ADD COLUMN id SERIAL PRIMARY KEY;

ushbu so'rov bizga bazamizda mavjud bo'lgan table ga o'zgartirish kiritishda yordam beradi. Bizda example_table nomli jadval bor va unga SERIAL PRIMARY KEY qilib column qo'shayapmiz.

ALTER TABLE example_table RENAME TO example;

ushbu so'rov bizga example_table nomli jadval nomini example ga o'zgartirib berish uchun xizmat qiladi.

ALTER TABLE example_table RENAME phone TO phone_number;

bu so'rov bizga jadvaldagi phone column nomini phone_number ga o'zgartirib beradi.

ALTER TABLE example_table ALTER COLUMN TYPE VARCHAR(60);

bu so'rov example_table jadvalidagi columnning turini o'zgartirishda yordam beradi.
Agar columnning turi INT, VARCHAR yoki boshqa turda bo'lsa uni VARCHAR(60) ga o'zgartirib beradi.

ALTER TABLE example_table ALTER COLUMN phone_number SET NOT NULL;

bu so'rov jadvaldagi phone_number ga NOT NULL turini qo'shib beradi.

ALTER TABLE example_table DROP COLUMN nickname;

bu so'rov jadvaldan nickname columinini o'chirib beradi.

ALTER TABLE example_table ADD COLUMN profession_id INT REFERENCES profession(id);

ushbu so'rov bizga proffession jadvalidagi id ga qarashli profession_id nomli columnni jadvalga qo'shib beradi.
πŸ‘5πŸ”₯1
PostgreSql da JOIN haqida bilasizmi?
Anonymous Poll
40%
Ha
60%
Yo'q, endi bilib olaman
πŸ”₯1
SELECT contacts.first_name, contacts.last_name, profession.name FROM contacts INNER JOIN profession ON contacts.profession_id = profession.id;

bu so'rov bizga ikkita table ni bir vaqtda bir-biriga bog'lash uchun xizmat qiladi.
Contacts table ning ichidan first_name, last_name ni profession table ning ichidan name ni ko'rsatadi va contacts.profession_id (ya'ni contacts tablening ichidagi profession id columni) ni INNER JOIN orqali profession ning ichidagi id ga tenglab olib malumotlarni chiqarib beradi.

SELECT c.first_name, c.last_name, p.name FROM contacts AS c LEFT OUTER JOIN profession AS p ON profession_id = p.id;

bu so'rov ham xuddi tepadigisiga o'xshaydi. Ammo bu contacts ning ichidagi profession_id ga value berilmagan bo'lsa ham chiqarib beradi birinchi so'rov esa faqat value berilganlarini chiqarib berar edi.
πŸ‘2❀1πŸ”₯1
Media is too big
VIEW IN TELEGRAM
πŸ“Ή PostgreSQL 1-dars. Kompyuterimizga Postgresni o'rnatamiz

πŸ“Ή720p | Uzbek tilida
Linuxda postgresql ning statusini tekshirib ko'rish πŸ‘‡
sudo service postgresql status


Linuxda postgresql terminaldan o'chirib qo'yish, yoqish, qaytadan boshlash uchun komanda
sudo service postgresql start/stop/restart
πŸ‘5
Ubuntu serverdagi Postgresql ma'lumot omboridagi ma'lumotlarni oddiy sodda usulda boshqa serverga dump orqali kopiya olish
❀2πŸ‘1
postgresdump.txt
1.7 KB
CREATE TABLE IF NOT EXISTS "diaries" (
"id" SERIAL ,
"text" VARCHAR(500) NOT NULL,
"imageUrl" VARCHAR(1000),
"createdAt" TIMESTAMP WITH TIME ZONE NOT NULL,
"updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL,
PRIMARY KEY ("id")
);



TimeStamp bilan ishlashda qiynalganingizda bemalol olib ishlatishingiz mumkin!
πŸ‘1
Assalomu alaykum, hamma salomatmi? Uygonamiz akalar bugun postgresqlga yangi extension o'rnatish va query ichida function ishlatishni koramiz nasib qilsa!
πŸ‘4
Postgre SQL da o'zimiz uchun NUMERIC, VARCHAR, TIMESTAMP, BOOLEAN va boshqa type larga o'xshagan type yaratib ko'ramiz!

Masalan bizda users table bor va unda status column bor u columnda esa active va passive valuelar bo'lishi kerak biz data create qilayotganimizda adashib boshqa value berib yubormasligimiz uchun o'zimizga quyidagicha query orqali type yaratib olamiz πŸ‘‡

CREATE TYPE user_status AS ENUM ('active', 'passive');

Keyin esa misol uchun users table quyidagicha yaratiladi πŸ‘‡

CREATE TABLE IF NOT EXISTS movies(
id SERIAL PRIMARY KEY,
full_name VARCHAR(200),
status USER_STATUS NOT NULL
);


Users table ning status columniga type create qilganimizda bergan nomni berib ketamiz ya'ni user_status ni!
Biz yaratgan users table dagi status columni endi faqatgina active va passive value larini qabul
qiladi.βœ…


*MISSION PASSED


Malumotlarimiz foydali bo'layotgan bo'lsa reaksiya bosing.
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘2
Biz quyidagicha jadvalni yaratishimiz kerak πŸ‘‡

user = {
id: "uuid",
phone: 998933333333,
password: "adadsfuh25235561324sdf",
full_name: "John Doe",
role: "user" // user, admin
}


Bunday holatda nima qilamiz. Bunday holatda biz PostgreSql ga o'zimizga kerakli UUID extension ni o'rnatib olamiz: πŸ‘‡

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

Extension o'rnatib oldik endi bizga user ning role uchun user va admin value laridan boshqa valuelarini kiritib qo'ymasligi uchun type yaratib olamiz πŸ‘‡

CREATE TYPE role_user AS ENUM ('user', 'admin');

Type ham yaratib oldik endi query yozishimiz kerak. Table create query sini quyidagicha yozamiz: πŸ‘‡

CREATE TABLE IF NOT EXISTS users(
id uuid DEFAULT uuid_generate_v4(),
phone INTEGER NOT NULL ,
password TEXT NOT NULL ,
full_name VARCHAR(70),
role role_user NOT NULL,
PRIMARY KEY (id)
);


Ushbu querydagi asosiy joylari bu PRIMARY KEY id uchun biz UUID dan foydalandik va DEFAULT kiritib ketishi uchun UUID extensionning ichida 4 versiyasi func ni chaqirib ishlatib yubordik! Qolgan columnlarida esa avval yozgan querylar. Role uchun esa o'zimiz yozgan USER_ROLE type dan foydalandik!
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘3