9. Datové typy v MySQL, typy tabulek, funkce v MySQL

Transkript

9. Datové typy v MySQL, typy tabulek, funkce v MySQL
9.
Datové typy v MySQL, typy tabulek, funkce v MySQL
Datové typy v MySQL
Číselné
Celočíselné
BIGINT– rozsah hodnot od -9223372036854775808 do +9223372036854775807, bez znaménka
(UNSIGNED) tedy 0 až 18446744073709551615
INT – rozsah hodnot od -2147483648 do +2147483647, bez znaménka 0 až 4294967295
MEDIUMINT – rozsah hodnot od -8388608 do +8388607, bez znaménka 0 až 16777215
SMALLINT – rozsah hodnot od -32768 do 32767, bez znaménka 0 až 65535
TINYINT – rozsah hodnot od -128 do +127, bez znaménka (UNSIGNED) 0 až 255
Desetiné D - počet desetinných míst, standardně 0
DECIMAL – rozsah nastavíme parametry "m" a "d", maximální rozsah je stejný s typem DOUBLE
DOUBLE – rozsah hodnot od -1.7976931348623157E+308 do 1.7976931348623157E+308
FLOAT – rozsah hodnot od -3.402823466E+38 do 3.402823466E+38
Řetězce
CHAR(délka) – délka řetězce "m" může být v rozsahu 0-255 pokud je vložený řetězec kratší než
nastavíme, chybějící znaky jsou automaticky doplněny mezerami
VARCHAR(délka) – délka řetězce "m" může být v rozsahu 0-255
LONGBLOB – binární řetězce (délka + 4znaky) (max 4 000 000 000 znaků)
LONGTEXT – nebinární řetězce
MEDIUMBLOB – binární řetězce (max 16 000 000 znaků)
MEDIUMTEXT – nebinární řetězce
BLOB – binární řetězce (obrázky nebo zvuky) (max 65 000 znaků)
TEXT – nebinární řetězce, nerozlišuje velikost znaků
TINYBLOB – binární řetězce (max 255 znaků)
TINYTEXT – nebinární řetězce
Datum a čas
DATE - datum ve formátu "RRRR-MM-DD" a v rozsahu 1000-01-01 až 9999-12-31
TIME – čas ve formátu "HH:MM:SS" a v rozsah -838:59:59 až 838:59:59
DATETIME - datum a čas ve formátu "RRRR-MM-DD HH:MM:SS"
a v rozsahu 1000-01-01 00:00:00 až 9999-12-31 23:59:59
TIMESTAMP – datum a čas ve formátu "RRRR-MM-DD HH:MM:SS"
a v rozsahu 1970-01-01 00:00:00 až 2037-01-01 00:00:00
(vždy se ukládá všech 14 čísel !)
– automaticky aktualizuje aktuálním časem a datem při změnách
YEAR - při YEAR(4) bude rozsah 1901 až 2155, při YEAR(2) bude rozsah 1970-2069
Modifikátory datových typů
ENUM(“člen1“,“člen2“, …) - 0 nebo 1 hodnota ze seznamu, ukládá se jako číslo
DEFAULT „hodnota“ - přednastavená hodnota
SET(„člen1“,“člen2“, …) - 0 nebo více hodnot ze seznamu
ZEROFILL - doplnění čísla nulami př:( při MEDIUMINT(5) ZEROFILL = 12 -> 00123 )
UNSIGNED - pouze kladná čísla,e se interval př: (TINYINT má rozsah -118 až +127 a
TINYINT UNSIGNED má rozsah 0 až 255)
AUTO_INCREMENT - automatické zvyšování čísla, používá se hlavně v sloupci ID
k snadnější orientaci
INDEX – sloupec(ce) označené jako INDEX umožní rychlejší přístup k datům která obsahují
BINARY - při prohledávání rozlišuje malá/velká písmena
PRIMARY KEY, KEY
NULL/NOT NULL
Typy tabulek
tabulky ISAM
- Indexed Sequential Accesss Method – metoda indexovaného sekvenčního přístupu
- byly starým standardem MySQL, od verze 3.23.0 nahrazen MyISAM
- přípony: .ISD pro datové soubory a .ISM pro indexové soubory
- nejsou binárně přenositelné na různé počítače a operační systémy
- změna tabulky z ISAM na MyISAM:
- ALTER TABLE jméno_tabulky TYPE = MYISAM;
tabulky MyISAM
- přípony: .MYD pro datové soubory a .MYI pro indexové soubory
- indexové soubory mnohem menší než u ISAM
- statické tabulky mají pevnou délku, jsou velmi rychlé, snadno se ukládají do mezipaměti,
snadno se rekonstruují po selhání, ale vyžadují větší diskový prostor
- dynamické tabulky zabírají méně diskového prostoru, sloupce mají různé délky, všechny
řetězcové sloupce (větší než 4 bajty) jsou dynamické, každý záznam má určitou hlavičku
s informací o jeho délce, jsou složitější, vyžadují pravidelnou údržbu, aby nedocházelo
k fragmentaci
- komprimované tabulky jsou typy tabulek pouze pro čtení, ideální pro archivaci dat
tabulky MERGE
- vznikají sloučením identických tabulek MyISAM
- jsou rychlejší a mají menší velikost
tabulky HEAP
- jsou uloženy v paměti počítače
- jsou nejrychlejší, ale nemohou obsahovat moc dat (proměnná max_heap_table_size)
- nelze používat ORDER BY a AUTO_INCREMENT
- nepodporují sloupce BLOB a TEXT
tabulky InnoDB
- jsou transakčně bezpečným typem tabulek (lze použít COMMIT a ROLLBACK)
- chceme-li používat tabulky InnoDB, je potřeba zkompilovat MySQL s podporou
technologie InnoDB
- používají uzamykání na úrovni řádků (u MyISAM uzamčení celé tabulky)
- vhodné při převažování UPDATE a INSERT (pro SELECT vhodnější MyISAM)
- jednotlivé soubory nepředstavují konkrétní tabulky, data jsou uložena v prostoru tabulek
InnoDB
- CREATE TABLE tabulka ( … ) TYPE=InnoDB;
tabulky BDB
- Berkeley Database, původně byla vytvořena na Universitě v Berkleley
- podporují transakce
- CREATE TABLE tabulka ( … ) TYPE=BDB;
funkce v MySQL
Matematické
ABS(x) - absolutní hodnota
MOD(a,b) - modulo = zbytek po celočíselném dělení
SIN(n), COS(n), TAN(n) - goniometrické fce, úhel je uveden v radiánech
ASIN(n), ACOS(n), ATAN(n) - inverzní goniometrické fce, vrací úhel v radiánech
POWER(m,n) - n-tá mocnina čísla m
LOG(n)/ LOG10(n) - logaritmus/ dekadický log.
SIGN(n) - znaménko čísla n, výsledkem je -1,0 nebo 1
ROUND(m,n) - zaokrouhlování čísla m na n desetinných míst
CELLING(n) - nejmenší celé větší číslo
FLOOR(n) - největší celé menší číslo
Agregační funkce
COUNT(parametr) - vrací počet řádků
AVG(parametr) - vrací průměrnou hodnotu parametru
SUM(parametr) - vrací součet hodnot parametrů
MIN(parametr) - vrací minimální hodnotu parametrů
MAX(parametr) - vrací maximální hodnotu parametrů
Pro práci s textovými řetězci
LENGTH(řetězec) - délka řetězce
LOWER(řetězec) - na malá písmena
UPPER(řetězec) - na velká písmena
REPLACE(ret1,ret2,ret3) - (ret2 v ret1 nahradí ret3) vrací ret1
SUBSTRING(ret,začátek,délka) - vrací podřetězec řetězce o dané délce od pozice začátku
LTRIM(řetězec) - odstranění přebytečných mezer, odstraní levé mezery (vrací řetězec)
RTRIM(řetězec) - odstranění koncových mezer = pravých
TRIM(LEADING řetězec1 FROM řetězec2) - odstraní řetězec1 z řetězce2 ze začátku
TRAILING
- z konce
BOTH
- z obou stran
POSITION(znak,řetězec) - hledá znak v řetězci a vrací hodnotu pozice
LOCATE(hledaný_řetězec, prohledávaný_řetězec, pozice_začátku_prohledávání) - hledá
řetězec v řetězci od zadané pozice a vrací hodnotu pozice
REPLACE(prohledávaný_řetězec,hledaný_řetězec,nahrazovací_řetězec) - nahrazuje jeden
řetězec druhým a vrací nový řetězec
REVERSE(řetězec) - vrací řetězec v převráceném pořadí
UCASE/UPPER(řetězec) -převádí řetězec na velká písmena
LCASE/LOWER(řetězec) - převádí řetězec na malá písmena
CHAR(číslo) - převádí číslo na znak

