Računalniki Windows Internet

Zagon strežnika mysql iz ukazne vrstice Windows. Osnove upravljanja MySQL z uporabo ukazne vrstice. Delo z ukazno vrstico

Spodaj je seznam najbolj uporabnih in pogosto uporabljenih ukazov. MySQL s primeri.

mysql na začetku vrstice pomeni, da se ukaz izvede po vnosu MySQL.

Simbol # ali $ na začetku vrstice pomeni, da se ukaz izvaja iz ukazne vrstice.

Za preverjanje stanja strežnika MySQL teči:

Za FreeBSD:

# storitev stanje strežnika mysql

V CentOS/RHEL:

# status storitve mysqld

MySQL iz konzole, če strežnik MySQL je na istem gostitelju:

Za povezavo s strežnikom MySQL iz konzole, če strežnik MySQL ki se nahaja na oddaljenem gostitelju db1.example.com:

$ mysql -u uporabniško ime -p -h db1.example.com

Delo z bazami podatkov, tabelami - ogled, brisanje, urejanje zapisov. Konzola

Ustvari bazo podatkov na MySQL strežnik:

mysql ustvari bazo podatkov

Prikaži seznam vseh baz podatkov na strežniku MySQL:

uporaba MySQL;

Prikaži vse tabele v bazi podatkov:

mysql pokaži tabele;

Ogled oblike tabele v bazi podatkov:

mysql opiši ;

Izbriši bazo:

baza podatkov mysql drop;

Izbriši tabelo iz baze podatkov:

spustna tabela mysql;

Prikaži celotno vsebino tabele:

MySQL SELECT * FROM ;

Prikažite stolpce in vsebino stolpcev v izbrani tabeli:

Mysql pokaži stolpce iz ;

Prikaži vrstice v določeni tabeli, ki vsebuje » karkoli «:

MySQL SELECT * FROM WHERE = "kar koli";

Prikaži vse zapise v določeni tabeli, ki vsebuje " Bob " in telefonsko številko " 3444444:

Mysql SELECT * FROM WHERE name = " Bob " AND phone_number = " 3444444 ";

Pokaži vse vnose NE ki vsebuje ime " Bob " in telefonsko številko " 3444444 ", razvrščeno po polju phone_number:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " order by phone_number;

Prikaži vse vnose, ki se začnejo s črkama " bob " in telefonsko številko " 3444444 " v določeni tabeli:

Mysql SELECT * FROM WHERE ime, kot je " Bob %" AND phone_number = " 3444444 ";

Prikaži vse vnose, ki se začnejo s črkama " bob " in telefonsko številko " 3444444 ", omejeno na vnose od 1 do 5:

Mysql SELECT * FROM WHERE ime kot " Bob %" AND phone_number = " 3444444 " limit 1.5;

Uporaba regularnih izrazov ("REGEXP BINARY") za iskanje vnosov. Na primer, za iskanje brez upoštevanja velikih in malih črk poiščite vse vnose, ki se začnejo s črko A:

Mysql SELECT * FROM WHERE rec RLIKE "^a";

Prikaži vse edinstvene vnose:

MySQL SELECT DISTINCT FROM ; mysql SELECT , FROM ORDER BY DESC;

Pokaži število vrstic v tabeli:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Odstranjevanje stolpca:

mysql spremeni tabelo izpusti stolpec;

Dodajanje stolpca v bazo podatkov:

mysql spremeni tabelo dodaj stolpec varchar(20);

Sprememba imena stolpca:

mysql spremeni tabelo spremeni varchar(50);

Ustvarite stolpec z edinstvenim imenom, da se izognete podvojenim imenom:

mysql spremeni tabelo add unique();

Spreminjanje velikosti stolpca:

mysql spremeni tabelo spremeni VARCHAR(3);

Odstranjevanje stolpca iz tabele:

mysql spremeni tabelo spusti indeks;

Mysql NALOŽI PODATKOVNO DATOTEKO " /tmp/imedatoteke.csv " zamenjaj V POLJA TABELE, KI SE KONČAJO Z "," VRSTICE, KI SE KONČAJO Z "n" (polje1,polje2,polje3);

Uporabniki strežnika MySQL, gesla - dodajanje, spreminjanje uporabnikov in gesel. Konzola

Ustvarjanje novega uporabnika - povezava s strežnikom MySQL kot root, preklop na bazo podatkov, dodaj uporabnika, posodobi privilegije:

# mysql -u root -p mysql uporabi mysql; mysql INSERT INTO uporabnik (gostitelj, uporabnik, geslo) VALUES ("%"," uporabniško ime ", PASSWORD(" geslo ")); privilegiji izpiranja mysql;

Spremenite uporabniško geslo iz konzole na oddaljenem gostitelju db1.example.org:

# mysqladmin -u uporabniško ime -h db1.example.org -p geslo " novo-geslo "

Spremenite uporabniško geslo iz konzole MySQL- povežite se kot root, posodobite geslo, posodobite privilegije:

# mysql -u root -p mysql NASTAVI GESLO ZA " uporabnik "@" ime gostitelja " = GESLO(" geslotukaj "); privilegiji izpiranja mysql;

Obnovitev/spreminjanje gesla korenskega strežnika MySQL- ustavi se MySQL, zaženite brez tabel privilegijev, povežite se kot root, nastavite novo geslo, zaprite in znova zaženite MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") kjer je User="root"; mysql; privilegiji za izpiranje; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Nastavite root geslo, če obstaja root geslo.

# mysqladmin -u root geslo novo geslo

Posodobite korensko geslo:

# mysqladmin -u root -p staro geslo novo geslo

Nastavitev pravice za povezavo s strežnikom z gostitelja localhost z geslom "passwd" - povezovanje s podosnovo, preklop na bazo podatkov, nastavitev privilegijev, posodobitev privilegijev:

# mysql -u root -p mysql uporabi mysql; mysql odobri uporabo na *.* za bob @localhost, ki ga identificira " passwd "; privilegiji izpiranja mysql;

Nastavitev privilegijev za uporabnika za uporabo baze podatkov - povezovanje kot root, preklop na bazo podatkov, nastavitev privilegijev, posodobitev privilegijev:

# mysql -u root -p mysql uporabi mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ("%","databasename","username","Y","Y","Y"," Y", "Y", "N"); privilegiji izpiranja mysql;

Mysql dodeli vse privilegije za databasename .* uporabniškemu imenu @localhost; privilegiji izpiranja mysql;

Posodobite podatke v bazi podatkov:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" where = user";

Brisanje vrstice v tabeli:

Mysql DELETE from where = "kar koli";

Posodabljanje privilegijev v bazi podatkov:

privilegiji izpiranja mysql;

Varnostne kopije - ustvarjanje, obnavljanje baze podatkov. Konzola

Ustvarite varnostno kopijo (dump) vseh baz podatkov v datoteko alldatabases.sql:

# mysqldump -u root -p geslo -opt ; /tmp/alldatabases.sql

Varnostno kopirajte eno bazo podatkov v datoteko databasename.sql:

# mysql dump -u uporabniško ime -p geslo -databases ime baze podatkov; /tmp/imebaze podatkov.sql

Varnostno kopirajte eno tabelo v datoteko databasename.tablename.sql:

# mysql dump -c -u uporabniško ime -p geslo ime baze podatkov ime tabele ; /tmp/databasename.tablename.sql

Obnovitev baze podatkov (ali tabele) iz varnostne kopije:

# mysql -u uporabniško ime -p geslo ime baze podatkov< /tmp/databasename.sql

Izdelava tabel baze podatkov. Konzola

male črke označujejo imena stolpcev;
VELIKE tiskane črke - vrste in lastnosti stolpcev;
v (oklepajih) - vrednost vrste stolpca.

Ustvari primer tabele 1:

mysql CREATE TABLE (ime VARCHAR(20), začetnica srednjega imena VARCHAR(3), priimek VARCHAR(35), pripona VARCHAR(3), officeid VARCHAR(10), ID uporabnika VARCHAR(15), uporabniško ime VARCHAR(8), e-pošta VARCHAR(35) ) ), telefon VARCHAR(25), skupine VARCHAR(15), datumski žig DATE, časovni žig TIME, pgpemail VARCHAR(255));

Ustvari primer tabele 2:

Mysql ustvari tabelo (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, ime VARCHAR(35), srednje ime VARCHAR(50), priimek VARCHAR(50) privzeto "bato");

Razvoj informacijske tehnologije je eno najnaprednejših področij človekovega delovanja. Zato se v to področje vlaga ogromno denarja. Od začetkov do danes je bilo rešenih veliko različnih nalog, ki so marsikomu močno olajšale vsakdanje življenje. Z razvojem tehnologije pa so se pojavile številne težave, ena izmed njih je prevelika količina podatkov, ki jih je treba shraniti. Zbirke podatkov so bile zasnovane za rešitev situacije.

Kratek pregled sistemov za upravljanje baz podatkov

Ker je problem shranjevanja velike količine informacij danes pomemben, ga je mogoče rešiti na več načinov. Vsak od njih je osredotočen na naloge določene usmeritve. Vendar pa skupaj tvorijo celoten kompleks, ki poenostavi problem shranjevanja podatkov.

Obstaja določena klasifikacija, ki določa potrebo po uporabi določene baze podatkov in DBMS (sistem za upravljanje baz podatkov). Najpogostejši trenutno velja za odjemalec-strežnik tehnologije za shranjevanje podatkov. Sem spadajo naslednje vrste: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, Linter, MySQL. Zanimala nas bo zadnja možnost - MySQL, katere ukazi so popolnoma skladni s standardi SQL. Ta tehnologija je ena najbolj priljubljenih in se pogosto uporablja za reševanje tako lokalnih uporabnih problemov kot problemov majhne proizvodnje.

Predhodniki tehnologije odjemalec-strežnik so datotečni strežnik DBMS, ki so izgubili svoje položaje zaradi številnih obstoječih pomanjkljivosti, med katerimi je potreba po distribuciji jedra DBMS na vsak računalnik in velika obremenitev lokalnega omrežja, kar vodi do povečanja časovnih stroškov. Ta skupina vključuje Borland Paradox.

Nove tehnologije pridobivajo na priljubljenosti

Pred nekaj leti pa se je pojavila napredna tehnologija, ki postaja vse bolj priljubljena in je iskana za reševanje manjših lokalnih problemov. Gre za vdelan sistemi za upravljanje baz podatkov. Glavna značilnost obravnavanega DBMS je odsotnost strežniškega dela. Sam sistem je knjižnica, ki vam omogoča poenoteno delo z velikimi količinami informacij, ki se nahajajo na lokalnem računalniku. Ta metoda odpravlja pomanjkljivosti datotečni strežnik sredstev, poleg tega pa bistveno presega hitrost odjemalec-strežnik tehnologije.

