MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)



Podobné dokumenty
MySQL manuál. Copyright: Adam Jun Stránky manuálu:

Změny v Tabulce ALTER TABLE nazev_tabulky prikaz1, prikaz2, prikaz3,..., prikazn; -provede změny ve stávající tabulce s názvem "nazev_tabulky"

Návrh a tvorba WWW stránek 1/14. PHP a databáze

DATABÁZE TABULKY. Nastavení aktivní databáze. Výpis seznamu tabulek v databázi. Vytvoření tabulky. Výpis popisu tabulky.

MySQL databáze - český manuál

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databáze I. Přednáška 4

Databázové systémy. Cvičení 6: SQL

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Databázové systémy Cvičení 5.2

DUM 12 téma: Příkazy pro tvorbu databáze

Úvod do databázových systémů

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Sada 1 - PHP. 14. Úvod do jazyka SQL

Úvod do databázových systémů

2005 MySQL - Manuál - 2 -

Databázové systémy a SQL

5. POČÍTAČOVÉ CVIČENÍ

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Úvod do databázových systémů

Databázové systémy a SQL

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

6. SQL složitější dotazy, QBE

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Databázové systémy I

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

MySQL sežere vaše data

Databázové systémy a SQL

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Databáze I. Přednáška 6

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Digitální učební materiály

PG 9.5 novinky ve vývoji aplikací

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Jazyk SQL databáze SQLite. připravil ing. petr polách

VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ

Základní přehled SQL příkazů

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Max Communicator 9. Přístup do databáze a vyčítání hodnot měření externími aplikacemi

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Databáze I. Přednáška 7

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Databázové systémy I

KIV/ZIS cvičení 5. Tomáš Potužák

Databázové systémy Cvičení 5.3

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

KIV/ZIS cvičení 6. Tomáš Potužák

Konceptuální modelování a SQL

1. Relační databázový model

Jazyk C# a platforma.net

Úvod do databázových systémů

Jazyk SQL slajdy k přednášce NDBI001

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Dotazy tvorba nových polí (vypočítané pole)

Programování v jazyce JavaScript

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Databáze SQL SELECT. David Hoksza

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Jazyk PL/SQL Úvod, blok

Základy relačních databází, jejich využití v programování webu

Databázové systémy Cvičení 5

Verzování a publikace dat na webu za pomoci PostgreSQL

Transformace konceptuálního modelu na relační

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

8.2 Používání a tvorba databází

Kapitola 4: SQL. Základní struktura

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

INDEXY JSOU GRUNT. Pavel Stěhule

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

SQL. relační databázový systém. v úvodní kurz jazyka SQL

- sloupcové integritní omezení

Algoritmizace a programování

Tabulkový procesor. Základní rysy

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Internetová filmová databáze IFDB

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Semestrální práce z DAS2 a WWW

Databáze I. 5. přednáška. Helena Palovská

U koly na procvic ení jazyka T-SQL

Zápis programu v jazyce C#

Dotazovací jazyk SQL I

Textové, datumové a časové funkce

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam.

Znak Slovy Popis Zdroj Výsledek Formátova cí řetězec v CZ verzi Excelu

Úvod do databázových systémů

Transkript:

MySQL přes MySQL Command Line Client Zobrazení existujících databází mysql> SHOW DATABASES; Database test Vytvoření databáze mysql> CREATE DATABASE krouzek; Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES; Database krouzek test mysql> CREATE DATABASE krouzek; ERROR 1007 (HY000): Can't create database 'test'; database exists mysql> CREATE DATABASE IF NOT EXISTS krouzek; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec) Odstranění databáze set utf8 collate utf8_czech_ci; set cp1250 collate cp1250_czech_cs; CHARSET=UTF-8 =ISO-8859-2 =Windows-1250 mysql> DROP DATABASE test; Query OK, 0 rows affected (0.00 sec) mysql> DROP DATABASE IF EXISTS test; Query OK, 0 rows affected, 1 warning (0.00 sec) Nastavení aktivní databáze mysql> USE krouzek; Database changed Nastavení znakové sady pro aktuální práci s databází mysql> CHARSET latin2; latin2/utf8/cp1250/... mysql> SET CHARACTER SET latin2; mysql> SET NAMES latin2;

