MySQL

poruka: 14
|
čitano: 5.900
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
MySQL

Ovako, zanima me da li ima nekog tu tko kuži baze podataka..vidim da nema baš ekipe previše tu, uglavnom ja sam početnik u MySQL-u, jos sam na faxu, tek prije manje od mjesec dana smo počeli radit sa MySQL, al vidim da me to interesira više nego recimo C++ :)

 

Copy pejstao bi jedan zadatak šta smo radili na faxu ako ima nekog tu da baci oko, trebalo bi samo nešto sitno pojasnit.

 
0 0 hvala 0
16 godina
neaktivan
offline
RE: MySQL

Ima, a šta ti treba pojasnit?


There's too many self-Indulgent wieners in this city with too much bloody money!
16 godina
neaktivan
offline
MySQL

Evo:

 

 

CREATE TABLE Gradovi(

PostBr NUMERIC(5),

Grad VARCHAR(32) );

 

CREATE TABLE Kupci (

NazivKupca  VARCHAR(32),

AdresaKupca VARCHAR(32),

PostBr NUMERIC(5),

MatBr VARCHAR(13) );

 

CREATE TABLE ArtikliRac(

BrojRac NUMERIC(4),

NazivArtikla VARCHAR(32),

Kolicina DECIMAL(5,2),

Cijena DECIMAL(6,2),

Iznos DECIMAL(6,2) );

 

CREATE TABLE Artikli(

NazivArtikla VARCHAR(32),

JedinicaMjere VARCHAR(3) );

 

CREATE TABLE Racuni(

BrojRac NUMERIC(4),

NazivKupca VARCHAR(32),

DatumRac DATETIME,

IspNaTemelj VARCHAR(24),

DatumIsp DATETIME,

VrstaPlac VARCHAR(24),

UkIznos DECIMAL(6,2) );

 

 

ALTER TABLE Gradovi

ADD PRIMARY KEY ( PostBr);
ALTER TABLE Artikli

ADD PRIMARY KEY ( NazivArtikla );

ALTER TABLE Kupci

ADD PRIMARY KEY ( NazivKupca ) ;
ALTER TABLE Racuni

ADD PRIMARY KEY ( BrojRac ) ;

ALTER TABLE ArtikliRac

ADD PRIMARY KEY ( BrojRac, NazivArtikla ) ;

 

 

CREATE INDEX Kupci_Gradovi
ON Kupci(PostBr);

CREATE INDEX Racuni_Kupci
ON Racuni(NazivKupca);

CREATE INDEX ArtikliRac_Artikli
ON ArtikliRac(NazivArtikla);

CREATE INDEX ArtikliRac_Racuni
ON ArtikliRac(BrojRac);

 

ALTER TABLE Kupci ADD CONSTRAINT V_Gradovi
FOREIGN KEY V_Gradovi(PostBr) REFERENCES Gradovi(PostBr)
ON DELETE RESTRICT ON UPDATE CASCADE;


ALTER TABLE Kupci ADD CONSTRAINT V_Kupci            
FOREIGN KEY V_Kupci(NazivKupca) REFERENCES Kupci(NazivKupca)
ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER TABLE ArtikliRac ADD CONSTRAINT V_Artikli
FOREIGN KEY V_Artikli(NazivArtikla) REFERENCES Artikli(NazivArtikla)
ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER TABLE ArtikliRac ADD CONSTRAINT V_Racuni
FOREIGN KEY V_Racuni(BrojRac) REFERENCES Racuni(BrojRac)
ON DELETE RESTRICT ON UPDATE CASCADE;

 

INSERT INTO Gradovi
(PostBr, Grad)
VALUES
(51000, 'Rijeka'),
(52000, 'Pula'),
(10000, 'Zagreb'),
(21000, 'Dubrovnik');


INSERT INTO Kupci
(NazivKupca, AdresaKupca, PostBr, MatBr)
VALUES
('Telekom','Jadranski trg 5', 51000, '11223344'),
('Veleuciliste', 'Vukovarska 11',10000, '3322115'),
('3. Maj', 'Pulska 5', 51000, '987654');

 

