Jezici upita za baze podataka - SQL - 5.0 out of 5 based on 2 votes
Jezici upita za baze podataka - SQL

Jezici upita za baze podataka - SQL

Kako pristupiti podacima u bazi podataka

SQL, MQL i Cypher

SQL

Za rad s relacijskim bazama podataka koristi se SQL (Structured Query Language). Iako se nad SQL-om već godinama provodi standardizacija, različiti proizvođači baza podataka u jezik dodaju svoja vlastita proširenja, zbog čega se često isti upiti ne mogu izravno izvoditi na drugim relacijskim bazama podataka.

 

Naredbe SQL jezika mogu se podijeliti u četiri velike grupe:

DDL – Data Definition Language (definiranje različitih objekata u bazi podataka)

DQL – Data Query Language (postavljanje upita nad postojećim podacima u bazi)

DML – Data Manipulation Language (rukovanje podacima – dodavanje, izmjena, brisanje)

DCL – Data Control Language (dodjeljivanje prava na korištenje pojedinih objekata)

 

Evo primjera nekoliko povezanih DDL naredbi za kreiranje tablica i pratećih objekata u MySQL bazi podataka. Neophodno je detaljno opisati svaki stupac tablice, kao i sve potrebne prateće objekte poput primarnih ključeva ili indeksa.

DROP TABLE IF EXISTS `orders`;
CREATE TABLE IF NOT EXISTS `orders` (
  `orders_id` int(11) NOT NULL,
  `customers_id` int(11) NOT NULL,
  `customers_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `customers_company` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `customers_street_address` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `customers_suburb` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `customers_city` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `customers_postcode` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `customers_state` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `customers_country` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `customers_telephone` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `customers_email_address` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `customers_address_format_id` int(5) NOT NULL,
  ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `orders`
  ADD PRIMARY KEY (`orders_id`),
  ADD KEY `idx_orders_customers_id` (`customers_id`),
  ADD KEY `idxSCCode` (`sccode`);

ALTER TABLE `orders`
  MODIFY `orders_id` int(11) NOT NULL AUTO_INCREMENT

 

jeziciUpitaSqlUpit

Primjer izvođenja SQL upita potrebno je dobro poznavati objekte i točno definirati što se želi dobiti iz baze podataka.

 

Najvažnije stvari povezane s korištenjem SQL naredbi najjednostavnije je prikazati na primjeru DQL naredbe SELECT. Evo jednog primjera sa spajanjem tablica:

select p.products_id, pd.products_viewed, c.categories_image
from products p
    inner join products_description pd on p.products_id = pd.products_id
    inner join products_to_categories ptc on p.products_id = ptc.products_id
    inner join categories c on ptc.categories_id = c.categories_id
where pd.products_viewed > 7000
order by pd.products_viewed desc

 

Na temelju prethodnog primjera lako je vidljivo da je prilikom pripreme SQL ùpita:

Potrebno dobro poznavati postojeće objekte u bazi podataka, jer su podaci o pojedinom objektu iz stvarnog svijeta vrlo često podijeljeni u veći broj tablica.

Treba točno definirati što se sve želi dobiti iz baze podataka i na koji način.

Budući da su podaci u bazi podataka normalizirani, za dobivanje potrebnih podataka u pravilu je potrebno međusobno spojiti više tablica.

Već smo ranije spomenuli prednost baza dokumenata u odnosu na relacijske baze podataka u situacijama postojanja većeg broja nestrukturiranih podataka. Prethodna točka 3, kao što ćete vidjeti u nastavku teksta, predstavlja mjesto gdje graf baze podataka također mogu predstavljati bolje rješenje, ako se pri relacijskom modelu podataka pojavi potreba za mnogostrukim spajanjem različitih tablica. U određenim upitima može se pojaviti čak i zahtjev za većim brojem uključivanja iste tablice u upit pod različitim aliasima. U takvim slučajevima upit postavljen na graf baze podataka mnogo je jednostavniji za pisanje i razumijevanje od SQL upita.

Rezultati SQL upita vraćaju se kao skupina redova tablice (ili stupaca iz spojenih tablica), zbog čega ih je onda prilično jednostavno kopirati u druge relacijske baze podataka. ili spremiti u formate datoteka za prijenos/razmjenu podataka između različitih izvora kao što su CSV ili Excel tablice.

(Stranica 2 od 4)
« Prev All Pages Next » (Stranica 2 od 4)
Ocijeni sadržaj
(2 glasova)

// možda će vas zanimati

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.

Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.