SQL osnove

Saznajte o DDL, DML i JOIN-ima

Strukturni Query Language je jedan od osnovnih građevinskih blokova moderne arhitekture baze podataka. SQL definiše metode koje se koriste za kreiranje i manipulaciju relacijskih baza podataka na svim glavnim platformama. Na prvi pogled, jezik može izgledati zastrašujući i složen, ali nije toliko teško.

Ovaj uvod u osnove iza SQL-a uzima kratak pregled nekih od glavnih komandi koji se koriste za kreiranje i izmjenu baza podataka.

O SQL-u

Pravi izgovor SQL-a je sporno pitanje unutar zajednice baza podataka. Američki nacionalni standardni institut je u svom standardu SQL izjavio da je službeni izgovor "es queue el". Međutim, mnogi stručnjaci za bazu podataka su odvodili na izgovore slengu "nastavak". Izbor je tvoj.

SQL dolazi u mnogim ukusima. Oracle baze podataka koriste svoje vlasničke PL / SQL. Microsoft SQL Server koristi Transact-SQL. Sve varijacije su zasnovane na industrijskom standardu ANSI SQL. Ovaj uvod koristi ANSI-kompatibilne SQL naredbe koje rade na bilo kom sistemu moderne relacijske baze podataka.

DDL i DML

SQL komande mogu se podijeliti na dva glavna pod-jezika. Jezik definisanja podataka (DDL) sadrži komande koje se koriste za kreiranje i uništavanje baza podataka i objekata baze podataka. Nakon što se struktura baze podataka definiše pomoću DDL-a, administratori baze podataka i korisnici mogu koristiti Jezik manipulacije podataka (DML) da ubacuju, preuzmu i modifikuju podatke sadržane u njemu.

Komande jezika za definisanje podataka

Jezik definisanja podataka se koristi za kreiranje i uništavanje baza podataka i objekata baze podataka. Ove naredbe primarno koriste administratori baze podataka tokom faze podešavanja i uklanjanja projekta baze podataka. Evo pogleda na strukturu i korišćenje četiri osnovne DDL naredbe:

STVORITI. Instaliranje sistema upravljanja bazom podataka na računaru omogućava vam da kreirate i upravljate mnogim nezavisnim bazama podataka. Na primer, možda ćete želeti da održite bazu podataka o kontaktima klijenata za vašu prodajnu službu i bazu kadrova za vašu HR odjelu. Komanda CREATE se koristi za uspostavljanje svake od ovih baza podataka na vašoj platformi. Na primjer, komanda:

CREATE DATABASE zaposleni

kreira praznu bazu podataka pod nazivom "zaposleni" na vašem DBMS-u. Nakon kreiranja baze podataka, sljedeći korak je kreiranje tablica koje sadrže podatke. Za ovu svrhu može se koristiti još jedna varijanta naredbe CREATE. Komanda:

CREATE TABLE personal_info (first_name char (20) nije null, last_name char (20) nije null, employee_id int nije null)

uspostavlja tablu pod nazivom "personal_info" u trenutnoj bazi podataka. U primeru, tabela sadrži tri atribute: first_name, last_name i employee_id zajedno sa nekim dodatnim informacijama.

UPOTREBA. Komanda USE vam omogućava da navedete bazu podataka sa kojom želite da radite unutar vašeg DBMS-a. Na primer, ako trenutno radite u prodajnoj bazi podataka i želite izdati neke naredbe koje će uticati na bazu podataka zaposlenih, predgovarajte ih s sledećom SQL komandom:

Koristite zaposlene

Važno je uvek biti svjesna baze podataka na kojoj radite prije izdavanja SQL naredbi koje manipulišu s podacima.

ALTER. Kada kreirate tabelu unutar baze podataka, možda ćete želeti da izmenite njegovu definiciju. Komanda ALTER vam omogućava da izvršite izmene u strukturi tabele bez brisanja i rekonstrukcije. Pogledajte sledeću naredbu:

ALTER TABLE personal_info ADD plata novac null

Ovaj primjer dodaje novi atribut tablici personal_info-plata zaposlenog. Argument "novac" određuje da se plata zaposlenog skladišti u obliku dolara i centi. Konačno, ključna riječ "null" govori bazu podataka da je OK da ovo polje ne sadrži vrijednost za bilo koji zaposlenik.

DROP. Poslednja komanda jezika za određivanje podataka, DROP, omogućava nam uklanjanje čitavih objekata baze podataka iz našeg DBMS-a. Na primjer, ako želimo trajno ukloniti tablu personal_info koju smo kreirali, koristićemo sljedeću naredbu:

DROP TABLE personal_info

Slično tome, naredna naredba bi se koristila za uklanjanje cjelokupne baze podataka zaposlenih:

Zaposleni u DROP DATABASE-u

Koristite ovu komandu pažljivo. DROP naredba uklanja celokupne strukture podataka iz vaše baze podataka. Ako želite ukloniti pojedinačne zapise, koristite DELETE komandu Jezik za upravljanje podacima.

Komande jezika za upravljanje podacima