Zobrazení tabulek v libovolné existující databázi mysql> SHOW TABLES FROM krouzek; Empty set (0.00 sec) Zobrazení tabulek v používané databázi mysql> SHOW TABLES; Empty set (0.00 sec) DATOVÉ TYPY Celá čísla TINYINT -128 až +127 TINYINT UNSIGNED 0 až 255 SMALLINT -32768 až 32767 SMALLINT UNSIGNED 0 až 65535 MEDIUMINT -8388608 do +8388607 MEDIUMINT UNSIGNED 0 až 16777215 INT nebo INTEGER -2147483648 až +2147483647 INT UNSIGNED 0 až 4294967295 BIGINT -9223372036854775808 až +9223372036854775807 BIGINT UNSIGNED 0 až 18446744073709551615 BIT počet bitů od 0 do 64 Např. BIT (5) 00000 BOOL nebo BOOLEAN synonymum pro TINYINT(1) Nula je vyhodnocena jako false, ostatní jako true Nepřesná desetinná čísla (zaokrouhlovaná) FLOAT DOUBLE -3.402823466E+38 do 3.402823466E+38 Např. FLOAT (10, 5) až 10 znaků, desetiny zabírají 5 míst -1.7976931348623157E+308 do 1.7976931348623157E+308 Přesná desetinná čísla (nezaokrouhlovaná) DEC nebo DECIMAL (a, b) ukládá desetinná čísla s pevnou čárkou jako řetězec; rozsah stejný jako u DOUBLE, nastavuje se přes parametry U typů pracujícími s desetinnými čísly lze použít UNSIGNED. Následně půjdou do sloupce uložit pouze kladná čísla, avšak rozsah kladných hodnot se nezvýší. Řetězce CHAR (a) počet znaků v rozmezí 0 až 255 Pokud je vložen kratší řetězec, chybějící znaky budou mezery CHAR bez určení délky řetězce = CHAR (1) VARCHAR (a) počet znaků v rozmezí 0 až 255 U kratšího vloženého řetězce mezery délku nevyplňují TINYTEXT (a) TEXT MEDIUMTEXT LONGTEXT délka řetězce je maximálně 255 znaků délka řetězce je maximálně 65535 znaků délka řetězce je maximálně 16777215 znaků délka řetězce je maximálně 4294967295 znaků