Primeri vključujejo OpenEdge, SQLite, BerkeleyDB, eno od različic Firebird, Sav Zigzag, Compact, Linter, kot tudi eno od različic MySQL, katerih ukazi se ne razlikujejo od tistih, ki se uporabljajo v DBMS-jih odjemalec-strežnik. Vendar vdelan sistemi zlahka izgubijo svojo pomembnost, če naloga preneha biti lokalna.

Glavne prednosti MySQL DBMS

Sistem za upravljanje podatkovnih baz MySQL je ena izmed najbolj iskanih tehnologij, saj je z njim mogoče rešiti ogromno nalog. Če ga primerjamo s sodobnimi analogi, lahko ločimo številne glavne prednosti.

Glavna prednost na ruskem trgu je njegova dostopnost, saj je v večini primerov brezplačen. Druga lastnost je hitrost. Eden najbolj priljubljenih sistemov je MySQL. Ukazi v njem se izvajajo hitro, z minimalnim odzivnim časom. Povezava več odjemalcev s strežnikom v večnitnem načinu ne vpliva na hitrost obdelave ukazov zaradi uporabe mehanizma InnoDB za hitro podporo transakcijam.

Prisotnost gonilnika ODBC razvijalcem olajša reševanje številnih težav. Med prednosti sodi tudi možnost izdelave zapisov fiksne in spremenljive dolžine. Toda glavna funkcija, ki je v krogu programerjev zelo cenjena, je vmesnik z jezikoma C in PHP. Zmogljivosti, ki jih ponuja MySQL, so omogočile uporabo tega DBMS za veliko število ponudnikov internetnih storitev gostovanja.

In za preprostega laika, ki ga zanimajo sodobne tehnologije za shranjevanje informacij, je treba preučiti MySQL in njihovo sintakso, saj so strokovnjaki na tem področju zelo iskani in visoko plačani kjer koli na svetu. Zato, če koga zanima ta smer, ne oklevajte. Učiti se morate začeti takoj.

Kaj je potrebno za študij

Na prvi pogled se morda zdi, da je to področje težko preučevati neodvisno in zahteva stalno komunikacijo s strokovnjakom. Vendar temu ni tako. Arhitekturo in funkcije MySQL, osnovne ukaze poizvedovalnega jezika in vse, kar je z njim povezano, se lahko naučite sami, ne da bi se zatekli k pomoči svetovalca. Če želite to narediti, je dovolj imeti željo in se potruditi, da bi šli naprej. Samo samorazvoj in študij tega področja vam bo omogočil, da pridobite nova znanja, utrdite pridobljene veščine in po možnosti začnete graditi kariero in se premikate v tej smeri.

Če se želite naučiti osnovnih ukazov, morate najprej imeti pri roki prost različico pripomočka za konzolo MySQL. Tu se začne proces učenja. Prenesete ga lahko z uradne spletne strani MySQL. Z lahkoto se namesti v kateri koli operacijski sistem, tako da tvori strežnik in odjemalec na enem računalniku, kar je zelo priročno.

Nato se morate zateči k iskanju priročnika za usposabljanje, ki vsebuje osnovne informacije o okolju MySQL. za temeljni študij praviloma vsebujejo tudi. O tem je veliko informacij. Vendar je treba izbiro jemati resno. Informacije morajo biti predstavljene dosledno in jasno strukturirane.

Če imate osnovno znanje angleškega jezika, lahko uporabite podporo, ki je vgrajena v konzolo. Za to obstaja poseben ukaz. pomoč, ki pomaga razumeti uporabo pripomočka MySQL.

Osnovni ukazi konzole

Z gladkim premikanjem od glavnih funkcij, zmogljivosti in prednosti smo prišli do seznama osnovnih ukazov. Pripomoček MySQL na začetku vsebuje samo enega uporabnika, ki se uporablja samo za študij. To je uporabnik z imenom korenina, geslo za katerega je popolnoma enako imenu.

Prvi in ​​naslednji zagoni konzole MySQL bodo od uporabnika zahtevali vnos gesla. korenina za nadaljnje delo z MySQL DBMS. Konzolni ukazi bodo na voljo šele po preverjanju pristnosti.

Po uspešnem preverjanju lahko za udobje prikažete obstoječe ukaze z ukazom pomoč. Po tem bodo na konzoli predstavljeni vsi obstoječi ukazi in njihov kratek opis.

in prikaz

Zdaj se morate premakniti na naslednji korak. Če želite to narediti, izberite obstoječo bazo podatkov ali ustvarite novo. Če želite izbrati obstoječo zbirko podatkov, uporabite ukaz use. In vnesite ime baze podatkov, ločeno s presledkom. Sprva v pripomočku obstaja samo ena - z imenom test. Zahteva bo torej videti takole: uporaba test.

Če želite ustvariti bazo podatkov, uporabite ukaz ustvariti tako da mu date ključno besedo zbirka podatkov in dal ustrezno ime. Struktura bo izgledala takole: ustvari bazo podatkov Name_of_database. Če želite delati z ustvarjeno zbirko podatkov, morate do nje dostopati z ukazom uporaba.

Okolje ponuja funkcijo, zasnovano za prikaz obstoječih baz podatkov, tabel, primarnih ključev ali zunanjih relacij in izhodnih informacij o njih v konzolo MySQL. Ukazi se morajo v tem primeru vedno začeti s stavkom pokazati. Če želite na primer prikazati seznam razpoložljivih baz podatkov za trenutnega uporabnika, vnesite naslednjo poizvedbo: pokazati baze podatkov. Za prikaz tabele je dovolj, da s tipkanjem spremenite prikazni objekt za ključno besedo mize.

Ukazi za upravljanje tabel

Preden gremo naprej, je vredno ponoviti, da skladnost s standardi jezika SQL ponuja odlične priložnosti za razvijalce, ne glede na osnovni DBMS in operacijske sisteme. Poizvedbe, razvite v katerem koli okolju, ki podpira standard SQL, bodo uspešno delovale (če obstajajo baza podatkov in tabele) v okolju MySQL. Ukazi konzole Windows se ne razlikujejo od tistih, ki se uporabljajo v drugih operacijskih sistemih.

Za delo s tabelami obstaja vrsta posebnih ukazov, ki, če jih prevedemo iz angleščine, govorijo sami zase. O ekipi ustvariti je bilo omenjeno zgoraj. Uporablja se lahko tudi za dodajanje tabel v predhodno ustvarjeno bazo podatkov. Za brisanje objektov baze podatkov, zlasti tabel, uporabite ukaz padec, ki mu je dodano ime predmeta, ki se uniči. primer: padec ime_ od_ tvoje_ tabela.

Sintaksa klicev strežnika baze podatkov ima vedno skupno strukturo. Zato bo poizvedba, razvita v sistemu Windows, uspešno delovala tudi v konzoli MySQL Linux. Ukazi, ki jih strežnik obdela brez napak v enem operacijskem sistemu, ne morejo povzročiti napak v drugih.

Izberite ukaz

Toda najpomembnejši ukaz za delo s tabelami, katerega sintaksa je precej preprosta, je ukaz izberite. Uporablja se za izbiro podatkov iz podatkovne baze. Začetna sintaksa ima naslednjo strukturo: izberite * od tabela_ ime. S pošiljanjem takšne poizvedbe strežniku baze podatkov mora odjemalec dobiti vse zapise, shranjene v tabeli.

Marsikdo na to nikoli ne pomisli, a pri brskanju po internetu se neprestano uporabljajo ukazi MySQL.PHP poizvedbe uporabljajo sintakso jezika SQL za prikaz vsebine imenikov spletnih trgovin ali novic na družbenih omrežjih. Namesto "*" za stavkom izberite, praviloma je podan seznam glavnih polj tabele ali več tabel, podatke iz katerih je treba obdelati. V primeru izbire iz več tabel se uporabi posebna povezava pridruži se, ki služi za njihovo povezovanje po obstoječih zunanjih povezavah. Vendar pa lahko ta pogoj spremenite tako, da določite, na katerih poljih naj se vzpostavi povezava.

Določanje meja vzorčenja

Včasih se zgodi, da odgovor, prejet s strežnika baze podatkov, vsebuje podvojene podatke. Za zagotovitev, da so uporabniku vidni samo edinstveni zapisi, se uporablja klavzula distinct. Nahaja se pred seznamom zahtevanih polj in služi kot pomoč pri skrivanju dvojnikov.

Priljubljen sistem za upravljanje baz podatkov MySQLširoko uporablja za različne namene, predvsem kot de facto standard na področju internetnega gostovanja. Nič manj razširjen je paket za upravljanje tega DBMS - phpMyAdmin. Brez dvoma je to dober, priročen izdelek, vendar se zelo pogosto zgodi, da veščine dela s tem izdelkom popolnoma nadomestijo veščine dela s samim DBMS. Zato smo se v tem članku odločili, da naše bralce seznanimo s tem, kako izvajati osnovna skrbniška opravila MySQL iz ukazne vrstice.

Kot so morda opazili naši redni bralci, dosledno nasprotujemo uporabi različnih vrst nadzornih plošč pri začetnikih, ne glede na to, kako priročne in običajne so. Hkrati pa ne zanikamo njihovega obstoja in jih z veseljem uporabljamo pri vsakodnevnih opravilih.

Vendar obstaja ena velika razlika: strokovnjak, ki zna delati z ukazno vrstico s pomočjo plošče, ne nadomesti sposobnosti dela z izdelkom, ampak mu le olajša opravljanje vsakodnevnih opravil. In začetnik, ki je navajen izvajati vsa dejanja na plošči, pade v tiho paniko, če ni na voljo, ker morate zdaj vnesti nekakšne "čarovnije" v to nerazumljivo črno konzolo ...

Pravzaprav delo z DBMS na ravni ukazne vrstice sploh ni težko, nekatere skrbniške naloge pa je lažje in bolj priročno izvajati v njej. Takoj rezervirajmo, z administracijo mislimo na administracijo strežnika DBMS in ne na same baze podatkov. Seveda lahko z njimi delate tudi iz ukazne vrstice, vendar je za to bolje uporabiti primernejša orodja.

Upravljanje baze podatkov in uporabnikov v MySQL

Če bi morali začeti plesati od štedilnika, potem je treba delo z DBMS začeti z ustvarjanjem baz podatkov in uporabnikov teh baz podatkov. Naloge so same po sebi preproste in lepe, in kar je najpomembnejše - preproste, rešujejo se s konzole. Istoimenski pripomoček je zasnovan za delo s strežnikom MySQL. mysql, delo s katerim poteka v interaktivnem načinu, zato se najprej povežite s strežnikom:

