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
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
π8π2π1
1.
2.
3.
4.
5.
6.
7.
Postlarim foydali bo'layotgan bo'lsa shunchaki tekin reaksiyasini bosib ketingggg.
Keyingi postimiz nasib qilsa
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
π₯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
πΉ720p | Uzbek tilida
Linuxda postgresql ning statusini tekshirib ko'rish π
sudo service postgresql statusLinuxda postgresql terminaldan o'chirib qo'yish, yoqish, qaytadan boshlash uchun komanda
sudo service postgresql start/stop/restart
π5
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
Masalan bizda users table bor va unda status column bor u columnda esa active va passive valuelar bo'lishi kerak biz dataπ
Keyin esa misol uchunπ
Users table ning status columniga type create qilganimizda bergan nomni berib ketamiz ya'ni
Malumotlarimiz foydali bo'layotgan bo'lsa reaksiya bosing.
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 π
Bunday holatda nima qilamiz. Bunday holatda biz PostgreSql ga o'zimizga kerakliπ
Extension o'rnatib oldik endi bizga user ning role uchunπ
Type ham yaratib oldik endi query yozishimiz kerak. Table create query sini quyidagicha yozamiz:π
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!
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