Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Indeksy, Dwie metody??
-Submariner-
post
Post #1





Goście







Witam,

mam pytanie, bo już zgłupiałem...
Jak w MYSQL tworzyć indeksy dla tabeli?

W kursach spotkałem się z taką konstrukcją:

  1. CREATE TABLE test (
  2. id VARCHAR(3) NOT NULL AUTO_INCREMENT,
  3. nazwa VARCHAR(15) NOT NULL,
  4. PRIMARY KEY (id),
  5. UNIQUE (nazwa),
  6. INDEX (nazwa)
  7. );


A w Manualu mam coś takiego:

  1. CREATE INDEX jakas_nazwa
  2. ON test(nazwa);


MOJE PYTANIA:

1. Obydwie metody są poprawne?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

2. Czy CREATE INDEX można zagnieździć wewnątrz CREATE TABLE??

Np.:
  1. CREATE TABLE test (
  2. id VARCHAR(3) NOT NULL AUTO_INCREMENT,
  3. nazwa VARCHAR(15) NOT NULL,
  4. PRIMARY KEY (id),
  5. UNIQUE (nazwa),
  6. CREATE INDEX jakas_nazwa
  7. ON test(nazwa)
  8. );



3. W przypadku polecenia INDEX znalazłem dwa sposoby zapisu:

INDEX jakasnazwa (kolumna)

oraz

INDEX (kolumna)

Czym one się różnią? Czy należy nadawać indeksom nazwę jak wyżej w "jakasnazwa"?
Podobnie jest w poleceniu UNIQUE...

To tyle moich pytań :-)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Adiasz
post
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 28.02.2004

Ostrzeżenie: (0%)
-----


1. tak
2. nie
3. tym ze jak podasz nazwe to index bedzie sie tak nazywal (nie jestem pewien czy bez tego zadziala) inaczej bedzie mial nazwe domyslna, podobnie jest w unique

2 metoda sya pa to ze mozna albo stworzyc index przy tworzeniu tabeli albo go pozniej dodac
Go to the top of the page
+Quote Post
-Submariner-
post
Post #3





Goście







Dzięki Adiasz za podpowiedzi.

Wpadłem na kolejne pytanie czytając o PRIMARY KEY...
Jeśli podamy w nim kilka kolum, to są one jakby łączone w klucz złożony:

  1. PRIMARY KEY (col1, col2)


A jak to jest w przypadku INDEX i UNIQUE??

Czy definiując tabelę z indeksowanymi kilkoma kolumnami muszę podać tak:

Przykład 1:
  1. INDEX (kolumna1),
  2. INDEX (kolumna2)


czy może tak??:


Przykład 2:
  1. INDEX (kolumna1, kolumna2)


Chodzi mi o to czy indeksy dla poszczególnych kolumn trzeba indeksować z osobna (jak w przykładzie 1) czy można wpisywać kilka naraz (przykład 2) i CZY W TYM WYPADKU nie powstaje coś takiego, jak "indeks złożony" (tak jak w przypadku PRIMARY KEY gdy w nawiasach wpiszemy kilka kolumn).

I podobne pytania odnośnie UNIQUE...

Czy podajemy jak poniżej:

UNIQUE (kolumna1)
UNIQUE (kolumna2)

czy

UNIQUE (kolumna1, kolumna2).

Jest jakaś różnica?

Pozdrawiam!
Go to the top of the page
+Quote Post
Adiasz
post
Post #4





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 28.02.2004

Ostrzeżenie: (0%)
-----


Dziala to tak samo jak PK

UNIQUE (kolumna1)
UNIQUE (kolumna2)
wartosci w kolumna1/2 beda unikalne wzgledem danej kolumny 1 lub 2

np. przyjmie:
test1 test2
test2 test1
bo kazda klumna jest unikalna wzgledem siebie

UNIQUE (kolumna1, kolumna2).
wartosc paty kolumna1 kolumna2 musi byc uniklana

juz nie przyjmie:
test1 test2
test2 test1
bo pary sie powtarzaja
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:28