MySQL -u root -p

Kjer stikalo -u določa uporabniško ime in -p označuje preverjanje pristnosti gesla, sintaksa ukaza omogoča podajanje gesla tako, da ga vnesete brez presledkov takoj za ključem, vendar bo v tem primeru shranjeno v zgodovini ukazov, kar je ni zelo dobro, zato je bolje, da geslo vnesete interaktivno. Po izvedbi tega ukaza se bomo znašli v okolju MySQL, na kar nakazuje spremenjen poziv ukazne vrstice.

Delo v tem okolju ima svoje značilnosti: vsak ukaz se mora končati s simbolom ; oz \g, ki je mimogrede zapisan v prvi vrstici pozdrava. Izhod iz tega načina se izvede z ukazom:

Takoj o eni zelo pogosti napaki: na koncu ukaza so pozabili postaviti podpičje. Kaj storiti? Nič hudega, le dokončaj manjkajoče znake v naslednji vrstici.

Najprej si oglejmo seznam baz podatkov:

prikaz podatkovnih baz;

Kot pravijo, brez odlašanja, toda za večino administrativnih nalog je to dovolj:

Iskanje seznama uporabnikov je nekoliko težje, shranjen je kot osnovna tabela storitve mysql, zato napišemo majhno poizvedbo:

izberite uporabnika, gostitelja iz mysql.user;

Ekipa izberite izbere določene stolpce uporabnik, gostitelj, možnost from določa, od kod jih izbiramo, in sicer iz uporabniške tabele baze podatkov mysql.

Prvi stolpec označuje uporabnika, drugi - gostitelja, na katerem se ta uporabnik lahko poveže, % - pomeni katero koli vrednost. Upoštevajte, da če Ivanov ima v nastavitvah lokalni gostitelj, potem ko je povezan z mysql po naslovu 127.0.0.1 ne bo mogel dostopati, to morate upoštevati, ko v svojih aplikacijah podate podatke o povezavi s strežnikom DBMS.

Lastnike baze podatkov si lahko ogledate z naslednjo poizvedbo:

Izberite host,db,user iz mysql.db;

Tukaj niso potrebni posebni komentarji. na primer Ivanov ima pravice do osnov s predpono ivanov_ ko je povezan prek lokalni gostitelj, in andrey na osnove s predpono andrej_ na katerem koli gostitelju. Privilegije uporabnika si lahko ogledate z ukazom:

Prikaži odobritve za "ivanov"@"localhost";

Uporabniško ime in gostitelj sta zavita v enojne narekovaje.

Prva vrstica pravi, da navedeni uporabnik nima privilegijev ( UPORABA) v katero koli tabelo katere koli osnove ( *.* ), druga vrstica govori o vseh osnovnih privilegijih za vse tabele vseh baz podatkov s predpono ivanov_.

Recimo, da podrobna analiza sistema pravic MySQL daleč presega obseg tega članka VSE ZASEBNO daje uporabniku vse pravice do njegovih baz podatkov, vendar vam ne dovoljuje upravljanja pravic dostopa za druge uporabnike. Za to se uporablja niz pravic VSE ZASEBNOZ MOŽNOSTJO DOBIVANJA, ki ima privzeto korenina. Za preprostega uporabnika je tak niz pravic odveč.

Poskusimo ustvariti novega uporabnika:

Ustvarite uporabnika "petrov"@"localhost", označenega z "geslom";

Sintaksa ukaza je preprosta, podamo uporabniško ime in ime gostitelja ter poverilnice v obliki gesla. Vse posredovane vrednosti so zavite v enojne narekovaje. Ko ustvarite uporabnika, morate nastaviti njegove pravice, to naredi ukaz GRANT. Najprej mu bomo izrecno odvzeli privilegije do baz drugih ljudi:

Dodeli uporabo na *.* za "petrov"@"localhost";

Nato lahko nastavimo pravice po lastni presoji, na primer izdajo polnih pravic za zbirke podatkov s predlogo imena petrov_:

Podeli vse privilegije na `petrov\_%`.* za "petrov"@"localhost";

