1 / 37

Základy jazyka SQL

Základy jazyka SQL.

Download Presentation

Základy jazyka SQL

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. Základy jazyka SQL Pre prácu s údajmi v databáze nám slúži množina príkazov jazyka SQL. Začiatkom sedemdesiatych rokov, konkrétne v roku 1974 vznikla požiadavka na vytvorenie programovacieho jazyka pre databázové aplikácie, ale takého, ktorý by sa čo najviac približoval k angličtine. Preto vo firme IBM vznikol jazyk SEQUEL (Structured English Query Language). Postupne sa k tomuto štandardu pridávali ďalšie firmy (Oracle, SyBase, Informix, Pervasive) a tak vznikol “nepísaný štandard” databázového jazyka s názvom SQL (StructuredQueryLanguage).

  2. Podmnožiny príkazov • DDL – Data Definition Language – obsahuje príkazy, pomocou ktorých definujeme štruktúry dát (CREATE, ALTER, DROP) • DML – Data Manipulation Language – obsahuje príkazy pre manipuláciu s údajmi (SELECT, INSERT, UPDATE, DELETE) • DCL – Data Control Language – zahrňuje špeciálne funkcie údržby a riadenia prevádzky databázy (GRANT, REVOKE, ALTER USER)

  3. Transaction Control Commands(TCC) Okrem týchto najznámejších skupín príkazov jazyka SOL môžeme vyčlenit' aj skupinu príkazov pre riadenie transakcií. Do tejto skupiny patria napríklad príkazy: SET TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT

  4. Základne príkazy SQL • SELECT ... výber (včítane filtrácie) dát • INSERT ... vkladanie nových dát • UPDATE ... úprava existujúcich dát • DELETE ... rušenie dát • CREATETABLE ... založenie tabuľky • DROPTABLE ... zrušenie tabuľky

  5. create table meno_tabulky (meno_položkytyp_položky, ... ) Tvorba databázy

  6. createtable adresar ( id int auto_increment primary key, meno varchar(15), priezvisko varchar(15), email varchar(40), dat_nar date);

  7. Modifikáciaštruktúry ALTERTABLE meno_tabuľky  [ADD (špecifikácia_stlpcov)]  [MODIFYšpecifikácia_stlpca]  [DROP meno_stlpca]  [DROPCONSTRAIN meno_stlpca]

  8. Pridanie nového záznamu insertintomeno_tabulkyvalues (hodnota1, ..., hodnotaN) insert into adresar values (0, 'Jožko', 'Mrkvička', 'Jozko.Mrkvicka@inmail.sk', '1953-03-25'); Nula na mieste id spôsobí automatické generovanie jedinečného id.

  9. Príkaz Select SELECTšpecifikácia_výstupnych_sloupců FROMzoznam_tabuliekWHERE výstupna_podmienkaGROUP BYzoskupujúce_výrazyHAVING podmienka_súčtových_riadkovORDER BY kritérium_triedenia

  10. Výber a prezeranie záznamov select * from meno_tabulky Obsah našej tabuľky si teda môžeme overiť pomocou príkazu: select * from adresar; v príkaze Select je možné používať napríklad: where, like, for a logické operátory

  11. Rozšírený select select * from adresar where priezvisko like 'Mrkvička'; select * from adresar where email = 'juvac@imnmail.sk'; select * from adresar where priezvisko = 'Mrkvička' and meno = 'Jožko'; select * from adresar where priezvisko like 'Mrk%';

  12. Zmena záznamu updatemeno_tabulkysetpoložka=hodnota, ... wherepodmienka; modifikuje všetky záznamy, ktoré vyhovujú podmienke. Pokiaľ chceme meniť len jeden záznam -- to je vo väčšine prípadov najtypickejší príklad -- je vhodné ako podmienku uviesť test primárneho kľúča na jedinečnú hodnotu: update adresar set email="meno@inmail.sk" where id=37;

  13. Rušeniezáznamov delete from meno_tabulkywherepodmienka ukážka zmazania záznamu, ktorého identifikačné číslo je tri: delete from adresar where id=3;

  14. Zmazanie celej tabuľky Pokiaľ sa nejaká tabuľka stala zbytočnou a nepotrebnou, môžeme ju aj s jej obsahom zmazať pomocou príkazu: drop table meno_tabulky Dajte si však na túto operáciu pozor. Tabuľka je zmazaná nenávratne.

  15. MySQL v PHP <? mysql_Connect("localhost")?> práca s databázou <? mysql_Close()?> funkciamysql(user_name, SQL_príkaz),

  16. Vloženie v PHP Predpokladajme, že v premenných $meno, $priezvisko, $email a $dat_nar máme uložené informácie o človekovi, ktorého chceme do adresára pridať.

  17. Pridanie záznamu v PHP <? mysql_Connect("localhost"); $result = mysql("user_name", "insert into adresar values (0, '$meno', '$priezvisko', '$email', '$dat_nar')"); if ($result==0): echo "Záznam bol pridaný do databázy."; else: echo "Chyba -- záznam sa nepodarilo pridať."; endif; mysql_Close(); ?>

  18. Výber záznamov v PHP <? $result = mysql("user_name", "select * from adresar"); ?> Počet záznamovmôžeme zistiť pomocou funkcie mysql_NumRows($result);

  19. Výber záznamov v PHP <? mysql_Connect("localhost"); $result = mysql("user_name", "select * from adresar"); $pocet = mysql_NumRows($result); echo "V tabuľke adresar je $pocet záznamov."; mysql_Close(); ?>

  20. Výber záznamov v PHP položky záznamov sú prístupné pomocou funkcie mysql_Result(). má tri parametre: mysql_Result ($result, číslo_záznamu, položka);

  21. MySQL_result $i = 0; while ($i<$pocet): echo mysql_Result($result, $i, "meno") +" " + mysql_Result($result, $i, "priezvisko") + ", " + mysql_Result($result, $i, "email") + ", " + mysql_Result($result, $i, "dat_nar") + "<BR>"; $i++; endwhile;

  22. mysql_FreeResult Pokiaľ už nepotrebujeme s výsledkom dotazu ďalej pracovať, je vhodné uvolniť pamäť, v ktorej je výsledok uložený. To vykonáme volaním funkcie mysql_FreeResult($result).

  23. mysql_Affected_Rows Počet záznamov, ktorých sa dotklo vykonanie operácie update, deletealebo insert, vracia funkcia mysql_Affected_Rows().

  24. Zmena záznamu <? mysql_Connect("localhost"); $result = mysql("user_name", "update adresar set email='$email' where id=$id"); if ($result==0): echo "Záznam sa podarilo úspešne aktualizovať."; else: echo "Záznam nie je možné aktualizovať."; endif; mysql_Close(); ?>

  25. Zrušenie záznamu <? mysql_Connect("localhost"); $result = mysql("user_name", "delete from adresar where id=$id"); if ($result==0): echo "Záznam sa podarilo úspešne vymazať."; else: echo "Záznam nie je možné vymazať."; endif; mysql_Close(); ?>

  26. Databázy typu Dbase • dbase_create — vytvorenie dBase databázy • dbase_open — otvorenie dBase databázy • dbase_close — uzavretie dBase databázy • dbase_pack — odstránenie zrušených záznamov • dbase_add_record — pridanie záznamou do databázy • dbase_replace_record — modifikácia záznamu v databáze • dbase_delete_record — označenie záznamov ako zrušené • dbase_get_record — načítanie záznamu z databázy • dbase_get_record_with_names — načítanie záznamu z databázy do poľa • dbase_numfields — zistenie počtu položiek v databáze • dbase_numrecords — zistenie počtu záznamov v databáze

  27. Vytvorenie databázy - dbase_create int dbase_create(string meno_databazy , array polia); • L - Boolean - predstavuje jeden znak • M - Memo - nie je podporované systémom PHP • D - Date (v tvare YYYYMMDD) - štandardne 8 znakov • N - Number - položka má dve hodnoty dĺžku čísla a počet desatinných miest. • C - String - definuje sa len dĺžka reťazce max. 255 znakov.

  28. Vytvorenie databázy $dbname = "/tmp/test.dbf"; $def = array( array("datum","D"), array("meno" ,"C", 50), array("vek" ,"N", 3, 0), array("email","C", 128), array("clen" , "L") ); if (!dbase_create($dbname, $def)) print "Error!";

  29. Otvorenie databázy - dbase_open int dbase_open(string dBmeno, int flags); Parameter flags: • 0 znamená read-only, • 1 znamená write-only, a • 2 znamená read and write.

  30. Uzavretie databázy - dbase_close bool dbase_close(int dbase_id); Uzavrie databázu, ktorá je asociovaná idetifikátorom dbase_id.

  31. Pridanie záznamu bool dbase_add_record( int dbase_identifier, array record);

  32. Počet polí - dbase_numfields int dbase_numfields(int dbase_identifier); Vráti počet polí v špecifikovanom databázovom súbore. Počet polí je medzi 0 a dbase_numfields($db)-1,, napríklad $rec = dbase_get_record($db, $recno); $nf = dbase_numfields($db); for ($i=0; $i < $nf; $i++) { print $rec[$i]."\n"; }

  33. Počet záznamov - dbase_numrecords int dbase_numrecords(int dbase_id); Vráti počet záznamov - (riadkov) v špecifikovanom databázovom súbore. Počet záznamov môže byť medzi 1 a dbase_numrecords($db). $nf = dbase_numrecords($db); print "v databáze je"$nf "záznamov \n"; }

  34. Čítanie databázy array dbase_get_record(int dbase_id, int record); Vráti dáta z databázového záznamu do poľa. Pole začína indexom 0, a obsahuje značku zrušenia súboru, ktorá je v prvom poli databázy. Každé pole databázy je konvertované na zodpovedajúci PHP typ adátum je uložený ako reťazec

  35. Čítanie podľa asociácie funkcia dbase_get_record_with_names – vráti záznam z databázy do asociovaného poľa array dbase_get_record_with_names( int dbase_id, int record);

  36. Zmena databázy bool dbase_replace_record( int dbase_id, array record, int dbase_record_number); Nahradí asociované polia v čísle záznamu definovaného parametrom record_number s dátami v poli record. Ak počet polí - položiek záznamu - nezodpovedá počtu definovaných položiek v databáze, operácia je zrušená a systém vríti stav false

  37. Rušenie záznamov bool dbase_delete_record( int dbase_id, int record); Pre skutočné odstránenie záznamov je nutné nadväzne použiť funkciu dbase_pack(), ktoráodstráni záznamy označené ako zrušené z databázy. bool dbase_pack(int dbase_id);

More Related