Super Svět / phpRS
Všechny ideály nepotřebují jen křídla, ale i místo, odkud by mohly vzlétnout (Ernest Hemingway)


sipka  Hlavní menu

te?ka Hlavní stránka
te?ka Seznam rubrik
te?ka Download
te?ka Weblinks / Odkazy
te?ka Ankety
te?ka TOP 30
te?ka MySQL

te?ka phpRS: dokumentace
te?ka phpRS: community web
te?ka phpRS: fórum
te?ka phpRS: Gallery

te?ka Snooker blog

te?ka Redak?ní stránka
te?ka Roz?í?ené vyhledávání
te?ka Personalizace

te?ka Reklama
te?ka Inzerujte u nás!

sipka  Seznam rubrik


sipka  ZONER software, s.r.o.

ZONER software, s. r. o.
ZONER software, s. r. o. je oficiální partner phpRS projektu.

sipka  Vyhledávání


Hledej
v Super Sv?t?!


Opus Dei

sipka  Doporu?ujeme


phpRS gallery

phpRS plug-iny, dopl?ky

phpRS: community web

sipka  Kalendá?

<<  Prosinec  >>
PoÚtStČtSoNe
    1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

sipka  Reklama

Tane?ní orchestr Milana Reinberka a hudební skupina GARANT

www stránky
Tel.: +420 775 931 666

sipka  Reklama


sipka  Super Sv?t


Ikona ?asopisu Super Sv?t

ISSN 1213-3728

Copyright
Ji?í Luká?, 1998-2007


REDAKCE
Ji?í Luká? - ?éfredaktor

Redak?ní stránka

RSS | Atom

sipka  Ikony


PaBi3.com

Seznamka

TOPlist

MySQL

MySQL aneb u?íme se SQL jazyk (XII.)

Ji?í Luká? - MySQL - 25. 09. 2001 - 25829 přečtení

Vítám v?echny databázové nad?ence u dne?ního dvanáctého dílu na?eho seriálu "MySQL aneb u?íme se SQL jazyk", ve kterém vám uká?i, jak jednodu?e lze zajistit automatické ?íslování nov? p?idaných ?ádk? do tabulky, jak zalo?it a zru?it novou respektive ji? existující databázi a mo?ná vám také povím n?co málo o ... (- no, nechte se p?ekvapit!)

Automatické ?íslování nov? p?idaných ?ádk? do tabulky

P?edstavte si, ?e jste dostali za úkol navrhnout databázovou strukturu "softwarové poklady" a stojíte p?ed problémem, jak jednozna?n? identifikovat ka?dý záznam (= ?ádek v databázové tabulce) vlo?ený do této "pokladny", p?i?em? máte jasn? definovány následující podmínky: Softwarová pokladna musí být schopna uchovávat následující informace: Datum výdeje/p?íjmu pen?z z/do pokladny, adresy a iniciály zú?astn?ných osob, p?esnou finan?ní vý?i transakce vyjád?enou v K?, typ transakce (výdej, p?íjem), interní poznámku pokladníka. ...

I kdy? tento problém (- tedy jednozna?ná identifikace ?ádku v tabulce) má n?kolik r?zných ?e?ení (nap?. generování n?jakého jednozna?ného identifikátoru va?ím obslu?ným programem nebo pou?ití tzv. slo?eného primárního klí?e), tak si myslím, ?e je mnou vý?e nastín?ná situace jasným p?íkladem p?ímo volajícím po nasazení auto_increment(a?ní) funkce, která ná? problém vy?e?í jednoduchým, ale velmi ú?elných zp?sobem. - Celé kouzlo spo?ívá v tom, ?e p?i definici tabulky p?i?adíme n?jakému "celo?íselnému" sloupci vlastnost auto_increment a ten pak p?i ka?dém vlo?ení nového ?ádk? do této tabulky sám automaticky nabude jedine?nou celo?íselnou hodnotu, jen? je v?dy o jedni?ku vy??í ne?-li hodnota tohoto ?ísla na p?ede?lém ?ádku. Standardn? toto "samo zvy?ující se ?íslování" za?íná nulou, av?ak p?i definici tabulky lze jednozna?n? stanovit hodnotu, od jaké se má za?ít ?íslovat.