Upoštevajte, da mora biti predloga ovita s simboli gravitacija (` ), ki se nahajajo na ključu z rusko črko Y.

Pravice za ločeno zbirko podatkov lahko podelite na naslednji način:

Podeli vse privilegije na andrey_drupal8.* "petrov"@"localhost";

Za izbiro pravic se uporablja ukaz REVOKE, ki ima le podobno sintakso do (komu), zamenjamo z od (WHO). Na primer:

Prekliči vse privilegije na andrey_drupal8.* od "petrov"@"localhost";

Če želite, da strežnik MySQL uporabi pravice, ga morate prisiliti, da znova naloži predpomnilnik pravic z ukazom:

privilegiji za izpiranje;

Morda boste morali spremeniti tudi uporabniško geslo:

Nastavite geslo za "petrov"@"localhost" = geslo("novogeslo");

Preimenujte ga in preimenovanje ne pomeni nujno spremembe uporabniškega imena, spremenite lahko tako ime kot gostitelja v poljubni kombinaciji:

Preimenuj uporabnika "petrov"@"localhost" v "petr"@"127.0.0.1";

In končno izbrišite račun:

Izbrišite uporabnika "petr"@"127.0.0.1";

Preidimo od uporabnikov k bazam podatkov, v najpreprostejšem primeru, da ustvarimo novo bazo podatkov, zadostuje ukaz:

Ustvari bazo petrov_newdb;

To bo ustvarilo bazo podatkov s privzeto kodno stranjo diff in naborom znakov. Če strežnik DBMS ni bil konfiguriran ločeno, bo to kodiranje najverjetneje latin1_swedish_ci, kar lahko v nekaterih primerih povzroči težave, če ne zdaj, pa v prihodnosti, zato bo dobra praksa, da pri ustvarjanju baze podatkov izrecno navedete kodiranje. Za UTF-8 bi bilo takole:

Ustvari bazo podatkov petrov_newdb privzeti nabor znakov utf8 primerjanje utf8_general_ci;

Za Windows-1251:

Ustvari bazo podatkov petrov_newdb privzeti nabor znakov cp1251 primerjanje cp1251_general_ci;

Za odstranitev baze uporabite:

Izbrišite podatkovno bazo petrov_newdb;

Preverjanje, optimizacija, popravljanje napak baze podatkov MySQL

Ker MySQL aktivno deluje, lahko baze podatkov postanejo razdrobljene in vsebujejo napake v podatkih tabel. Zdaj ne govorimo o resnih napakah, takšne situacije je treba obravnavati posamično, ampak o najpreprostejših napakah, ki jih uspešno odpravi sam DBMS. Za preverjanje, popravilo in optimizacijo je priročno uporabiti pripomoček mysqlcheck.

Če želite preveriti bazo podatkov, zaženite kje andrey_drupal8- osnovno ime:

mysqlcheck -u root -p --check andrey_drupal8

Vse podatkovne baze lahko preverite hkrati z ukazom:

mysqlcheck -u root -p --check --all-databases

In ker celoten izpis najverjetneje ne bo ustrezal zaslonu, ga je smiselno preusmeriti na ukaz manj:

mysqlcheck -u root -p --check --all-databases | manj

Upoštevajte to manj omogoča pomikanje po izhodu navzgor in navzdol s puščicami, pritisnite za izhod q.

Če so bile v kateri koli od zbirk podatkov odkrite napake, jih je vredno poskusiti popraviti, za to navedite:

mysqlcheck -u root -p --auto-repair andrey_drupal8

Za optimizacijo uporabite ključ - -optimizirati, lahko optimizirate ločeno bazo podatkov ali več, za to jih navedite za ključem --baze podatkov:

mysqlcheck -u root -p --optimize --databases andrey_drupal8 petrov_newdb

in vse naenkrat:

mysqlcheck -u root -p --optimize --all-databases

Odstranjevanje in nalaganje izpisov baze podatkov MySQL

Druga pogosta naloga pri upravljanju katerega koli DBMS, izpisi baze podatkov se uporabljajo tako za varnostno kopiranje kot za prenos ali ustvarjanje kopij. Če je varnostno kopiranje avtomatiziran proces, je treba ustvarjanje kopij za prenos na drug strežnik ali pred večjim posegom v strukturo podatkovne baze opraviti ročno.

In ko gre za velike baze, potem tukaj phpMyAdmin slab pomočnik, zaradi omejitev časa izvajanja skriptov, velikosti naložene datoteke, razpoložljivega pomnilnika itd. In če z njim še vedno lahko naložite velik izpis, ga morda ne boste mogli naložiti nazaj.

Začnimo z ustvarjanjem odlagališč, za te namene se uporablja pripomoček mysqldump, katerega sintaksa je enaka kot mysqlcheck. Za izpis izpisa uporabite ukaz:

mysqldump -u root -p andrey_drupal8 > ~/drupal8.sql

Če želite odstraniti več baz podatkov hkrati, uporabite ključ --baze podatkov oz --vse baze podatkov ustvariti izpis vseh baz podatkov hkrati. Izhod ukaza mora biti usmerjen v datoteko in navesti njeno lokacijo, v našem primeru je to datoteka drupal8.sql v domačem imeniku. Izhod lahko tudi posredujete arhivatorju in takoj dobite arhiv:

mysqldump -u root -p andrey_drupal8 | gzip > ~/drupal8.sql.gz

Na splošno ne priporočamo uporabe enega izpisa za več baz podatkov hkrati, najboljša možnost bi bila, da bi imeli za vsako bazo podatkov svoj izpis, hkrati pa bi uporabili ključ --vse baze podatkov upravičeno v primerih, ko morate hitro varnostno kopirati celoten strežnik, na primer pri posodabljanju ali ponovni namestitvi DBMS, tako da lahko hitro obnovite informacije, če gre kaj narobe.

Če želite obnoviti bazo podatkov, morate poslati izpis na vhod pripomočka mysql; za posamezne izpise morate vedno določiti ciljno bazo podatkov, na primer:

Mysql -u root -p andrey_drupal8< ~/drupal8.sql

Ni nujno, da je cilj izvorna baza, vendar upoštevajte, da če baza že obstaja, bo vsa njena vsebina nadomeščena z vsebino izpisa.

Za izpise, ki vsebujejo več kot eno bazo podatkov, preprosto določite:

MySQL -u root -p< ~/all.sql

V tem primeru bo vsaka baza podatkov naložena v svoj izvor, če izvorna baza podatkov ne obstaja, bo ustvarjena.

Kot lahko vidite, ustvarjanje in obnavljanje odlagališč z uporabo ukazne vrstice poteka dobesedno v eni vrstici in je veliko lažje in hitreje kot uporaba phpMyAdmin ali podobnih orodij.

Obnovitev pozabljenega korenskega gesla MySQL

Še ena zelo priljubljena naloga. Takoj povejmo, da je nemogoče obnoviti geslo superuporabnika MySQL, kot katerega koli drugega uporabnika, vendar ga lahko spremenite. Če želite to narediti, morate imeti pravice superuporabnika operacijskega sistema. Najprej zaustavite storitev DBMS:

storitev mysql stop

Nato ga zaženemo v varnem načinu, pri čemer preskočimo tabele privilegijev:

mysqld_safe --skip-grant-tables &

Upoštevajte, da bo po izvedbi tega ukaza ukazna vrstica izginila, utripal bo en kazalec. Prav tam pišemo:

MySQL -u root

in vstopite v okolje mysql kot root brez vnosa gesla.

Zdi se nam, da so mnogi že ugibali, kaj storiti naprej, vendar nastavi geslo v tem načinu ne bo delovalo, zato morate iti v drugo smer. Spomnimo se, da so podatki o uporabniku shranjeni v tabeli uporabnik storitveno bazo podatkov mysql. Nato izvedemo naslednjo poizvedbo:

Posodobite mysql.user nastavite geslo = geslo ("novo geslo"), kjer je uporabnik="root";

Pomembno! V novih različicah MySQL namesto stolpca geslo mize uporabnik uporablja se stolpec niz_avtentikacije, torej namesto nastavi geslo mora navesti nastavite authentication_string.

Ta zahteva bo nastavila novo geslo novo geslo za vse vrstice v stolpcu uporabnik ki je navedena korenina.

Posodobite predpomnilnik pravic:

privilegiji za izpiranje;

Zapustimo način:

Ustavite storitev in jo normalno zaženite:

storitev mysql stop
storitev mysql start

Upamo, da boste po branju tega članka pridobili osnovne veščine dela z MySQL iz ukazne vrstice in se boste lahko počutili samozavestni, tudi ko phpMyAdmin ni na voljo, in morda celo cenili priročnost konzolnih ukazov in pojdite na ploščo čedalje manj, raje upravlja neposredno s strežnikom.

  • Oznake:

Za ogled omogočite JavaScript

Pripomoček ukazne vrstice mysql je preprost ovoj SQL (z zmožnostmi knjižnice readline projekta GNU). Podpira interaktivne in neinteraktivne načine. V interaktivnem načinu so rezultati poizvedbe predstavljeni v formatu ASCII. Pri uporabi v neinteraktivnem načinu (na primer kot filter) je rezultat predstavljen v besedilni obliki z znakom tabulatorja kot ločilom (izhodno obliko je mogoče spremeniti z možnostmi ukazne vrstice). Skripte je mogoče izvajati, kot je prikazano spodaj:

Shell > baza podatkov mysql output.tab

Če imate težave zaradi pomanjkanja pomnilnika na določenem odjemalcu, uporabite možnost --quick! To bo povzročilo, da bo mysql uporabil funkcijo mysql_use_result() namesto funkcije mysql_store_result(), da bi pridobil pridobljene podatke.

Uporaba mysql je zelo enostavna. Zaženite bazo podatkov mysql ali bazo podatkov mysql --user=uporabniško_ime --password=vaše_geslo e. Vnesite ukaz SQL neposredno v ukazno vrstico in ga končajte z enim od naslednjih znakov: `;", `\g" ali `\G" in nato pritisnite tipko ``Enter``.

Pripomoček ukazne vrstice mysql podpira naslednje možnosti:

Pomoč Prikažite informacije pomoči o uporabi programa in ga zapustite. -A, --no-auto-rehash Onemogoči samodejno ponovno zgoščevanje. rehash je treba uporabiti za pridobitev zgoščene vrednosti tabel in polj. Zaradi tega se mysql hitreje zažene. --prompt=... Nastavi ukazni poziv v podanem formatu. -b, --no-beep Izklopi pisk o napaki. -B, --batch Paketni izpis z ločilom tabulatorjev, vsaka vrstica v novi vrstici. Datoteka z zgodovino se ne uporablja. --character-sets-dir=... Imenik, kjer se nahajajo nabori znakov. -C, --compress Uporabi stiskanje podatkov protokola strežnik/odjemalec. -#, --debug[=...] Dnevnik odpravljanja napak. Privzeta vrednost je "d:t:o,/tmp/mysql.trace". -D, --database=... Ime baze podatkov za uporabo. Večinoma se uporablja v konfiguracijski datoteki `my.cnf". --default-character-set=... Nastavite privzeti nabor znakov. -e, --execute=... --batch) -E, --vertical Print rezultate poizvedbe (nize) navpično. Takšen izhod lahko ustvarite brez te možnosti, tako da ukaze končate z znaki \G. -f, --force Nadaljujte z obdelavo, tudi če pride do napake SQL. -g, --no-named-commands Izklopi poimenovane ukaze. Uporabi samo ukaze \* ali poimenovane ukaze uporabi samo na začetku vrstice, ki se konča z `;" . Od različice 10.9 se odjemalec zažene s to možnostjo, vključeno privzeto! Z možnostjo -g pa dolgi ukazi še vedno delujejo od prve vrstice. -G, --enable-named-commands Omogoči imenovane ukaze. Dovoljeni so dolgi ukazi, pa tudi skrajšani ukazi, kot je \*. -i, --ignore-space Prezri presledek za imeni funkcij. -h, --host=... Povežite se z bazo podatkov na navedenem gostitelju. -H, --html Natisni izpis kot HTML. -L, --skip-line-numbers Preskoči številke vrstic zaradi napak. Uporabno za primerjavo nastalih datotek, ki vključujejo sporočila o napakah. --no-pager Onemogoči pozivnik in zapiše rezultat v stdout (v Unixu). Glejte tudi ukaz \h (spletna pomoč). --no-tee Zaklene izhodno datoteko. Glejte tudi ukaz \h (spletna pomoč). -n, --unbuffered Počisti medpomnilnik po vsaki zahtevi. -N, --skip-column-names Preskoči imena stolpcev v rezultatih. -O, --set-variable var=option Nastavite vrednost spremenljivke. Seznam uporabljenih spremenljivk je prikazan prek --help. -o, --one-database Posodobi samo privzeto bazo podatkov. Omogoča, da preskočite druge posodobitve baze podatkov v dnevniku posodobitev. --pager[=...] Nastavi vrsto izhodnih podatkov. Privzeto je to spremenljivka okolja PAGER. Njegove možne vrednosti so manj, več, mačka [> ime datoteke] itd. Glejte tudi ukaz \h (spletna pomoč). Ta možnost ne deluje v paketnem načinu. Pozivnik deluje samo pod Unixom. -p, --password[=...] Geslo, uporabljeno pri povezovanju s strežnikom baze podatkov. Če geslo ni podano v ukazni vrstici, se zahteva od uporabnika. Pri uporabi kratke oblike -p ne puščajte presledka med parametrom in vrednostjo gesla. -P --port=... Številka vrat TCP/IP za uporabo za povezavo. -q, --quick Ne shrani rezultata v predpomnilnik. Izpišite ga vrstico za vrstico, kot prihaja s strežnika. To lahko upočasni strežnik, če je izhod zaustavljen. Datoteka z zgodovino se ne uporablja. -r, --raw Prikaži vrednosti stolpcev brez preoblikovanja. Uporablja se z --batch. -s, --silent Tihi način. Prikaži samo sporočila o napakah. -S --socket=... Datoteka vtičnice, uporabljena za povezavo. -t --table Izpiši rezultat v obliki tabele. Privzeto nastavljeno za nepaketni način. -T, --debug-info Natisni nekaj informacij o odpravljanju napak, ko se program zapre. --tee=... Pripni nekaj izhodni datoteki. Glejte tudi ukaz \h (spletna pomoč). Ta možnost ne deluje v paketnem načinu. -u, --user=# uporabniško ime MySQL, če ta uporabnik trenutno ni aktiven. -U, --safe-updates[=#], --i-am-a-dummy[=#] Dovoli samo operacije POSODOBITEV in IZBRIS s tipkami. Za več informacij o tej nastavitvi glejte spodaj. To možnost lahko ponastavite tako, da v konfiguracijski datoteki `my.cnf' nastavite argument --safe-updates=0. -v, --verbose Bolj podrobni izhodni način (-v -v -v daje izhodni format tabele). V , --version Prikaži informacije o različici in zapusti program -w, --wait Če je povezava s strežnikom prekinjena, počakajte in jo namesto prekinitve poskusite obnoviti.

Naslednje spremenljivke lahko nastavite tudi prek možnosti ukazne vrstice -O ali --set-variable:

Če vnesete pomoč v ukazno vrstico, bo program mysql izpisal ukaze, ki jih podpira:

Mysql> pomoč Ukazi MySQL pomoč (\h) Prikaže dano besedilo. ? (\h) Sinonim za pomoč. počisti (\c) Počisti ukaz. poveži se (\r) Ponovno se poveži s strežnikom. Dodatna argumenta sta db in host. uredi (\e) Uredite trenutni ukaz z $EDITOR. ego (\G) Pošlji trenutni ukaz MySQL na strežnik in prikaži rezultat navpično. izhod (\q) Izhod iz programa. Enako kot nehati. go (\g) Pošlji trenutni ukaz MySQL strežniku. nopager (\n) Blokiraj pozivnik, tiskaj na stdout. notee (\t) Ne dodajajte vnosov v izhodno datoteko outfile. pager (\P) Nastavite PAGER . Prikaz rezultatov poizvedbe prek PAGER-ja. print (\p) Natisni trenutni ukaz. poziv (\R) Spremenite obliko poziva za ukaze mysql. quit (\q) Zapri program. rehash (\#) Obnovi zgoščeno tabelo. vir (\.) Izvedite skriptno datoteko SQL. Kot argument navedite ime datoteke. status (\s) Pridobite informacije o stanju strežnika. tee (\T) Nastavite možnost outfile. Dodajte nekaj dani izhodni datoteki. use (\u) Uporabi drugo bazo podatkov. Podajte ime baze podatkov kot argument.

Ukaz pozivnika deluje samo pod Unixom.

Rezultat tega je naslednji:

  • Ni dovoljeno izvajati ukazov UPDATE ali DELETE, razen če so ključne omejitve podane v klavzuli WHERE. Vendar pa lahko prisilite, da se ukazi UPDATE / DELETE izvedejo z uporabo stavka LIMIT: UPDATE table_name SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • Vsi preveliki rezultati so omejeni na vrstice #select_limit#.
  • SELECT, ki morda zahtevajo več kot #max_join_size# kombinacij vrstic za izvedbo, bodo prekinjeni.

Nekaj ​​koristnih nasvetov za uporabo odjemalca mysql:

Nekateri podatki so bolj berljivi, če so prikazani navpično namesto običajno uporabljenega vodoravnega izhodnega okna. Na primer, besedilo, ki je daljše kot široko in vsebuje veliko novih vrstic, je pogosto veliko lažje brati navpično.

Mysql> SELECT * FROM mails WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith piše: Thimble> Živjo. Mislim, da je to dobra ideja. Ali kdo pozna UTF-8 Thimble> ali Unicode? V nasprotnem primeru bom to dal na svoj seznam TODO in videl, kaj se bo Thimble> zgodilo. Da, prosim, stori to. Lep pozdrav, datoteka Monty: inbox-jani-1 hash: 190402944 1 vrstica v nizu (0,09 s)

  • Za prijavo lahko uporabite možnosti ukaza tee. Zaženete ga lahko z --tee=... možnostjo za mysql ali interaktivno iz ukazne vrstice z ukazom tee. V navedeno datoteko bodo dodani tudi vsi podatki, prikazani na zaslonu. To je lahko zelo koristno za namene odpravljanja napak v programu. Pripomoček tee lahko blokirate v ukazni vrstici z ukazom notee. Ponovni zagon ukaza tee bo ponovno omogočil beleženje. Če parameter za ukaz tee ni podan, bo uporabljena prejšnja datoteka. Upoštevajte, da bo ukaz tee zapisal rezultate v datoteko po vsakem izvršenem ukazu, tik preden se pojavi ukazni poziv za naslednji ukaz.
  • Možnost --pager[=...] je omogočila interaktivni ogled ali iskanje rezultatov s programi Unix manj, več ali podobno. Če v tem parametru izrecno ne podate argumenta, bo odjemalec mysql poiskal spremenljivko okolja PAGER in nastavil vrednost na pager. Program pozivnika lahko zaženete tudi iz interaktivne ukazne vrstice z ukazom pozivnik in ustavite z ukazom nopager. Ukaz lahko sprejme argument, ki ni obvezen; pager bo nastavljen na vrednost tega argumenta.Ukaz pager lahko pokličete tudi brez argumenta, vendar to zahteva uporabo možnosti --pager ali ustrezne privzete nastavitve stdout. Ukaz pager deluje samo v Unixu, ker uporablja funkcijo popen(), ki ni na voljo v sistemu Windows. Namesto tega lahko v sistemu Windows uporabite možnost tee, čeprav je v nekaterih primerih to manj priročno kot uporaba ukaza pozivnik.
  • Nekaj ​​nasvetov o ukazu pager: Uporablja se lahko za pisanje v datoteko: mysql> pager cat > /tmp/log.txt in rezultati bodo poslani samo v datoteko. Programi, ki jih kliče ukaz pager, lahko sprejmejo vse veljavne možnosti: mysql> pager less -n -i -S Posebno pozornost posvetite možnosti -S v zgornjem primeru. Lahko je zelo koristno pri ogledu rezultatov. Poskusite z vodoravnim izpisom (ukaze zaključite z "\g" ali ";") in navpičnim izpisom (na koncu ukazov z "\G"). Zelo okorne izhodne rezultate je včasih težko brati z zaslona; v tem primeru vam bo ukaz manj z možnostjo -S omogočil interaktivni ogled rezultatov od leve proti desni, medtem ko, če so vrstice, katerih dolžina je daljša od širine zaslona, se bo njihov izpis nadaljeval v novi vrstici. Podatki so v takih primerih bolj berljivi. Ko interaktivno pokličete ukaz less z možnostjo "-S", lahko v ukazni vrstici preklopite način njegovega delovanja (omogočeno/onemogočeno). Za več informacij o less si oglejte opis ukaza "h".
  • Za zaključek omenimo (če tega še niste razumeli iz prejšnjih primerov), da je možno kombinirati zelo kompleksne načine obdelave rezultatov. Tako bodo v naslednjem primeru rezultati poslani v dva različna imenika, nameščena na dveh različnih trdih diskih pod /dr1 in /dr2, rezultate pa je mogoče videti na zaslonu z ukazom less: mysql> pager cat | tee /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | manj -n -i -S
  • Zgornje funkcije je mogoče tudi združiti: če zaženete tee in nastavite stranilnik na less, si lahko ogledate rezultate z ukazom less Unix, medtem ko istočasno pišete v datoteko. Razlika med pripomočkom Unix tee, ki ga uporablja program pozivnika, in vgrajenim ukazom tee v odjemalcu mysql je v tem, da vgrajeni ukaz tee deluje tudi, če pripomoček tee ni na voljo v Unixu. Vgrajeni tee tudi beleži vse, kar je prikazano na zaslonu, medtem ko pripomoček tee Unix, ki se uporablja s pozivnikom, tega ne naredi veliko. Nenazadnje je interaktivni ukaz tee bolj priročen za vklop/izklop načinov delovanja, če morate včasih onemogočiti to funkcijo, ko pišete v datoteko.

Obliko poziva lahko spremenite v ukazni vrstici odjemalca mysql.

Na voljo so naslednje možnosti poziva:

Možnost Opis
\vrazličica mysql
\dime baze podatkov, ki jo želite uporabiti
\hime gostitelja za povezavo
\pštevilka vrat, prek katerih je vzpostavljena povezava
\uUporabniško ime
\Upolni naslov uporabniško ime@gostitelj
\\ poševnica nazaj `\"
\nznak nove vrstice
\tzavihek
\ prostora
\_ presledek s podčrtajem
\Rvojaški časovni pas (0-23)
\rčas po standardnem časovnem pasu (1-12)
\mminut
\ydve števki leta
\Yštiri številke leta
\Doblika polnega datuma
\ssekund
\wdan v tednu v tričrkovni obliki (pon, tor, ...)
\PAM/PM (dopoldan/popoldne)
\omesec v številski obliki
\Omesec v tričrkovni obliki (jan, feb, ...)
\cŠtevec, ki šteje število vnesenih ukazov

`\', ki mu sledi katera koli druga črka, preprosto dopolni to črko.

Možnosti poziva lahko nastavite na naslednje načine:

V spremenljivkah okolja Za pozivni niz lahko nastavite spremenljivko okolja MYSQL_PS1. Na primer: shell> export MYSQL_PS1="(\u@\h) [\d]> " `my.cnf' `.my.cnf" Možnost poziva lahko nastavite v kateri koli konfiguracijski datoteki MySQL v skupini mysql. Na primer: prompt=(\u@\h) [\d]>\_ V ukazni vrstici Možnost --prompt lahko nastavite v ukazni vrstici mysql. Na primer: lupina> mysql --prompt="(\u@\h) [\d]> " (uporabnik@gostitelj) > Interaktiven Za interaktivno spreminjanje nastavitev poziva lahko uporabite tudi ukaz prompt (ali \R). Na primer: mysql> poziv (\u@\h) [\d]>\_ PROMPT nastavljen na "(\u@\h) [\d]>\_" (uporabnik@gostitelj) > (uporabnik@gostitelj) > prompt Vrnitev na prvotne (privzete) nastavitve PROMPT v mysql> mysql> pripomočku

Zagon in zaustavitev strežnika MySQL iz ukazne vrstice

Strežnik MySQL lahko zaženete ročno na enega od dveh načinov:

Dvokliknite datoteko mysqld-nt.exe, ki se nahaja v podimeniku bin v imeniku, kjer je nameščen MySQL.

Odprite okno ukaznega poziva Windows. To storite tako, da kliknete gumb Start, v meniju izberete element Zaženi, v oknu Zaženi program, ki se pojavi, v polje Odpri vnesite cmd in kliknite gumb V redu. Na zaslonu se prikaže okno ukazne vrstice (slika 1.25).

riž. 1.25. okno ukazne vrstice


V ukazni poziv vnesite ukaz

mysqld-nt

in pritisnite tipko Enter. Strežnik MySQL se bo zagnal.

Če pri nastavitvi strežnika pot do podimenika bin ni bila dodana vrednosti sistemske spremenljivke Path, morate za zagon strežnika vnesti ne samo ime datoteke, ampak tudi celotno pot do nje, za primer:

C:\Programske datoteke\MySQL\MySQL Server 5.0\bin\mysqld-nt

Če si želite diagnostična sporočila strežnika ogledati v oknu ukaznega poziva, namesto mysqld-nt, vnesite

mysqld-nt --console

Pozor!

Če pri nastavitvi strežnika MySQL niste navedli korenskega gesla, morate geslo nastaviti ob prvem zagonu strežnika (sicer lahko kdorkoli upravlja strežnik kot root brez gesla).

Če želite nastaviti geslo root, odprite novo okno ukaznega poziva in vnesite naslednji ukaz:

mysqladmin -u root geslo<пароль>

(ali C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u korensko geslo<пароль>, če pot do podimenika bin ni bila dodana vrednosti sistemske spremenljivke Path pri konfiguraciji strežnika) in pritisnite tipko Enter.

Če boste v prihodnosti morali spremeniti geslo uporabnika root, zaženite isti ukaz, le z možnostjo -p:

mysqladmin -u root -p geslo<новый пароль>

Ko se prikaže poziv za vnos gesla, vnesite staro geslo in pritisnite tipko Enter.

Nazadnje, če morate ustaviti strežnik MySQL, zaženite ukaz

mysqladmin -u root -p zaustavitev

in ob pozivu Vnesite geslo vnesite geslo za korenskega uporabnika. Pritisnite tipko Enter. Strežnik MySQL bo ustavljen.

Za zagon in zaustavitev strežnika MySQL lahko uporabite tudi grafični pripomoček MySQL Administrator.

Zagon in zaustavitev strežnika MySQL s pomočjo skrbnika MySQL

Če želite zagnati strežnik MySQL z uporabo grafičnega pripomočka MySQL Administrator, sledite tem korakom.

1. Zaženite program MySQL Administrator (Start → Vsi programi → MySQL → MySQL Administrator). Na zaslonu se prikaže okno za povezavo s strežnikom (slika 1.26).

riž. 1.26.


2. Držite tipko Ctrl in kliknite gumb Preskoči, ki se pojavi v spodnjem desnem kotu okna namesto gumba Prekliči. Na zaslonu se prikaže glavno okno MySQL Administrator (slika 1.27).

riž. 1.27. Glavno okno MySQL Administratorja


4. Če strežnik MySQL ni bil konfiguriran kot storitev Windows, potem gumb Zaženi storitev, ki se nahaja v desnem podoknu okna, ni na voljo. Narediti morate naslednje predhodne korake:

1) pojdite na zavihek Konfiguriraj storitev. Poiščite gumb Namesti novo storitev na dnu zavihka in ga kliknite;

2) v pogovornem oknu, ki se prikaže, določite ime storitve in kliknite gumb V redu;

