Ovaj jezik, koji se koristi za izdvajanje i upravljanje DBMS-om u RDMS-u, je mjesto za pohranjivanje relacijskih podataka koji imaju nekoliko redaka i stupaca. SQL omogućuje primanje i obradu tablica u RDMS-u. U SQL-u možete kreirati proceduralne programe s iteracijama i uvjetima. Bazi podataka možete pristupiti postavljanjem naredbi na isti način kao u PHP-u, ili korištenjem vizualnog softvera kao što je phpMyAdmin koji se izvodi na poslužitelju ili računalu pomoću XAMPP-a, kao i mnogih drugih lokalnih poslužiteljskih programa. Gotovo svi moderni sustavi za upravljanje bazama podataka temelje se na ovom jeziku.
Povijesni preduvjeti SQL-a
Značajke programskog jezika
Može biti jedan od sljedećih tipova:
Tipovi podataka u bazama podataka
Tip podataka
tip
opis
BROJ (n, [d])
Broj n znamenki [d (neobavezno) nakon decimalnog zareza]
SMALLINT
16-bitni cijeli broj sa znakom
INTEGER
32-bitni cijeli broj sa znakom
)
FLOAT
Broj s pomičnim zarezom
DATUM
Format datuma dd /mm /90
TIMESTAMP
Datum i vrijeme
CHAR (l)
Linija simbola fiksne duljine l (n
) Evo primjera: CREATE TABLE ime_tablice (stupac1 Type_champ1, column2) Type_champ2, colonne3 Type_champ3).
Atributi ograničenja SQL-a
Stvaranje odnosa
Isto tako, mogu se pozvati na ograničenja da se lakše identificiraju. Inače dobiva ime, koje automatski osigurava baza podataka.
Ključna riječ NOT NULL omogućuje vam da navedete da trebate unijeti u polje, to jest, DBMS će odbiti umetnuti nizove koji ne navode polje koje uključuje ponudu NOT NULL. Možete provjeriti polje s CHECK (), ima logički uvjet za vrijednost između zagrada. Ako se ova vrijednost razlikuje od NULL-a, DBMS će izvršiti provjeru koristeći logički uvjet sa SELECT izjavama.
UNIQUE prijedlog omogućuje vam provjeru polja i jamči da su vrijednosti stupaca različite. Ključna riječ CONSTRAINT dodjeljuje naziv ograničenja, tako da djeluje kada određena rečenica nije potvrđena. Ako klauzula CONSTRAINT nije specificirana, ime će biti dano proizvoljno od strane DBMS-a. Međutim, malo je vjerojatno da je to razumljivo, a malo je vjerojatno da se uopće može razumjeti kada dođe do pogreške u integritetu.
Da bi ilustrirali sljedeće narudžbe, razmotrite tablicu proizvoda:
id (identifikator)
nom (ime )
mačka Gorie (kategorija)
zalihe
prix (cijena) )
177)
5
950
2
klavijature
)
obrada podataka
32
35
3
)
je dana obrada miša
ih
16
30
4
olovka
dostava
) 147
2
Operator dodavanja ograničenja SQL može pridružiti nekoliko uvjeta u upitu. Pohranjivanjem iste tablice kao i prije filtriranja samo kompjuterskih proizvoda koji su gotovo bez zaliha (manje od 20 naslova), pokrenite sljedeći upit:
SELECT * FROM produitWHERE cat? Gorie = 'informatique' AND zaliha
)
prix (cijena)
1
obrada podataka
5
950
miševi
obrada podataka
16
30
Da biste filtrirali podatke i imali samo podatke o proizvodima "računalo" ili "tipkovnica", morate izvršiti sljedeće pretraživanje: SELECT * FROM produITWHERE nom = 'ordinateur' ILI nom = ' clavier 'Ovaj jednostavan upit vraća sljedeće rezultate:
id (identifikator)
nom (ime)
mačka ? gorie
zalihe
prix (cijena)
1
računari
obrada podataka
5
)
950
2
tipkovnice
obrada podataka
32
35
Treba imati na umu da operatori mogu biti Povezan je kako bi izvršio snažno pretraživanje. Možete filtrirati proizvode "računalo" s zalihama manje od 20 i proizvode "opskrbiti" sa zalihama manje od 200sa sljedećom pretragom SQL alter tablice dodajte ograničenje: SELECT * FROM produITWHERE (cat? gorie = 'informatique' I stock
id (identifikator)
nom (ime)
)
mačka Gorie
zaliha
prix (cijena)
)
1
računari
obrada podataka
397) 540
950
2
miševi
obrada podataka
16
30
4
)
olovka
dostava
147
2
Sa stranim ključem SQL ograničenja, možete definirati ključeve, to jest, odrediti stupce čije vam znanje omogućuje dodjeljivanje točno jednog od njih i jednog retka. Skup stupaca koji su dio trenutne tablice naziva se primarni ključ i određen je klauzulom PRIMARY KEY, a slijedi popis stupaca razdvojenih zarezima u zagradama. Oni više ne prihvaćaju NULL tako da dva reda ne mogu istovremeno imati istu kombinaciju vrijednosti za te stupce. PRIMARNI KLJUČ (colonne1 colonne2). Kada popis stupaca u izvršnoj tablici omogućuje definiranje primarnog ključa, on koristi strano ključno ograničenje SQL dodavanja, nakon čega slijedi popis stupaca u trenutnoj tablici, odvojeni zarezima, u zagradama. Zatim se u zagradama nalazi REFERENCES prijedlog, a zatim naziv vanjske tablice i popis odgovarajućih stupaca odvojenih zarezima. STRANI KLJUČ (colonne1 colonne2) REFERENCE Nom_de_la_table_etrangere (colonne1colonne2)
Interpersonalni DBMS izvan prostora za pohranu je organizirati ovo spremište i omogućitipostavite određena pravila. Tako se za svaku tablicu obično određuje primarni ključ. Jedinstveno će identificirati pretraživanje po retku prilikom predstavljanja. Stoga, prilikom deklariranja stupca kao ključnog, DBMS automatski kreira indeks ograničenja. Može se ispuniti:
Naziv ograničenja upravlja DBMS kada je potrebno imenovati ovaj primarni ključ. Računalo se također može kreirati po drugi put kroz redoslijed izmjena u tablici. Ovaj primarni ključ će biti apsolutni identifikator za upotrebu. DBMS može bez nje zahvaliti rowidu, tako da potreba za primarnim ključem ne postoji tehnički, ali u aplikaciji nema puno smisla. Ovaj primarni ključ u mnogim slučajevima postavlja ograničenje integriteta, tj. Upravljanje određenim podacima u jednoj tablici u usporedbi s drugim pokazateljima koji pripadaju drugim tablicama.
Na primjer, u bazi podataka za upravljanje kupcima zabranjena je prisutnost računa bez jednog naloga. Stvorite vanjski ključ u tablici računa, koji će biti ograničen prisutnošću ključa.
Za računalo, ograničenje vanjskog ključa (FK) određeno je stvaranjem tablice, zahvaljujući mehanizmu za konfiguriranje ključeva i pridruženih indeksa koji će biti stvoreni za FK, tako da je povezivanje upita lakše. Osim ograničenja primarnog ili vanjskog ključa, postoje i druga ograničenja:
Na primjer, ograničenje jedinstvenosti, osim onoga što odgovara primarnom ključu. Morate stvoriti jedinstveni indeks: izraditi jedinstveni indeksnum_s? cu na personne. Druga mogućnost ograničenja je ograničenje provjere, koje obično omogućuje određivanje vrijednosti raspona ili formata. Pozitivna vrijednost za potrošnju mjera je ljubaznog izbora (ekvivalentna ENUM-u za neke druge DBMS-ove) i čuva se velikim slovima:
Dakle, DBMS dopušta stvaranje ograničenja integriteta svih vrsta, ali kada se one primijene, nemoguće je kontrolirati koncept aktivno /neaktivno. Neaktivno ograničenje ne utječe na rad baze podataka (umetanje, brisanje). Međutim, vrijeme potrebno za ponovno aktiviranje napona može biti dugotrajno, ovisno o procedurama koje je potrebno provesti kako bi se provjerilo ovo SQL ograničenje promjene. Ali obično je zanimljivo onemogućiti ograničenja. Ograničenje je onemogućeno na sljedeći način: ALTER TABLE ma_table DISABLE CONSTRAINT ma_constraint; I aktiviran: ALTER TABLE ma_table ENABLE CONSTRAINT ma_constraint; Naravno, treba primijetiti da bilo koja (aktivirana) restrikcija, primijenjena na bazu podataka, zahtijeva dodatnu obradu za umetanja, modifikacije ili brisanja. Ti procesi imaju tendenciju da usporavaju korištenje baze podataka, tako da ih treba koristiti ekonomski. Naredba ALTER TBLE mijenja strukturu tablice. Ako ga koristi trenutni upit, naredba ALTER čeka da se završi. Upotrijebite naredbu: Uredite vrijednost stupca. Zadane vrijednosti primjenjuju se na sljedeće naredbe INSERT, a ne na retke. Preimenovanjem stupaca ili tablica bez mijenjanja vrste, u ovoj naredbi, možete zanemariti stupac ključne riječi. Jezik vam ne dopušta promjenu ograničenja. Umjesto toga jesutreba ukloniti ograničenja ili ih stvoriti. Promijenite duljinu stupca varchar. Ako se tablica odnosi na pohranjenu proceduru, možete dodati ili ukloniti stupac. Možete izbrisati pohranjenu proceduru prije izvršavanja naredbe ALTER TABLE, a zatim je reproducirati nakon uređivanja tablice.
Stvaranje tablice
UNIQUE prijedlog omogućuje vam provjeru polja i jamči da su vrijednosti stupaca različite. Ključna riječ CONSTRAINT dodjeljuje naziv ograničenja, tako da djeluje kada određena rečenica nije potvrđena. Ako klauzula CONSTRAINT nije specificirana, ime će biti dano proizvoljno od strane DBMS-a. Međutim, malo je vjerojatno da je to razumljivo, a malo je vjerojatno da se uopće može razumjeti kada dođe do pogreške u integritetu.
Primjer ograničenja tablice podataka SQL-a
id (identifikator)
nom (ime )
mačka Gorie (kategorija)
zalihe
prix (cijena) )
177)
5
950
2
klavijature
)
obrada podataka
32
35
3
)
je dana obrada miša
ih
16
30
4
olovka
dostava
) 147
2
Operator dodavanja ograničenja SQL može pridružiti nekoliko uvjeta u upitu. Pohranjivanjem iste tablice kao i prije filtriranja samo kompjuterskih proizvoda koji su gotovo bez zaliha (manje od 20 naslova), pokrenite sljedeći upit:
SELECT * FROM produitWHERE cat? Gorie = 'informatique' AND zaliha
)
prix (cijena)
1
obrada podataka
5
950
miševi
obrada podataka
16
30
Da biste filtrirali podatke i imali samo podatke o proizvodima "računalo" ili "tipkovnica", morate izvršiti sljedeće pretraživanje: SELECT * FROM produITWHERE nom = 'ordinateur' ILI nom = ' clavier 'Ovaj jednostavan upit vraća sljedeće rezultate:
id (identifikator)
nom (ime)
mačka ? gorie
zalihe
prix (cijena)
1
računari
obrada podataka
5
)
950
2
tipkovnice
obrada podataka
32
35
Treba imati na umu da operatori mogu biti Povezan je kako bi izvršio snažno pretraživanje. Možete filtrirati proizvode "računalo" s zalihama manje od 20 i proizvode "opskrbiti" sa zalihama manje od 200sa sljedećom pretragom SQL alter tablice dodajte ograničenje: SELECT * FROM produITWHERE (cat? gorie = 'informatique' I stock
id (identifikator)
nom (ime)
)
mačka Gorie
zaliha
prix (cijena)
)
1
računari
obrada podataka
397) 540
950
2
miševi
obrada podataka
16
30
4
)
olovka
dostava
147
2
Definicije ključeva
Primarni ključevi
Ograničenje vanjskog ključa
Okidač: jamstvo referentnog integriteta
Vanjski ključevi koriste se za određivanje stupaca tablice koji jamče pouzdanost druge tablice. Dakle, postoje elementi koji se nazivaju okidači koji jamče sva ta ograničenja, koja su označena izrazom referentni integritet (i), i provjerite da li se niz koristi iz druge tablice, zapravo postoji. Ovi okidači se nalaze u "Delete" i "Refresh" stanju: