1 / 11

SQL DDL Structured Query Language – Data Description Language

SQL DDL Structured Query Language – Data Description Language. Pozor: odvisnost od SUPB, veliko različnih implementacij SQL DDL. SQL DDL – osnovni stavki. Definiranje tabel (tabela, atributi, integritetne omejitve, tuji ključi) Kreiranje tabel – CREATE TABLE

Download Presentation

SQL DDL Structured Query Language – Data Description Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL DDLStructured Query Language – Data Description Language Pozor: odvisnost od SUPB, veliko različnih implementacij SQL DDL

  2. SQL DDL – osnovni stavki • Definiranje tabel (tabela, atributi, integritetne omejitve, tuji ključi) • Kreiranje tabel – CREATE TABLE • Spreminjanje tabel – ALTER TABLE • Brisanje tabel – DROP TABLE • Definiranje indeksov • Kreiranje sekundarnih indeksov – CREATE INDEX • Brisanje primarnega / sekundarnih indeksov – DROP INDEX • Definiranje uporabnikov, pravic • Kreiranje uporabnikov, skupin – CREATE USER • Dodeljevanje pravic – GRANT …. • Brisanje pravic – REVOKE ….

  3. 1. Delo s tabelami – CREATE TABLE Create Table ime_tabele ( atribut1 tip1 integritetne_omejitve, atribut2 tip2 integritetne_omejitve, … Primary Key (atributx, atributy, …) ); -najpogostejše integritetne omejitve: • NOT NULL • UNIQUE • CHECK pogoj • DEFAULT vrednost -možni podatkovni tipi za atribute: • Odvisni od SUPB

  4. 1. Delo s tabelami – CREATE TABLE(nad.) • Primer stavka za kreiranje tabele ProslavaProslava(ProslavaID:A5,PraznikIDPraznik:N, Vsebina:A50, Opiso:A500, Cenao:N) PB mySQL Create table Proslava ( ProslavaID Char(5) NOT NULL, Vsebina Char(50) NOT NULL, Opis Varchar(255), PraznikID Int NOT NULL, Cena Double, Primary Key (ProslavaID,PraznikID)) TYPE = MyISAM; PB FireBird Create Table "Proslava" ( "ProslavaID" Char(5) NOT NULL, "Vsebina" Char(50) NOT NULL, "Opis" Varchar(255), "PraznikID" Integer NOT NULL, "Cena" Float Check (>0), Primary Key ("ProslavaID","PraznikID") ); Posebnosti SUPB-jev: mySQL – nima integritetne omejitve Check, omogoča izbiro datotečne organizacije fizične datoteke: heap/myISAM/ISAM/…, označi le ne-opcijske atribute FireBird – ima integtitetno omejitev Check, označi le ne-opcijske artibute PostgreSQL – ima integritetno omejitev Check, označi opcijske in ne-opcijske atribute PB PosgreSQL Create table Proslava ( ProslavaID Char(5) NOT NULL, Vsebina Char(50) NOT NULL, Opis Varchar(255) NULL , PraznikID Integer NOT NULL, Cena Double precision NULL Check (>0 ), primary key (ProslavaID,PraznikID) );

  5. 1. Delo s tabelami – ALTER TABLE • Uporaba: • Dodajanje novih atributov v obstoječo tabelo • ALTER TABLE ime_tabele ADD atribut tip; • Brisanje atributov iz tabele • ALTER TABLE ime_tabele DROP atribut; • Dodajanje tujih ključev • ALTER TABLE ime_tabele ADD FOREIGN KEY ime_kljuca REFERENCES ime_tabele (ime_atrubuta) ON operacija1 akcija1 ON operacija2 akcija2;

  6. 1. Delo s tabelami – ALTER TABLE (nad.) • Primer stavka za kreiranje tujega ključa PraznikID tabele Proslava, ki referencira tabelo Praznik Proslava(ProslavaID:A5,PraznikIDPraznik:N, Vsebina:A50, Opiso:A500, Cenao:N) • mySQL: Alter table Proslava add Index IX_(PraznikID); Alter table Proslava add Foreign Key (PraznikID) references Praznik (PraznikID) on delete cascade on update cascade; • Firebird: Alter Table "Proslava" add Foreign Key ("PraznikID") references "Praznik" ("PraznikID") on update cascade on delete cascade ; • PostgreSQL: Alter table Proslava add foreign key (PraznikID) references Praznik (PraznikID) on update cascade on delete cascade ;

  7. 1. Delo s tabelami – DROP TABLE (nad.) • Zelo zanimiv stavek ): • Najbolje dela takrat, ko si to najmanj želiš • Stavek, ki empirično dokazuje pomen rednega arhiviranja PB • Sintaksa – preprosta in praviloma enovita za vse SUPB: DROP TABLE ime_tabele; • Primeri stavkov za brisanje tabele Proslava: • mySQL: drop table IF EXISTS Proslava; • Firebird: Drop Table "Proslava"; • PostgreSQL: Drop table Proslava;

  8. 2. Delo z indeksi • Kreiranje sekundarnih indeksov CREATE INDEX ime_indeksa ON ime_tabele (atribut1, atribut2, ..); • Brisanje sekundarnih indeksov DROP INDEX ime_indeksa; ali DROP INDEX ime_indeksa on ime_tabele; ali … • Primeri stavkov, ki za tabelo Proslava najprej naredijo sekundarni indeks ‘poCeni’, indeks je urejen padajoče – od najdražjih proslav do najcenejših in ga potem izbrišejo • mySQL: Create Index poCeni ON Proslava (Cena); Drop index poCeni on Proslava; • Firebird: Create DESCENDING Index "poCeni" ON "Proslava" ("Cena"); Drop Index "poCeni"; • PostgreSQL: Create index poCeni on Proslava using btree( Cena ); Drop index poCeni;

  9. 3. Definiranje uporabnikov, pravic • Definiranje uporabnikov CREATE USER ime_uporabnika; • Definiranje skupin uporabnikov CREATE GROUP ime_skupine; CREATE ROLE ime_skupine; • Dodajanje uporabnikov v skupino ALTER GROUP ime_skupine ADD USER ime_uporabnika; GRANT ime_skupine TO ime_uporabnika; • Dodajanje pravic GRANT pravica ON ime_tabele TO ime_uporabnika|ime_skupine; ali GRANT pravica ON ime_tabele TO GROUP ime_skupine; • Brisanje pravic REVOKE pravica ON ime_tabele TO ime_uporabnika; ali REVOKE pravica ON ime_tabele TO GROUP ime_skupine;

  10. 3. Definiranje uporabnikov, pravic • Primer PostgreSQL skripte za definiranje uporabniških pravic: Create group Informator; /* naredi skupino*/ Create user Skrbnik; /* kreira uporabnike */ Create user Matej; Create user Peter; Alter group Informator add user Matej; /* polni skupino */ Alter group Informator add user Peter; Grant select on Drzava to group Informator; /* dodeljuje pravice skupini */ Grant select on Praznik to group Informator; … Grant select on Drzava to Skrbnik; /* dodeljuje pravice uporabnikom */ Grant update on Drzava to Skrbnik; Grant delete on Drzava to Skrbnik; …

  11. 3. Definiranje uporabnikov, pravic(nad.) • Podobno v FireBird /* kreiranje skupine */ Create Role "Informator"; /* dodajanje uporabnikov v skupino */ Grant "Informator" to "Matej"; Grant "Informator" to "Peter"; /* definiranje pravic skupine */ Grant select on "Drzava" to "Informator"; Grant select on "Praznik" to "Informator"; Grant select on "Proslava" to "Informator"; Grant select on "Ima" to "Informator";

More Related