3) v polje Config Filename vnesite pot do konfiguracijske datoteke my.ini (slika 1.28), na primer C: \ Program Files \ MySQL \ MySQL Server 5.0 \ my.ini. Rdeča barva pisave pomeni, da datoteka ni bila najdena; če se je barva spremenila v normalno, je pot pravilna;

4) v polje Path to binary vnesite pot do datoteke mysqld-nt.exe, na primer C: \Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) vrnite se na zavihek Start/Stop Service.

riž. 1.28. Zavihek Konfiguriraj storitev 5. Kliknite gumb Zaženi storitev. Strežnik MySQL se bo zagnal.


Pozor!

Če pri nastavitvi strežnika MySQL niste navedli korenskega gesla, ga morate nastaviti ob prvem zagonu strežnika (sicer lahko vsak upravlja strežnik kot root brez gesla). V trenutni različici MySQL Administratorja nastavitev korenskega gesla ni na voljo, zato morate za izvedbo te operacije uporabiti pripomoček ukazne vrstice mysqladmin (glejte pododdelek Zagon in zaustavitev strežnika MySQL iz ukazne vrstice).

Če želite zaustaviti strežnik MySQL s skrbnikom MySQL, sledite tem korakom.

1. Zaženite program MySQL Administrator (Start → Vsi programi → MySQL → MySQL Administrator). Na zaslonu se prikaže okno za povezavo s strežnikom (glej sliko 1.26).