Jezik za upravljanje podacima (DML) se koristi za preuzimanje, umetanje i modifikovanje podataka baze podataka. Ove naredbe koriste svi korisnici baze podataka tokom rutinskog rada baze podataka.

INSERT. Komanda INSERT u SQL-u se koristi za dodavanje zapisa u postojeću tabelu. Vraćajući se na primjer personal_info iz prethodne sekcije zamislite da naš odjel za ljudske resurse treba dodati novog zaposlenog u svoju bazu podataka. Možete koristiti komandu sličnu ovom:

INSERT INTO values_info values ​​('bart', 'simpson', 12345, $ 45000)

Imajte na umu da postoje četiri vrijednosti za zapis. Oni odgovaraju atributima tabele u redosledu koji su definisani: first_name, last_name, employee_id i salary.

SELECT. Komanda SELECT je najčešće korišćena komanda u SQL-u. Omogućava korisnicima baze podataka da preuzmu specifične informacije koje žele iz operativne baze podataka. Pogledajte nekoliko primera, ponovo koristite tablu personal_info iz baze podataka zaposlenih.

Komanda prikazana ispod preuzima sve informacije sadržane u tabeli personal_info. Imajte na umu da se zvezdica koristi kao džoker u SQL-u. Ovo bukvalno znači "Izaberi sve iz tabele personal_info".

SELECT * FROM personal_info

Alternativno, korisnici mogu da ograniče atribute koji se preuzmu iz baze podataka. Na primer, odeljenje za ljudske resurse može zahtevati spisak prezimena svih zaposlenih u preduzeću. Sljedeća SQL naredba bi preuzela samo te informacije:

SELECT last_name od personal_info

Klauzula WHERE može se koristiti za ograničavanje zapisa koji se vraćaju na one koji ispunjavaju određene kriterijume. Direktor bi mogao biti zainteresovan za pregled kadrovskih evidencija svih visoko plaćenih zaposlenih. Sledeća naredba preuzima sve podatke sadržane u personal_info za zapise koji imaju vrijednost plata veću od 50.000 dolara:

SELECT * FROM personal_info WHERE salary> 50000 $

UPDATE. UPDATE naredba se može koristiti za modifikovanje informacija sadržanih u tabeli, bilo u većem ili pojedinačno. Pretpostavimo da kompanija daje zaposlenima 3% troškova života povećanje svoje plate godišnje. Sljedeća SQL naredba bi se mogla koristiti za brzo primjenu ovoga na sve zaposlene koji se nalaze u bazi podataka:

UPOZORENJE personal_info SET plata = plata * 1.03

Kada novi zaposleni Bart Simpson demonstrira performanse iznad i izvan poziva službe, menadžment želi da prepozna svoja zvezdana dostignuća sa povećanjem od 5.000 dolara. Klauzula WHERE mogla bi se koristiti za izdvajanje Barta za ovo podizanje:

UPDATE personal_info SET plata = plata + 5000 USD WHERE employee_id = 12345

DELETE. Na kraju, pogledajte komandu DELETE. Naći ćete da je sintaksa ove naredbe slična onoj u drugim DML komandama. Nažalost, naš najnoviji izvještaj o korporativnim zaradama nije zadovoljio očekivanja, a siromašni Bart je otpušten. Komanda DELETE sa WHERE klauzulom se može koristiti da ukloni svoj zapis iz tabele personal_info:

DELETE IZ personal_info WHERE employee_id = 12345

JOINs

Sada kada ste naučili osnove SQL-a, vreme je da pređete na jedan od najsnažnijih koncepata koji jezik nudi - JOIN izjava. JOIN izjava vam omogućava da kombinujete podatke u više tabela kako biste efikasno procesirali velike količine podataka. Ove izjave su gde se nalazi prava snaga baze podataka.

Da biste istražili upotrebu osnovne operacije JOIN za kombinovanje podataka iz dve tabele, nastavite sa primjerom korištenjem tabele PERSONAL_INFO i dodajte dodatnu tablicu u miks. Pretpostavimo da imate tablicu pod nazivom DISCIPLINARY_ACTION koja je kreirana sa sledećom izjavom:

CREATE TABLE disciplinary_action (action_id int nije null, employee_id int nije null, komentari char (500))

Ova tabela sadrži rezultate disciplinskih mera za zaposlene u kompaniji. Primetili ste da ne sadrži nikakve informacije o zaposlenom, osim broja zaposlenih. Lako je zamisliti mnoge scenarije u kojima možete kombinovati informacije iz DISCIPLINARY_ACTION i PERSONAL_INFO tabela.

Pretpostavite da ste bili zaduženi za kreiranje izvještaja koji navodi disciplinske mere protiv svih zaposlenih s plati većom od 40.000 dolara. Korišćenje operacije JOIN, u ovom slučaju, je jednostavno. Ovu informaciju možemo preuzeti pomoću sledeće naredbe:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Kod određuje dve tabele koje želimo da se pridruže u klauzuli FROM, a zatim uključuje izjavu u WHERE klauzuli kako bi ograničili rezultate na zapise koji su imali identične podatke o zaposlenima i ispunili naše kriterijume plata veću od 40.000 dolara.