1 / 68

MySQL Duomen ų baz ė s kūrimas

MySQL Duomen ų baz ė s kūrimas. Telekomunikacijų informacinės technologijos ( 2 dalis). Duomen ų bazės. Duomenų bazė (DB) – tai visuma tam tikru būdu organizuotos informacijos, kuriai tvarkyti ir išrinkti naudojamos specialios priemonės – duomenų bazės valdymo sistema (DBVS).

vonda
Download Presentation

MySQL Duomen ų baz ė s kūrimas

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. MySQLDuomenų bazės kūrimas Telekomunikacijų informacinės technologijos (2 dalis)

  2. Duomenų bazės Duomenų bazė (DB) – tai visuma tam tikru būdu organizuotos informacijos, kuriai tvarkyti ir išrinkti naudojamos specialios priemonės – duomenų bazės valdymo sistema (DBVS). Duomenų bazėje: • duomenys apjungiami į lenteles, • kiekvieną lentelę sudaro tam tikras eilučių ir stulpelių skaičius, • lentelės eilutė vadinama DB įrašu, • kiekvieną įrašą sudaro tam tikras informacijos vienetų skaičius; kiekviename lentelės stulpelyje būna vienas toks vienetas.  S.Maciulevičius

  3. Duomenų bazės Duomenų bazė vadinama reliacine (relation - sąryšis), jei vienos lentelės įrašams tam tikru būdu atitinka įrašas ar įrašai kitoje lentelėje. Reliacinės DB jėga slypi tame, kad tokios DB įgalina pagal užklausą iš susietų lentelių išrinkti duomenis ir juos pateikti reikiama forma.  S.Maciulevičius

  4. MySQL DBVS kūrimepagrindinį vaidmenį vaidina trys firmos: • Oracle, kuriosDBVS skirtos labai didelėms DB (panaudojant Web’ą), kurti; jos pradinio lygio Standard Edition variantas 2003 m. gale kainavo 5995 USD; • IBM, kurios DBVS DB2 skirta ir atskiriems kompiuteriams, ir serveriams;2003 m. gale DB2 Express kainavo apie 4000 USD vienam procesoriui; • Microsoft, kurios DBVS Microsoft SQL Server 2003 m. gale kainavo apie 5000 USD. IBM ir Oracle yra įgijusios aukštą reputaciją stambiose kompanijose, o Microsoft - nedidelėse firmose ar didelių kompanijų skyriuose.  S.Maciulevičius

  5. MySQL MySQL patraukli tuo, kad ji jos Unix versija yra nemokama. Ją galima gauti adresu http://www.mysql.com/. MySQL dirba ne tik Unix, bet ir Windows platformose.  S.Maciulevičius

  6. MySQL MySQL kildinama iš DBVS UNIREG, sukurtos švedų kompanijos TcX užsakymu (1979 m.) ir mSQL, kuri neatitiko aukštų kompanijos TcX reikalavimų. Todėl 1995 metais buvo sukurta MySQL. 1995 metais pasirodžiusi MySQL versija 3.11.1 buvo skirta Linux ir Solaris operacinėms sistemoms, o šiandien MySQL dirba daugelyje platformų ir platinama ne tik dvejetainių kodų pavidalu, bet ir kartu su išeities tekstais.  S.Maciulevičius

  7. MySQL privalumai • Sparta. Laikoma, kad šiuo atžvilgiu MySQL yra viena iš sparčiausiai dirbančių DBVS, kurias galima sutikti rinkoje. http://www.mysql.com/information/benchmarks.html puslapyje galima rasti spartos testų rezultatus. • Naudojimo paprastumas. Tai naši ir paprastai tvarkoma DBVS, kurią (lyginant su kitomis DBVS) žymiai paprasčiau įdiegti ir administruoti. • Kaina. DBVS MySQL asmeniniams ir nekomerciniams poreikiams platinama nemokamai. • Užklausų kalbos palaikymas. MySQL „supranta“ užklausų kalbą SQL (Structured Query Language), kuri naudojama praktiškai visose šiuolaikinėse DBVS. • Galimybės. MySQL serveris leidžia prisijungti praktiškai neribotam vartotojų skaičiui.  S.Maciulevičius

  8. MySQL privalumai • Kreipimuisi į DBVS interaktyviu režimu galima naudoti įvairias sąsajas – tiek komandų eilutę naudojančias kliento programas, tiek Web naršykles arba kliento programas, dirbančias X Window sistemoje. Be to, MySQL galima naudoti ir įvairių programavimo kalbų (C, Perl, Java, PHP) programines sąsajas • Pernešamumas. MySQL puikiai dirba valdant ne tik įvairioms Unix versijoms, bet ir Windows ar OS/2. Ją galima naudoti ir asmeniniuose kompiuteriuose, ir galinguose serveriuose  S.Maciulevičius

  9. MySQL privalumai • Sąveika ir sauga. DBVS MySQL skirta darbui tinkle, į ją galima kreiptis per Internetą. Ji aprūpinta išvystyta apsugos nuo nesankcionuotos kreipties sistema • Atviras platinimas. MySQL distributyvai prieinami naudojant Web naršyklę  S.Maciulevičius

  10. MySQL privalumai Dar keletas vartotojui svarbių MySQL savybių: • Ryšių optimizavimas, vienu metu sutvarkant didelį duomenų kiekį. • Fiksuoto ir kintamo ilgio įrašai. • Lanksti privilegijų ir slaptažodžių sistema. • Iki 16 raktų lentelėje. Kiekvienas raktas gali turėti iki 15 laukų. • Raktinių ir specialių laukų palaikymas operatoriuje CREATE. • Įvairaus ilgio skaičių (nuo 1 iki 4 baitų - ints, float, double, fixed) ir kintamo ilgio eilučiųpalaikymas. • …  S.Maciulevičius

  11. MySQL privalumai • … • Programavimo kalbų C ir Perl sąsajos [interfeisai] • Sparti darbo su atmintimi sistema • Lentelės patikrinimo ir „remonto“galimybė • Apdorojant eilutes nekreipiama dėmesio į simbolių registrą • Visi laukai turi reikšmes pagal nutylėjimą • INSERT galima naudoti bet kokiam laukų skaičiui • Lengva tvarkyti lenteles, įskaitant laukų ir raktų pridėjimą bei naikinimą  S.Maciulevičius

  12. Ko reikia MySQL Norint naudoti MySQL, reikia turėti tokius programinius produktus: • SQL serverį. Ši programa realizuoja prieigą prie DB. • Kliento programas kreipimuisi į serverį. Šios programos skirtos interaktyviam darbui su DB bei darbui su Web mazgu (serverio valdymui, kreipties teisėms nustatyti ir pan.). • Kliento programas, skirtas savoms programoms kurti. Šios programos gali būti rašomos naudojant C (nes pati biblioteka parašyta naudojant C), taip pat ir kitas programavimo kalbas.  S.Maciulevičius

  13. Duomenų bazės kūrimas [MySQL] duomenų bazė kuriama tokia tvarka: • Sukuriama (inicializuojama) duomenų bazė. • Sukuriamos duomenų bazės lentelės. • Lentelės užpildomos reikiama informacija, naudojant įterpimo, išrinkimo (iš kitos duomenų bazės), modifikavimo ir pašalinimo operacijas.  S.Maciulevičius

  14. Pavyzdys ir komentarai Kiekvieną duomenų bazę sudaro viena (retai) ar kelios lentelės. Lentelėje mes išskiriame eilutes ir stulpelius, pavyzdžiui: +------------+-------+---------+--------+------------------+ | kliento_id | vardas| pavard | tel | adresas | +------------+-------+---------+--------+------------------+ | 1 | Jonas | Kuzma | 234567 | Daukanto 1 - 1 | | 2 | Kostas| Kuzma | 373728 | Daukanto 12 - 10 | | 3 | Ignas | Klimas | 449373 | Kanto 2 - 10 | | 4 | Santa | Klausas | 799999 | Siaures polius 1 | +------------+-------+---------+--------+------------------+ Viena lentelės eilutė - tai įrašas. Įrašą sudaro keli langeliai (laukai). Lauko turinys - atributas.  S.Maciulevičius

  15. Pavyzdys ir komentarai MySQL priklauso vadinamųjų reliacinių DB kategorijai. Reliacinę DB sudaro kelios lentelės, kuriose esanti informacija yra tam tikru būdu susijusi (relation - ryšys, sąryšis, tarpusavio priklausomybė). SQL leidžia kombinuoti visose lentelėse esančius duomenis, sudarant ir analizuojant duomenų sąryšius. Turėtąją lentelę +------------+-------+---------+--------+------------------+ | kliento_id | vardas| pavard | tel | adresas | +------------+-------+---------+--------+------------------+ | 1 | Jonas | Kuzma | 234567 | Daukanto 1 - 1 | | 2 | Kostas| Kuzma | 373728 | Daukanto 12 - 10 | | 3 | Ignas | Klimas | 449373 | Kanto 2 - 10 | | 4 | Santa | Klausas | 799999 | Siaures polius 1 | +------------+-------+---------+--------+------------------+  S.Maciulevičius

  16. Pavyzdys ir komentarai papildykime tokia: +----------+-------------------+------------------+ | video_id | filmas | autorius | +----------+-------------------+------------------+ | 1 | Star Wars | George Lucas | | 2 | ET | Ignas Spielberg | | 3 | Charlie's Angels | McG | | 4 | Any Given Sunday | Oliver Stone | | 5 | Hollow Man | Paul Verhoeven | | 6 | Woman On Top | Fina Torres | +----------+-------------------+------------------+  S.Maciulevičius

  17. Pavyzdys ir komentarai ir dar tokia: +------------+----------+ | kliento_id | video_id | +------------+----------+ | 2 | 6 | | 4 | 2 | | 1 | 1 | | 1 | 2 | | 1 | 3 | +------------+----------+ Kaip matome, pastaroji lentelė suriša dvi pirmąsias. Joje nurodyta, kuris asmuo kurią vaizdajuostę turi paėmęs.  S.Maciulevičius

  18. Lentelių sąryšis +------------+-------+---------+--------+------------------+ | kliento_id | vardas| pavard | tel | adresas | +------------+-------+---------+--------+------------------+ | 1 | Jonas | Kuzma | 234567 | Daukanto 1 - 1 | | 2 | Kostas| Kuzma | 373728 | Daukanto 12 - 10 | | 3 | Ignas | Klimas | 449373 | Kanto 2 - 10 | | 4 | Santa | Klausas | 799999 | Siaures polius 1 | +------------+-------+---------+--------+------------------+ +----------+-------------------+------------------+ | video_id | filmas | autorius | +----------+-------------------+------------------+ | 1 | Star Wars | George Lucas | | 2 | ET | Ignas Spielberg | | 3 | Charlie's Angels | McG | | 4 | Any Given Sunday | Oliver Stone | | 5 | Hollow Man | Paul Verhoeven | | 6 | Woman On Top | Fina Torres | +----------+-------------------+------------------+ +------------+----------+ | kliento_id | video_id | +------------+----------+ | 2 | 6 | | 4 | 2 | | 1 | 1 | | 1 | 2 | | 1 | 3 | +------------+----------+  S.Maciulevičius

  19. MySQL iškvietimas MySQL iškviečiama taip: $ mysql –u vartot -p Tuomet reikia įvesti vartotojo slaptažodį. Prisijungus prie programos, pasirodo maždaug toks pranešimas: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 80 to server version: 3.23.24-beta-debug Type 'help;' or '\h' for help. mysql> Dabar sistema laukia komandos.  S.Maciulevičius

  20. Duomenų bazėssukūrimas Kadangi visos MySQL lentelės laikomos duomenų bazėje, reikia pradėti nuo jos sukūrimo, pavyzdžiui: mysql>CREATE DATABASE katalogas; Query OK, 1 row affected (0.05 sec) Duomenų bazė, kurią tvarkysime, nurodoma komanda USE: mysql>USE katalogas; Database changed  S.Maciulevičius

  21. Lenteliųsukūrimas Duomenų bazės lentelių sąrašą galoma pamatyti nurodžius komandą SHOW TABLES: mysql>SHOW TABLES; Empty set (0.00 sec) Duomenų bazės lentelės sukuriamos komanda CREATE TABLE. CREATE TABLEkomandos sintaksė: CREATE TABLE <table_name> (<field_name_1> <field_type_1> <modifiers>, <field_name_2> <field_type_2> <modifiers>, ... , <field_name_n> <field_type_n> <modifiers>)  S.Maciulevičius

  22. CREATE TABLEkomanda Stulpelio aprašas: <field_name_1> <field_type_1> <modifiers> Čia: <field_name_1>- stulpelio pavadinimas <field_type_1>- stulpelio tipas <modifiers>- papildomainformacija apie stulpelį – parametrai arbaPRIMARY KEY index_col_name,... - stulpelis indeksuojamas duomenų paieškai paspartinti  S.Maciulevičius

  23. Stulpelio tipas Nurodoma: • kokio tipo reikšmės jame saugomos; • koks jų dydis (ilgis); • kaip to tipo reikšmės palyginamos ir rikiuojamos; • ar jame gali būti saugomos “tuščios” reikšmės; • ar to tipo reikšmės gali būti indeksuojamos. Duomenų tipai: • skaičiai, • simbolių eilutės, • data ir laikas.  S.Maciulevičius

  24. Pagrindiniai žymėjimai Laužtiniai skliaustai [ elem ] žymi nebūtiną informaciją (elemento elem gali ir nebūti) length – maksimalus galimas simbolių skaičius vaizduojant informaciją decimals– dešimtainių skaitmenų skaičius po kablelio  S.Maciulevičius

  25. Pagrindiniai stulpelio tipai INT[(length)] [UNSIGNED] [ZEROFILL] arbaINTEGER[(length)][UNSIGNED] [ZEROFILL] arbaFLOAT[(length,decimals)][UNSIGNED] [ZEROFILL] arba DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL] arba CHAR(length) [BINARY] arba VARCHAR(length) [BINARY] arba...  S.Maciulevičius

  26. Pagrindiniai skaitiniaitipai Pagrindiniai skaitiniųduomenų tipai: • INT (M), INTEGER(M)(sinonimai) – sveikieji skaičiai nuo -231 iki 231-1 (be ženklo - nuo 0 iki 232-1) • FLOAT(M,D)– slankaus kablelio skaičiai: nuo -1038 iki 1038 • DECIMAL(M,D)– dešimtainiai skaičiai; priklauso nuo M ir D • CHAR(M)– M simbolių eilutė (fiksuoto ilgio: M<256; trumpesnės eilutės gale pridedami “tarpai”) • VARCHAR(M)– M simbolių eilutė(kintamo ilgio: 0-M; M<256)  S.Maciulevičius

  27. Simbolių eilutės Simbolių eilutės ilgis M<256; užrašant eilutė iš abiejų galų “įrėminama” paprastomis arba dvigubomis kabutėmis: “Tai yra eilutė”. Jei prisireikia naudoti specialiuosius simbolius, jų užrašymui tenka naudoti simbolių sekas: • paprastai kabutei - \’ • dvigubai kabutei - \” • naujai eilutei - \n • tabuliacijai - \t • pasviram brūkšniui - \\  S.Maciulevičius

  28. Papildomi stulpelio tipai TINYINT[(length)] [UNSIGNED] [ZEROFILL] arbaSMALLINT[(length)] [UNSIGNED] [ZEROFILL] arbaBIGINT[(length)] [UNSIGNED] [ZEROFILL] arbaDOUBLE[(length, decimals)] [UNSIGNED] [ZEROFILL] arba DATE arba TEXT arba SET(value1,value2,value3,...) arba...  S.Maciulevičius

  29. Papildomi stulpeliotipai • TINYINT – nuo -128 iki 127 (be ženklo - nuo 0 iki 256) • SMALLINT – nuo -32768 iki 32767 (be ženklo - nuo 0 iki 65535) • BIGINT– nuo -263 iki 263-1 (be ženklo - nuo 0 iki 264-1) • DOUBLE(M,D)– dvigubo ilgio slankaus kablelio skaičiai; nuo -10308 iki 10308 • DATA– data, vaizduojama formatu YYYY-MM-DD • TEXT– eilutė, kurią sudaro atitinkamo ilgio tekstas (TINYTEXT – iki 28 baitų, …, LONGTEXT – iki 232 baitų)  S.Maciulevičius

  30. Duomenų apimtis • TINYINT – 1 baitas • SMALLINT – 2 baitai • INT – 4 baitai • BIGINT– 8 baitai • FLOAT(M,D)– 4 baitai • DOUBLE(M,D)– 8 baitai • DECIMAL(M,D)– M baitų (MySQL < 3.23)arba M+2 baitai (MySQL >= 3.23); pvz., DECIMAL(4,2)diapazonas MySQL < 3.23 yra nuo -9,9 iki +9,9, o MySQL >= 3.23 -nuo -999,9 iki +999,9  S.Maciulevičius

  31. Stulpelio tipai Kai kurie kitiduomenų tipai: • ENUM(“value1”, “value2”,…)– eilutės tipo duomenų rinkinys; galima tik viena reikšmė iš šio sąrašo; • SET(“value1”, “value2”,…)– eilutės tipo duomenų rinkinys; galimas bet koks reikšmių rinkinys iš šio sąrašo; • DATA– nuo “1000-01-01” iki “9999-12-31”; • YEAR– nuo 1901 iki 2155.  S.Maciulevičius

  32. Stulpelio tipo parinkimas Dažniausiai sutinkamasduomenų tipas – simbolių eilutės. Tai gana universalus tipas, nes į tokio tipo stulpelius galima įrašyti ne tik tekstą, bet ir skaičius, datas, telefono numerius. Gal galima ir nenaudoti skaitinių ar datų tipo stulpelių? Skaitiniai duomenys efektyviau laikomi kompiuterio atmintyje, kitaip interpretuojami rikiuojant. Pavyzdžiui, skaičius 3<12, tačiau eilutė “3”>”12”.  S.Maciulevičius

  33. Stulpelio tipo parinkimas Parenkant stulpelioduomenų tipą, reikia atsižvelgti į tokius dalykus: • Kokio tipo duomenys (skaitiniai, tekstiniai, datos, ...) reikalingi konkrečiu atveju? • Koks duomenų reikšmių diapazonas (skaičiams, eilučių ilgiams, ...)? Ar skaitiniai duomenys bus tik teigiami (parametras UNSIGNED)? Jei simbolių eilutės – ar reikšmių aibė fiksuota (tipas SET)? • Apdorojimo spartą ir efektyvumą: skaitiniai duomenys apdorojami sparčiau nei simbolių eilutės, trumpesnės simbolių eilutės palyginamos sparčiau nei ilgesnės, lentelės su fiksuoto ilgio eilutėmis apdorojamos sparčiau nei lentelės su kintamo ilgio eilutėmis .  S.Maciulevičius

  34. Stulpelio tipo parinkimas Dar pora dalykų: • Kaip bus palyginamos reikšmės? Ar simbolių eilutėse reikės skirti mažąsias raides nuo didžiųjų? • Ar duomenys bus rikiuojami (rikiavimas atliekamas naudojant palyginimą)? • Ar duomenys bus indeksuojami? Reikia atminti, kad BLOB ir TEXT tipo duomenys nėra indeksuojami. Ankstesnėse versijose indeksuojami stulpeliai turi būti paskelbti NOT NULL.  S.Maciulevičius

  35. Stulpelio parametrai Priklauso nuo duomenų tipo: • sveikieji skaičiai gali būti tik teigiami (UNSIGNED) arba su ženklu; • ZEROFILLnurodo, kadskaičiai iš kairės papildomi nuliais; • AUTO_INCREMENTnurodo, kadstulpelis užpildomas nuosekliai didėjančiais skaičiais; toks stulpelis būtinai sveikųjų skaičių tipo, vienintelis lentelėje ir turi būti paskelbtas kaip pirminis raktas (PRMARY KEY); • NULLnurodo, kadstulpelis užpildomas nuliais (kai neįvestos kitos reikšmės); • NOT NULLnurodo, kadstulpelis privalo būti užpildytas (įvestos kokios nors reikšmės).  S.Maciulevičius

  36. CREATE TABLEkomanda Pavyzdys: create table uzsakymai( -> uzs_nr int(4) NOT NULL auto_increment, -> tel_id int(5) NOT NULL, -> kiekis int(3) NOT NULL, -> data varchar (10) NOT NULL, -> uzsakovas varchar (20) NOT NULL); Atkreipkime dėmesį į įvedamos komandos “sukapojimą” į 6 eilutes: įvedus create table uzsakymai( ir paspaudus <Enter>, naujoje eilutėje pasirodo kvietimas ->tęsti komandą.  S.Maciulevičius

  37. CREATE TABLEkomanda CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name • Sukuriant lentelę, galima naudoti TEMPORARY raktą. Tokia lentelė bus automatiškai pašalinta, nutraukus ryšį su serveriu. Tai reiškia, kad skirtingi prisijungimai gali naudoti tą patį vardą ir nebus konfliktų. • MySQL 3.22 ar paskesnėse versijose galima naudoti raktus IF NOT EXISTS, tada nebus fiksuojama klaida, jei tokiu vardu lentelė jau egzistuoja.  S.Maciulevičius

  38. Klaidos ir jų taisymas Tarkime, padarėme klaidą – įvesdami komandą, praleidome “L”: create table uzsakymai( -> uzs_nr int(4) NOT NULL auto_increment, -> tel_id int(5) NOT NUL, -> kiekis int(3) NOT NULL, -> data varchar (10) NOT Null, -> uzsakovas varchar (20) NOT NULL);  S.Maciulevičius

  39. Klaidos ir jų taisymas Ekrane pasirodė toks pranešimas: ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'NUL, kiekis int(3) NOT NULL, data varchar (10) NOT Null, uzsako  S.Maciulevičius

  40. Klaidos ir jų taisymas Tai reiškia, kad įvedant padaryta klaida. Klaidą apibūdinantis tekstas sako, kad reikia patikrinti sintaksę maždaug toje vietoje, kur yra tekstas „NUL, -> kiekis int(3) NOT NULL, ...“. Atidžiai pažiūrėję pastebime, kad turi būti NULL, o ne NUL.  S.Maciulevičius

  41. Klaidos ir jų taisymas Pataisome: spaudžiame klavišą <>, iki pasirodys pirmoji eilutė create table uzsakymai( po to - <Enter> (kadangi jos taisyti nereikia), po to vėl spaudžiame klavišą <>, iki pasirodys antroji eilutė uzs_nr int(4) NOT NULL auto_increment, po to - <Enter> (kadangi ir jos taisyti nereikia), po to vėl spaudžiame klavišą <>, iki pasirodys trečioji eilutė tel_id int(5) NOT NUL, dabar ją pataisome, žymiklį stumdydami rodyklių klavišais  ir : tel_id int(5) NOT NULL,  S.Maciulevičius

  42. Klaidos ir jų taisymas Taip tęsiame iki pabaigos, iškviedami likusias eilutes ir patvirtindami klavišu <Enter>: mysql>create table uzsakymai( -> uzs_nr int(4) NOT NULL auto_increment, -> tel_id int(5) NOT NULL, -> kiekis int(3) NOT NULL, -> data varchar (10) NOT Null, -> uzsakovas varchar (20) NOT NULL);  S.Maciulevičius

  43. Klaidos ir jų taisymas Ekrane pasirodė kitoks pranešimas: ERROR 1075: Incorrect table definition; There can only be one auto column and it must be defined as a key Jis sako, kad automatiškai pildomas didėjimo tvarka stulpelis turi būti paskelbtas kaip pirminis raktas. Pataisome:  S.Maciulevičius

  44. Klaidos ir jų taisymas mysql>create table uzsakymai( -> uzs_nr int(4) NOT NULL auto_increment, -> tel_id int(5) NOT NULL, -> kiekis int(3) NOT NULL, -> data varchar (10) NOT Null, -> uzsakovas varchar (20) NOT NULL, -> primary key (uzs_nr) ); Ekrane pasirodė toks pranešimas: Query OK, 0 rows affected (0.01 sec) Jis rodo, kad lentelė sukurta teisingai.  S.Maciulevičius

  45. Klaidos ir jų taisymas Pasitikriname: mysql>show tables; +-----------–-----+ | Tables_in_stama | +-----------------+ | uzsakymai | +-----------------+ 1 row in set (0.01 sec)  S.Maciulevičius

  46. Lentelės modifikavimas Dažnai prisireikia modifikuoti lentelę: • keisti lentelės pavadinimą; • pridėti naują stulpelį; • keisti stulpelio pavadinimą; • išmesti stulpelį; • keisti anksčiau sukurto stulpelio tipą; • pridėti indeksą. Tam tikslui skirta komanda ALTER TABLE  S.Maciulevičius

  47. ALTER komanda ALTER TABLE tbl_name alter_spec [, alter_spec ...] alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER col_name ] arba ADD INDEX [index_name] (index_col_name,...) arba ADD PRIMARY KEY (index_col_name,...) arba CHANGE [COLUMN] old_col_name create_definition arba MODIFY [COLUMN] create_definition arba DROP [COLUMN] col_name arba DROP PRIMARY KEY arba DROP INDEX index_name arba RENAME [AS] new_tbl_name  S.Maciulevičius

  48. ALTER komanda Jei prisireikia modifikuoti lentelę, komandą ALTER TABLEnaudokite taip: • jei keičiate lentelės pavadinimą: ALTER TABLE <table_name> RENAME AS <new_table_name> • jei pridedate naują stulpelį: ALTER TABLE <table_name> ADD <new_field_name> <new_field_type>  S.Maciulevičius

  49. ALTER komanda Jei prisireikia modifikuoti stulpelį: • jei modifikuojate anksčiau sukurtą stulpelį: ALTER TABLE <table_name> MODIFY <old_field_name> <new_field_type> <modifiers> • jei modifikuojate kartu pervardydami anksčiau sukurtą stulpelį: ALTER TABLE <table_name> CHANGE <old_field_name> <new_field_name> <new_field_type> <modifiers>  S.Maciulevičius

  50. ALTER komandos pavyzdžiai Turime lentelęlent1, sukurtą tokiu būdu: mysql>CREATE TABLE lent1 (a INTEGER,b CHAR(10)); Pakeisime jos pavadinimą išlent1įlent2: mysql>ALTER TABLE lent1 RENAME lent2; Pakeisime stulpelio tipą išINTEGERįTINYINT NOT NULL(nekeisdami pavadinimo), obtipąpakeisime išCHAR(10)įCHAR(20),kartu pakeisimejo pavadinimąišbįc: mysql>ALTER TABLE lent2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);  S.Maciulevičius

More Related