Gostitelj strežnika (ime gostitelja) - vrednost localhost (lokalni računalnik);

Vrata (Port) - številka vrat, izbrana pri konfiguraciji strežnika (privzeto - 3306);

Uporabniško ime (uporabniško ime) - vrednost korena;

Geslo - geslo korenskega uporabnika. Kliknite gumb OK.

3. V glavnem oknu MySQL Administratorja v levem podoknu kliknite Service Control.

4. V desnem podoknu okna kliknite gumb Ustavi storitev. Strežnik MySQL bo ustavljen.

V naslednjem pododdelku se boste naučili, kako zagnati strežnik MySQL z uporabo skrbniških orodij Windows.

Zagon in zaustavitev strežnika MySQL z nadzorne plošče

Če je bil strežnik MySQL konfiguriran kot storitev Windows s čarovnikom za namestitev (glejte podrazdelek "Konfiguriranje strežnika MySQL") ali s pomočjo pripomočka MySQL Administrator (glejte podrazdelek "Zagon in zaustavitev strežnika MySQL z uporabo MySQL Administratorja"), ga zaženite in zaustavite lahko uporablja komponento Storitve na nadzorni plošči.

Če želite priklicati komponento storitev, kliknite gumb Start, v meniju izberite nadzorno ploščo, nato dvokliknite ikono skrbniških orodij na nadzorni plošči in na koncu dvokliknite ikono storitev v oknu skrbniških orodij. Na zaslonu se prikaže okno Storitve (slika 1.29) s seznamom vseh lokalnih storitev.

riž. 1.29. Storitev MySQL na nadzorni plošči


V oknu Storitve kliknite na ime storitve MySQL (ime je določeno ob izdelavi storitve v konfiguracijskem čarovniku ali v MySQL Administratorju). Nato kliknite ustrezno povezavo pod imenom storitve: Zaženi storitev, Ustavi storitev ali Ponovno zaženi storitev.

Ko strežnik MySQL deluje, se lahko povežete z njim. Naslednji pododdelki vam bodo pokazali, kako to storite.

Povezovanje s strežnikom iz ukazne vrstice

Za povezavo s strežnikom MySQL iz ukazne vrstice sledite tem korakom.

1. Odprite okno ukaznega poziva Windows. To storite tako, da kliknete gumb Start, v meniju izberete element Zaženi, v oknu Zaženi program, ki se prikaže, v polje Odpri vnesite cmd in kliknite gumb V redu.

2. V ukazno vrstico (glejte sliko 1.25) vnesite ukaz

mysql -h<Имя компьютера>-u<Имя пользователя>-str

(Kje<Имя компьютера>je ime računalnika, na katerem se izvaja strežnik) in pritisnite tipko Enter. Ko se prikaže poziv za vnos gesla, vnesite geslo uporabnika.

Če se želite povezati s strežnikom MySQL, ki deluje na istem računalniku, lahko na primer izpustite ime računalnika (localhost).

mysql -u root -p

Po povezavi s strežnikom se bo ukazni poziv spremenil v mysql> (slika 1.30). Sedaj lahko začnete delati z bazo podatkov: dodajate tabele, vnašate in iščete podatke, registrirate nove uporabnike itd.

riž. 1.30. Povezovanje s strežnikom MySQL iz ukazne vrstice


Če želite prekiniti povezavo s strežnikom, preprosto vnesite ukaz v ukazno vrstico

in pritisnite tipko Enter.

Alternativni način povezave s strežnikom MySQL ponuja grafični pripomoček MySQL Query Browser.

Povezovanje s strežnikom z uporabo MySQL Query Browser

Pripomoček MySQL Query Browser je vmesnik za ustvarjanje, urejanje in izvajanje stavkov SQL. To je bolj priročno kot ukazna vrstica. Če se odločite za uporabo MySQL Query Browser za delo z bazo podatkov, sledite tem korakom za povezavo s strežnikom.

1. Zaženite program MySQL Query Browser (Start → Vsi programi → MySQL → MySQL Query Browser). Na zaslonu se prikaže okno za povezavo s strežnikom (slika 1.31).

riž. 1.31. Okno za povezavo s strežnikom MySQL


2. V polja okna za povezavo s strežnikom vnesite parametre povezave:

Gostitelj strežnika (ime gostitelja) - ime računalnika, na katerem se izvaja strežnik MySQL;

Vrata (Port) - številka vrat, izbrana pri konfiguraciji strežnika (privzeto - 330 6);

Uporabniško ime - uporabniško ime;

Geslo - uporabniško geslo;

Privzeta shema – ime baze podatkov, s katero boste delali (to je lahko obstoječa ali nova baza podatkov).

3. Pritisnite gumb OK. Če ste vnesli ime za novo bazo podatkov, nato v pogovornem oknu, ki se prikaže, kliknite gumb Da, da ustvarite to bazo podatkov.

Po vzpostavitvi povezave s strežnikom se na zaslonu prikaže glavno okno MySQL Query Browser (slika 1.32). V njem lahko izvajate poljubne operacije z bazo podatkov: dodajate tabele, vnašate in poizvedujete po podatkih, registrirate nove uporabnike itd.

riž. 1.32. Glavno okno brskalnika MySQL Query Browser


Pozor!

Privzeta pisava, ki jo uporablja MySQL Query Browser za prikaz poizvedb SQL, ne podpira ruskih znakov. Če želite v besedila poizvedbe vnesti ruske črke, morate izbrati drugo pisavo (na primer Arial ali Book Antiqua). Če želite to narediti, v glavnem oknu MySQL Query Browser odprite meni Orodja in izberite Možnosti. V oknu Možnosti, ki se prikaže, v levem podoknu kliknite Splošne možnosti in v desnem podoknu v polju Pisava kode izberite želeno pisavo s seznama. Kliknite gumb Uporabi.

Če želite prekiniti povezavo s strežnikom, preprosto zaprite okno MySQL Query Browser.

Tu končamo naše spoznavanje MySQL in nadaljujemo s povzetkom.

1.6. Povzetek

To poglavje je zajemalo MySQL DBMS in grafične pripomočke MySQL Administrator in MySQL Query Browser. Obvladali ste precej zapleten postopek namestitve in konfiguracije strežnika MySQL, se naučili upravljati strežnik in se nanj povezati. Naučili ste se tudi, kako deluje relacijska zbirka podatkov in kako oblikovati lastno bazo podatkov.

Torej, naslednji korak je zgraditi bazo podatkov v MySQL. To je tema drugega poglavja. Povedal vam bo, kako ustvariti tabele, vnesti informacije vanje in poiskati informacije, ki jih potrebujete v bazi podatkov.

2. poglavje
Upravljanje baze podatkov s SQL

V tem poglavju se boste naučili, kako delati s podatki v MySQL, kako definirati njihovo strukturo in kako dodajati, spreminjati in brisati podatke. Te operacije izvaja SQL, univerzalni jezik strukturiranih poizvedb, ki je standardno orodje za dostop do relacijskih baz podatkov.

Za izvajanje ukazov SQL lahko uporabite katero koli od številnih odjemalskih aplikacij strežnika MySQL. To poglavje ne zajema aplikacij tretjih oseb. Predstavili se vam bodo samo aplikacije, ki jih je ustvaril MySQL AB: pripomoček ukazne vrstice mysql in grafični pripomoček MySQL Query Browser.

Vse operacije s podatki so na voljo v obeh pripomočkih. Z bazo podatkov v brskalniku MySQL Query Browser je priročno delati: njene komponente so jasno predstavljene, podatke lahko neposredno urejate (brez uporabe stavka SQL UPDATE), delate s poizvedbami, na primer jih gradite s posebnim orodjem (naredite ni vam treba ročno vnašati imen tabel in stolpcev), shranite poizvedbe v datoteko, izvozite rezultate poizvedb in drugo. O vseh funkcijah brskalnika MySQL Query Browser lahko izveste tako, da si ogledate dokumentacijo v ruščini, ki jo najdete na http://dev.mysql.com/doc/query-browser/en/index.html.

Najprej se boste naučili izvajati ukaze SQL v brskalniku MySQL Query Browser in v ukazni vrstici, v nadaljevanju pa bo zajeta samo sintaksa ukazov SQL.

2.1. Izvajanje ukazov SQL

Pred izvajanjem ukazov SQL se morate povezati z delujočim strežnikom MySQL (glejte 1. poglavje, kako to storite). V tem razdelku se boste naučili, kako ustvariti ukaze SQL in jih predložiti strežniku za izvedbo.

Če uporabljate ukazno vrstico, bomo za izvedbo ukaza SQL vnesli njegovo besedilo v okno ukazne vrstice in pritisnili tipko Enter, da pošljemo ukaz strežniku. Da bi se izognili težavam s kodiranjem podatkov v ruskem jeziku, pred delom s podatki zaženite ukaz