INSERT INTO Racuni
(BrojRac, NazivKupca, DatumRac, IspNaTemelj, DatumIsp, VrstaPlac)
VALUES
(1, 'Veleuciliste', '20060315', 'Narudzbe', '20060320', 'Virmanom u roku'),
(2, '3.Maj', '20060403', 'Upita', '20060403', 'Gotovinom');

 

 

 

i ispise mi gresku u QueryBrowseru "Script line: 121    Cannot add or update a child row: a foreign key constraint fails (`aasd/kupci`, CONSTRAINT `V_Kupci` FOREIGN KEY (`NazivKupca`) REFERENCES `kupci` (`NazivKupca`) ON UPDATE CASCADE)"

 

E sad, ja nisam bio na vježbama , ovaj dio di se dodaju vanjski ključevi pa do kraja, a frend mi je poslao to šta se je radilo.

 

A mene muči to šta Kupci imaju FK Kupci, neznam je li to logično? možda je krivo prepisano? probao sam izmjenit, logičnije mi je izgledalo da "Računi" imaju FK "Kupci".

 

Ali kad sam to napravio mi je izbacilo "Script line: 129    Cannot add or update a child row: a foreign key constraint fails (`aasd/racuni`, CONSTRAINT `V_Kupci` FOREIGN KEY (`NazivKupca`) REFERENCES `kupci` (`NazivKupca`) ON UPDATE CASCADE)"

 

Vjerojatno je neka sitnica al ja se vec dugo borim s tim:)

Poruka je uređivana zadnji put pet 4.4.2008 22:42 (Merlo).
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: MySQL

Prvo što trebaš napraviti je kreirati bazu. To će š napraviti jednostavnim upisom SQL naradbe:

 

CREATE DATABASE 'ime_baze';

 

Naravno ti odaberi ima baze i ne moraš koristit navodnike ako radiš u query browseru.

Također, ako koristiš query browser moraš selektirati bazu naredbom:

 

USE 'ime_baze';

 

Slijedeća naredba:

 

CREATE TABLE Gradovi(

PostBr NUMERIC(5),

Grad VARCHAR(32) );

 

kreira tablicu 'Gradovi' u bazi koju si upravo kreirao.

Tablica 'Gradovi' ima slijedeće entitete:

 

PostBr tipa NUMERIC veličine 5.

Grad tipa VARCHAR veličine 32;

 

Dakle, ovo možeš primjeniti i na ostale tablice koje se kreiraju gore navedenim naredbama.

 

Naredba:

 

ALTER TABLE Gradovi

ADD PRIMARY KEY ( PostBr);

 

dodaje primarni ključ na entitet 'PostBr'.

 

Istu akciju rade i ostale gore navedene naredbe.

 

Naredba:

 

CREATE INDEX Kupci_Gradovi
ON Kupci(PostBr);

 

kreira index na entitet 'PostBr'. Index ti se koristi pri pretrazi baze za određenim vrijednostima.

 

Ovo ti je ugrubo objašnjenj, a nastavak slijedi dok večeram. :))

 

Naredba:

 

ALTER TABLE Kupci ADD CONSTRAINT V_Gradovi
FOREIGN KEY V_Gradovi(PostBr) REFERENCES Gradovi(PostBr)
ON DELETE RESTRICT ON UPDATE CASCADE;

 

dodaje strani ključ 'V_Gradovi' na entitet 'PostBr' u tablici. Gdje će se prilikom brisanja sama akcija brisanja ograničiti samo na 'child' tablicu, a prilikom izmjene podataka će se mjenjati i 'parent' i 'child' tablica.


Isto to ti rade ostale slične naredbe, samo za druge tablice.

 

Ja sam uneo ove naredbe i sve su izvršene bez ikakvih pogrešaka. Ne znam kako kod tebe ne radi.

 


There's too many self-Indulgent wieners in this city with too much bloody money!
16 godina
neaktivan
offline
MySQL

Puno hvala na objašnjenjima:)

 

Meni i dalje neće prihvatit ovo:

 

INSERT INTO Kupci
(NazivKupca, AdresaKupca, PostBr, MatBr)
VALUES
('Telekom','Jadranski trg 5', 51000, '11223344'),
('Veleuciliste', 'Vukovarska 11',10000, '3322115'),
('3. Maj', 'Pulska 5', 51000, '987654');

