Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Indeksy
Forum PHP.pl > Forum > Przedszkole
Submariner
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?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ń :-)
Adiasz
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
Submariner
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!
Adiasz
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
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.