SQL osnove

Saznajte više o DDL, DML i JOINs

Strukturirani upitni jezik jedan je od temeljnih građevnih blokova moderne arhitekture baza podataka. SQL definira metode za izradu i manipulaciju relacijskih baza podataka na svim glavnim platformama. Na prvi pogled, jezik se može činiti zastrašujućim i složenim, ali to nije sve tako teško.

Ovaj uvod u osnove iza SQL uzima kratak pregled nekih od glavnih naredbi koje se koriste za stvaranje i modificiranje baza podataka.

O SQL

Točan izgovor SQL-a je sporan problem unutar zajednice baze podataka. U svom SQL standardu, američki nacionalni institut za standarde navodi da je službeni izgovor "es queue el." Međutim, mnogi stručnjaci za baze podataka su se preusmjerili na izgovor "slang". Tvoj izbor.

SQL dolazi u mnogim okusima. Oracle baze podataka koriste svoj vlasnički PL / SQL. Microsoft SQL Server koristi Transact-SQL. Sve varijacije temelje se na industrijskom standardu ANSI SQL. Ovaj uvod koristi ANSI-kompatibilne SQL naredbe koje rade na bilo kojem modernom sustavu relacijske baze podataka.

DDL i DML

SQL naredbe mogu se podijeliti na dva glavna pod-jezika. Jezik za definiranje podataka (DDL) sadrži naredbe za stvaranje i uništavanje baza podataka i objekata baze podataka. Nakon što je struktura baze podataka definirana DDL-om, administratori baze podataka i korisnici mogu koristiti jezik za manipulaciju podacima (DML) za umetanje, preuzimanje i izmjenu podataka koji se nalaze u njemu.

Naredbe za jezik definicije podataka

Jezik za definiranje podataka koristi se za stvaranje i uništavanje baza podataka i objekata baze podataka. Ove naredbe prvenstveno koriste administratori baza podataka tijekom faza postavljanja i uklanjanja projekta baze podataka. Slijedi pregled strukture i korištenja četiri osnovne naredbe DDL:

STVORITI. Instaliranje sustava za upravljanje bazom podataka na računalu omogućuje stvaranje i upravljanje mnogim neovisnim bazama podataka. Na primjer, možda želite zadržati bazu podataka o kontaktima kupaca za svoj odjel prodaje i bazu osoblja za svoj odjel za ljudske resurse. Naredba CREATE koristi se za uspostavljanje svake od tih baza podataka na vašoj platformi. Na primjer, naredba:

Kreirajte zaposlenike DATABASE

stvara praznu bazu pod nazivom "zaposlenici" na vašem DBMS-u. Nakon izrade baze podataka, sljedeći je korak stvaranje tablica koje sadrže podatke. Druga varijanta naredbe CREATE može se koristiti za tu svrhu. Naredba:

CREATE TABLE personal_info (prvi_ ime char (20) ne null, last_name char (20) ne null, employee_id int ne null)

uspostavlja tablicu pod nazivom "personal_info" u trenutnoj bazi podataka. U primjeru, tablica sadrži tri atributa: first_name, last_name i employee_id uz neke dodatne informacije.

KORISTITI. Pomoću naredbe USE možete odrediti bazu podataka s kojom želite raditi unutar svog DBMS-a. Na primjer, ako trenutno radite u prodajnoj bazi podataka i želite izdati neke naredbe koje će utjecati na bazu podataka zaposlenika, predgovor ih sa sljedećom SQL naredbom:

UPORABI zaposlenici

Važno je uvijek biti svjestan baze podataka u kojoj radite prije nego što izdate SQL naredbe koje manipuliraju podacima.

ALTER. Nakon što izradite tablicu u bazi podataka, možda želite izmijeniti njegovu definiciju. Naredba ALTER omogućuje vam da napravite promjene strukture tablice bez brisanja i rekonstrukcije. Pogledajte sljedeću naredbu:

ALTER TABLE personal_info ADD novac plaća null

Ovaj primjer dodaje novi atribut personal_info tablici - plaću zaposlenika. Argument "novac" navodi da se plaća zaposlenika pohranjuje pomoću formata dolara i centa. Konačno, "null" ključna riječ govori bazi da je OK da ovaj polje ne sadrži vrijednost za bilo koji zaposlenik.

PAD. Konačna naredba jezika Definicije podataka, DROP, omogućuje uklanjanje cijelih objekata baze podataka iz našeg DBMS-a. Na primjer, ako želimo trajno ukloniti personal_info tablicu koju smo stvorili, upotrijebili bi sljedeću naredbu:

DROP TABLE personal_info

Slično tome, naredba u nastavku koristit će se za uklanjanje cjelokupne baze podataka zaposlenika:

DROP DATABASE zaposlenici

Koristite ovu naredbu s pažnjom. Naredba DROP uklanja sve strukture podataka iz vaše baze podataka. Ako želite ukloniti pojedinačne zapise, upotrijebite naredbu DELETE na jeziku za manipulaciju podacima.

Zapovjedništvo za manipulaciju podataka

Jezik za manipulaciju podacima (DML) koristi se za preuzimanje, umetanje i izmjenu podataka baze podataka. Ove naredbe koriste sve korisnike baze podataka tijekom rutinskog rada baze podataka.

