Samizdatová skripta

Přikazy pro práce s tabulkami


Tvorba tabulky v databázi (pro zjednodušení bude mít tabulka pouze 3 sloupce)

CREATE TABLE název tabulky (popis polí);
CREATE TABLE knihy (signatura INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Nazev VARCHAR(50) NOT NULL, Autor VARCHAR(30) NOT NULL);

vytváření dočasných tabulek (zanikají v okamžiku odpojení klienta)

CREATE TEMPORARY TABLE název tabulky (popis polí);

ověření, zda tabulka náhodou v databázi již neexistuje

CREATE TABLE IF NOT EXIST název tabulky (popis polí);

schopnost tvorby tabulek založených na výsledcích dotazů např. kopie existující tabulky Knihy do nové tabulky

CREATE TABLE název nové tabulky SELECT * FROM Knihy;

zobrazení struktury (seznamu tabulek) databáze knihovna_db

SHOW TABLES FROM název databáze;
SHOW TABLES FROM Knihovna_prijmenistudenta;

výpis sloupců tabulky (2 způsoby):

SHOW COLUMNS FROM název tabulky;
SHOW COLUMNS FROM Knihy;
DESCRIBE název tabulky;
DESCRIBE Knihy;

Přidání nového sloupce do existující tabulky

ALTER TABLE Název tabulky ADD NázevPole datový typ;
ALTER TABLE Knihy ADD Pocetstran INT;

Změna názvu a typu sloupce tabulky

ALTER TABLE název tabulky CHANGE původní název pole nový název pole nový typ a jeho modifikátory;
ALTER TABLE knihy CHANGE signatura sign int(11) Auto_increment;
výpis struktury tabulky Knihy pro kontrolu, že se název pole změnil 
DESCRIBE Knihy;
ALTER TABLE knihy CHANGE Autor  AutorVARCHAR(40);
DESCRIBE Knihy;

Přejmenování tabulky

ALTER TABLE původní název tabulky RENAME nový název tabulky;
ALTER TABLE Knihy RENAME Tabulka_knihy;
SHOW TABLES FROM Knihovna_db;

Vložení dat do existující tabulky

INSERT INTO název tabulky (seznam polí) VALUES (seznam hodnot);
INSERT INTO Knihy(signatura,Nazev,Autor) VALUES (NULL,“Ferda Mravenec“,“Ondřej Sekora“);

Výpis dat tabulky (bude probráno podrobněji později)

SELECT seznam polí FROM tabulka;
SELECT * FROM knihy;

Změna hodnoty v tabulce

UPDATE název tabulky  SET  název sloupce=hodnota  WHERE omezující podmínky
UPDATE knihy  SET  Autor=‘ Eduard Bass‘ WHERE Signatura =‘1‘

Odstranění záznamů z tabulky

DELETE FROM název tabulky WHERE podmínky;
DELETE FROM Knihy WHERE Autor=‘Karel Čapek‘;

Odstranění sloupce z tabulky

ALTER TABLE Název tabulky DROP Název pole; ALTER TABLE Knihy DROP Autor;
DROP Název tabulky;
DROP Knihy;

Příkaz select

Slouží k výběru dat z databáze podle zadaných kritérií.

Syntax

SELECT    <seznam sloupců> FROM    <název tabulky>    <Dodatečná kritéria>;

SELECT (vyber) SELECT seznam vybraných polí (sloupců) * znamená VYBER VŠECHNY
DISTINCT opakující se věty, které se liší pouze identifikátorem, se nevypíší
FROM seznam tabulek, ve kterých jsou vybraná pole uložena
WHERE logické výrazy omezující množinu vybraných WHERE TYP=KF%
nebo LIKE ‘KF%’ (vypíše každou větu obsahující KF0)
ORDER BY podle čeho bude tříděno (můžeme třídit podle více klíčů – u tel. seznamu dle příjmení, jména, obvodu Prahy, ulice)
DESC pokud chci třídit sestupně, jinak bude tříděno vzestupně ASC
LIMIT kolik záznamů bude maximálně na stránce (zadáváme dvě hodnoty, nejprve kolik záznamů se má přeskočit a potom kolik záznamů se má vypsat)
GROUP BY sloupec skupina - kvůli sumarizačním údajům za skupinu

Řazení

Order by    <sloupce1> ASC ,   <sloupce2> DSC...;

Limitování výpisu

Slouží ke stránkování výpisu obsahu tabulky

limit    <počet řádků k přeskočení>,   <počet řádků k vypsání>;

Podmínky výběru

Where id=2; -- vyber jen to, kde se id=2

Modifikátor výstupu AS

Občas potřebuje mít na výstupu jiné označení sloupce v tabulce. Výhodou k tomu použijeme modifikátro AS

select Jmeno AS jm from osoby;

Podmíněný select

V případě vícejazykové verze položek v tabulkce potřebuje vybrat sloupce, které splňují nějakou podmínku. Například. Mějme tabulky, kde jsou názvy v čěštině a francouzštině (nazev, nazev_fr). A vybíráme přednostně francouzský název, ale pokud je prázdný chceme český. Příslušný sql dotaz bude vypadat takto:

select IF(nazev_fr='',nazev,nazev_fr) as nazev from    <název tabulky>;

Zápis podmínky známe z tabulkových procesorů. Pokud je pole nazev_fr prázdné, vyber nazev, pokud ne, tak vyber nazev_fr.

Příklady

Předpokládejme následují tabulku osoby.

osoby

JmenoPrijmeniAdresaRODNECISLO
MiroslavNovákPraha 2, Ječná 308506200550
StanislavKadochPraha 12. Pod mostem 18912244330
PetrBůčekPraha 8, Liliová 18612142110
EvženBuriánekPraha 10, U spalovny 139101210990
KateřinaNovotnáBrno, Spálená 258656140504
MarieVlasákováLiberec, Korunní 218759070331
JaroslavHolohlavýBeroun, Tmavá 168811150491
FeroLakatošKačov 217604190022
select * from osoby; --vypíše obsah tabulky
select * from osoby order by Jmeno; --vypíše obsah tabulky a seřadí podle sloupce    <Jmeno>;
select Jmeno from osoby; --vypíše jen sloupec    <Jmeno> tabulky a seřadí podle sloupce    <Jmeno>;
select * from osoby where Jmeno ; --vypíše jen sloupec    <Jmeno> tabulky a seřadí podle sloupce    <Jmeno>;

Rychlé Vyledávání

K filtraci vypisovaných dat můžeme použít i operátor "like". Jak už název napovídá vyjadřuje podobnost.

select * from   <tabulka> where nazev like "  <něco>";-- nezáleží na tom, zda je   <něco> psáno velikými či malími písmeny
select * from   <tabulka> where nazev like "% <něco>%";--znak % zastupuje libovoný znak. V tomto případě může být   <něco> například uprostřčed věty

upravit odstranit css

NAVRCHOLU.cz