Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak rozumieć definicje kolumn w tabelach ?
Forum PHP.pl > Forum > Bazy danych > MySQL
mpr
$movie = "CREATE TABLE movie (
movie_id int(11) NOT NULL auto_increment,
movie_name varchar(255) NOT NULL,
movie_type tinyint(2) NOT NULL default 0,
movie_year int(4) NOT NULL default 0,
movie_leadactor int(11) NOT NULL default 0,
movie_director int(11) NOT NULL default 0,
PRIMARY KEY (movie_id),
KEY movie_type (movie_type,movie_year)
)";

Witam.

Moje pytanie dotyczy wyjaśnienia: ,

- dlaczego raz podaje się "deafult 0", raz podaje się tylko "NOT NULL" -dlaczego w linijce "movie_name varchar(255) NOT NULL," nie ma akurat" deafult " tylko w wierszu niżej ?

- jaka jest różnica między "KEY" a "PRIMARY KEY " - praktyczna a nie "regułkowa" ?

- i jakie zadanie ma tutaj "KEY" i co to właściwie jest?

Niżej podaję wyjaśnienie które znalazłem z necie:

DEFAULT wartość_domyślna: określa wartość domyślną kolumny dla nowo wprowadzanych wierszy w przypadku, gdy instrukcja tworząca nowy wiersz nie zadaje tej wartości. Jeśli w definicji kolumny pominięto opcję DEFAULT (oraz nie podano opcji NOT NULL), to w takich wypadkach wartością domyślną jest NULL. Jeżeli natomiat kolumna bez opcji DEFAULT została zadeklarowana jako NOT NULL, to w miejsce brakującej wartości zostanie automatycznie wprowadzona przez MySQL wartość domyślna zależna od typu.

------------------------------------------------------------------------------------------
ooczywiście wiadomo na podstawie tej regułki , że jest to wartość domyślna, lecz "gdy instrukcja tworząca nowy wiersz nie zadaje tej wartości" - jaka instrukcja, i gdzie się wpisuje tą wartość ?...lub "zostanie automatycznie wprowadzona przez MySQL wartość domyślna zależna od typu" - od typu, jakiego typu ? .....
-------------------------------------------------------------------------------------------

NOT NULL | NULL: określa, czy NULL jest dopuszczalną wartością w tej kolumnie. Domyślnie wartość NULL jest dopuszczalna, za wyjątkiem kluczy (kolumn indeksowanych)

-----------------------------------------------------------------------------------------------
tutaj wiadomo w czym rzecz, lecz czemu raz wpisuje się "NOT NULL default 0" a raz samo "NOT NULL "?...
-----------------------------------------------------------------------------------------------

KEY [nazwa_indeksu] (nazwa_kolumny_indeksowej, ..): deklaruje indeksowanie ze względu na wartości z odpowiednich kolumn. Indeks może być nazwany (zgodnie z wcześniej omówionymi regułami tworzenia nazw). Wartości klucza indeksowania nie mogą być NULL. W MySQL istnieje możliwość zadeklarowania długości klucza indeksowania, w postaci kolumna(długość), mniejszej niż długość pola danych odpowiedniej kolumny. Wówczas do tworzenia indeksu wykorzystana jest jedynie część pola danych, co owocuje czasami o wiele mniejszymi (w sensie zużycia miejsca na dysku) i szybciej przeszukiwanymi indeksami.
Kolumna typu BLOB nie może być indeksowana.

-----------------------------------------------------------------------------------------------
"deklaruje indeksowanie ze względu na wartości z odpowiednich kolumn" - ito zdanie wystarczy żeby dalej nie czytać.....
-----------------------------------------------------------------------------------------------

Czy ktoś mi to może przetłumaczyć na "polski" i poprzeć to jakimś normalnym prostym przykładem?

Znalazłem takie zdanie, które pasuje do tej sytuacji ( dodałem , że jestem początkujący) :

"Większość informatyków chce sprawiać wrażenie ludzi niezwykle inteligentnych, dlatego ukrywają oni proste zdania w bardzo wyrafinowanych zdaniach typu " Zaprojektuj oryginalną witrynę internetową wykorzystującą system relacyjnej bazy danych" itd...itp..

pozdrawiam

maciej
Fipaj
NOT NULL - komórka nie może być pusta, inaczej MySQL zwróci błąd
DEFAULT "cośtam" - jeśli komórka jest pusta - wrzucana jest do niej wartość "cośtam"
KEY - klucz, PRIMARY KEY - klucz główny
instrukcja - pojedyńcze zapytanie MySQL, na przykład 'SELECT * FROM foo;'.
SongoQ
Info dotyczace SQL (konktetnie to co wymieniles) znajdziesz w kazdej ksiazce o podstawach SQL, przynajmniej na pierwszych 5 stronach (oczywiscie pomijajac "Dla kogo jest skierowana ta ksiazka i dedykacje").

