Sql haqida va buyruqlar



Download 37,5 Kb.
Sana11.06.2022
Hajmi37,5 Kb.
#653667
Bog'liq
Sql haqida va buyruqlar


SQL haqida va buyruqlar

Tuzilami So'rovlar Tili(ing - Structured Query Language=SQL) - Nisbiy ma'lumotlar bazasida(Relational DBMS, qisqartmasi RDBMS) ma'lumotni boshqarish va saqlash uchun ishlatiladigan baza so'rovlar tili hisoblanadi. SQL E.F Codd-ning ma'lumotlar bazasining Relational model-i uchun birinchi taqdim etilgan tijoriy tildir. Bugun deyarli barcha RDMBS-lar(MySql, Oracle, Infomix, Sybase, MS Access) standart baza so'rovlar tili sifatida SQL-ni ishlatadilar. SQL - RDMBS-larda barcha ma'lumot turlari bo'yicha operatsiyalarni amalga oshirish uchun ishlatiladi.

SQL buyruqlar
SQL RDBMS-da saqlanadigan ma'lumotni boshqarish uchun quyidagi usullarni belgilaydi.

DDL: Data Definition Language


Bunga jadvalning tuzilishi, jadvalni o'zgartirish, jadvalni o'chirish va boshqalar kabi jadvalning tuzilishidagi o'zgarishlar kiradi.

Barcha DDL buyruqlari avtomatik bajariladi. Bu barcha o'zgarishlarni ma'lumotlar bazasida doimiy ravishda saqlashini anglatadi.

Buyrug' Ta'rifi
create yangi baza yoki ro'yhat yaratish
alter o'zgartirish
truncate ro'yhatdan ma'lumotni o'chirish
drop ro'yhatni tashash
rename ro'yhatni qayta nomlash
DML: Ma'lumotni boshqarish tili
DML buyruqlari jadvalning o'zida emas, balki jadvalda saqlanadigan ma'lumotni boshqarish uchun ishlatiladi. DML buyruqlari avtomatik bajarilmaydi. Bu ma'lumotlar bazasida doimiy emasligini va ularni orqaga qaytarish mumkinligini anglatadi.

Buyruq Ta'rifi


insert yangi qator qo'shish uchun
update mavjud qatorni yangilash
delete qatorni o'chirish
merge ikkita qatorni yoki ikkita jadvalni birlashtirish
TCL: Tranzaktsiyalarni boshqarish tili
Ushbu buyruqlar boshqa buyruqlar va ularning ma'lumotlar bazasiga ta'sirini tekshirishni o'z ichiga oladi. Ushbu buyruqlar boshqa buyruqlar tomonidan kiritilgan o'zgarishlarni ma'lumotlarni asl holatiga qaytarish orqali bekor qilishi mumkin. Har qanday vaqtinchalik o'zgarishni doimiy holga keltirishi mumkin.

Buyruq Ta'rifi


commit doimiy saqlash
rollback o'zgarishni ortga qaytarish
savepoint vaqtinchalik saqlash
DCL: Ma'lumotlarni boshqarish tili
Ma'lumotni boshqarish tili - bu ma'lumotlar bazasining har qanday foydalanuvchisidan vakolat berish va qaytarib olish buyruqlari.

Buyruq Ta'rifi


grant ruxsat berish
revoke ruxsatni qaytaib olish
DQL: Ma'lumotlar so'rovi tili
Ma'lumotlar so'rovi tili biz osonlikcha qo'llashimiz mumkin bo'lgan shartlarga asoslanib jadvallardan ma'lumotlarni olish uchun ishlatiladi.
MySQL ga kirish

PHP - foydalanuvchi ma'lumotlarini ma'lumotlar omboriga saqlash imkoni mavjud bo'lgan va veb-app(application) larni yaratishda ko'p ishlatiladigan skriptlash tili hisoblanadi.

Bu darsda biz ma'lumotlar ombori bilan masofadan turib bog'lash va ro'yhat(table) lar ustida SQL so'rovlarni bajarishni o'rganamiz.

Agar SQL so'rovlarni yozishni bilmasangiz, keyingi darslarimiz MySQL darslari bo'lib, o'sha darslarimizda bemalol o'rganishga imkoningiz bo'ladi.

Biz MySQL bilan PHP-dan foydalanish uchun mysqli yoki PDO-dan foydalanishimiz mumkin. Bu darsimizda biz 12 tilni va shuningdek, SQL inyeksiyani oldini olish uchun prepared statements(oldindan tayyorlangan buyruqlar)-ni qo'llab-quvvatlaganligi sababli PDO-ni ko'proq yoritamiz.

PDO-ni o'rnatish


Quyidagi ko'rsatmalarga amal qiling: http://php.net/manual/en/pdo.installation.php

MySQL serverga ulash


Har qanday so'rovni bajarishdan oldin biz birinchi MySQL serveriga ulashimiz kerak.

Quyidagi kod PDO orqali MySQL serveriga ulanish uchun:



// server ma'lumotlar
$servername = "localhost";
$username = "username";
$password = "password";

try
{


$conn = new PDO("mysql:host=$servername; dbname=myDB", $username, $password);
// istisno holatida PDO xato rejimini o'rnatish
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Muvaffaqiyatli bog'landi";
}
catch(PDOException $e)
{
echo "Ulanishda xatolik: " . $e->getMessage();
}

?>
Yuqoridagi kodda, siz username va password ma'lumotlarni o'zingizni server ma'lumotlaringiz bo'yicha o'zgartirishingiz kerak bo'ladi.

Bog'lanishni to'xtatish
Biz o'zimizga bog'liq ishni bajarib bo'lganimizdan keyin MySQL serveridan aloqani uzish ya'ni to'xtatish bu yaxshi amaliyot. Bu juda oson, shunchaki ulanish obyektimizni null-ga tenglab qo'ysak bo'lgani, quyidagidek:

