Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
Postano: 10:58 uto, 16. 6. 2009 Naslov: 2.zadaca |
|
|
neznam u cem mi je problem...
stvorim tablicu:
[code:1]CREATE TABLE AUTO( BR_AUTA INT UNSIGNED NOT NULL, IME_AUTA CHAR( 15 ), OBUJAM_MOTORA INT UNSIGNED, GOD_PROIZVODNJE INT UNSIGNED );[/code:1]
to mi stvori bez problema, ali kad pokusam ubacit:
[code:1]INSERT INTO AUTO( 1123, 'Golf', 1199, 2003 );[/code:1]
javi mi gresku:
[code:1]ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1123, 'Golf', 1199, 2003 )' at line 1
[/code:1]
u cem je problem? i kak mogu staviti da mi recimo kao BR_AUTA prihvati samo 4 - znamenkaste brojeve?
neznam u cem mi je problem...
stvorim tablicu:
Kod: | CREATE TABLE AUTO( BR_AUTA INT UNSIGNED NOT NULL, IME_AUTA CHAR( 15 ), OBUJAM_MOTORA INT UNSIGNED, GOD_PROIZVODNJE INT UNSIGNED ); |
to mi stvori bez problema, ali kad pokusam ubacit:
Kod: | INSERT INTO AUTO( 1123, 'Golf', 1199, 2003 ); |
javi mi gresku:
Kod: | ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1123, 'Golf', 1199, 2003 )' at line 1
|
u cem je problem? i kak mogu staviti da mi recimo kao BR_AUTA prihvati samo 4 - znamenkaste brojeve?
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 11:08 uto, 16. 6. 2009 Naslov: |
|
|
Fali ti [tt]values[/tt]:
[tt]INSERT INTO AUTO [color=red]VALUES[/color] (1123, 'Golf', 1199, 2003);[/tt]
8)
Fali ti values:
INSERT INTO AUTO VALUES (1123, 'Golf', 1199, 2003);
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
Postano: 11:11 uto, 16. 6. 2009 Naslov: |
|
|
ma da vec sam naso na netu... sam kaj mi se cini da smo na vjezbama radili bez toga... u biti imam tak zapisano u rjesenjima. hvala!
EDIT: pise mi i values u rjesenjima, izgleda da ne znam ni čitat kak se spada
[b]jos jedno pitanje....[/b]
sad recimo napravim novu tablicu
[code:1]CREATE TABLE INSTRUKTOR( BR_INSTRUKTORA INT UNSIGNED NOT NULL, IME_INST CHAR( 15 ), PLACA INT UNSIGNED, BR_AUTA INT UNSIGNED );[/code:1]
kak da namjestim da kada izbrisem neki auto iz tablice AUTO, a taj auto mi je takoder auto nekog instruktora ( BR_AUTA u tablici INSTRUKTOR )
, onda takoder brisem taj auto u tablici INSTRUKTOR? I recimo u slucaju da ubacim kod nekog instruktora BR_AUTA koji ne postoji u tablici AUTO da mi javi gresku? u biti da neki atribut u dvije tablice bude povezan... jel kolko sam vidio ovak oni nisu povezani ( po defaultu, makar se isto zovu )
ma da vec sam naso na netu... sam kaj mi se cini da smo na vjezbama radili bez toga... u biti imam tak zapisano u rjesenjima. hvala!
EDIT: pise mi i values u rjesenjima, izgleda da ne znam ni čitat kak se spada
jos jedno pitanje....
sad recimo napravim novu tablicu
Kod: | CREATE TABLE INSTRUKTOR( BR_INSTRUKTORA INT UNSIGNED NOT NULL, IME_INST CHAR( 15 ), PLACA INT UNSIGNED, BR_AUTA INT UNSIGNED ); |
kak da namjestim da kada izbrisem neki auto iz tablice AUTO, a taj auto mi je takoder auto nekog instruktora ( BR_AUTA u tablici INSTRUKTOR )
, onda takoder brisem taj auto u tablici INSTRUKTOR? I recimo u slucaju da ubacim kod nekog instruktora BR_AUTA koji ne postoji u tablici AUTO da mi javi gresku? u biti da neki atribut u dvije tablice bude povezan... jel kolko sam vidio ovak oni nisu povezani ( po defaultu, makar se isto zovu )
|
|
[Vrh] |
|
DeNardo Forumaš(ica)
Pridružen/a: 03. 11. 2006. (09:20:30) Postovi: (18)16
Spol:
Lokacija: Zagreb-Ludbreg
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 14:35 uto, 16. 6. 2009 Naslov: |
|
|
@DeNardo: dodas [tt]where[/tt], jednako kao i u [tt]select[/tt]-u. 8) Zato je jako preporucljivo da svaka tablica ima [tt]id[/tt] polje; ja uvijek u sve tablice svih svojih baza stavljam
[tt]id integer auto_increment primary key[/tt]
kao prvi stupac tablice. 8)
@Cobs: Ne znam podrzava li to MySQL; no uvijek mozes na ruke ([tt]delete[/tt] u svakoj od tablica). 8) Ako moze na razni MySQL-a, molim da netko napise, pa da i ja naucim ponesto... :D
@DeNardo: dodas where, jednako kao i u select-u. Zato je jako preporucljivo da svaka tablica ima id polje; ja uvijek u sve tablice svih svojih baza stavljam
id integer auto_increment primary key
kao prvi stupac tablice.
@Cobs: Ne znam podrzava li to MySQL; no uvijek mozes na ruke (delete u svakoj od tablica). Ako moze na razni MySQL-a, molim da netko napise, pa da i ja naucim ponesto...
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
DeNardo Forumaš(ica)
Pridružen/a: 03. 11. 2006. (09:20:30) Postovi: (18)16
Spol:
Lokacija: Zagreb-Ludbreg
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:42 uto, 16. 6. 2009 Naslov: |
|
|
[code:1]create table proizvodi (
id integer auto_increment primary key,
naziv varchar(17) not null,
cijena integer not null
);
insert into proizvodi set
naziv="Predmet 1",
cijena=17
);
insert into proizvodi (naziv, cijena) values
("Predmet 2", 19),
("Predmet 3", 13)
;[/code:1]
Dakle, imamo tablicu s tri stupca i tri retka (dva razlicita nacina upisa novih podataka; ja preferiram prvi, no vama ce vjerojatno biti laksi drugi). 8) Ispis bi trebao izgledati ovako nekako:
[code:1]select * from predmeti order by cijena;
id naziv cijena
3 Predmet 3 13
1 Predmet 1 17
2 Predmet 2 19[/code:1]
I sada idemo na azuriranje:
[code:1]update predmeti set naziv="Skupi predmet" where id=2;
select * from predmeti order by cijena;
id naziv cijena
3 Predmet 3 13
1 Predmet 1 17
2 Skupi predmet 19[/code:1]
Ako hocemo sve sto ima cijenu 17 ili vise pojeftiniti za 2, onda:
[code:1]update predmeti set cijena = cijena - 2 where cijena >= 17;
select * from predmeti order by cijena;
id naziv cijena
3 Predmet 3 13
1 Predmet 1 15
2 Skupi predmet 17[/code:1]
Sve je pisano napamet, pa su lako moguce greske u sintaksi, no ideja je tu. 8)
Kod: | create table proizvodi (
id integer auto_increment primary key,
naziv varchar(17) not null,
cijena integer not null
);
insert into proizvodi set
naziv="Predmet 1",
cijena=17
);
insert into proizvodi (naziv, cijena) values
("Predmet 2", 19),
("Predmet 3", 13)
; |
Dakle, imamo tablicu s tri stupca i tri retka (dva razlicita nacina upisa novih podataka; ja preferiram prvi, no vama ce vjerojatno biti laksi drugi). Ispis bi trebao izgledati ovako nekako:
Kod: | select * from predmeti order by cijena;
id naziv cijena
3 Predmet 3 13
1 Predmet 1 17
2 Predmet 2 19 |
I sada idemo na azuriranje:
Kod: | update predmeti set naziv="Skupi predmet" where id=2;
select * from predmeti order by cijena;
id naziv cijena
3 Predmet 3 13
1 Predmet 1 17
2 Skupi predmet 19 |
Ako hocemo sve sto ima cijenu 17 ili vise pojeftiniti za 2, onda:
Kod: | update predmeti set cijena = cijena - 2 where cijena >= 17;
select * from predmeti order by cijena;
id naziv cijena
3 Predmet 3 13
1 Predmet 1 15
2 Skupi predmet 17 |
Sve je pisano napamet, pa su lako moguce greske u sintaksi, no ideja je tu.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
Gogs Forumaš(ica)
Pridružen/a: 17. 10. 2002. (22:28:12) Postovi: (155)16
Lokacija: Zagreb
|
Postano: 23:10 uto, 16. 6. 2009 Naslov: |
|
|
[quote="vsego"]
@Cobs: Ne znam podrzava li to MySQL; no uvijek mozes na ruke ([tt]delete[/tt] u svakoj od tablica). 8) Ako moze na razni MySQL-a, molim da netko napise, pa da i ja naucim ponesto... :D[/quote]
Ako se koristi InnoDB, onda je to moguće ostvariti korištenjem FOREIGN KEY-eva. ([url]http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html[/url])
Također, od verzije 5.02 su omogućeni TRIGGERI, kojima se (vjerujem) to isto može ostvariti, iako je s FOREIGN KEY-evima puno jednostavnije i logičnije.
vsego (napisa): |
@Cobs: Ne znam podrzava li to MySQL; no uvijek mozes na ruke (delete u svakoj od tablica). Ako moze na razni MySQL-a, molim da netko napise, pa da i ja naucim ponesto... |
Ako se koristi InnoDB, onda je to moguće ostvariti korištenjem FOREIGN KEY-eva. (http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html)
Također, od verzije 5.02 su omogućeni TRIGGERI, kojima se (vjerujem) to isto može ostvariti, iako je s FOREIGN KEY-evima puno jednostavnije i logičnije.
_________________ Dvije stvari su beskonacne, svemir i ljudska glupost, ali sto se svemira tice nisam posve siguran.
|
|
[Vrh] |
|
DanijelM Forumaš(ica)
Pridružen/a: 20. 02. 2008. (11:56:05) Postovi: (29)16
|
|
[Vrh] |
|
karaga Forumaš(ica)
Pridružen/a: 07. 08. 2009. (22:50:37) Postovi: (17F)16
|
Postano: 22:29 pet, 23. 4. 2010 Naslov: termini predaje druge zadace... |
|
|
Na sluzbenom webu pod "obavijesti" imate ponudjena 4 termina za predaju 2. domace zadace. Na svaki ce moci doci do 50 studenata, sto bi trebalo biti dovoljno s obzirom da ima nesto manje od 200 studenata po zadnjem popisu. S obzirom na zaista veliki broj studenata ove godine, isprobat cemo princip online prijave na te termine, bas me zanima kak ce to ispasti... (tj. kak ce vam se to dopasti kao ideja i kak ce ic realizacija). Aplikacija za prijavu je malo slampavo napravljena, web programiranje mi nikad nije bilo neko veselje. Ak propadne, uvijek nam ostaje stari dobri princip ljepljena isprintanih popisa na vrata kabineta :). S druge strane, ak dobro prodje, mozda se prosiri na jos neke kolegije (umjesto vec spomenutih isprintanih popisa na vratima kabineta...)
Isprike na (uglavnom) vecernjim terminima, al kak vas ima sa svih mogucih smjerova, godina, pa cak i s Fizike i Biologije, malo je nemoguce nac neko vrijeme u koje vecina moze doci a da je jos i praktikum slobodan...
Na sluzbenom webu pod "obavijesti" imate ponudjena 4 termina za predaju 2. domace zadace. Na svaki ce moci doci do 50 studenata, sto bi trebalo biti dovoljno s obzirom da ima nesto manje od 200 studenata po zadnjem popisu. S obzirom na zaista veliki broj studenata ove godine, isprobat cemo princip online prijave na te termine, bas me zanima kak ce to ispasti... (tj. kak ce vam se to dopasti kao ideja i kak ce ic realizacija). Aplikacija za prijavu je malo slampavo napravljena, web programiranje mi nikad nije bilo neko veselje. Ak propadne, uvijek nam ostaje stari dobri princip ljepljena isprintanih popisa na vrata kabineta . S druge strane, ak dobro prodje, mozda se prosiri na jos neke kolegije (umjesto vec spomenutih isprintanih popisa na vratima kabineta...)
Isprike na (uglavnom) vecernjim terminima, al kak vas ima sa svih mogucih smjerova, godina, pa cak i s Fizike i Biologije, malo je nemoguce nac neko vrijeme u koje vecina moze doci a da je jos i praktikum slobodan...
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
Tygy Forumaš(ica)
Pridružen/a: 22. 11. 2008. (15:27:08) Postovi: (102)16
|
|
[Vrh] |
|
karaga Forumaš(ica)
Pridružen/a: 07. 08. 2009. (22:50:37) Postovi: (17F)16
|
Postano: 22:55 pet, 14. 5. 2010 Naslov: |
|
|
Prpiremiti datoteku s tri upita samo znaci da negdje (text editor, notepad, nesto...) imate vec natipkane upite koje onda prije predaje/za vrijeme predaje samo zalijepite u SQL prozor. Svrha toga je da izbjegnemo dugo sjedenje dok student tipka SLECT, onda ja kazem "fali vam E u SELECT", student onda napise SELCT, ja kazem "sad vam fali drugo E", student se sav spetlja i vise ne zna napisat ni kak se zove... sto nije nikakav problem dok nema puno studenata, kad ih je jako puno onda to rezultira dugim cekanjem dok svi dodju na red; sto one koji su medju zadnjima (pretpostavljam) bas i ne veseli...
Naravno, ne moraju ti upiti biti u datoteci, mogu biti i na papiru, u glavi... samo bi bilo pozeljno da su vec natipkani dok dodje red da se predaju, cisto brzine predaje radi.
Prpiremiti datoteku s tri upita samo znaci da negdje (text editor, notepad, nesto...) imate vec natipkane upite koje onda prije predaje/za vrijeme predaje samo zalijepite u SQL prozor. Svrha toga je da izbjegnemo dugo sjedenje dok student tipka SLECT, onda ja kazem "fali vam E u SELECT", student onda napise SELCT, ja kazem "sad vam fali drugo E", student se sav spetlja i vise ne zna napisat ni kak se zove... sto nije nikakav problem dok nema puno studenata, kad ih je jako puno onda to rezultira dugim cekanjem dok svi dodju na red; sto one koji su medju zadnjima (pretpostavljam) bas i ne veseli...
Naravno, ne moraju ti upiti biti u datoteci, mogu biti i na papiru, u glavi... samo bi bilo pozeljno da su vec natipkani dok dodje red da se predaju, cisto brzine predaje radi.
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
candica Forumaš(ica)
Pridružen/a: 26. 08. 2007. (19:04:03) Postovi: (1A)16
|
|
[Vrh] |
|
karaga Forumaš(ica)
Pridružen/a: 07. 08. 2009. (22:50:37) Postovi: (17F)16
|
|
[Vrh] |
|
apocedulic Gost
|
|
[Vrh] |
|
msmit Forumaš(ica)
Pridružen/a: 07. 11. 2008. (15:13:55) Postovi: (76)16
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
ante003 Forumaš(ica)
Pridružen/a: 13. 10. 2008. (17:45:10) Postovi: (3C5)16
Spol:
|
|
[Vrh] |
|
|