BLOB binární data ukládaná do databáze; rozsah stejný jako u TEXT Stejnou délku řetězce jako TEXT mají i jeho varianty: TINYBLOB, MEDIUMBLOB, LONGBLOB ENUM ('1', '2'...) pole předem definovaných řetězců (prvků) o max. počtu 65535 V buňce pak může být pouze jeden z předefinovaných prvků. Místo názvů prvků můžeme používat jejich pořadí. SET ('1', '2'...) pole předem definovaných řetězců (prvků) o max. počtu 64 V buňce pak může být více prvků z předem předefinovaných. Datum a čas DATE datum a čas ve formátu RRRR-MM-DD (1000-01-01 až 9999-12-31) DATETIME datum a čas ve formátu RRRR-MM-DD HH:MM:SS (1000-01-01 00:00:00 až 9999-12-31 23:59:59) TIMESTAMP (a) datum a čas v rozsahu 1970-01-01 00:00:00 až 2037-01-01 00:00:00 (vždy se ukládá všech 14 čísel) Formát zobrazení (a pro dotazy) provedeme parametrem "a" s hodnotou 14 (nebo chybějící), 12, 10, 8, 6, 4, či 2 - "RRRRMMDDHHMMSS", "RRMMDDHHMMSS", "RRMMDDHHMM", "RRRRMMDD", "RRMMDD", "YYMM", "YY" Pokud do buňky tohoto typu nic nezapíšeme MySQL sám doplní aktuální čas změny v daném řádku. TIME čas ve formátu HH:MM:SS (rozsah -838:59:59 až 838:59:59) YEAR (a) rok ve tvaru RRRR (YEAR(4): 1901 až 2155, YEAR(2): 1970-2069) MODIFIKÁTORY (http://mm.gene.cz/#prace_s_daty) AUTO_INCREMENT - systém si sám ve sloupci generuje unikátní (jedinečné) číselné hodnoty - modifikátor lze použít pouze na celočíselný datový typ - za deklarací nové tabulky můžeme ještě navíc určit vých. hodnotu:...auto_increment=5; BINARY - pro CHAR a VARCHAR; tento typ bude brán jako binární a budou se tak rozlišovat malá a velká písmena DEFAULT vychozi_hodnota - pokud bude buňka prázdná, systém do ní automaticky přiřadí hodnotu "vychozi_hodnota" - řetězce musejí být v uvozovkách FULLTEXT INDEX - platí pro sloupce typu CHAR, VARCHAR a TEXT - fulltextový index slouží k rychlejšímu hledání dat v textových polích - hledání v takovýchto polích provádíme pomocí příkazů MATCH a AGAINST - př.: SELECT * FROM tabulka WHERE MATCH(sloupec) AGAINST("hledana_hodnota"); INDEX - sloupec/sloupce označené jako INDEX umožní rychlejší přístup k datům, která obsahují NOT NULL - použitím tohoto modifikátoru musí označený typ v každé buňce obsahovat nějakou hodnotu NULL - opak NOT NULL; buňka může být prázdná PRIMARY KEY - označený typ bude sloužit jako primární klíč - při jeho použití musíme zároveň použít UNIQUE - sloupec nám tedy jedinečným způsobem identifikuje záznamy v tabulce UNIQUE - v daném sloupci nesmějí být v buňkách stejné hodnoty, tedy co kus, to unikát UNSIGNED - použitím UNSIGNED bude datový typ bez znaménka a posune se interval hodnot - u čísel s pohyblivou desetinou čárkou se interval použitím UNSIGNED neposunuje a berou se jen kladná čísla ZEROFILL - použití u čísel, příkaz doplní před číslo nuly v celé jeho šířce - př.: pokud máme definováno MEDIUMINT(6) ZEROFILL a je v něm hodnota 123, tak se nám zobrazí 000123

Vytvoření tabulky mysql> CREATE TABLE LIDE2 (jmeno VARCHAR(20) NOT NULL, prijmeni VARCHAR(20) NOT NULL); mysql> CREATE TABLE knihy ( -> nazev VARCHAR(50) NOT NULL, -> autor VARCHAR(50) NOT NULL, -> rok SMALLINT UNSIGNED DEFAULT 2008 NULL -> ); mysql> CREATE TABLE lide ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> jmeno VARCHAR (20) NOT NULL, -> prijmeni VARCHAR (20) NOT NULL, -> PRIMARY KEY (id) -> ); mysql> CREATE TABLE zamestnanci LIKE lide; Vytvoření dočasné tabulky Po ukončení spojení tabulka zaniká. Dvě různá připojení mohou vytvořit dvě dočasné tabulky stejného názvu. mysql> CREATE TEMPORARY TABLE osoby LIKE lide; Zobrazení popisu tabulky mysql> DESCRIBE lide; +----------+------------------+------+-----+---------+----------------+ Field Type Null Key Default Extra +----------+------------------+------+-----+---------+----------------+ id int(10) unsigned NO PRI NULL auto_increment jmeno varchar(20) NO prijmeni varchar(20) NO +----------+------------------+------+-----+---------+----------------+ Přejmenování tabulky mysql> ALTER TABLE zamestnanci RENAME zamestnanci_firmy; Podrobné informace o primárních klíčích a indexech mysql> SHOW KEYS FROM lide; mysql> SHOW INDEX FROM lide; Odstranění tabulky mysql> DROP TABLE zamestnanci_firmy; Query OK, 0 rows affected (0.00 sec) mysql> DROP TABLE IF EXISTS zamestnanci_firmy; Query OK, 0 rows affected, 1 warning (0.00 sec)

Přidání sloupce do tabulky mysql> ALTER TABLE lide ADD psc VARCHAR (9); mysql> ALTER TABLE lide ADD rok SMALLINT UNSIGNED DEFAULT 1990; mysql> ALTER TABLE lide ADD psc VARCHAR (9); mysql> ALTER TABLE lide ADD misto VARCHAR (10) AFTER prijmeni; mysql> ALTER TABLE ADD prvni CHAR (1) AFTER prijmeni; mysql> ALTER TABLE knihy ADD id_knihy INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; Odstranění sloupce mysql> ALTER TABLE lide DROP psc; Přejmenování sloupce s úpravou typu mysql> ALTER TABLE lide CHANGE misto mesto VARCHAR (30) NOT NULL; Úprava typu sloupce mysql> ALTER TABLE lide MODIFY mesto VARCHAR (35) NOT NULL; Vkládání záznamů mysql> INSERT INTO lide VALUES (NULL, 'Jiří', 'Novák', 'Brno'); mysql> INSERT INTO lide (jmeno, prijmeni) VALUES ('Karel', 'Veselý'); mysql> INSERT INTO lide (jmeno, prijmeni) VALUES ('Petra', 'Veselá'), ('Ivo', 'Šťastný'); IGNORE Při pokusu vložit záznamy, kde se kříží zadávaný primární klíč s existujícím vznikne chyba a pokud se vkládá více záznamů, žádný se neuloží. Příklad: mysql> INSERT INTO lide (id, jmeno, prijmeni) VALUES (1, 'Jiří', 'Novák'); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' mysql> INSERT IGNORE INTO lide (id, jmeno, prijmeni) VALUES (1, 'Jiří', 'Novák'); Query OK, 0 rows affected (0.00 sec) S IGNORE se záznam s duplicitním primárním klíčem neuloží, avšak ostatní, které nekolidují, ano. Aktualizace záznamů mysql> UPDATE lide SET mesto = 'Olomouc'; mysql> UPDATE lide SET rok = rok - 5;

Omezení počtu ovlivněných řádků WHERE mysql> UPDATE lide SET mesto = 'Praha' WHERE jmeno = 'Karel' AND prijmeni = 'Veselý'; mysql> UPDATE lide SET rok = 1990 WHERE rok < 1990; Používají se logické operátory AND (&&), OR ( ), NOT (!), aritmetické operátory + (součet), - (odečet), * (součin), / (podíl), % (zbytek po podílu), a porovnávací operátory = <> (!=) > < <= >= <=> (rovno; včetně hodnot NULL) a další (viz. později) LIMIT od záznamu, počet mysql> UPDATE lide SET mesto = 'Prostějov' LIMIT 2; U UPDATE pouze počet. Odstranění záznamů mysql> DELETE FROM lide; mysql> DELETE FROM lide WHERE id = 4; mysql> TRUNCATE TABLE knihy; (rychlejší než DELETE FROM knihy;) Výpis záznamů mysql> SELECT * FROM lide; 1 Jiří Novák Prostějov 1990 mysql> SELECT * FROM telefony WHERE cislo <> 0; id_osoby cislo 1 543111111 1 543222222 2 543222222 mysql> SELECT * FROM telefony LIMIT 1; id_osoby cislo 1 543111111

BETWEEN a NOT BETWEEN (hodnoty v rozmezí) mysql> SELECT * FROM lide WHERE rok BETWEEN 1991 AND 2000; mysql> SELECT * FROM lide WHERE rok NOT BETWEEN 1991 AND 2000; 1 Jiří Novák Prostejov 1990 IN a NOT IN (hodnoty z výčtu) mysql> SELECT * FROM lide WHERE rok IN (1988, 1989, 1990); 1 Jiří Novák Prostějov 1990 IS NULL a IS NOT NULL mysql> SELECT * FROM lide WHERE prijmeni IS NULL; Empty set (0.00 sec) LIKE a NOT LIKE mysql> SELECT * FROM lide WHERE prijmeni LIKE 'Ves%'; mysql> SELECT * FROM lide WHERE prijmeni LIKE 'Vesel_'; REGEXP (RLIKE) (regulární výrazy) mysql> SELECT * FROM lide WHERE prijmeni REGEXP 'á$'; +----+-------+----------+---------+------+ +----+-------+----------+---------+------+ +----+-------+----------+---------+------+