NASTAVI IMENA cp866;

Rezultat izvajanja tega ukaza je prikazan na sl. 2.1.

riž. 2.1. Nastavitev kodiranja v ukazni vrstici


Ukaz SET NAMES je treba ponoviti, ko vsi povezovanje s strežnikom prek ukazne vrstice. Ta ukaz pove strežniku, da ta odjemalska aplikacija (pripomoček mysql) uporablja kodiranje CP-866 (to je kodiranje v ukazni vrstici Windows) in strežnik bo samodejno izvedel pretvorbo kodiranja, ko komunicira z odjemalsko aplikacijo.

Po spremembi kodiranja lahko v ukazno vrstico vnesete poljubne ukaze SQL. Sporočilo o rezultatu izvedbe ukaza in zahtevani podatki se prikažejo neposredno v oknu ukazne vrstice (slika 2.2).

riž. 2.2. Izvajanje poizvedbe SQL v ukazni vrstici


Pripomoček mysql omogoča tudi vnos večvrstičnih ukazov (na sliki 2.3 je na ta način vnesen ukaz PRIKAŽI PODATKOVNE BAZE). Če podpičje ni vneseno - znak konca ukaza, potem ko pritisnete tipko Enter, pripomoček ne pošlje ukaza strežniku, ampak ponudi nadaljevanje vnosa ukaza. Če želite preklicati večvrstični ukaz, vnesite \c (slika 2.3).

riž. 2.3. Večvrstični ukaz


Če uporabljate MySQL Query Browser, vam ni treba nastavljati kodiranja - ta program deluje v kodiranju UTF-8 in sam o tem poroča strežniku. Vendar pa v brskalniku MySQL Query Browser obstaja težava s prikazom ruskih črk v območju poizvedbe (območje, kjer se vnese besedilo ukazov SQL, slika 2.4). Rešitev te težave je, da spremenite pisavo, uporabljeno v področju poizvedbe (glejte, kako to storite na koncu prejšnjega poglavja). Dovolj je, da pisavo spremenite enkrat.

riž. 2.4. Izvajanje poizvedbe SQL v brskalniku MySQL Query Browser


V območju poizvedbe lahko vnesete več ukazov SQL hkrati, kot je prikazano na sliki 2.4. Trenutni ukaz (kurzor je na eni od njegovih vrstic) je označen z belo barvo ozadja, ostali ukazi so prikazani na svetlo sivem ozadju. Za izvedbo trenutnega ukaza lahko bodisi pritisnete gumb Izvedi, ki se nahaja desno od območja poizvedbe, ali pritisnete kombinacijo tipk Ctrl+Enter. Po izvedbi ukaza se v območju z rezultati prikažejo zahtevani podatki, na dnu tega področja pa se izpiše sporočilo o rezultatu ukaza.

Zdaj, ko ste se naučili vnašati ukaze SQL, začnimo upravljati podatke s temi ukazi. Najprej si bomo ogledali ukaze, namenjene delu z bazo podatkov kot celoto.

2.2. Izdelava baze podatkov

V tem razdelku se boste naučili, kako ustvariti in izbrisati bazo podatkov, spremeniti njeno privzeto kodiranje, izbrati trenutno bazo podatkov in si ogledati seznam vseh baz podatkov na danem strežniku MySQL.

Če želite ustvariti bazo podatkov, zaženite ukaz

USTVARITE BAZO PODATKOV<Имя базы данных>;

Na primer ukaz

USTVARITE BAZO PODATKOV SalesDept;

ustvari zbirko podatkov z imenom SalesDept.

Če morate iz nekega razloga nastaviti privzeto kodiranje za novo bazo podatkov, ki se razlikuje od kodiranja, določenega pri nastavitvi MySQL, potem lahko pri ustvarjanju baze podatkov določite želeno kodiranje (nabor znakov) in / ali pravilo za primerjavo ( razvrščanje) vrednosti znakov:

USTVARITE BAZO PODATKOV<Имя базы данных>

NIZ ZNAKOV<Имя кодировки>

ZBIRAJ<Имя правила сравнения>;

Na primer, če uvozite podatke v novo zbirko podatkov, ki je v kodiranju CP-1251, bomo to kodiranje določili pri ustvarjanju baze podatkov na ta način:

USTVARI PODATKOVNO BAZO SalesDept

NABIRKA ZNAKOV cp1251 COLLATE cp1251_general_ci;

nasvet

Za ogled seznama kodiranj, uporabljenih v MySQL, zaženite ukaz SHOW CHARACTER SET; in če si želite ogledati seznam pravil za primerjavo vrednosti znakov, uporabite ukaz SHOW COLLATION;. V tem primeru lahko uporabite operator LIKE: če želite na primer videti vsa primerjalna pravila za kodiranje CP-1251, izvedite ukaz SHOW COLLATION LIKE %1251%;. Končnica "_ci" (neobčutljivo za velike in male črke) v imenu primerjalnih pravil pomeni, da primerjava in razvrščanje ne razlikujeta med velikimi in malimi črkami, končnica "_cs" (občutljivo za velike in male črke) - razlikuje med velikimi in malimi črkami, končnica "_bin" (binarno) - primerjava in razvrščanje se izvajata s kodami številskih znakov. Za večino pravil primerjanja lahko najdete opis (to je vrstni red znakov, v katerem bodo razvrščene besedilne vrednosti) na http://www.collation-charts.org/mysql60/.

Kodiranje, določeno ob ustvarjanju baze podatkov, bo privzeto uporabljeno za tabele v tej bazi podatkov, vendar lahko določite tudi drugačno kodiranje.

Z ukazom lahko spremenite kodiranje in/ali pravilo za primerjavo vrednosti znakov za bazo podatkov

SPREMENI BAZO PODATKOV<Имя базы данных>

NIZ ZNAKOV<Имя кодировки>

ZBIRAJ<Имя правила сравнения>;

V tem primeru ostane kodiranje, uporabljeno v že obstoječih tabelah zbirke podatkov, enako; spremeni se le privzeto kodiranje za novo ustvarjene tabele.

Če želite odstraniti nepotrebno ali pomotoma ustvarjeno zbirko podatkov, zaženite ukaz

SPUSTI BAZO PODATKOV<Имя базы данных>;

Pozor!

Brisanje baze podatkov je zelo občutljiva operacija, saj izbriše vse tabele v tej bazi podatkov in podatke, shranjene v tabelah. Pred brisanjem je priporočljivo varnostno kopirati bazo podatkov.

Z ukazom lahko kot trenutno bazo podatkov izberete eno od baz podatkov, ustvarjenih na tem strežniku MySQL

UPORABA<Имя базы данных>;

Na primer:

US SalesDept;

Nato lahko izvajate operacije na tabelah v tej bazi podatkov, ne da bi pred ime tabele dodali ime baze podatkov. Na primer, za dostop do tabele Customers v bazi podatkov SalesDept lahko preprosto napišete Customers namesto SalesDept.Customers. Če navedete trenutno zbirko podatkov, lahko dostopate tudi do tabel v drugih zbirkah podatkov, vendar je obvezna uporaba imena baze podatkov kot predpone. Izbira trenutne baze podatkov se ohrani, dokler se povezava s strežnikom ne prekine ali dokler ni izbrana druga trenutna baza podatkov.

Če si želite ogledati seznam vseh baz podatkov, ki obstajajo na določenem strežniku MySQL, zaženite ukaz

PRIKAŽI PODATKOVNE BAZE;

Tudi če še niste ustvarili nobene baze podatkov, boste na seznamu videli tri sistemske baze podatkov.

INFORMATION_SCHEMA - informacijska zbirka podatkov, iz katere lahko dobite informacije o vseh drugih zbirkah podatkov, o strukturi podatkov v njih in o vseh vrstah objektov: tabelah, stolpcih, primarnih in tujih ključih, pravicah dostopa, shranjenih postopkih, kodiranjih itd. Ta baza podatkov je na voljo samo za branje in navidezno, kar pomeni, da ni shranjeno kot imenik na disku: vse zahtevane informacije iz te zbirke podatkov dinamično zagotavlja strežnik MySQL.

Mysql je zaledna zbirka podatkov, ki jo uporablja strežnik MySQL. Shranjuje informacije o registriranih uporabnikih in njihovih pravicah dostopa, referenčne informacije itd.

Test je prazna zbirka podatkov, ki jo lahko uporabimo za "testiranje peresa" ali pa jo preprosto izbrišemo.

Tako ste obvladali osnovne operacije, ki se izvajajo z bazo podatkov kot celoto: CREATE DATABASE (ustvari), ALTER DATABASE (spremeni), DROP DATABASE (brisanje), USE (izberi trenutno bazo podatkov) in SHOW DATABASES (ogled seznama baz podatkov). ) ukazi. Nato si bomo ogledali operacije tabel. V tem primeru bomo domnevali, da ste izbrali bazo podatkov kot trenutno in delate z njenimi tabelami.

2.3. Delo s tabelami

V tem razdelku se boste naučili, kako ustvariti, spremeniti in izbrisati tabelo ter kako si ogledati informacije o njej in seznam vseh tabel v trenutni bazi podatkov. Začnimo z najbolj zapletenim ukazom - ustvarjanjem tabele.

Ustvari tabelo

Če želite ustvariti tabelo, zaženite ukaz, prikazan v seznamu 2.1.

Seznam 2.1. Ukaz za ustvarjanje tabele

USTVARI TABELO<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


Kot lahko vidite, lahko ukaz za ustvarjanje tabele vključuje veliko parametrov, vendar so mnogi od njih neobvezni (v seznamu 2.1 so takšni parametri v oglatih oklepajih). Pravzaprav je za ustvarjanje tabele dovolj, da določite njeno ime, pa tudi imena in vrste vseh stolpcev; ostali parametri se uporabljajo po potrebi.

Najprej si oglejmo nekaj primerov, ki vam bodo pomagali obvladati ukaz CREATE TABLE in takoj, brez preučevanja njegovih številnih parametrov, začeti ustvarjati lastne (preproste strukture) tabele.

Recimo, da gradimo bazo podatkov, ki smo jo oblikovali v 1. poglavju. Z uporabo ukazov v prejšnjem razdelku smo ustvarili prazno bazo podatkov SalesDept in jo izbrali kot našo trenutno bazo podatkov. Zdaj pa ustvarimo tri tabele: Kupci (Kupci), Izdelki (Blago) in Naročila (Naročila). Listing 2.2 prikazuje ukaz za ustvarjanje tabele Stranke.

Seznam 2.2. Ukaz za ustvarjanje tabele strank

