680 likes | 971 Views
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).
E N D
MySQLDuomenų 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). 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Klaidos ir jų taisymas Pasitikriname: mysql>show tables; +-----------–-----+ | Tables_in_stama | +-----------------+ | uzsakymai | +-----------------+ 1 row in set (0.01 sec) S.Maciulevičius
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
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
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
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
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