UMETNUTI. INSERT naredba u SQL koristi se za dodavanje zapisa na postojeću tablicu. Vraćajući se na primjer personal_info iz prethodnog odjeljka, zamislite da naš HR odjel treba dodati novi zaposlenik u svoju bazu podataka. Možete upotrijebiti naredbu sličnu ovomu:

INSERT U vrijednosti personal_info ('bart', 'simpson', 12345, 45.000 $)

Imajte na umu da postoje četiri vrijednosti navedene za zapis. To odgovara atributima tablice u redoslijedu koji su definirani: first_name, last_name, employee_id i salary.

IZABERI. SELECT naredba je najčešće korištena naredba u SQL-u. Omogućuje korisnicima baza podataka da preuzimaju specifične informacije koje žele iz operativne baze podataka. Pogledajte nekoliko primjera, ponovno pomoću personal_info tablice iz baze podataka zaposlenika.

Naredba prikazana u nastavku preuzima sve informacije sadržane u osobnoj informacijskoj tablici. Imajte na umu da se zvjezdica koristi kao zamjena u SQL-u. To doslovno znači "Odaberite sve iz personal_info tablice".

SELECT * FROM personal_info

Alternativno, korisnici možda žele ograničiti atribute koji se vraćaju iz baze podataka. Na primjer, Odjel za ljudske resurse može zahtijevati popis prezimena svih zaposlenika u tvrtki. Sljedeća SQL naredba preuzela bi samo te informacije:

ODABERITE zadnji_imenu FROM personal_info

Klauzula WHERE može se koristiti za ograničavanje zapisa koji se vraćaju na one koji zadovoljavaju određene kriterije. Predsjednik uprave mogao bi biti zainteresiran za pregledavanje osobnih evidencija svih visoko plaćenih zaposlenika. Sljedeća naredba preuzima sve podatke sadržane u personal_info za zapise koji imaju vrijednost plaće veće od 50.000 USD:

SELECT * FROM personal_info GDJE plaća> 50000 USD

AŽURIRAJ. UPDATE naredba može se koristiti za izmjenu podataka sadržanih u tablici, bilo u rasutom stanju ili pojedinačno. Pretpostavimo da tvrtka daje svim zaposlenicima 3 posto troškova života u porastu njihove plaće godišnje. Sljedeća SQL naredba mogla bi se brzo primijeniti na sve zaposlenike pohranjene u bazi podataka:

UPDATE personal_info SET plaća = plaća * 1.03

Kada novi zaposlenik Bart Simpson demonstrira performanse iznad i izvan poziva dužnosti, menadžment želi prepoznati svoje zvijezde postignuća s podizanjem od 5.000 dolara. Korištenje WHERE-a moglo bi se iskoristiti za izdvajanje Bartova za ovaj podizanje:

UPDATE personal_info SET plaća = plaća + 5000 USD WHERE employee_id = 12345

IZBRISATI. Konačno, pogledajmo naredbu DELETE. Naći ćete da je sintaksa ove naredbe slična onoj ostalih DML naredbi. Nažalost, naš najnoviji izvještaj o korporativnim prihodima nije u potpunosti ispunio očekivanja, a siromašni Bart otpušten je. Naredba DELETE s WHERE klauzulom može se koristiti za uklanjanje njegovog zapisa iz personal_info tablice:

DELETE FROM personal_info WHERE employee_id = 12345

pridružuje

Sada kada ste naučili osnove SQL-a, vrijeme je da prijeđete na jedan od najmoćnijih koncepata koje jezik ima za ponuditi - JOIN izjavu. JOIN izjava omogućuje kombiniranje podataka u više tablica kako bi se učinkovito obradile velike količine podataka. Ove su tvrdnje gdje se nalazi prava moć baze podataka.

Da biste istražili upotrebu osnovne radnje JOIN za kombiniranje podataka iz dvije tablice, nastavite s primjerom pomoću tablice PERSONAL_INFO i dodajte dodatnu tablicu u mikser. Pretpostavimo da imate tablicu pod nazivom DISCIPLINARY_ACTION koja je izrađena sljedećom izjavom:

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

Ova tablica sadrži rezultate disciplinskih radnji na zaposlenicima tvrtke. Primijetit ćete da ne sadrži podatke o zaposleniku koji nije broj zaposlenika. Lako je zamisliti mnoge scenarije gdje biste htjeli kombinirati informacije iz tablica DISCIPLINARY_ACTION i PERSONAL_INFO.

Pretpostavimo da ste zaduženi za izradu izvješća koji navodi disciplinske postupke protiv svih zaposlenika s plaćom većom od 40.000 USD. Upotreba JOIN operacije, u ovom slučaju, je jednostavna. Te podatke možemo dohvatiti pomoću sljedeće naredbe:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments IZ personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id I personal_info.salary> 40000

Kôd navodi dvije tablice u koje se želimo pridružiti klauzuli FROM, a zatim uključujemo izjavu u klauzuli WHERE da bi se rezultati ograničili na zapise koji imaju odgovarajuće ID-ove zaposlenika i ispunili naše kriterije plaće veće od 40.000 USD.