USTVARITE TABELO Stranke

(id SERIAL,

ime VARCHAR(100),

phoneVARCHAR(20),

naslov VARCHAR(150),

ocena INT,

PRIMARNI KLJUČ (id))


Ta ukaz je uporabil parametre: prvič, ime tabele in, drugič, imena in vrste stolpcev, iz katerih bo tabela sestavljena (glejte tudi tabelo 1.1 v 1. poglavju).

Id – identifikator zapisa. Temu stolpcu ste dodelili vrsto SERIAL, ki vam omogoča samodejno oštevilčenje vrstic tabele. Ključna beseda SERIAL pomeni BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. To pomeni, da je mogoče v stolpec vnesti velika cela (BIGINT) pozitivna (UNSIGNED) števila, medtem ko se odsotnost ničelnih in ponavljajočih se vrednosti (NOT NULL UNIQUE) samodejno nadzoruje. Če pri dodajanju vrstice v tabelo ne določite vrednosti za ta stolpec, bo program MySQL v ta stolpec dodal naslednjo zaporedno številko (AUTO_INCREMENT).

Opomba

NULL je konstanta, ki označuje odsotnost vrednosti. Če stolpec vsebuje vrednost NULL, se šteje, da za ta stolpec ni definirane vrednosti (zato NULL imenujemo tudi nedefinirana vrednost). NULL ne smete zamenjevati s praznim nizom ("") ali številko 0. Vrednosti NULL se obravnavajo na poseben način: večina funkcij in operaterjev vrne NULL, če je eden od argumentov NULL. Na primer, rezultat primerjave 1 = 1 je TRUE, rezultat primerjave NULL = NULL pa je nedefinirana vrednost (NULL), kar pomeni, da se dve nedefinirani vrednosti ne štejeta za enaki.

Ime je ime stranke, telefon je telefonska številka in naslov je naslov. Tem stolpcem ste dodelili vrsto VARCHAR, ker bodo vsebovali znakovne vrednosti. Oklepaji označujejo največje dovoljeno število znakov v vrednosti stolpca.

Tretjič, podali ste, da bo stolpec id primarni ključ tabele, tako da ste v ukaz za ustvarjanje tabele vključili definicijo PRIMARNEGA KLJUČA (id).

Četrtič, tej tabeli ste dali dva neobvezna parametra. Parameter ENGINE podaja vrsto tabele. Tabeli Stranke ste dodelili vrsto InnoDB, saj samo ta vrsta zagotavlja celovitost odnosov med tabelami (za več informacij o vrstah tabel glejte odstavek »Izbirne lastnosti tabele«). Parameter CHARACTER SET podaja privzeto kodiranje za podatke v tabeli. Ker niste posebej nastavili kodiranja za stolpce z imenom, telefonom in naslovom, bodo podatki v teh stolpcih shranjeni v kodiranju UTF-8, ki je privzeto kodiranje za tabelo Stranke.

Naslednji primer, ki si ga bomo ogledali, je ukaz za ustvarjanje tabele Products, prikazan na seznamu 2.3.

Seznam 2.3. Ukaz za ustvarjanje tabele izdelkov

CREATE TABLE Izdelki

(id SERIAL,

opis VARCHAR(100),

podrobnosti BESEDILO,

cena DECIMAL(8,2),

PRIMARNI KLJUČ (id))

NABIRKA ZNAKOV MOTORJA InnoDB utf8;


Ta ukaz je zelo podoben ukazu za izdelavo tabele Stranke in se od njega razlikuje le po imenu tabele in naboru stolpcev. Stolpca ID (številka izdelka) in opis (ime izdelka) v tabeli Izdelki imata vrste, ki jih že poznamo. Stolpec s podrobnostmi (opis) je tipa TEXT. Ta tip je primeren za uporabo namesto tipa VARCHAR, če bo stolpec vseboval dolge vrednosti: skupna dolžina vrednosti vseh stolpcev VARCHAR je omejena na 65.535 bajtov na tabelo, skupna dolžina TEXT pa ni omejena. stolpce. Slabost tipa TEXT je nezmožnost vključitve takih stolpcev v tuji ključ tabele, torej ustvarjanja relacije med tabelami na podlagi teh stolpcev.

Stolpec cene je tipa DECIMAL, namenjen shranjevanju denarnih zneskov in drugih vrednosti, pri katerih je pomembno, da se izognete napakam pri zaokroževanju. V oklepaju smo navedli dve številki: prva določa največje število števk v vrednosti stolpca, druga - največje število števk za decimalnim ločilom. Z drugimi besedami, cena izdelka lahko vsebuje do šest števk v celem delu (6 = 8–2) in do dve števki v ulomku.

In končno, zadnji primer je ukaz za ustvarjanje tabele Naročila, prikazan na seznamu 2.4.

Seznam 2.4. Ukaz za ustvarjanje tabele naročil

USTVARITE naročila TABLE

(id SERIAL,

datum DATE,

product_id BIGINT UNSIGNED NOT NULL,

količina INT UNSIGNED,

količina DECIMAL(10,2),

customer_id BIGINT UNSIGNED,

PRIMARNI KLJUČ (id),

TUJI KLJUČ (id_izdelka) REFERENCE Izdelki (id)

ON DELETE RESTRICT UPDATE CASCADE,

TUJI KLJUČ (customer_id) REFERENCE Stranke (id)

PRI IZBRISU OMEJITEV NA POSODOBITEV CASCADE)

NABIRKA ZNAKOV MOTORJA InnoDB utf8;


Značilnost tabele Naročila je prisotnost tujih ključev: stolpec product_id (product) vsebuje številke izdelkov iz tabele Products, stolpec customer_id (customer) pa vsebuje številke strank iz tabele Customers (glejte tudi tabelo 1.2 v poglavju 1). Ker sta številki izdelka in stranke velika pozitivna cela števila, smo stolpcem product_id in customer_id dodelili tip BIGINT UNSIGNED.

Da bi zagotovili samodejno vzdrževanje celovitosti odnosov (o integriteti smo govorili v 1. poglavju), smo programu MySQL povedali, kateremu primarnemu ključu ustreza posamezni tuji ključ. Na primer konstrukcija FOREIGN KEY (customer_id) REFERENCES Customers (id) pomeni, da lahko stolpec customer_id vsebuje samo vrednosti iz stolpca id tabele Customers in vrednosti NULL, druge vrednosti pa so prepovedane. Za stolpec product_id smo nastavili podobno omejitev in temu stolpcu dodelili lastnost NOT NULL, da preprečimo registracijo naročil z nedefiniranim izdelkom. Poleg tega smo določili pravila za ohranjanje integritete za vsako od povezav (te smo tudi obravnavali v 1. poglavju). Pravilo ON DELETE RESTRICT pomeni, da ne morete izbrisati zapisa stranke, če ima ta stranka registrirano naročilo, in ne morete izbrisati zapisa izdelka, če je ta izdelek nekdo naročil. Pravilo ON UPDATE CASCADE pomeni, da ko se spremeni številka stranke v tabeli Stranke ali številka artikla v tabeli Izdelki, se ustrezne spremembe izvedejo v tabeli Naročila.

Opomba

Upoštevajte, da smo tabelo Naročila ustvarili nazadnje, ker morajo biti primarni ključi v tabelah Kupci in Izdelki ustvarjeni pred tujimi ključi, ki se nanašajo nanje v tabeli Naročila. Vendar bi bilo mogoče ustvariti tabele brez tujih ključev v poljubnem vrstnem redu in nato dodati tuje ključe z uporabo ukaza ALTER TABLE, ki ga bomo obravnavali v pododdelku "Spreminjanje strukture tabele".

V naših primerih smo upoštevali le nekatere parametre ukaza za ustvarjanje tabele. Zdaj bomo našteli vse glavne parametre, ki jih boste morda potrebovali pri ustvarjanju tabel. MySQL Data Types se ukvarja z vrstami stolpcev, Column Properties se ukvarja z nastavitvijo ključnih stolpcev in na koncu Key Columns and Indexes obravnava neobvezne lastnosti tabele.

Vrste podatkov v MySQL

Kot že veste, morate pri ustvarjanju tabele določiti vrsto podatkov za vsak stolpec. MySQL ponuja veliko tipov podatkov za shranjevanje števil, datumov/časov in znakovnih nizov (besedil). Poleg tega obstajajo tipi podatkov za shranjevanje prostorskih (prostorskih) objektov, ki jih v tej knjigi ne bomo obravnavali.

Razmislite o številskih vrstah podatkov.

BIT[(<Количествобитов>)].

Bitno število, ki vsebuje določeno število bitov. Če število bitov ni določeno, je število sestavljeno iz enega bita.

Celo število v območju od -128 do 127 ali (če je podana lastnost UNSIGNED) od 0 do 255.

BOOL ali BOOLEAN.

So sinonimi za podatkovni tip TINYINT(1) (število v oklepajih je število števk za prikaz, glejte spodnjo opombo). V tem primeru se neničelna vrednost šteje za resnično (TRUE), nič - za napačno (FALSE).

Celo število v območju od -32768 do 32767 ali (če je podana lastnost UNSIGNED) od 0 do 65535.

Celo število v območju od -8388608 do 8388607 ali (če je podana lastnost UNSIGNED) od 0 do 16777215.

INT ali INTEGER.

Celo število v območju od -2147483648 do 2147483647 ali (če je podana lastnost UNSIGNED) od 0 do 4294967295.

Celo število v območju od -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807 ali (če je podana lastnost UNSIGNED) od 0 do 18 446 744 073 70 9 551 615.

Sinonim za BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (veliko celo število brez predznaka, ki sprejema samodejno povečane edinstvene vrednosti; vrednosti NULL niso dovoljene). Uporablja se za samodejno ustvarjanje edinstvenih vrednosti v stolpcu primarnega ključa. V tem pododdelku boste našli opis lastnosti UNSIGNED in AUTO_INCREMENT ter lastnosti NOT NULL in UNIQUE v odstavku »Lastnosti stolpca«.

Opomba

Za vse tipe celoštevilskih podatkov, razen za BOOL (BOOLEAN) in SERIAL, lahko določite število prikazanih števk v oklepaju, ki se uporablja v povezavi s parametrom ZEROFILL: če število vsebuje manj števk, je od leve dopolnjeno z ničle pri izpisu. Na primer, če je stolpec tabele definiran kot INT(5) ZEROFILL, sta vrednosti "1234567" in "12345" prikazani, kot sta, vrednost "123" pa je prikazana kot "00123". Za podatkovni tip BIT je v oklepajih navedena velikost števila, to je največje število shranjenih bitov.