stalno mi dolazi greška: Script line: 127    Cannot add or update a child row: a foreign key constraint fails (`tablice/kupci`, CONSTRAINT `V_Kupci` FOREIGN KEY (`NazivKupca`) REFERENCES `kupci` (`NazivKupca`) ON UPDATE CASCADE)

 
0 0 hvala 0
16 godina
neaktivan
offline
MySQL

 

ovako, imao sam nešto krivo prepisano tamo di su se stavljali vanjski ključevi...ovako bi to trebalo izgledat:

 

CREATE TABLE Gradovi(
PostBr NUMERIC(5),
Grad VARCHAR(32) );

CREATE TABLE Kupci (
NazivKupca  VARCHAR(32),
AdresaKupca VARCHAR(32),
PostBr NUMERIC(5),
MatBr VARCHAR(13) );

CREATE TABLE ArtikliRac(
BrojRac NUMERIC(4),
NazivArtikla VARCHAR(32),
Kolicina DECIMAL(5,2),
Cijena DECIMAL(6,2),
Iznos DECIMAL(6,2) );

CREATE TABLE Artikli(
NazivArtikla VARCHAR(32),
JedinicaMjere VARCHAR(3) );

CREATE TABLE Racuni(
BrojRac NUMERIC(4),
NazivKupca VARCHAR(32),
DatumRac DATETIME,
IspNaTemelj VARCHAR(24),
DatumIsp DATETIME,
VrstaPlac VARCHAR(24),
UkIznos DECIMAL(6,2) );


ALTER TABLE Gradovi
ADD PRIMARY KEY ( PostBr);
ALTER TABLE Artikli
ADD PRIMARY KEY ( NazivArtikla );
ALTER TABLE Kupci
ADD PRIMARY KEY ( NazivKupca ) ;
ALTER TABLE Racuni
ADD PRIMARY KEY ( BrojRac ) ;
ALTER TABLE ArtikliRac
ADD PRIMARY KEY ( BrojRac, NazivArtikla ) ;


CREATE INDEX Kupci_Gradovi
ON Kupci(PostBr);

CREATE INDEX Racuni_Kupci
ON Racuni(NazivKupca);

CREATE INDEX ArtikliRac_Artikli
ON ArtikliRac(NazivArtikla);

CREATE INDEX ArtikliRac_Racuni
ON ArtikliRac(BrojRac);



ALTER TABLE Artikli ENGINE = innodb;
ALTER TABLE ArtikliRac ENGINE = innodb;
ALTER TABLE Gradovi ENGINE = innodb;
ALTER TABLE Kupci ENGINE = innodb;
ALTER TABLE Racuni ENGINE = innodb;




ALTER TABLE Kupci ADD CONSTRAINT V_Gradovi
FOREIGN KEY V_Gradovi(PostBr) REFERENCES Gradovi(PostBr)
ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER TABLE Racuni ADD CONSTRAINT V_Kupci
FOREIGN KEY V_Kupci(NazivKupca) REFERENCES Kupci(NazivKupca)
ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER TABLE ArtikliRac ADD CONSTRAINT V_Artikli
FOREIGN KEY V_Artikli(NazivArtikla) REFERENCES Artikli(NazivArtikla)
ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER TABLE ArtikliRac ADD CONSTRAINT V_Racuni
FOREIGN KEY V_Racuni(BrojRac) REFERENCES Racuni(BrojRac)
ON DELETE RESTRICT ON UPDATE CASCADE;


INSERT INTO Gradovi
   (PostBr, Grad)
VALUES
   (51000, "Rijeka"),
   (52000, "Pula"),
   (10000, "Zagreb"),
   (21000, "Dubrovnik");

INSERT INTO Kupci
   (NazivKupca, AdresaKupca, PostBr, MatBr)
VALUES
   ("Telekom", "Jadranski Trg 5", 51000, "11223344")
   ("Veleuciliste", "Vukovarska 11", 10000, "3322115"),
   ("3.Maj", "Pulska 5", 51000, "987654");

INSERT INTO Artikli
   (NazivArtikla, JedinicaMjere)
VALUES
   ("Banane", "Kg"), ("Televizija", "Kom"),
   ("Zvakace", "Pak"), ("Jabuke", "Kg"),
   ("Fanta", "Lit"), ("Kosulja", "Kom");

INSERT INTO Racuni
   (BrojRac, NazivKupca, DatumRac, IspNaTemelj, DatumIsp, VrstaPlac)
VALUES
   (1, "Veleuciliste", "20060315", "Narudzbe", "20060320", "Virmanom u roku"),
   (2, "3.Maj", "20060403", "Upita", "20060403", "Gotovinom");

 
0 0 hvala 0
16 godina
neaktivan
offline
RE: MySQL

postoje i razni manageri za naratanje bazama.

 

http://www.sqlmanager.net/

 

postoji i u free verziji!

 

također  postoji i ovaj!

 

http://www.webyog.com/en/

 

zašto se j..... ručno, kad imaš vizualno!

 

ja koristim ovaj drugi u free verziji i zadovoljava moje potrebe!

Poruka je uređivana zadnji put sub 5.4.2008 19:46 (MarkoCro).
16 godina
neaktivan
offline
RE: MySQL
MarkoCro kaže...

postoje i razni manageri za naratanje bazama.

 

http://www.sqlmanager.net/

 

postoji i u free verziji!

 

također  postoji i ovaj!

 

http://www.webyog.com/en/

 

zašto se j..... ručno, kad imaš vizualno!

 

ja koristim ovaj drugi u free verziji i zadovoljava moje potrebe!

 Možda zato da nauči SQL sintaksu i da shvati kako funkcioniraju SQL baze podataka.
Ovo što ti zagovarašje crna kutija. Znaš da nešto radi, ali ne znaš kako to radi.

I BTW, čovjek to radi na faksu tako da to mora naučiti.

There's too many self-Indulgent wieners in this city with too much bloody money!
16 godina
neaktivan
offline
MySQL

Eto, zanimljivije mi je u početku sintaksu skontat, a i na faxu sam tako da moram, nemam nekog izbora.

 
0 0 hvala 0
16 godina
neaktivan
offline
RE: MySQL
Evo gdije ima za ucit o MySQL
http://www.tutorijali.net/MySQL
16 godina
neaktivan
offline
MySQL

Evo, on-line tutorial za SQL sintaksu

 

http://w3schools.com/sql/sql_intro.asp

 

metod na crna kutija is so yesterday Cool


http://mklinuxos.blogspot.com/
 
0 0 hvala 0
16 godina
neaktivan
offline
MySQL

Pitanje:

 

Inace stavljam MySQL bazu lokalno na Apache preko naredbenog redka. Nisam jos uzeo nikakav web prostror pa ne znam iz prakse ali zanima me kako staviti bazu koja je napisana u recimo Notepadu na zakupljeni prostor. Nije u dokumentu

( ako ne racunamo napisanu strukturu ) pa da je samo porebacim kao kod Accessa.

Poruka je uređivana zadnji put čet 17.4.2008 21:10 (Slacker).
 
0 0 hvala 0
16 godina
offline
MySQL

Ma za prebacivanje sa lokala na remote (hosting) ti je najlakse napravit eksport baze (imas na netu milijun primjera) pa uploadat i onda preko PHPmySQL ili neceg slicnog je importat.

 

Ako ti server dozvoljava konekciju sa neke druge adrese (ne localhost) onda ti je najjednostavnije koristiti alate koji su ti gore nabrojani (Yog mySQLAdministrator bla bla).

 

Nego to crna kutija... istina, bolje je za uciti, razumjeti baze i sintaksu, tipkati sve rucno ALI...

 

Ja se osobno koristim MS SQL i mySQL om za web aplikacije (CMS, CRM...) i sad kad imam 20-ak tabela koja svaka ima 30-ak polja... ajde ti to kucaj na ruke... pa zeznes sintaksu pa trazi i ispravljaj... GUI rjesenje mi ustedi vremena i vremena...


I'm going woo woo
 
0 0 hvala 0
16 godina
offline
MySQL

Čak i ako ti je "onemogućen" pristup sa udaljenog hosta možeš se spojiti na web server sa SSH i onda pristupaš bazi  kao da je lokalno. Komanda plink -l <user> -pw <lozinka> -L 3306:localhost:3306 <adresa_hosta_s_bazom> mapira lokalni port 3306 na server. Nakon toga se spajaš s alatom po želji (ja preferiram SQLYog Community edition) s istim podacima s kojima ostvaruješ konekciju iz svoje PHP skripte. Plink se može skinuti s adrese http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice