1 / 42

My SQL

My SQL. Programim ne Web Leksion 8. MySQL. MySQL (http://www.mysql.com) eshte nje server databaze i fuqishem , zhvilluar dhe mirembajtur nga T.c.X DataKonsultAB of Stockholm, Sweden.

onslow
Download Presentation

My 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. My SQL Programim ne Web Leksion 8 Iralda Mitro

  2. MySQL • MySQL(http://www.mysql.com) eshtenje server databazeifuqishem, zhvilluardhemirembajturngaT.c.XDataKonsultAB of Stockholm, Sweden. • Qe ne 1995, MySQLeshteberenjengaserverat me popullore ne bote, kjofaleshpejtesise se serverit, fuqisedhepolitikavefleksibelteliçences. • MySQLeshtekompatibelpothuajse me çdosistemshfrytezimi, duke perfshirendertetjere: FreeBSD, Solaris, UNIX, Linux, sidheversionet e ndryshmete Windows. • Meritatdhekarakteristikat e MySQL-se, se bashku me njebashkesitemadhefunksioneshlehtesishtteperdorshme, e bejneMySQL-ne databazen me popullore, plotesuesetePHP Iralda Mitro

  3. Pse MySQL? • MySQLeshteipershtatshem ne menyreteveçante ne aplikacione web. • MySQLeshtefalas. Mundtainstalonidhetaperdorni pa paguarasgje. • MySQL eshte i shpejte dhe i fuqishem. Per baza te dhenash te vogla dhe mesatare, MySQL eshte jashtezakonisht i shpejte. • MySQL po permiresohet gjate kohes. Zhvilluesit e rifreskojne shpesh, duke i shtuar veçori te reja. Iralda Mitro

  4. Komanda - create database • create database database_name • Pasiekzekutohetkjokomande, MySQLkrijonnjedirektori ne tecilenruantegjitheskedaretqenevojiten per bazen e tedhenave. • Psh: /var/lib/mysql/ Iralda Mitro

  5. Komanda- create table create tableemertabele ( column_1 column_type column attributes, column_2 column_type column attributes, primary key (column_name), index index_name(column_name) ) Iralda Mitro

  6. Disaatribute • null| not null • Lejonosendalonqenjekolonetemospermbajevlera • default • Percaktonnjevlereqemerrnjekolonenesee leme bosh kurfutimnjerresht ne tabele • auto_increment • Vete_rrites – e vendos ne menyreautomatikevleren e njekolonetetipitint duke rritur me nje, vleren me temadheqe ka rreshtiparaardhes • Pshnese I fundit ka qene 7 , vlera e re qe do temerretautomatikisht do tejete 8(7+1) • Nese e fshijmenjerresht , id e tijnukperdoret me , nuk I jepetnjerreshtitjeter. • Kjomundesonidentifikiminunikterreshtavekurbehetfjale per çelesinprimar Iralda Mitro

  7. Shembull create table topics2 ( topic_id integer not null auto_increment, parent_id integer default 0 not null, root_id integer default 0, name varchar(255), description text null, create_dt timestamp, modify_dt timestamp, author varchar(255) null, author_hostvarchar(255) null, primary key(topic_id), index my_index(parent_id) ) Iralda Mitro

  8. Vlera Boshe - NULL • NULL – asgje, vlere • Per tekontrolluarqenjevlere e njekolonetecaktuareshteboshe (pranuk ka vlere) perdoretoperatori null • Shembuj: • select * from names where isnull(middle_name); • select * from names where !isnull(middle_name); • select * from users where addr2 is null; • select * from users where addr2 is not null; Iralda Mitro

  9. Tipet e kolonave • Tipetekst • Char(n) (n<=255) • Fjale me gjatesifikse me n shkrojna/numra • Psh: nese kolona eshte percaktuar si char(10) dheduamteruajmevleren “happy”, MySQL do teruaje “happy” dhe 5 hapesira. Hapesirathiqenngarezultatikurmerretvlerangatabela. • Shembull: nr_amzes , Nr_targestecileve I dihetnumri I shkronjave • Varchar(n) (n<=255) • Fjale me gjatesivariabel- deri ne n shkronja • Ne ndryshim nga char, ketu vleres nuk i shtohen hapesira, por MySQL shton nje karakter per çdo fushe varchar, i cili ruan gjatesine e fushes. MySQL heq hapesirat nga fundi i stringjeve ne fusha te tipit varchar Iralda Mitro

  10. Tipet Tekst • Te gjithetipet e meposhtmekanegjatesivariabelsi ne rastin e varchar(n) • Ndryshojnenganjeri-tjetringagjatesiamaksimale e tekstitqemundtembajne • TINYTEXT - Gjatesiamaksimaleeshte 255 karaktere • TEXT - Gjatesiamaksimaleeshte 65,535 karaktere • MEDIUMTEXT - Gjatesiamaksimale 16,777,215 karaktere • LONGTEXT - Gjatesiamaksimale 4,294,967,295 karaktere. Kytip nukperdoretshumepasigjatesiamaksimale e stringutqelejonMySQLeshtevetem 16 milion byte Iralda Mitro

  11. ENUM • enum(‘value1’, ‘value2’, ‘value3’ ...) [default ‘value’] • Mundtekufizohetnumriivleraveqemundtemarrenjekolone . Lejonderi 65535 • Pshneseduamqenjekolone e caktuartemarrevetemdyvleratemundshmepodhejo create tablemy_table ( id intauto_increment primary key, Pyetjevarchar(200), Pergjigjeenum (‘po’, ‘jo’) default ‘po’ ); Iralda Mitro

  12. Tipetnumerike • MySQL ka shtatetipekolonash per numrat: • int/integer • tinyint • mediumint • bigint • float • double/double precision/real • decimal/numeric • Dallojnenganjeri-tjetri ne madhesi Iralda Mitro

  13. Tipet per daten dhe kohen • date • time • datetime • year • timestamp • Tipet per kohenjanefleksibel, dhepranojnestringjepshnesekrijojmenjetabele create table date_test( id int unsigned auto_increment, a_date date ); • Komandat e meposhtmeinterpretohensaktengamysql: • insert into date_test (a_date) values (‘00-06-01’); • insert into date_test (a_date) values (‘2000-06-01’); • insert into date_test (a_date) values (‘20000601’); • insert into date_test (a_date) values (000601); Iralda Mitro

  14. Tipet e tedhenave per datat • DATE • Te dhenatruhen ne formatin YYYY-MM-DD. • Lejonvleranga 1000-01-01 deri ne 9999-12-31. • DATETIME • Ruantedhenat ne formatin:YYYY-MM-DD HH:MM:SS. • Lejonvleranga 1000-01-01 00:00:00 ne 9999-12-31 23:59:59. • TIMESTAMP • Eshteshumeidobishemsepseruan ne menyreautomatikekohenkurrreshti u modifikua Iralda Mitro

  15. Tipe per datat • TIME • Ruankohen ne formatin HH:MM:SS dhelejonvleranga –838:59:59 ne 838:59:59. • Arsyejae vleravetemedhaqendrontekfaktiqe tipi I tedhenave time mundteperdoret per teruajturrezultatet e veprimevematematike me kohen • YEAR • Perdorim : year[(2|4)] • Ne formatin me dyshifra, datat e lejuarajanendermjet 1970 dhe 2069. Shifrat 70-99 paraprihennga 19 dhe 01–69 paraprihennga 20. • Rekomandohetperdorimiiformatit me katershifra. Lejonvleranga 1901 ne 2155. Iralda Mitro

  16. Indekset • Indeksetperdoren per tepaturakses me teshpejte ne informacionetspecifiketenjetabele ne bazen e tedhenave. • Njeindekseshtenjestruktureqerenditvlerat e njeose me shumekolonave ne njetabele. • Psh: KolonaMbiemri ne tabelePunonjesit. Nesepokerkoninjepunetorsipasmbiemrittetij, indeksetjundihmojneqetemerrniinformacionin me shpejtsesatekontrollonit ne tegjitherreshtat e tabeles. • Indeksisiguronshenjuesa per ne vlerat e tedhenaveteruajtura ne kolonatecaktuaratetabeles, dheirenditketoshenjuesasipasrendittepercaktuarprejjush. Iralda Mitro

  17. Indekset • Sintaksa index emer_indeksi (kolona_e_indeksuar) • Njemenyretjeter per tekrijuarnje index eshteqetedeklarohetnjekolonesinjeçelesprimar. Vereniqeçdokoloneauto_incrementduhetteindeksohet. create table my_table ( id_colint unsigned auto_increment primary key, another_col text ); • Ose create table my_table ( id_colint unsigned not null auto_increment, another_col text, primary key(id_col) ); Iralda Mitro

  18. Indekset • Indeksetmundteperfshijne me shume se njekolone. Nesenje query perdorketodykolona se bashku per kerkim, duhettekrijoninjeindeksqeiperfshintedyja: create table mytable( id_colint unsigned not null, another_colchar(200) not null, index dual_col_index(id_col, another_col) ); Iralda Mitro

  19. Indekset • Per kolonat char dhevarchar, mundtekrijohenindekse per njepjese ne fillimtekolones : • index index_name (column_name(column_length)) • Shembull: create table my_table( char_column char (255) not null, text_column text not null, index index_on_char (char_column(20)), index index_on_text (text_column(200)) ); • Njeindeksmundtesigurojeqeteekzistojnevleraunike ne çdorresht ne njetabele duke perdorurkufizimin “unique”. create table my_table( char_column char (255) not null, text_column text not null, unique index index_on_char (char_column) ); Iralda Mitro

  20. Komanda Insert • insert into table_name (column_1, column2, column3,...) values (value1, value2, value3 ...) • Nesenjekolonelejonvlera Null athjumundtemos e vendosni ate ne komandeninsert • Stringjetduhettevendosenbrendathonjezaveteke (‘). • Shembull • insert into table_name (text_col, int_col) values (‘hello world’, 1) Iralda Mitro

  21. Escape characters • Disakaraktereteveçantamundtefuten ne njekolone duke I paraprire me backslash • ‘ (single quote) • “ (double quote) • \ (backslash) • % (percent sign) • _ (underscore) • Per escape per thonjezattekemundteperdorimedhedythonjezatekenjera pas tjetres (‘’) . • Ketokaraktereidentifikohen ne MySQLngasekuenca e tyre escape: • \n (newline) • \t (tab) • \r (carriage return) • \b (back space) Iralda Mitro

  22. Komanda update • Sintaksa updatetable_name set col_1=value1,col_2=value_2 where col=value • Shembull: • update folks set fname=’Vito’ where id=2 • update folks set salary=50000 where salary<50,000 Iralda Mitro

  23. Komanda select e thjeshte • Select [lista e kolonavetendara me presje] from[ emri_tabeles] wherekusht_logjik order by [liste e kolonave] Shembull • select column_1, column_2, column_3 from table_name • select * from table_name Iralda Mitro

  24. Komanda select me funksionet e grupit SELECT [lista e kolonavetendara me presjetegrupuara],[funksion_grupi] FROM [ emri_tabeles] WHERE [ kusht_logjik] GROUP BY [lista e kolonavetendara me presjetegrupuara] HAVING [kusht_logjik] Iralda Mitro

  25. Shembuj- Select ithjeshte • Select * from studentet • Selectid,emri,mbiemri fromstudentet where datelindja is null • select * from users where city = ‘San Francisco’ Iralda Mitro

  26. Shembuj- select iperbere • Ngatabelastudentetafishoni per secilinngaemratsa here perseritet SELECT emri, count(*) ‘here’ FROM studentet GROUP BY emri • Ngatabelastudentetafishonitegjitheatastudenteqekaneemer , mbiemertenjejte SELECT emri,mbiemri,count(*) FROM studentet GROUP BY emri,mbiemri HAVING count(*)>1 Iralda Mitro

  27. Operatoret e krahasimit ne MySQL Operator Definition = equal to <> or != not equal to < less than <= less than or equal to > greater than >= greater than or equal to Like Compares a string Iralda Mitro

  28. Komanda drop • drop table/drop database • Per tefshirenjetabeleosetegjithebazen e tedhenaveperdoretkomandadrop. • Kujdes! Nese e fshininjebazetedhenash do tehumbasintegjithetabelatqeekzistojne ne te. • drop table table_name • drop database database_name Iralda Mitro

  29. Marrja e te dhenave nga disa tabela • Skema e bazes se te dhenave Book-O-Rama Iralda Mitro

  30. Marrja e te dhenave nga disa tabela Iralda Mitro

  31. Gjetja e rreshtave qe nuk kombinojne • Shpesh na nevojitet te gjejme rreshtat ne te cilat dy tabelat nuk lidhen, (pra qe nuk kombinojne) • psh: te gjejme klientet qe nuk kane bere porosi, apo librat qe nuk jane porositur. • Menyra me e lehte per kete eshte qe te perdoret nje left join, i cili bashkon te dhenat e dy tabelave, duke patur nje kondite te caktuar, dhe nese nuk gjendet nje rresht korrespondues ne tabelen djathtas, ne tabelen rezultat do te shtohet nje rresht qe permban vlera NULL ne kolonat e djathta. Iralda Mitro

  32. Gjetja e rreshtave qe nuk kombinojne • Rezultati i kesaj query mund te jete: Iralda Mitro

  33. Gjetja e rreshtave qe nuk kombinojne • Per te gjetur klientet qe nuk kane bere porosi: • Mund te vereni qe ne kete shembull eshte perdorur nje sintakse tjeter per join. Eshte perdorur sintakse me USING, ne vend te ON. Perdorimi i USING nuk e specifikon tabelen nga e cila vjen atributi i join, per kete arsye kolonat ne te dy tabelat duhet te kene te njejtin emer nese deshironi te perdorni USING. Iralda Mitro

  34. Perdorimi i emrave te tjere per tabelat: Pseudonimet (Alias ) • Shpesh eshte me praktike qe t’i referohemi tabelave me emra te tjere. Emrat e tjere per tabelat quhen Pseudonime (alias) Iralda Mitro

  35. Perdorimi i emrave te tjere per tabelat: Pseudonimet (Alias ) • Eshte e nevojshme te perdoren pseudonimet, kur duam te bashkojme (join) nje tabele me vetveten. Kjo eshte e nevojshme psh. nese duam te gjejme rreshtat e nje tabele qe kane vlera te perbashketa. • Psh: nese duam te gjejme klientet qe jetojne ne te njejtin qytet, mund t’i veme pseudonime te ndryshme te njejtes tabele (Customers): • Duhet vendosur kushti c1.name != c2.name, per te evituar qe nje rresht te kombinohet me vetveten. Iralda Mitro

  36. Marrja e te dhenave te renditura Iralda Mitro

  37. Grupimi dhe bashkimi (aggregate) i te dhenave Iralda Mitro

  38. Grupimi dhe bashkimi (aggregate) i te dhenave • Shembuj: • Per te dhene sasine mesatare te porosive per çdo klient (ose me mire per çdo customerid), perdorim: Iralda Mitro

  39. Grupimi dhe bashkimi (aggregate) i te dhenave Iralda Mitro

  40. Marrja e te dhenave nga disa tabela • Nje artikull i shprehjes SELECT, qe mund te jete veçanerisht i vlefshem ne aplikacionet web, eshte LIMIT. • Ai ka dy parametra: numrin e rreshtit nga i cili duhet te filloje dhe numrin e rreshtave qe duhet te ktheje: • Kjo query mund te lexohet si: “Selekto name nga customers dhe me pas kthe 3 rreshta, duke filluar nga rreshti 2 ne output” • Vereni qe numrat e rreshtave indeksohen me zero: dmth qe rreshti i pare i outputit eshte rreshti me numer zero. Iralda Mitro

  41. Ndryshimi i rekordeve ne bazen e te dhenave • Mund te perdorim LIMIT per te kufizuar numrin e rekordeve qe do te ndryshohen. Iralda Mitro

  42. Ushtrime • Ne phpmyadmin • Provoni insert me datelindjen null • Futnidisastudente me tenjejtinemer me insert • Afishonitegjithestudenteqevijnengatirana • Provonitegjenisa here perseritetcdoemer • Provonitegjeniciletjanestudentetqekaneemerdhembiemertenjejte Iralda Mitro

More Related