9. Datové typy v MySQL, typy tabulek, funkce v MySQL
Transkript
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
- 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...
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');
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...
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...
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...
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...
instalace courier-imap a squirrelmail
URL: http://faq.caslavka.czindex.php?action=artikel&cat=25&id=146&artlang=cs