// MySQL server aloqasini uzish


$conn = null;

?>
Ma'lumot omborini yaratish


Ma'lumot ombori ma'lumot saqlanadigan joyda bir yoki undan ko'p ro'yhat(table)-larni o'z ichiga oladi.

Biz MySQL-da PDO orqali PHP-dan foydalanib, ma'lumot omborini yaratish uchun CREATE sql so'rovini yozishimiz kifoya.

Quyidagi kod:

// MySQL serverga ulash


$servername = "localhost";
$username = "username";
$password = "password";

try
{


$conn = new PDO("mysql:host=$servername", $username, $password);
// istisno holatida PDO xato rejimini o'rnatish
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// ma'lumot ombori yaratish uchun sql so'rov
$sql = "CREATE DATABASE myDBPDO";
// exec() dan foydalaning, chunki hech qanday natija qaytmaydi
$conn->exec($sql);
echo "Ma'lumot ombori yaratildi!
";
}
catch(PDOException $e)
{
echo $sql . "
" . $e->getMessage();
}

// MySQL serverdan uzish


$conn = null;

?>
PHP da exception handling mavjud bo'lib, ma'lumotlar omborida SQL so'rovlar bajarish paytida istisnolar duch kelishi ehtimoli yuqori bo'lganligi sababli exception handling, mysqli dan ko'ra yaxshiroq.

Xuddi yuqoridagi kodga o'xshab, $sql o'zgaruvchimizda xohlagan SQL so'rovimizni kiritishimiz va exec() funksiyasi orqali so'rovni bajarishimiz mumkin bo'ladi.

Ro'yhat(table) yaratish


Xuddi yuqoridagi kodimizdagidek, biz ro'yhat ham yaratishimiz mumkin, shunchaki biz $sql o'zgaruvchimizdagi so'rovni CREATE TABLE so'roviga almashtirishimiz kifoya.

Quyida User ro'yhatini yaratish va uning ustunlari userid, email, password va fullname-ga namuna mavjud:

// ro'yhatni yaratish uchun sql so'rov
$sql = "CREATE TABLE User (
userid INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
fullname VARCHAR(50)
)";
Bu yerda ma'lumot uchun to'liq kod:

// MySQL serverga ulash


$servername = "localhost";
$username = "username";
$password = "password";

try
{


$conn = new PDO("mysql:host=$servername", $username, $password);
// istisno holatida PDO xato rejimini o'rnatish
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// ro'yhatni yaratish uchun sql so'rov
$sql = "CREATE TABLE User (
userid INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
fullname VARCHAR(50)
)";
// exec() dan foydalaning, chunki hech qanday natija qaytmaydi
$conn->exec($sql);
echo "Jadval muvaffaqiyatli yaratildi
";
}
catch(PDOException $e)
{
echo $sql . "
" . $e->getMessage();
}

// MySQL serverdan uzish


$conn = null;

?>
Ma'lumotni ro'yhatga kiritish


Ro'yhat yaratilishi bilanoq, keyingi qadam uni ichiga ma'lumot kiritish bo'ladi. Ro'yhatga ma'lumot kiritish uchun biz quyidagi maxsus qoidalarga rioya qilishimiz kerak:

Agar kiritiladigan qiymat satr bo'lsa, u holda biz uni qo'shtirnoqqa olishimiz kerak bo'ladi.


Sonli qiymat qo'shtirnoqqa olinmaydi.
NULL qo'shtirnoqqa olinmaydi.
Agar jadvaldagi ustun AUTO_INCREMENT bo'lsa, unda biz ushbu jadvalga ma'lumotlarni kiritishimiz shart emas, u avtomatik ravishda jadvalga kiritiladi.
SQL so'rov shunday bo'ladi:

// ro'yhatga ma'lumot kiritish uchun sql so'rov


$sql = "INSERT INTO User (email, password, fullname)
VALUES ('john@studytonight.com', 'IKilledBoogieMan', 'John Wick')";
Biz qiladigan ish yuqoridagi so'rovga $sql o'zgaruvchisining qiymatini almashtirish va qolgan kod shundayligicha qoladi, xuddi baza va ro'yhat yaratish kabi.

Ro'yhatdan ma'lumotni o'chirish


Yuqorida insert SQL buyrug'ini bajarganimizdek, biz ro'yhatdan ma'lumotni delete SQL buyru'gi orqali o'chirishimiz ham mumkin:

// ro'yhat ichidagi ma'lumotni o'chirish


$sql = "DELETE FROM User WHERE userid=1";
Qolgan to'liq kod qanday bo'lsa shunday qoladi.

Ro'yhatdan ma'lumotni tanlash


Ro'yhatdan ma'lumotni tanlash boshqa jarayonlarga qaraganda ozgina farq qiladi. Agar biz ro'yhatdan bir necha ma'lumotlar qatorini tanlashimiz kerak bo'lsa, unda biz siklda fetch() metodini ishlatishimiz kerak.

Keling, User table-dagi ma'lumotlarni qaytarishimiz uchun namuna ko'ramiz:

// User table-da ma'lumotni tanlash uchun sql so'rov
$stmt = $conn->prepare("SELECT userid, email, fullname FROM User");
// ma'lumotni saqlash uchun massiv e'lon qilish
$data = array();
// sql buyrug'ini bajarish
$stmt->execute();
// barcha qatorlarni olish uchun siklga qo'ydik
while($row = $stmt->fetch(PDO::FETCH_OBJ))
{
$data[] = $row;
}

// aloqani yopish


$conn = null;
// ma'lumotni qaytarish
return $data;
Download 37,5 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish