MySQL – 7. lekcia
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

MySQL – 7. lekciaMySQL – 7. lekcia

 

MySQL – 7. lekcia

Google       Google       18. 3. 2006       24 106×

V dnešnej lekcii:

* Práca s číslami
* Funkcia SUM
* Zálohovanie a obnova dát
* Prideľovanie práv

Reklama
Reklama

Práca s číslami

Na prácu s číslami nám MySQL ponúka niekoľko základných aritmetických operácií.
Poďme si ich zopár názorne ukázať na našej tabuľke zamestnanci (ktorú sme v minulej lekcií vytvorili).



mysql> select*from zamestnanci;
Odpoveď servera:

+----------------+---------+------------+----+
| typ            | zarobok | mesto      | ID |
+----------------+---------+------------+----+
| Admin          |   10000 | Bratislava |  1 |
| Programator    |   15000 | Praha      |  2 |
| Webmaster      |   20000 | Brno       |  3 |
| Grafik         |   12500 | Trnava     |  4 |
| Tvorca_Stranok |    9500 | Kosice     |  5 |
+----------------+---------+------------+----+
5 rows in set (0.02 sec)

Ako vidíme, nachádza sa tu stĺpec „zarobok“, v ktorom sa nachádzajú číselné hodnoty.
Teraz si vypíšeme všetky typy povolania, ktoré majú zárobok nižší, nanajvýš rovný, 13 000.

Použijeme na to tento zápis.



mysql> SELECT typ,zarobok FROM zamestnanci WHERE zarobok <=13000;
Odpoveď servera:

+----------------+---------+
| typ            | zarobok |
+----------------+---------+
| Admin          |   10000 |
| Grafik         |   12500 |
| Tvorca_Stranok |    9500 |
+----------------+---------+
3 rows in set (0.02 sec)

Tento výraz najprv vyberie stĺpce typ a zarobok, následne nastavujeme podmienku WHERE, ktorá pomocou operátorov „menší alebo rovný“ vyberie všetky záznamy a prevedie podmienku menší alebo rovný 13 000.


Funkcia SUM

Funkcia SUM nám ponúka prevádzať štítenie na dátach sčítacie operácie.

Syntaxa je:

SELECT SUM(názov_stlpca) FROM meno_tabulky;

Teraz si spočítame, aký je celkový zárobok v stĺpci „zarobok“.


mysql> SELECT SUM(zarobok) FROM zamestnanci;
Odpoveď servera:

+--------------+
| SUM(zarobok) |
+--------------+
|        67000 |
+--------------+
1 row in set (0.05 sec)



Zálohovanie a obnova dát

Jednou z najdvoležitejších vecí pri tvorbe databáz je jej pravidelné zálohovanie. Buď to celých datábaz, alebo len potrebných tabuliek.
K tomuto účelu slúži mysqldump, ktorý dokáže zálohovať naše databázi. Tento nástroj je spúšťaní v príkazovom riadku.

Takže najprv si spustíme príkazový riadok (Štart-Spustiť-cmd). V prvom rade sa musíme dostať do adresára mysql/bin, v ktorom je naša potrebná ulitka pre zálohovanie mysqldump.


Syntaxa pre zálohovanie celej databázi je:

mysqldump  meno_databazy > databaza.sql
Syntaxa pre zálohovanie tabuľky je:

mysqldump meno_databazy  nazov_tabulky > tabulka.sql

Teraz sa nachádzame v príkazovom riadku a v adresári mysql/bin. A zálohujeme si našu databázu „skuska“ nasledovne:


C:\mysql\bin>mysqldump skuska > skuska.sql 

Pokiaľ nám nevyhodilo žiadnu chybu ani hlášku, tak sme si počínali dobre a náš výsledok by mal vyzerať takto:


-- MySQL dump 8.22
--
-- Host: localhost    Database: skuska
---------------------------------------------------------
-- Server version	3.23.51-nt

--
-- Table structure for table 'programovanie'
--

CREATE TABLE programovanie (
  Pascal varchar(15) default NULL,
  php varchar(20) default NULL,
  mysql varchar(30) default NULL,
  CSS varchar(20) default NULL,
  html varchar(30) default NULL,
  datum date default NULL,
  ID int(11) NOT NULL auto_increment,
  ASPX varchar(20) default NULL,
  PRIMARY KEY  (ID)
) TYPE=MyISAM;

--
-- Dumping data for table 'programovanie'
--


INSERT INTO programovanie VALUES (NULL,'Programovanie v PHP','Datab zy',NULL,'Tvorba str nok','2005-12-11',1,NULL);
INSERT INTO programovanie VALUES (NULL,'Programovanie v PHP','Datab zy',NULL,'Tvorba str nok','2005-12-11',2,NULL);
INSERT INTO programovanie VALUES (NULL,'sessions','SQL',NULL,'Meta tagy','2006-01-29',4,NULL);
INSERT INTO programovanie VALUES (NULL,'PHP5','INSERT',NULL,'Tag BODY','2006-01-29',5,NULL);
INSERT INTO programovanie VALUES (NULL,'$premena','WHERE',NULL,'Tag P','2006-01-29',6,NULL);