Celou v?c si nyní uká?eme na vý?e popsaném p?íkladu:
(Na vysv?tlenou pouze uvádím, ?e po?ítám s tím, ?e existuje je?t? druhá tabulka, která obsahuje adresy a iniciály v?ech osob, jen? se zú?astnili n?jaké transakce v pokladn? a ve své hlavní pokladní tabulce tedy ji? p?ímo neuvádím tyto informace, ale pouze se odkazuji na "id" pomyslné adresní tabulky.)

mysql> CREATE TABLE pokladna (
    -> idp int unsigned not null auto_increment primary key,
    -> datum date not null,
    -> typ char(10) not null,
    -> kc_hodnota float not null,
    -> kdo int not null,
    -> poznamka text);

Nejprve bych rád vysv?tlil n?které nové atributy, které jsem pou?il p?i ?e?ení vý?e uvedeného p?íkladu a pak se budu dále v?novat problematice "automatického ?íslování nov? p?idaných ?ádk? do tabulky".

Tak tedy p?kn? popo?ádku:

  • int je pouze zkráceninou slova integer a je v celku jedno, zda-li pou?ijete p?i definici tabulky int nebo integer. - Av?ak setkal jsem se i se systémy, které striktn? vy?adují pou?ití int nebo naopak integer.
  • unsigned je mo?né pou?ít pouze u ?íselných datových typu a má za následek fakt, ?e p?íslu?ný ?íselný typ se stane bez znaménkovým, co? v praxi znamená, ?e nem??e nabývat záporných hodnot, av?ak na druhou stranu se jeho rozsah zdvojnásobí, co? rozhodn? není marné a zvlá?t? v na?em p?ípad? je to velmi vhodné, jeliko? automaticky se zvy?ující ?íslo zápornou hodnotu nikdy nenabude.
  • Atribut not null jednozna?n? definuje skute?nost, ?e daný sloupec nem??e nikdy nabýt hodnotu NULL, tedy jinak ?e?eno: "P?i vkládání nového ?ádku musí tento sloupec v?dy obsahovat n?jakou hodnotu!"
  • auto_increment zp?sobuje automatické vkládání jedine?ného ?ísla do hodnoty daného sloupce, p?i?em? jedine?nost ?ísla je zaji?t?na automatickým zvy?ování "základního ?ísla" v?dy o jedni?ku p?i vlo?ení nového ?ádku.
  • A kone?n? spojení primary key, které v tomto p?ípad? jednozna?n? souvisí s atributem auto_increment, nám ?íká, ?e sloupec / ?i sloupce ozna?ené tímto atributem jsou jednozna?nými identifikátory ?ádku v dané tabulce. - V na?em p?ípad? tedy pro jednozna?nou identifikaci ?ádku v tabulce pokladna dle zdrojového SQL kódu sta?í znát pouze hodnotu sloupce idp, který je primárním klí?em (primary key) této tabulky!

Podíváme-li se na vý?e uvedené ?e?ení z pohledu zadání "softwarové pokladny", tak si myslím, ?e m??eme být pln? spokojeni, jeliko? ?e?ení 100 % vystihuje smysl zadání! - Sloupec idp bude toti? v?dy obsahovat jedine?nou hodnotu, jejím? prost?ednictvím lze jednozna?n? identifikovat ka?dý jednotlivý ?ádek v tabulce pokladna.

Jak vlo?it do takto koncipované tabulky nový ?ádek?

Je?t? ne?-li opustíme toto velmi zajímavé téma ("Automatického ?íslování nov? p?idaných ?ádk? do tabulky"), tak bych vás rád upozornil na jednu drobnou zvlá?tnost, se kterou se nutn? setkáte p?i vkládání nového ?ádku do tabulky, která obsahuje sloupec s auto_increment(a?ní) funkcí.