spojení tabulek bez pomoci JOIN mysql> SELECT * FROM lide, telefony WHERE lide.id = telefony.id_osoby; ---------- id_osoby cislo ---------- 1 Jiří Novák Prostějov 1990 1 543111111 1 Jiří Novák Prostějov 1990 1 543222222 2 543222222 ---------- Vybrány byly pouze ty záznamy, které byly podle ID nalezeny v obou tabulkách (bez Petry Veselé) spojení tabulek pomocí JOIN mysql> SELECT * FROM lide JOIN telefony ON lide.id = telefony.id_osoby; ---------- id_osoby cislo ---------- 1 Jiří Novák Prostějov 1990 1 543111111 1 Jiří Novák Prostějov 1990 1 543222222 2 543222222 ---------- mysql> SELECT cislo FROM telefony JOIN lide ON lide.id = telefony.id_osoby WHERE id = 1; cislo 543111111 543222222 mysql> SELECT * FROM lide LEFT JOIN telefony ON lide.id = telefony.id_osoby; ---------- id_osoby cislo ---------- 1 Jiří Novák Prostějov 1990 1 543111111 1 Jiří Novák Prostějov 1990 1 543222222 2 543222222 NULL NULL ---------- Vybrány byly pouze všechny záznamy z LIDE, bez ohledu na to, jestli k nim byly v TELEFONY nalezeny záznamy mysql> SELECT * FROM lide RIGHT JOIN telefony ON lide.id = telefony.id_osoby; +------+------------- id_osoby cislo +------+------------- 1 Jiří Novák Prostějov 1990 1 543111111 1 Jiří Novák Prostějov 1990 1 543222222 2 543222222 +------+------------- Vybrány byly pouze všechny záznamy z TELEFONY, bez ohledu na to, jestli k nim byly v LIDE nalezeny záznamy

AS (zkrácené pojmenování tabulky) mysql> SELECT t.cislo FROM telefony AS t; DISTINCT (odstranění duplikátů ve výpisu) mysql> SELECT DISTINCT cislo FROM telefony; cislo 543111111 543222222 ORDER BY (řazení) mysql> SELECT * FROM lide ORDER BY prijmeni, jmeno; 1 Jiří Novák Prostějov 1990 mysql> SELECT * FROM lide ORDER BY prijmeni, jmeno DESC; 1 Jiří Novák Prostějov 1990 mysql> SELECT * FROM lide ORDER BY RAND() LIMIT 1; Vybere např. 1 Jiří Novák Prostějov 1990 CASE... END mysql> SELECT prijmeni, CASE rok WHEN 1990 THEN 'narozen roku 1990' ELSE 'nenarozen roku 1990' END FROM lide; +----------+----------------------------------------------------------------------------+ prijmeni CASE rok WHEN 1990 THEN 'narozen roku 1990' ELSE 'nenarozen roku 1990' END +----------+----------------------------------------------------------------------------+ Novák narozen roku 1990 Veselý nenarozen roku 1990 Veselá narozen roku 1990 +----------+----------------------------------------------------------------------------+