Co do stwierdzenia:
Cytat
Zaprojektuj oryginalną witrynę internetową wykorzystującą system relacyjnej bazy danych


- Zaprojektuj - slowo wystepujace w jezyku polskim chyba kazdy wie o co biega.
- Orginalna witrynę interenetowa - jak bys nie wiedzial to chodzi o strone (buhahah)
- system relacyjny bazy danych - system ktory sie opiera na teori relacji baz danych, ktory w duzej mierze jest podstawa zalożen koncepcyjnych SQL opracowany przez Codda - naukowca IBM w 1970 r.

Wszystko masz jak na talezu w google i ksiazkach.
Forum rozwiazuje problemy a nie wyklada teorie - jesli chcesz posluchac o teorii to do tego sa wyklady lub ksiazki.
mpr
Tak ? To pokaż mi taką cudowną książkę gdzie już na piątej stronie jest olśnienie ?

Dla informatyka książkę nie trudno jest napisać ....problem zaczyna się wtedy gdy trzeba napisać coś dla zupełnych laików, gdzie od podstaw znaczy od podstaw!.
To jest prawdziwa sztuka, którą potrafi bardzo niewielu!

Forum powinno poruszać każde tematy , nawet te najbardziej banalne gdyż całość składa się właśnie z sumy takich banalnych podstaw.

Apropos stwierdzenia o którym napisałeś "buhahah" , to powinieneś wiedzieć, że nie chodzi o dosłowne tłumaczenie lecz jest to odniesienie do pewnej całości (zresztą nie moje, lecz z pewnej książki, które tak chwalisz ), i w której podobno po piątej stronie mam już wszystko wiedzieć.

Jeżeli jesteś z tych "inteligentnych informatyków" , to powinienieś zrozumieć i to:

" Absrtachując od altruistycznych zagadnień metafizycznego pietyzmu, nieadekwatnie jestem w stanie pokusić się o stwierdzenie, iż konwersacja z Tobą, pobudza moje zmysły" !

maciej
SongoQ
Cytat
Tak ? To pokaż mi taką cudowną książkę gdzie już na piątej stronie jest olśnienie ?

Hellion, prawie kazda ksiazka gdzie masz zagadnienia zwiazane z SQL.

Cytat
To jest prawdziwa sztuka, którą potrafi bardzo niewielu!

Ta oczyiscie, zobacz na forum.php.pl wypowiadaja sie osoby ktore zaledwie maja 16 lat a wiedza dorownuja tym co maja 25 lat. Jesli chcesz sie czegos nauczyc to sie nauczysz ale nic na sile. Pomysl logicznie nikt sie z wiedza na ten temat nie nauczyl, kazdy zaczynal od podstaw i wiem ze to trudne bylo. Do pewnych rzeczy trzeba dojsc samemu, a zeby dojsc do tego trzeba gdzies przeczytac. Nie sadze ze o indeksach przeczytasz na szkolnych murach lub na lawce w parku.

Cytat
Forum powinno poruszać każde tematy , nawet te najbardziej banalne gdyż całość składa się właśnie z sumy takich banalnych podstaw.

Nikt Cie tu nie bedzie uczyl np dodawac, odejmowac, czy jak to nazwales "banalnych podstaw"

Cytat
i w której podobno po piątej stronie mam już wszystko wiedzieć

Nie napisalem ze po piatej stronie wszystko wiesz, tylko ze wymienione przez Ciebie informacje to podstawa zagadnien SQL'a, uwierz mi sa trudniejsze rzeczy.

Zastanow sie i przemysl co napisales. Piszesz najperw posta z pytaniami i odpowiedziami i jesli udalo Ci sie definiecje znalesc to przyklady tez znajdziesz. Odnosnie ksiazek jak pamietam juz od przedszkola mnie uczyli ze warto czytac ksiazki tongue.gif
mpr
Masz rację....i ja mam rację...Ale obaj nie możemy mieć racji ?....Masz rację

temat
break;
SongoQ
Odnosnie tej literatury, jesli chesz wszystko zrozumiec co do podstaw SQLa jak i zaawansowanych rzeczy w relacyjnych bazach danych to polecam ksiazeczke SQL Almanach ksiazka polecana przez wielu wykladowcow
mpr
Dobrze wiedzieć. Dzięki za radę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.