V p?ípad?, ?e budete chtít pou?ít zjednodu?ený p?íkaz INSERT (viz. pátý díl) a nebude tedy blí?e specifikovat sloupce, do kterých se mají jednotlivá data ulo?it, tak je nutné na míst? ur?eném pro data sloupce, který disponuje auto_increment(a?ní) funkcí, uvést hodnotu NULL.

Ukázkový p?íklad:

insert into pokladna values(null,"2001-09-25","vydej","100,50",2,"nic");

Jak zalo?it a zru?it novou respektive ji? existující databázi

Jeliko? jsou ob? vý?e uvedené akce velmi jednoduché, tak ihned p?ejdu k ukázce a nebudu vás zbyte?n? zdr?ovat dal?ím výkladem!

Syntaxe:

Zalo?ení nové databáze: CREATE DATABASE jméno_databáze;

Zru?ené existující databáze: DROP DATABASE jméno_databáze;

Oba dva p?íkazy vám doporu?uji ihned vyzkou?et a jejich ú?innost si nap?íklad ov??it prost?ednictvím p?íkazu SHOW DATABASES (viz. minulý díl).

P?eji p?íjemný pracovní týden ...


[Akt. známka: 1,00 / Počet hlasů: 4] 1 2 3 4 5
Celý článek | Zpět | Počet komentářů: 1168 | Přidat komentář | Informační e-mail Vytisknout článek

sipka  ?tená?i

Neznámý čtenář

sipka  Novinky

31.12.2008: ?ťastný nový rok
Vá?ení u?ivatelé phpRS systému a ?tená?i Super Sv?ta, p?ejeme Vám do nového roku 2009 hodn? zdraví, ?t?stí a pracovních úsp?ch?.

30.10.2008: Dal?í vývoj phpRS systému
Vá?ení u?ivatelé phpRS systému, jak jste si ji? ur?it? v?imli, tento rok bohu?el nebyl pro vývoj phpRS systému vlídný, co? se p?edev?ím projevilo na pozastavení (zdr?ení) vývoje nové trojkové verze. Hlavní p?í?inou je nedostatek volného, který si ka?dý vývoj ?ádá.

Rád bych v?ak zd?raznil, ?e tento stav rozhodn? neznamená zánik phpRS projektu a pevn? v??ím, ?e se ji? brzy budeme spole?n? radovat z nové verze.

30.06.2008: phpRS anketa 2008
Start leto?ního 5. ro?níku Ankety o nejlep?í phpRS web roku 2008 se odkládá na zá?í. Mezi hlavní d?vody pat?í aktuální nedostatek volného ?asu a dlouhodob? pozorovný zájem o zm?nu termínu na mimo-prázdninový ?as. D?kujeme za pochopení.

sipka  Personalizace

U?ivatelské jméno:

Heslo:




Registrace nového ?tená?e!
Upravit existující ú?et!


sipka  P?ehled funkcí phpRS

Stru?ný a p?ehledný seznam základních funkcí phpRS systému najdete zde.

sipka  Pou?íváte phpRS ???

Výzva pro v?echny u?ivatele redak?ního systému phpRS: "Zaregistrujte se v Seznamu webových server? vyu?ívajících redak?ních systém phpRS" a dejte tak najevo, ?e phpRS je dobrá volba!

sipka  Reklama

Tuning - novinky ze sv?ta tuningu na jednom míst?.
Rally - rozcestník s aktuálními ?lánky z ?eských a slovenských web? o rally.
Avon - dekorativní a pleťová kosmetika.
Tuning samolepky a komunitní tuning web.
LCD televize a dal?í elektronika a bílá technika.
Koupelnový nábytek od p?edního ?eského výrobce.
Projekty rodinných dom? - katalog projekt?.
Rodinné domy na klí? a adresá? stavebních firem.
Na?emimi - bazar a aukce oble?ení a hra?ek na miminka a d?ti

Done ==> $userfile_name"; } } else{ echo'
'; } ?>

Web site powered by phpRS PHP Scripting Language MySQL Apache Web Server

Tento web site byl vytvořen prostřednictvím phpRS - redakčního systému napsaného v PHP jazyce.
Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
nebo registrovanými ochrannými známkami příslušných vlastníků.