--
-- Table structure for table 'zamestnanci'
--

CREATE TABLE zamestnanci (
  typ varchar(20) default NULL,
  zarobok int(10) default NULL,
  mesto varchar(20) default NULL,
  ID int(11) NOT NULL auto_increment,
  PRIMARY KEY  (ID)
) TYPE=MyISAM;

--
-- Dumping data for table 'zamestnanci'
--


INSERT INTO zamestnanci VALUES ('Admin',10000,'Bratislava',1);
INSERT INTO zamestnanci VALUES ('Programator',15000,'Praha',2);
INSERT INTO zamestnanci VALUES ('Webmaster',20000,'Brno',3);
INSERT INTO zamestnanci VALUES ('Grafik',12500,'Trnava',4);
INSERT INTO zamestnanci VALUES ('Tvorca_Stranok',9500,'Kosice',5);


Súbor skuska.sql sa náchádza v adresáry bin.
Niekedy sa môžete stretnúť aj s inou syntaxou zálohovania databáz. Záleží to na verzií mysql a aj mysqldump-u. Spomeniem tie, ktoré sa tiež dosť často používajú.


$ mysqldump databaza > databaza.sql

% mysqldump databaza > databaza.sql

Obnova dát zo zálohy je veľmi jednoduchá namiesto znaku „>“ sa použije len opačný znak „<“.


C:\mysql\bin>mysqldump skuska < skuska.sql

Prideľovanie práv

Prideľovanie práv v MySQL má dosť významnú úlohu, nakoľko si môžete nastaviť práva ako root, čiže inými slovami môžete robiť všetko.

Syntaxa je:

GRANT typ_opravnenia ON {*.* | * | nazov_databazy.tabulky} TO účet IDENTIFIED BY password  REQUIRE volba_zabespečenia WITH volba_udelovania_prav;

Zoznam všetkých privilégií:


Všetky privilégia sú uložené v databáze mysql v tabuľke user. Teraz si pridelím všetky (ALL) práva pre užívateľa martin@localhost:


mysql> GRANT ALL ON *.* TO martin@localhost IDENTIFIED BY 'tajneheslo';
Odpoveď servera:

Query OK, 0 rows affected (0.16 sec)
Pokiaľ by sme chceli prideliť právo len na prezeranie tabuliek, použili by sme nasledujúci zápis:

mysql> GRANT Select ON *.* TO martin@localhost IDENTIFIED BY 'tajneheslo';
Odpoveď servera:


Query OK, 0 rows affected (0.01 sec)
Tento zápis by sa tiež mohol zapísať aj bez príkazu GRANT:

mysql>INSERT INTO user VALUES('localhost', 'meno_uživatela',PASSWORD('heslo'), 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N');

Písmená N a Y znamenajú no a yes a idú v poradí od 1 až po 14 ako sme mohli vidieť na obrázku.

Pre zavedenia nového uživatela je potrebné potvrdiť práva príkazom FLUSH PRIVILEGES:


mysql> FLUSH PRIVILEGES;

A to by bolo asi tak všetko, s čím som vás chcel oboznámiť ohľadom databázového programovania v jazyku SQL.


V ďalšej lekcii („poslednej“) si ukážeme rôzne zaujímavé funkcie, ktoré sa dajú robiť v MySQL (ako je napr. kalkulačka, práca s časom a dátumom a rôznych funkcií pre prácu s textovými reťazcami).

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
Autor je študentom Masarykovej univerzity v Brne s odborom Aplikovaná Informatika. Medzi zaľuby patrí práca s PHP & MySQL, JAVA a práca s hudbou.

Nové články

Reklama
Reklama
Obrázek ke článku Blockchain & Bitcoin konference

Blockchain & Bitcoin konference

V pátek 19. 5. 2017 se v pražském konferenčním centru Andel’s konala Blockchain & Bitcoin konference. Řada odborníků a podnikatelů v oboru blockchainu a kryptoměn představila možnosti budoucího směřování tohoto oboru. Speakeři většinou rusky mluvící provenience prezentovali řešení svých firem založená na technologii blockchainu.

Obrázek ke článku Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Bezpečnostní tým Cisco Talos odhalil celkem 4 kampaně dosud neobjeveného malwaru, který dostal jméno KONNI. Ten se dokázal úspěšně maskovat od roku 2014. Zpočátku se malware zaměřoval pouze na krádeže citlivých dat. Za 3 roky se ale několikrát vyvinul, přičemž jeho současná verze umožňuje útočníkovi z infikovaného počítače nejenom krást data, ale i mapovat stisky na klávesnici, pořizovat screenshoty obrazovky či v zařízení spustit libovolný kód. Pro odvedení pozornosti oběti zasílali útočníci v příloze také obrázek, zprávu a výhružkách severokorejského režimu či kontakty na členy mezinárodních organizací.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý