use temp; ----tímto příkazem se podíváte, jaké jsou tam tabulky---- show tables; -----když jste nanešli svou starou tabulku, tak je to proto, že jsem ji já nebo někdo jiný smazal------------- create table pal_osoba (login char(15) not null, celeJmeno char(40),heslo char(10),email char(60),posledNavst timestamp); -----u jmen tabulek dodružujte tuto nazančenou konvenci: před jméno tabulky dejte prefix , který vás bude odlišovat od ostatních uživatelů---------- show tables; select * from pal_osoba; insert into pal_osoba values ("palovska",null,password("xyz"),"palovska@vse.cz",null); -----funkce password je šifrování--------------------- select * from pal_osoba; alter table pal_osoba change celeJmeno celeJmeno char(40) not null; --------pozor, NULL hodnota se změnila na "" !-------- show columns from pal_osoba; select * from pal_osoba; alter table pal_osoba change celeJmeno celeJmeno char(40) null; ------hodnota "" tam už zůstala...--------------------- show columns from pal_osoba; alter table pal_osoba change heslo heslo char(10) not null; show columns from pal_osoba; alter table pal_osoba change email email char(60) not null,change posledNavst posledNavst timestamp not null; show columns from pal_osoba; insert into pal_osoba (login,heslo,email) VALUES ("medvidekPu",password("aaa"),"pu@vse.cz"); select * from pal_osoba; -----vidíte NULL u medvídka a "" u palovska ...-------------- select login from pal_osoba where celeJmeno is Null; select login from pal_osoba where celeJmeno=""; update pal_osoba set celeJmeno=Null where login="palovska"; select * from pal_osoba; update pal_osoba set posledNavst=current_timestamp() where login="palovska"; select * from pal_osoba; insert into pal_osoba (login,heslo,email) VALUES ("medvidekPu",password("bbb"),"pu@vse.cz"); -----to se asi medvídek spletl a vlžil se ještě jednou, místo aby změnil svoje heslo...-------------------------- select * from pal_osoba; alter table pal_osoba add primary key (login); ----tohle neproběhlo, jsou tam dva medvídci, musíme to napravit...----- delete from pal_osoba where login="medvidekPu" and heslo=password("aaa"); ----toto se taky neovedlo, heslo je kratší, jak je vidět z následujícího---------- select password("aaa"); delete from pal_osoba where login="medvidekPu" and heslo=left(password("aaa"),10); ----a je to, můžeme přidat primární klíč------------- alter table pal_osoba add primary key (login); show columns from pal_osoba; show create table pal_osoba; -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- otázky null hodnot, textových řetězců nulové délky, a UNKNOWN hodnoyt v MySQL: select null=""; select 1+1; select 1=2; select 1=1; select (null="") si null; --------o default hodnotách: create table pal_pokus (a int not null); show create table pal_pokus; insert into pal_pokus values (); select * from pal_pokus; --------o omezení CHECK: create table pal_pokus3 (a int primary key, b int, check (b between 1 and 100)); ---toto sice projde, ale naše verze MySQL CHECK ignoruj, nic to nedělá: insert into pal_pokus3 (b) values (101); ---měla se hlásit chyba, že se vkládá hodnota mino CHECK... ----------o referenční integritě: create table pal_klub ( IDklubu tinyint auto_increment primary key, nazev char(20) not null, popis text not null, URL char(60), spravce REFERENCES pal_osoba ); --toto ani neprojde, naše verze MySQL to neumí ----o UNIQUE: create table pal_klub ( IDklubu tinyint auto_increment primary key, nazev char(20) not null unique, popis text not null, URL char(60), spravce char(15)); insert into pal_klub values (null,"kočky","pro milovníky koček",null,null); select * from pal_klub; insert into pal_klub values (null,"kočky","pro nepřátele koček",null,null); ---"duplicate entry"