Značky HTML
Transkript
Tvorba webových aplikací Jakub Vrána Stavební kameny • • • • • HTML – struktura stránky (1-2. hodina) CSS – formátování obsahu (3+vyhledávače) JavaScript – interakce v prohlížeči (4) PHP – programování na serveru (5-6) SQL – databáze (7) • HTTP – protokol pro přenos • Certifikáty – zabezpečení Situace na serveru Windows Linux ... IIS Apache ... ASP PHP ... ODBC MySQL ... Komunikace se serverem • Klient položí serveru protokolem HTTP dotaz na dokument • Server vrátí HTML dokument, který může obsahovat objekty jako jsou obrázky, styl a JavaScript • Každý z těchto objektů si klient opět musí vyžádat od serveru Značky HTML • Jakub Vrána HTML–tvorné značky • <html> • <head> • <title> • <body> • <meta/> {hypertext markup language} záhlaví dokumentu název dokumentu tělo dokumentu vložení metainformací Základní tvar dokumentu • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> • <html> • <head> • <title>Název dokumentu</title> • </head> • <body> • Tělo dokumentu. • </body> • </html> Metainformace •<meta/> vkládá se do části <head> • http-equiv informace v hlavičce • name jméno • content obsah doplnění •<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> •<meta name="Description" content="..."> Tělo dokumentu •<body> •background •bgcolor •text •link •vlink •alink • obrázek na pozadí ! barva pozadí ! barva obyčejného textu ! barva odkazu ! barva prohlédnutého odkazu ! barva aktivního odkazu ! [#rrggbb | jméno] HTML entity • < • > • & • < (menší než) > (větší než) & (ampersand) (pevná mezera) • <!-- ... --> komentáře Stránkotvorné značky <p> {paragraph} <br/> {line break} <hr/> {horizontal rule} <h1> - <h6> nadpis • <a> {anchor} • • • • odstavec zlom řádku vodorovná čára {heading} odkaz Formát odstavce • <p align=> zarovnání ! [right | center | justify] • <br clear=> vyčištění okolí ! [all | left | right] • <center> vycentrování ! • <pre> naformátovaný text • <div> kontejner na objekty • <span> kontejner na text • <blockquote>citace Vodorovná čára • <hr/> • size • width • align • noshade tloušťka ! šířka na obrazovce ! zarovnání ! potlačení stínování ! [noshade] Odkaz • <a> • • • • href dokumenty name dokumentu title accesskey klávesa [x] • <a href="#Kapitola1">odkaz</a> • <a name="Kapitola1"></a>Kapitola 1 odkaz na vytvoření částí nápovědný text přístupová Formátování • Fyzické × Logické • <font> • size • color • face přímá úprava písma ! velikost písma [ 1–7] barva [#rrggbb | jméno] řez písma • <basefont/> základní nastavení písma ! Fyzické formátování • <b> • <i> • <u> • <sup> • <sub> • <tt> {bold} {italic} {underline} {superscript} {subscript} {teletype} tučné písmo kurzíva podtržení ! horní index dolní index pevná šířka znaku Logické formátování • <em> • <strong> • <code> • <kbd> {emphasized} zvýraznění silné zvýraznění ukázka kódu vstup z klávesnice Seznamy • <ul> {unordered list} • <ol> {ordered list} • <li> {list item} • <dl> {definition list} • <dt> {definition term} • <dd> {def. description} nesetříděný seznam setříděný seznam položka seznamu seznam definic pojem vysvětlující text Příklad seznamu • • • • • • • • • <ul> <li>První položka</li> <li>Druhá položka • První položka • Druhá položka <ol> <li>První vnořená položka</li> 1. První vnořená položka <li>Druhá vnořená položka</li> 2. Druhá vnořená </ol> položka </li> </ul> Atributy seznamů • <ul> • type podoba značky ! [circle, disc, square] • <ol> • type podoba značky ! [1 | i | I | a | A] • start číslování od ! • <li> • value číslování od této značky dále ! Obrázky • <img/> • src URL obrázku • alt informace pro textové klienty • width, height rozměry v pixelech • vspace, hspace mezera okolo obrázku ! • align zarovnání ! [left | right | middle | ...] • border rámeček obrázku s odkazem ! Obrázky s klikou • <img usemap=> indikace obrázku s klikou • <map name=> deklarace oblastí • <area/> definice oblasti • shape • coords • href • nohref • alt tvar [rect | circle | polygon] souřadnice odkaz oblast je bez odkazu [nohref] pomocný text Příklad obrázku s klikou • <img src="obrazek.gif" usemap="#Mapa" width="35" height="30"> • <map name="Mapa"> • <area shape="circle" coords="10,10,5" href="elipsa.html"> • <area shape="rect" coords="20,15,30,25" href="obdelnik.html"> • </map> Tabulky • <table> tabulka • <tr> {table row} řádka • <th> {table heading} políčko nadpisu • <td> {table data} datové políčko Příklad tabulky • <table border="1"> • <tr> • <td>1. řádek, 1. sloupec</td> • <td>1. řádek, 2. sloupec</td> • </tr> • <tr> • <td>2. řádek, 1. sloupec</td> • <td>2. řádek, 2. sloupec</td> • </tr> 1. řádek, 1. sloupec 1. řádek, 2. sloupec • </table> 2. řádek, 1. sloupec 2. řádek, 2. sloupec Formát tabulky • <table> • border okraj • cellspacing velikost mezer mezi buňkami • cellpadding vzdálenost dat od okraje • width šířka • align zarovnání ! [center | right] • bgcolor barva pozadí ! Atributy tabulky • <tr>, <td>, <th> • align vodorovné zarovnání [center | right] • valign svislé zarovnání [top | bottom | middle] • bgcolor barva pozadí ! • <td>, <th> • colspan spojení více sloupců • rowspan spojení více řádek • nowrap nezalamovat obsah buněk ! [nowrap] Rámy • <frameset> rámů • rows • cols • <frame> • src • name deklarace rozdělení okna na řádky a sloupce [* | 200 | 20% | 3*] definice rámů zdrojový dokument rámu jméno rámu • <noframes> nepodporující rámy klienti Příklad dokumentu s rámy • • • • • • • • • • • • • <html><head><title>Dokument s rámy</title></head> <frameset cols="20%,*"> <frameset rows="*,120"> <frame name="obsah" src="obsah.html"> <frame name="logo" src="logo.html"> </frameset> <frame name="hlavni" src="titulni.html"> <noframes><body> Dokument pro klienty nepodporující rámy. <a href="obsah.html">Obsah</a> </body></noframes> </frameset> </html> Úpravy rámů • <frame> • • • • • frameborder rámeček [yes | no | 0] scrolling přikáže, zakáže posouvání [yes | no | auto] noresize znemožní změnu velikosti [noresize] marginheight šířka okraje marginwidth výška okraje Odkazy na rámy • <a target=> cílový rám [jméno | _blank | _self | _parent | _top] • <base/> • • základ pro odkaz target základní rám pro odkaz href základ pro odkaz na dokument Formuláře • <form> formulář • <input/> vstupní pole • <textarea>vstupní textová oblast • <select> menu Formulář • <form> • • • • action co se s daty formuláře provede method jak se to provede [get | post] enctype jakého jsou data druhu, při posílání souborů: [multipart/form-data] target cílové okno Příklad formuláře • <form action="mailto.php" method="post"> • Jméno: <input type="text" name="jmeno"> • E-mail: <input type="text" name="email"> • Zpráva: <textarea name="zprava"></textarea> • Stránky se mi: • <input type="radio" name="libi" value="ano"> Líbí • <input type="radio" name="libi" value="ne"> Nelíbí • <input type="submit" value="Odeslat"> • </form> Typy vstupů • <input type=> • text, passwordjednoduchý, skrytý text • checkbox zaškrtávací políčko • radio přepínač • hidden skrytý prvek • file odeslání celého souboru • submit tlačítko pro odeslání • reset tlačítko pro vynulování Vstupy formulářů • <input/> • name • value • size • maxlength • checked • disabled • readonly identifikátor hodnota velikost vstupního pole maximální délka vstupu indikátor výběru [checked] prvek nelze vybrat [disabled] prvek nelze změnit [readonly] Vstupní textová oblast • <textarea> name identifikátor rows, cols počet řádků, sloupců wrap zalamování na konci řádku !! [off | soft | hard] • • • • <textarea> • Text, který se na začátku poli. • </textarea> zobrazí ve vstupním Výběrový seznam • <select> • name identifikátor položky • size velikost menu • multiple lze vybrat více položek [multiple] • <option> položka nabídky • value text odeslaný formulářem • selected vybraná položka [selected] XHTML • Rozdíly XHTML 1.0 proti HTML 4.01: • Značky a atributy jsou psány malými písmeny • Nepárové značky musí být ukončeny: <br /> • Hodnoty atributů jsou vždy obaleny uvozovkami • Přepínače musí mít stejnojmennou hodnotu <area nohref="nohref"> • Dokument musí být uvozen <?xml version="1.0" charset="..."?> a správným <!DOCTYPE> Závěr • Literatura • World wide web consortium (www.w3.org) • HTML Reference Library (HomeSite) • Jiří Kosek: HTML – tvorba dokonalých WWW stránek • Stránky v HTML na WWW • Další studium • dynamické prvky (JavaScript, PHP, databáze) • moderní rysy (styly, XHTML) Webové aplikace – CSS Jakub Vrána Vkládání do HTML <link rel="stylesheet" type="text/css" href="styl.css"> <style type="text/css"> @import url(styl.css); P { margin-bottom: 0; } </style> <div id="citat-1" class="citat"> <p style="text-indent: 10px;"> Zápis stylu • selektor { vlastnost: hodnota; ... } • Typy selektorů: značka, #id, .třída, :pseudotřída • Kaskáda se vyznačuje mezerou, např.: #menu A – odkazy v <div id="menu"> • Více selektorů pro stejný styl lze oddělit čárkou Hodnoty vlastností • • • • • Délka: 3px (pt, cm, mm, ex, em, ...) Procenta: 80% Barvy: pojmenované (blue, ...), #rrggbb URL: url(pozadi.jpg) Řetězce: "text" nebo 'text', \ escapuje Formátování vzhledu • • • • • • • • color, background-color, background-image background-repeat: repeat-y | no-repeat background-position: top left | center right font-family: Arial, sans-serif | monospace font-size, font-weight: bold, font-style: italic text-decoration: none | underline text-align: left | right | justify | center vertical-align: baseline | top | middle Příklad formátování P { text-align: justify; } A { text-decoration: none; } A:hover { color: Red; } .perex, .diskuse { font-size: 10pt; font-family: Verdana, sans-serif; font-style: italic; } .male TD { font-size: 80%; } Okraje • margin, padding, border • Lze určit buď jednotlivě pomocí -left, -right, -top, -bottom nebo najednou jako 1 až 4 hodnoty oddělené mezerou v pořadí top, right, bottom, left (kromě border) border • border-width, border-color • border-style: solid | dotted text margin • margin: 0 auto text padding Pozicování • width, height • display: block | inline | none • float: left | right clear: left | right | both • position: relative | absolute | fixed top, right, bottom, left • z-index Příklad pozicování #navigace { width: 200px; float: left; } #telo { margin-left: 210px; } #paticka { clear: both; } Odpovídající HTML kód: <div id="navigace">...</div> <div id="telo">...</div> <div id="paticka">...</div> Další vlastnosti • list-style-type: disc | lower-alpha | none • list-style-image • overflow: visible | hidden | scroll | auto • white-space: normal | pre | nowrap • cursor: default | pointer | help Priorita • • • • značka, třída, id podrobnější má přednost při stejné prioritě má přednost pozdější !important zvýší prioritu vlastnosti Další obraty • :first-line, :first-letter • A:link, A:visited, :hover • /* ... */ – komentáře @media print { #telo { width: 100%; } #navigace { display: none; } } Reference • Norma: http://www.w3.org/TR/CSS21/ • Dílna CSS: http://www.wellstyled.com/ Vytváření stránek, které naleznou vyhledávače •Jakub Vrána Přístupné stránky • K JavaScriptu vždy vytvořit alternativu, vyhnout se navigaci pouze v JavaScriptu • K prezentaci ve Flashi vytvořit HTML verzi – ocení i někteří uživatelé • Rámy nejsou v principu špatné, ale při nalezení konkrétní stránky chybí navigace • Styly jsou výhodou – zpřehledňují kód a uživatelům zrychlují načítání Určení relevance stránky • Není znám přesný výpočet relevance, ale používá se např. následující: • Slova v nadpisech <h1> až <h6> mají větší váhu • Slova v <title> mají větší váhu – titulek by měl být pro každou stránku jiný • Slova v doméně a v URL obecně mají větší váhu; Google ignoruje ?search= Podpoření relevance stránky • Relevance se určuje i podle toho, co obsahují odkazy vedoucí na stránku – vyhnout se odkazům typu klikněte zde • Obrázky nesoucí textovou informaci by měly mít alt popisek, uvádění rozměrů obrázků zabrání poskakování stránky • Zpětné odkazy – relevanci zvyšuje i odkaz na jiné relevantní stránce Vyhledávače • Registrace ve vyhledávačích – čitelný popis obsahující klíčová slova, DMOZ.org používá řada vyhledávačů včetně Google • Řada vyhledávačů hledá i v dokumentech DOC, PDF apod. Je proto užitečné poskytnout i nekomprimovanou verzi • Stránky vytvářet s diakritikou – zahraniční vyhledávače ji neumí odstraňovat Čemu se vyhnout • Neduplikovat stránky na více adresách – tříští to pozornost vyhledávačů a cachí a může být vyhodnoceno i jako podvod – použít hlavičku Location • Nepoužívat špinavé triky (např. skryté texty a spamování diskusních fór) – může vést k vyřazení z výsledků vyhledávání (podvodné stránky lze udat) Webové aplikace – JavaScript Jakub Vrána Vkládání do HTML • <script src="scripts.js" type="text/javascript"></script> • <script type="text/javascript"><!-document.write(document.lastModified); // --></script> <noscript>Nepodporuje skripty.</noscript> • <select onChange="this.form.submit();"> • <a href="javascript:window.print();">tisk</a> Základy • Vychází z jazyka C • Jedná se o objektový jazyk, ke všem objektům na stránce se dá přistoupit • Beztypový jazyk • Řetězce: 'text' nebo "text" operátor zřetězení je plus • Přístup k vlastnostem objektu: objekt.vlastnost nebo objekt['vlastnost'] Základní objekty prohlížeče • • • • • window document location navigator history window • • • • • • • • alert('Výzva') b = confirm('Výzva') s = prompt('Výzva', 'výchozí') open('URL', 'název okna', 'parametry') close(), print() parent, opener, status timeout = setTimeout('funkce', ms) clearTimeout(), setInterval(), clearInterval() document • • • • document.getElementById('id') document.write('řetězec') document.forms['name'] document.lastModified location, history, navigator • location.href • location.reload() • history.length • history.back(), history.go(ofset) • navigator.appName, navigator.appVersion • navigator.cookieEnabled Další objekty • • • • • Array Date Math RegExp String String, RegExp • 'řetězec'.length • i = s.indexOf('hledat') • s = s.substr(začátek, délka) • • • • re = new RegExp('pattern', 'přepínače') re = /pattern/přepínače ar = re.exec('řetězec') b = re.test('řetězec') Array, Math, Date • ar = Array(prvky), ar = Array(počet) • ar[0], ar.sort() • for (klíč in obj) { alert(obj[klíč]); } • Math.round(číslo), Math.max(x, y) • d = new Date([rok, měsíc, den]) • d.getDate(), d.getMonth(), d.getYear() Další obraty • encodeURI('řetězec'), eval('výraz') • většina HTML atributů má protějšek v JS • style – kopíruje vlastnosti CSS, pomlčku nahrazuje velké písmeno • this – odkaz na aktuální objekt, např. <form onSubmit="return kontrola(this);"> Funkce a objekty • function nazev_funkce(parametry) { /* tělo funkce */ return true; } • obj = new nazev_funkce(); • vlastnosti a metody se definují pomocí this • zkrácený zápis: { vlastnost: hodnota, ... } Obsluha událostí • • • • • onblur – při ztrátě focusu onclick, onchange – při kliknutí, při změně onmouseover, onmouseout – najetí myši form.onsubmit – před odesláním formuláře body.onload – po nahrání stránky • return – zda má pokračovat obsluha události Reference • Netscape: http://devedge.netscape.com/central/javascript/ • Microsoft: http://msdn.microsoft.com/workshop/ author/dhtml/reference/dhtml_reference_entry.asp • Příklady: http://www.vrana.cz/javascript/ Webové aplikace – PHP Jakub Vrána PHP • PHP = PHP: Hypertext Preprocessor (dříve: Professional Home Pages) • Alternativy: ASP, JSP • Domácí stránka: http://www.php.net • Verze: používá se hlavně verze 4 a 5, kde je především přepracovaná práce s objekty Základní syntaxe • Vychází z jazyka C (řídící struktury, operátory, ...), částečně z Unix shellu • Lze kombinovat s textovým výstupem • Příkazy jsou ukončeny středníkem • Proměnné jsou uvozeny dolarem • Záleží na velikosti písmen (u funkcí ale ne) Vkládání do HTML HTML <?php // PHP kód ?> HTML • Existuje i zkrácená a prodloužená forma Komentáře • /* libovolný komentář */ (nelze vnořovat do sebe) • // jednořádkový komentář • # jednořádkový komentář (nedoporučuje se) Operátory • ! negace, && logický AND, || OR • = přiřazení • == rovnost, != nerovnost • === identita, !== neidentita • ++ inkrementace, -- dekrementace • $a += ... zkratka pro $a = $a + ... • ?: ternární operátor (a == 1 ? 'kus' : 'kusy') Proměnné • Uvozeny dolarem – nekolidují s jinými názvy, lze přímo použít v řetězcích • Funkce nevidí globální proměnné (lze ale použít global nebo $GLOBALS), soubory si proměnné vzájemně vidí • Pro hodnoty zvenku (např. z formulářů) jsou vytvořeny speciální pole automaticky viditelné i ve funkcích Typy • Typy se převádějí podle potřeby • Není třeba deklarovat proměnné • Základní typy (pro představu): • • • • • • pravdivostní (true, false) čísla (celá, desetinná) řetězce (libovolně dlouhé) pole (s libovolnými indexy) objekty zdroje (používají různé funkce) Řetězce • Tři způsoby zadávání: • 'jednoduchý řetězec' • "převod proměnných ($var) a speciálních znaků (\n\t)" • <<<EOT řetězec na místě EOT • Zřetězení: operátor tečka Pole • Způsoby zadávání: • $a = array(3, 5, 7); • $a[0] = 3; • $a[] = 9; • $a = array("id" => 7, "nazev" => "Propiska", "cena" => 24); • $a["nazev"] = "Propiska"; • Přístup k prvkům: $a[klíč] • Pole v řetězcích: "Název: $a[nazev]" Funkce • Uživatelsky definované: • function mocnina($a) { return $a * $a; } • parametry mohou mít výchozí hodnotu $a=3 • parametry mohou být předané referencí &$a • Vestavěné – základní nebo z modulů • Speciální – jazykové konstrukce Speciální funkce • echo, print – tisk řetězců • exit, die – ukončení běhu skriptu • include, require, include_once, require_once – vložení souborů • isset, empty, unset – práce s proměnnými • list($a, $b) = array(3, 5); • return – návrat z funkcí nebo souborů Speciální proměnné – zvenku • $_GET["a"] = "3" – soubor.php?a=3 • $_POST["a"] – <form method="post"> <input name="a"></form> • $_COOKIE["a"] = "3" – setcookie("a", 3) • $_REQUEST = $_GET + $_POST + $_COOKIE • $_FILES["a"] = array("tmp_name" => "", "name" => "", "type" => "", ...) – <input type="file" name="a"> Speciální proměnné – serverové • $_ENV – proměnné prostředí, např. PATH • $_SERVER – proměnné web. serveru a PHP • $_SESSION – session_start() • $GLOBALS – globální proměnné Řídící struktury: if, switch • if (!$prihlasen) { echo "Nejste přihlášen."; } else { mysql_query("UPDATE ..."); } • switch ($hodnota) { case 0: ...; break; case 1: ...; break; default: ...; break; } Řídící struktury: while, do • $result = mysql_query("SELECT * FROM ..."); while ($row = mysql_fetch_assoc($result)) { echo $row["nazev"] . "<br>\n"; } • do { // alespoň jeden průchod echo ($i++) . ". průchod\n"; } while ($i < 5); • lze přerušit pomocí break a continue Řídící struktury: for, foreach • for ($i = 1; $i <= 7; $i++) { echo "<font size=\"$i\">" . "Velikost $i</font>"; } • foreach ($row as $key => $val) { echo "$key: $val\n"; } • lze přerušit pomocí break a continue Třídy a objekty • class Archive_Tar extends PEAR { var $_tarname = ''; function Archive_Tar($tarname) { // ... } } • $tar = new Archive_Tar('tmp.tar'); $tar->add('file.html'); • parent::, $this->, :: • __sleep, __wakeup Třídy v PHP 5 • __construct, __destruct, self:: • public, protected, private • static, const • abstract, final • interface, implements, Iterator • __call, __get, __set, __toString • throw, try, catch • clone, __clone Základní funkce • • • • • • • • Řetězce Pole Čísla, datum Soubory Nastavení Komunikace Regulární výrazy MySQL Řetězce • addslashes($str) stripslashes($str) • htmlspecialchars($str) urlencode($str) • trim($str, $charlist) • nl2br($str) • md5($str) sha1($str) Práce s řetězci • strlen($str) • strpos($str, $needle) • stripos($str, $needle) • strrchr($str, $needle) • substr($str, $start, $len) • str_replace($search, $repl, $str) Pole • count($ar) • in_array($needle, $ar) isset($ar[$index]) • implode($glue, $ar) explode($glue, $str) • asort($ar) krsort($ar) Čísla, datum • rand($min, $max) • round($num), ceil($num), floor($num) • number_format($num, $decimals) • date('j.n.Y H:i:s', $timestamp) • time() – aktuální timestamp • mktime($h, $m, $s, $M, $D, $Y) Soubory • fopen($filename, $mode) fclose($fp) • fread($fp, $length) fgets($fp) – načtení celého řádku • fwrite($fp, $str) • file($filename) – řádky do pole file_get_contents($filename) • jako název souboru lze použít i http://... Nastavení • phpinfo(), ini_set($name, $value) • set_time_limit($sec) • flush(), ob_flush() • define($constant, $value) • Některé konfigurační direktivy: magic_quotes_gpc, register_globals, safe_mode, open_basedir, error_reporting, session.save_path, short_open_tag Komunikace • header($str) – HTTP hlavička, např. header('Location: http://...') • setcookie($name, $value, $expire) • mail($to, $subj, $msg, $headers) • fsockopen($target, $port) fsockopen('www...', 80) – např. Regulární výrazy • $patt = '~<a href="([^"]*)~i'; • preg_match($patt, $str, $matches) • preg_replace($patt, $repl, $str) • preg_match_all($patt, $str, $matches) • preg_quote($str, $delim) MySQL • mysql_connect($server, $login, $pwd) • mysql_select_db($dbname) • mysql_query($query) • mysql_num_rows($result) • mysql_affected_rows() • mysql_fetch_assoc($result) • mysql_insert_id() • mysql_error() Vlastnosti dobré webové aplikace • Ošetřovat nedůvěryhodná data (escapování) • Nespoléhat se na nečitelnost zdrojáků a dat (hashovat hesla, inicializovat proměnné) • Nespoléhat se na to, že na stránku nevede odkaz (zabezpečit heslem) • Ošetřovat kritické chyby (připojení k databázi, odeslání e-mailu) • Všechen kód mít na jednom místě (použít funkce nebo třídy a vkládat soubory) Reference • http://www.php.net/manual/en/ • Jiří Bráza: PHP 5 – začínáme programovat Welling, Thomsonová: PHP a MySQL • PHP triky: http://php.vrana.cz • Šablonovací systémy: http://smarty.php.net, http://htmltmpl.sf.net Webové aplikace – databáze Jakub Vrána SQL • Structured Query Language (dříve: SEQueL – English) • Využívají různé databáze: MySQL, PostgreSQL, Oracle, MS SQL, DB2, ... • Obvykle architektura klient/server Struktura dat v databázi • • • • Databázový server Databáze Tabulky Sloupce a řádky Základní datové typy • • • • • • • • int real decimal(m, d) date time datetime varchar(m) text Základní SQL příkazy • CREATE TABLE – vytvoření tabulky • ALTER TABLE – změna tabulky • DROP TABLE – odstranění tabulky • SELECT – získání dat • INSERT – vložení dat • UPDATE – úprava dat • DELETE – smazání dat Vytvoření tabulky • CREATE TABLE nazev (sloupec typ, ..., klíč, ...) • Příklad: CREATE TABLE tabulka ( id int NOT NULL AUTO_INCREMENT, nazev varchar(50), cena decimal(9, 2), PRIMARY KEY (id) ) Změna a smazání tabulky • Příklad změny: ALTER TABLE tabulka ADD popis text AFTER cena, CHANGE cena cena decimal(12, 2) • Smazání tabulky: DROP TABLE tabulka Získání dat • SELECT sloupec, sloupec, ... FROM tabulka, tabulka, ... WHERE podmínka ORDER BY sloupec LIMIT počet OFFSET od • Příklad: SELECT * FROM vyrobky WHERE stav = 'aktivní' ORDER BY cena Spojování tabulek, indexy • INNER JOIN tabulka ON podmínka • LEFT JOIN tabulka ON podmínka • Indexy jsou vhodné u sloupců dle kterých se • spojují tabulky • vyhledává • třídí • Složené indexy: INDEX (skupina, poradi) • Unikátní indexy: UNIQUE (sloupce) Agregace • Agregační funkce: COUNT, COUNT(DISTINCT), SUM, AVG • GROUP BY sloupec, ... HAVING podmínka Vložení dat • INSERT INTO tabulka (sloupec, sloupec, ...) VALUES ('hodnota', 'hodnota', ...) • Příklad: INSERT INTO vyrobky (nazev, cena) VALUES ('Propiska', '27') Úprava dat • UPDATE tabulka SET sloupec = 'hodnota', ... WHERE podmínka • Příklad: UPDATE vyrobky SET cena = '24' WHERE id = '137' Smazání dat • DELETE FROM tabulka WHERE podmínka • Příklad: DELETE FROM vyrobky WHERE cena <= '15'
Podobné dokumenty
1 Základy programování v PHP
být nemusí. Může se tvářit jako php skript, ale ve skutečnosti je to normální HTML soubor a PHP
kód v něm vůbec není.
Při uložení PHP souboru musí mít soubor příponu php (nebo další povolené přípon...
zpravodaj únor - březen
na regeneraci zámeckého parku v Českém Dubu, který
je vyhledávanou klidovou zónou ve městě. Doufám, že
dojde k úpravám, které si tento významný krajinný
prvek zcela určitě zaslouží. Na realizaci js...
Kaskádové styly
Připojení stylu ke stránce ...................................................... 10
Připojení stylu z externího souboru ........................................ 11
Styl pro celou stránku zapsaný p...
Úvod Motivační příklad komečního využití Postup uživatele
.torrent file
Je zakódován pomocí bencoding a stringy jsou kódováný v UTF-8.
Na nejvyšší úrovni je tvořen pomocí dictionary:
HTML
border..při nastavení na 0 zmizí ohraničení mezi rámy
... definujeme jednotlivé stránky
atributy:
src...
adresa dokumentu, obrázku
frameborder... šířky hranice mezi rámy
noresize...
nesmíme ...
stažení.
které snižuje rušení zvenčí a zároveň minimalizuje zvukový únik při poslechu hudby. Jak
jednoduché – nerušíte okolí a nejste rušeni.
Praktický plochý kabel zabraňuje nepříjemnému zamotání, navíc sp...
Jaroslav SKÁLA poznámky k přípravě na reparát
M název měsíce v třípísmenné zkratce, například “Jan“
n číslo měsíce bez počáteční nuly
s počet sekund, “00“ až “59“
t
počet dní v měsíci, “28“ až “31“
Y rok, prezentovaný čtyřmi číslicemi, “1999“
...