Manipulace s čísly mysql> SELECT MAX(rok) FROM lide; +----------+ MAX(rok) +----------+ 1991 +----------+ AVG(sloupec) Spočítá průměr číselných hodnot ve sloupci COUNT(sloupec) Spočítá počet hodnot ve sloupci COUNT(DISTINCT sloupec) Spočítá počet jedinečných hodnot ve sloupci GREATEST(sloupec1, sl2, sl3) Vrátí největší hodnotu ze zadaných sloupců LEAST(sloupec1, sl2, sl3) Vrátí nejmenší hodnotu ze zadaných sloupců MAX(sloupec) Vybere záznamy s největší hodnotou MIN(sloupec) Opak MAX() MOD(sloupec dělenec, sloupec dělitel) Vrátí zbytek po dělení ROUND(číslo, počet míst) Zaokrouhlí číslo na celé číslo (druhý parametr není povinný) STD(sloupec) Spočítá směrodatnou odchylku číselných hodnot ve sloupci SUM(sloupec) Sečte všechny číselné hodnoty ve sloupci Manipulace s textem mysql> SELECT LOWER(jmeno), UPPER(prijmeni) FROM lide; +--------------+-----------------+ LOWER(jmeno) UPPER(prijmeni) +--------------+-----------------+ jiří NOVÁK karel VESELÁ petra VESELÁ +--------------+-----------------+ LENGTH(sloupec) LOCATE(retezec, sloupec, start) SUBSTRING(sloupec, start) REPLACE(sloupec, nahradit, cim) REVERSE(sloupec) TRIM(sloupec) TRIM(LEADING 'a' FROM sloupec) TRIM(TRAILING 'a' FROM sloupec) TRIM(BOTH 'a' FROM sloupec) LTRIM(sloupec) RTRIM(sloupec) UPPER(sloupec) LOWER(sloupec) Vrátí délku řetězce ve sloupci Hledá ve "sloupec" hodnotu "retezec", začíná na pozici "start" Vypíše řetězec ze "sloupec", bude začínat od pozice "start" V řetězci ve "sloupec" hledá "nahradit", a ve výpisu jej nahradí za řetězec "cim" Řetězec vrátí otočený Odstraní z řetězce mezery na jeho začátku i konci Odstraní řetězec ('a') ze začátku řetězce ve 'sloupec' Odstraní řetězec ('a') z konce řetězce ve 'sloupec' Odstraní řetězec ('a') ze začátku i z konce řetězce ve 'sloupec' Odstraní z řetězce mezery na jeho začátku Odstraní z řetězce mezery na jeho konci Převede všechna písmena řetězce na velká Převede všechna písmena řetězce na malá

Manipulace s časem mysql> SELECT NOW(); +---------------------+ now() +---------------------+ 2008-01-26 17:59:46 +---------------------+ SELECT NOW(); SELECT CURRENT_DATE(); SELECT CURRENT_TIME(); SELECT DATE_FORMAT(vstup, výstup); SELECT QUARTER(NOW()); Vrátí aktuální datum a čas ve formátu RRRR-MM-DD HH:MM:SS Vrátí aktuální datum ve formátu RRRR-MM-DD Vrátí aktuální čas ve formátu HH:MM:SS Vrátí čas v určeném tvaru mysql> SELECT DATE_FORMAT(NOW(),"%Y"); +-------------------------+ DATE_FORMAT(NOW(),"%Y") +-------------------------+ 2008 +-------------------------+ %Y rok (RRRR) (např. 2008) %y rok (RR) (např. 08) %m měsíc (MM) (např. 08, 09, 10) %c měsíc (M nebo MM) (např. 8, 9, 10) %M název měsíce (např. January) %b zkr. název měsíce (např. Jan) %u číslo týdne v roce (např. 04) %D den řadovou číslovkou (např. 26th) %d den v měsíci (DD) (např. 01, 02) %e den v měsíci (D či DD) (např. 1, 2) %w číslo dne v týdnu (D) (např. 0, 6) %W název dne v týdnu (např. Monday) %a zkr. název dne v týdnu (např. Mon) %j číslo dne v roce (DDD) (např. 026) %H hodina (HH) (např. 00, 15) %k hodina (H nebo HH) (např. 0, 1) %h hodina ve 12hodinovém formátu (HH) %l hodina ve 12hodinovém formátu (H) %i minuty (MM) (např. 09, 10) %s sekundy (SS) (např. 09, 10) Vrátí číslovku určující aktuální čtvrtletí Výpis záznamů do souboru mysql> SELECT * INTO OUTFILE 'vystup.txt' FIELDS TERMINATED BY ';' FROM lide; Soubor je standartně uložen do stejného umístění, kam se ukládají soubory databáze