Dodaj ograničenje SQL jezik

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

Skraćenica za SQL znači "Strukturirani jezik pretraživanja", koji razumije gotovo svaki DBMS. IBM ga je razvio sedamdesetih godina s izvornim nazivom SEQUEL, a njegovo pravo ime datira iz osamdesetih. SQL je certificiran od strane ISO Međunarodne organizacije. Evo glavnih koraka u tom procesu:


  • ANSI standard 1986;
  • ISO (SQL1) 1987., revidiran 1989 .;
  • ISO (SQL2) 1992. godine;
  • SQL3 je izrađen 1999. godine od strane ANSI-ja i ISO-a. Standard ISO SQL 2006 koristi se za upravljanje XML datotekama, kao što je uvoz XML podataka u bazu podataka ili izvoz XML sadržaja i ograničenja SQL. Unatoč standardizaciji ISO-a, stvarna upotreba različitih urednika DBMS-a ima razlike u odnosu na:
  • detalje sintakse;
  • pisanje naloga;
  • precizan rad upravnih tijela;
  • uvođenje novih vrsta podataka (slike, animacije, videozapisi, hipertekstualne veze)i tako dalje).
  • Bez obzira na MySQL (ili MariaDB) softver koji se koristi, PostgreSQL, Oracle, NoSQL, kao i Cassandra - ista sintaksa s manjim razlikama. Ukratko, postoji samo jedan SQL jezik, ali svaki DBMS editor koristi vlastiti dijalekt. "Rječnik" koji vam omogućuje prebacivanje s jednog dijalekta na drugi zove se ODBC (Open Data Base Connectivity). Stvoren je u Microsoftu 1993. za SQL ograničenje.


    Značajke programskog jezika

    SQL je najpopularniji među računalnim jezicima povezanim sa sustavima za upravljanje bazama podataka. Smjernice koje najviše obećavaju označavaju strukturirane upite. Predmet nekoliko međunarodnih normizacija, od kojih se prvi odnosi na 1986. godinu i još uvijek se razvija. Realizacija odgovara relacijskoj algebri, ali često odstupa od tradicionalnih izračuna. U implementacijama, razlike između velikih i malih slova, osim redaka, obično se zanemaruju. Ms SQL ograničenje omogućuje:
  • izvođenje operacija relacijske algebre;
  • uređivanje kopija;
  • uredi odnos u bazi podataka.
    Izražavanje ograničenja integriteta
    Ovo je prijedlog kojim se ograničava tablična izmjena koju provode zahtjevi klijenata, tako da su ulazni podaci u skladu s očekivanim rezultatima. One se nameću pri stvaranju:
  • Constraint SQL.
  • DEFAULT.
  • NIJE NULL.
  • JEDINI.
  • PROVJERA.
  • SQL definira zadanu vrijednost kada osnovno polje nije komunicirano pomoću DEFAULT klauzule. To pojednostavljuje formiranje tablica i osigurava da polje nije prazno. U DEFAULT rečenici, vrijednost mora biti dodijeljena.
    Može biti jedan od sljedećih tipova:
  • digitalna konstanta;
  • alfanumerička konstanta (linija);
  • ključna riječ korisnika (korisničko ime);
  • ključna riječ NULL;
  • ključna riječ CURRENT_DATE (datum unosa);
  • ključna riječ CURRENT_TIME (ulazno vrijeme);
  • ključna riječ CURRENT_TIMESTAMP (datum i vrijeme ulaska).
  • Tipovi podataka u bazama podataka

    U sintaksi, na primjer, type_field1 field_type2, itd., Specificirajte tip podataka koji će sadržavati odgovarajuće polje. U osnovi, ovo se pravilo koristi za prijenos u sustav tako da dodjeljuje odgovarajući memorijski prostor, ovisno o veličini podataka. Sustav neće dodijeliti isti prostor liniji kao za cijeli broj. U phpMyAdmin možete vidjeti popis prihvaćenih tipova u padajućem popisu prilikom izrade tablice.

    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

    Da bi mogli stvaratiodnos, morate znati ograničenja integriteta. Sljedeća ograničenja vrijede za atribut:
  • zadana vrijednost je zadana vrijednost za ovaj atribut;
  • nije nulta - prazna ili nepoznata (nula) je zabranjena za ovaj parametar;
  • null - za ovaj atribut dopuštamo prazno ili nepoznato (nula (zadano);
  • jedinstveno - sve vrijednosti ovog atributa moraju biti jedinstvene; test te mora biti istinit za ovaj parametar,
  • pimarski ključ - ovaj atribut je primarni ključ (ovo jedinstveno ograničenje SQL-a može se pojaviti jednom) i ne uključuje null jedinstveno; (at)] - ovaj parametar ima postojeći atribut u, koji je obavezan, jedinstven, tablice ta, ako nisu navedene, je primarni ključ, ta;
  • reference ta [(at)] na kaskadnom brisanju - slično prethodnom osim toga, ako je ta izbrisana, instanca koja mu je dana u ovoj tablici se također automatski briše.
  • Sljedeća ograničenja dodavanja ograničenja za SQL primjenjuju se na jedan ili više atributa ili na tablicu: at1, atN) - sve vrijednosti u ovom skupu atributa moraju biti jedinstvene;
  • check (te) - test mora biti točan za ovaj skup parametara.

    Stvaranje odnosa

    SQL odnos se također navodi kao tablica. Stvaranje odnosa izražava se u SQL-u uz pomoć tablice za stvaranje.
    Generirana tablica je prazna: sadrži atribute (stupce) definirane tijekom stvaranja, ali ne i pojavu (string). Moguće je i prikladno odrediti ograničenje integriteta za atribute.
    Isto tako, mogu se pozvati na ograničenja da se lakše identificiraju. Inače dobiva ime, koje automatski osigurava baza podataka.

    Stvaranje tablice

    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.

    Primjer ograničenja tablice podataka SQL-a

    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

    Definicije ključeva

    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)

    Primarni ključevi

    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.

    Ograničenje vanjskog 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.

    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:
  • ON DELETE - popraćeno je argumentima u vitičastim zagradama koje vam omogućuju da odredite akciju koja se izvodi kada se linija briše.
  • CASCADE - Označava kaskadno brisanje nizova čije tipke odgovaraju primarnoj eliminaciji.
  • RESTRICT - označava pogrešku pri brisanju vrijednosti odgovarajuće tipke.
  • SET NULL - stavlja NULL u niz ako je vrijednost izbrisana.
  • SET DEFAULT - stavlja zadanu vrijednost (koju slijedi ovaj parametar) u redak ako je vrijednost izbrisana.
  • U polju "UPDATE" postoje argumenti u uvijenim zagradama koji vam omogućuju da odredite radnju koja se izvodi pri mijenjanju redaka tablice, dio ključa:
  • CASCADE - Označava kaskadnu modifikaciju redaka vanjske tablice čiji ključevi odgovaraju ključevima promijenjenih redaka.
  • RESTRICT - označava pogrešku odgovarajućeg ključa.
  • SET NULL -stavlja NULL u redak ako se promijeni vrijednost odgovarajućih ključeva.
  • SET DEFAULT - postavlja zadanu vrijednost koju slijedi ovaj parametar u retku, ako se promijeni vrijednost odgovarajućih ključeva.
  • Odobrenja su izrazi koji se moraju izvršiti prilikom uređivanja podataka, tako da se mogu izvršiti, tako da jamče integritet podataka. Njihova sintaksa je sljedeća: CREATE ASSERTION NOM_DE_LA_CONTRAINTE CHECK (expression_conditionnelle) Uvjet koji se mora izvršiti može se izvršiti (i obično) sa SELECT izjavom.
  • Povezane publikacije