Sql haqida va buyruqlar


Download 37.5 Kb.
Sana21.11.2020
Hajmi37.5 Kb.
#149508
Bog'liq
SQL haqida va b-WPS Office


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 ©fayllar.org 2024
ma'muriyatiga murojaat qiling