Podobné dokumenty

MySQL databáze - český manuál

MySQL databáze - český manuál - platí pro sloupce typu CHAR, VARCHAR a TEXT - fultextový 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ř.: SEL...

Více

MySQL – manuál

MySQL – manuál CREATE TABLE knihovna (autor VARCHAR(20), kniha VARCHAR(20) NOT NULL PRIMARY KEY, stran SMALLINT UNSIGNED, rok YEAR(4), poznamka ENUM('neprecteno','precteno','pujceno') DEFAULT 'neprecteno');

Více

MySQL Performance Tuning (SQL-4402) NEW

MySQL Performance Tuning (SQL-4402) NEW MySQL Optimizer Finding Problematic Queries Caching and MySQL Choose an Architecture Caching Caching Benefits Non-MySQL Caches Query Cache MEMORY/MyISAM Tables as Cache MySQL Server Configuration S...

Více

UHK Fórum - MIKMIK.cz

UHK Fórum - MIKMIK.cz (tabulka Uživatelé) a na jejich základě je uživatel přihlášen. Základní údaje o něm se po přihlášení uloží jako cookies, z nichž jsou po celou dobu jeho práce s fórem znovu načítány, porovnávány op...

Více

najdete zde - Výuka na FAI UTB ve Zlíně

najdete zde - Výuka na FAI UTB ve Zlíně Cílem této práce je vytvoření modulů, které by obě tyto užitečné funkce spojily a navíc umožnily podporu dalších programovacích jazyků, které jsou na UTB vyučovány. Pro vyučujícího znamená tento mo...

Více

Vysoká škola ekonomická v Praze Řízení

Vysoká škola ekonomická v Praze Řízení cest, podpory stávajícího podnikání i vytvo ení úpln nového internetového podnikání. Sou asný internet je p epln n nep eberným množstvím komer ních web . N které z nich jsou velmi úsp šné, jiné nes...

Více

Problém kódování češtiny

Problém kódování češtiny Kódování češtiny – l a t i n 2

Více

instalace courier-imap a squirrelmail

instalace courier-imap a squirrelmail URL: http://faq.caslavka.czindex.php?action=artikel&cat=25&id=146&artlang=cs

Více