A VG() – Ustundagi hamma qiymatlar o’rtasi qiymatini hisoblaydi.
AVG() – qiymqatlar o`rta arifmetigini hisoblash.
“qurilma” jadvalidagi qurilmalar id larining o’rta arifmetigini aniqlaymiz.
So`rov: Select avg(id) as ‘qurilma id lari orta arifmetigi ’ from qurilma;
20.MAX agregat funksiyasi qanday vazifani bajaradi
|
Ustundagi barcha qiymatlarning eng kattasini hisoblaydi.
MAX ()sintaksisi
Funktsiya MAX()tanlangan ustunning eng katta qiymatini qaytaradi.
SELECT MAX(column_name)
FROM table_name
WHERE condition;
|
21.MIN agregat funksiyasi qanday vazifani bajaradi
|
Ustundagi barcha qiymatlarning eng kchigini hisoblaydi
MIN ()sintaksisi
Funktsiya MIN()tanlangan ustunning eng kichik qiymatini qaytaradi.
SELECT MIN(column_name)
FROM table_name
WHERE condition;
|
22.SQL tilidagi matematik funksiyalarga misol
|
ABS, RAND, ROUND, POWER, SORT, SIN, COS, EXP, LOG
ABS (son) – sonning absolyut qiymatini hisoblaydi;
RAND(utun son) – 0 va 1 oralig’ida berguli siljiydigan favqulotdagi sonni hisoblaydi;
ROUND(son, aniqlik) – ko’rsatilgan aniqlikda sonni yaxlitlaydi.
POWER(son, daraja) – sonni ko’rsatilgan darajaga ko’taradi;
SORT(son) – sondan kvadrat ildiz chiqaradi;
SIN(burchak) – radianlarda ifodalangan burchak sinusini hisoblaydi;
COS(burchak) – radianlarda ifodalangan burchak kosinusini hisoblaydi;
EXP(son) – sonnining eksponentasini hisoblaydi;
LOG(son) – sonning natural logarifmini hisoblaydi;
|
23.SQL tilidagi qatorli funksiyalarga misol keltiring
|
ASCII()
Eng chap tomondagi belgining raqamli qiymatini qaytaradi
BIN()
Argumentning satrli tasvirini qaytaradi
CHAR_LENGTH()
Argumentdagi belgilar sonini qaytaradi
FORMAT()
Belgilangan kasrlar soniga formatlangan raqamni qaytaradi
|
24.SQL tilidagi sana-vaqt funksiyalariga misol keltiring
|
MySQL ma'lumotlar bazasida sana yoki sana/vaqt qiymatini saqlash uchun quyidagi ma'lumotlar turlari bilan birga keladi:
DATE- YYYY-MM-DD formati
DATETIME- format: YYYY-AA-KK HH:MI:SS
TIMESTAMP- format: YYYY-AA-KK HH:MI:SS
YEAR- YYYY yoki YY formati
Eslatma: Sana ma'lumotlari turi ma'lumotlar bazasida yangi jadval yaratishda ustun uchun o'rnatiladi!
Biz quyidagi SELECTbayonotdan foydalanamiz:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
GETDATE() –tizim faol sanasini qaytaradi;
ISDATE(qator) – qatorning ko‘rsatilgan sana formatiga moslini aniqlaydi;
DAY(sana) – ko‘rsatilgan sana raqamini qaytaradi;
MONTH(sana) – ko‘rsatilgan sanadagi oy raqamini qaytaradi;
YEAR(sana) – ko‘rsatilgan yil raqamini qaytaradi;
DATAADD(tur,raqam,sana) – sanaga ko‘rsatilgan tur birligidagi raqamni qo‘sadi (yil, oy, kun, saot va boshqalar).
|
28.
Jadvallami birlashtirish qanday amalga oshiriladi
|
Rasmiy va haqiqiy parametrlar
Rasmiy va haqiqiy parametrlar o'rtasidagi farqni tushunish juda muhimdir. Rasmiy parametrlar modul sarlavhalari parametrlari ro'yxatida e'lon qilingan nomlar, haqiqiy parametrlar esa modul chaqirilganda parametrlar ro'yxatiga joylashtirilgan qiymatlar va iboralardir.
Rasmiy va haqiqiy parametrlar orasidagi farq, shuningdek, total_sales funksiyasini tushunishimizga yordam beradi. Uning sarlavhasi quyidagicha ko'rinadi:
FUNCTION total_sales
(company_id_in IN company.company_id%TYPE,
status_in IN order.status_code%TYPE DEFAULT NULL)
RETURN std_types.dollar_amount;
Total_salesning rasmiy parametrlari:
company_id_in - asosiy kalit (kompaniya identifikatori).
status_in — hisob-kitobga kiritilgan buyurtmalar holati.
Ushbu rasmiy parametrlar moduldan tashqarida mavjud emas. Ularni dasturda foydalanilganda modulga o'tkaziladigan haqiqiy qiymatlarni (ya'ni haqiqiy parametrlar) o'ziga xos "o'rnini bosuvchi" deb hisoblash mumkin.
Total_sales ga qo'ng'iroq qilishda siz ikkita argumentni taqdim etishingiz kerak, ular o'zgaruvchilar, doimiylar yoki literallar bo'lishi mumkin (OUT va IN OUT rejimlaridagi parametrlar uchun ular o'zgaruvchilar bo'lishi kerak). Quyidagi misolda company_id o'zgaruvchisi kompaniya yozuviga ishora qiluvchi asosiy kalitni o'z ichiga oladi. Total_sales funksiyasiga birinchi uchta qo'ng'iroq qattiq kodlangan buyurtma holati qiymatlarini o'tkazadi va oxirgi qo'ng'iroq holatni ko'rsatmaydi; bu holda, funktsiya status_in parametrini sarlavhada ko'rsatilgan standart qiymatga o'rnatadi:
new_sales := total_sales (company_id, 'N');
paid_sales := total_sales (company_id, 'P');
shipped_sales := total_sales (company_id, 'S');
all_sales := total_sales (company_id);
|
29 .UNION kalit so`zining vazifasi
|
Union operatori ikki yoki undan ortiq so'rovlar natijalarini Ittifoqdagi barcha so'rovlarga tegishli barcha qatorlarni o'z ichiga olgan aniq yagona natijalar to'plamiga birlashtiradi. Ushbu amaliyotda u yana ikkita so'rovni birlashtiradi va dublikatlarni olib tashlaydi.
Har bir SELECTbayonotda UNIONbir xil sonli ustunlar bo'lishi kerak
Ustunlar ham o'xshash ma'lumotlar turlariga ega bo'lishi kerak
Har bir SELECTbayonotdagi ustunlar ham bir xil tartibda bo'lishi kerak
|
30 Birlamchi kalit nima
|
SQL-dagi asosiy kalit - bu jadvaldagi satrni noyob tarzda aniqlay oladigan yagona yoki maydonlar yoki ustunlar guruhi. Oddiy qilib aytganda, bu har bir satr uchun noyob qiymatlarni qabul qiladigan ustun. Shunday qilib, jadvalga yangi qiymatlarni kiritish uchun INSERT INTO buyrug'idan foydalansangiz, asosiy kalit ustun yoki ustunlar uchun qiymat yagona bo'lishi kerak.
Asosiy kalitning eng muhim afzalliklari quyidagilardan iborat:
U jadvalning har bir qatorini o'ziga xos tarzda aniqlaydi
Tezroq kirishga yordam beradigan har bir asosiy kalit ustuni uchun noyob indeks oladi
Har bir jadval ma'lumotlar maydonlari (maydonlari) bo'lgan ustunlardan iborat.
Foydalanuvchilar jadvalidagi maydonlar:
* foydalanuvchi raqami
* foydalanuvchi nomi
* yosh
* shahar
* holat
Maydon-bu jadvaldagi har bir yozuv haqida tuzilgan ma'lumotlarni saqlash uchun mo'ljallangan jadval ustuni.
|
35
.Jadval munosabatni ifodalash uchun qanday talablar bajarilishi kerak?
|
SQL Server kabi relyatsion ma'lumotlar bazasida jadvallar o'rtasidagi munosabatlarni tushunish va loyihalash muhimdir. Relyatsion ma'lumotlar bazasida har bir jadval birlamchi-xorijiy kalit cheklovlari yordamida boshqa jadvalga ulanadi.
SQL Server ma'lumotlar bazasida jadval munosabatlari uch xil bo'ladi:
Birga-bir 2.Birdan ko'pga 3.Ko'pdan ko'pga
Jadvallarni o‘zi bilan jamlash.
Jadvallarni o‘zi bilan jamlash uchun xar bir satrning o‘zi yoki boshqa satrlar bilan kombinatsiyasini xosil qilishingiz mumkin. So‘ngra xar bir satr predikat yordamida baxolanadi. Bu turdagi jamlash boshqa turdagi jamlashdan farq qilmaydi, farqi ikki jadval bir xildir. Jadvallarni jamlashda qaytariluvchi ustun noilari oldiga jadval nomi qo‘yiladi. Bu usutunlarga so‘rovlarda murojaat qilish uchun xar xil nrmlarga ega bo‘lishi kerak. Buning uchun vaqtinchalik nomlar ya’ni psevdonimlar qo‘llandi. Ular so‘rov FROM jumlasida jadval nomidan so‘ng bo‘shlik qo‘yib yoziladi.
Misol: bir xil reytingga ega xamma buyurtmachilar juftlarini topish.
SELECT a.CName, b.CName, a.Rating
FROM Customers a, Customers b
WHERE a.Rating = b.Rating;
Bu xolda SQL a va b jadvallarni jamlagandek ish tutadi. YUqorida keltirilgan misolda ortiqcha satrlar mavjud, xar bir kombinatsiya uchun ikkita qiymat. Birinchi psevdonimdagi A qiymat ikkinchi psevdonimdagi B qiymat bilan kombinatsiyasi olinadi, so‘ngra ikkinchi psevdonimdagi A qiymat birinchi psevdonimdagi B qiymat bilan kombinatsiyasi olinadi.
Xar gal satr o‘zi bilan solishtiriladi. Buni oldini olish soda usuli ikki qiymatga cheklanish kiritish, toki birinchi qiymat ikkinchisidan kichik bo‘lsin yoki alfavit bo‘yicha oldin kelsin. Bu predikatni aasimmetrik qiladi, natijada xudi shu qiymatlar teskari tartibda olinmaydi.
Misol:
SELECT a.CName, b.CName, a.Rating
FROM Customers a, Customers b
WHERE a.Rating = b.Rating
AND a.CName < b.CName;
Bu misolda agar birinchi kombinatsiya ikkinchi shartni qanoatlantirsa u chiqariladi, lekin teskari kombinatsiya bu shartni qanoatlantirmaydi va aksincha. Siz SELECT ifodasida yoki so‘rovning FROM jumlasida keltirilgan xar bir psevdonim yoki jadvalni ishlatishingiz shart emas. Siz xar xil jadvallar, xamda bitta jadval xar psevdonimlaridan iborat jmlanma yaratishingiz mumkin.
|
|