PL-SQLDeveloper használat alapok 2
✅ 1. Tábla- és mezőnevek ellenőrzése SQL írás közben (Autocomplete, Intellisense)
🔧 Beállítás (ha még nem aktív):
-
Menüsorban:
Tools > Preferences
-
Menüpont:
Editor > Code Assistant
-
Győződj meg róla, hogy a következő be van pipálva:
-
✅ "Auto invocation"
-
✅ "Include Tables/Views/Columns"
-
-
(Opcióként): állítsd be az aktiválási karaktereket, pl.
"."
vagy"SPACE"
✍️ Használat közben:
-
Amikor írsz:
-
Írj egy
.
karaktert:
-
Ekkor megjelenik az oszloplista a
EMP
tábla oszlopaival. -
VAGY: gépeld a tábla nevét, majd nyomd meg:
🔹Ctrl + Space
→ előjön az automatikus kiegészítő
💡 Ez működik sémanévvel együtt is, pl.
HR.EMPLOYEES.
→ kilistázza az oszlopokat.
🧭 2. Egy konkrét tábla, mező megkeresése és vizsgálata
🔍 A. Object Browser használata:
-
Bal oldali panel: "Object Browser" (ha nem látszik:
View > Object Browser
) -
A lenyílóban válaszd ki a sémát (pl.
HR
,SCOTT
, stb.) -
Kattints a "Tables" szekcióra
-
Válaszd ki a kívánt táblát (pl.
EMPLOYEES
) -
Jobbra megjelenik:
-
Oszlopok nevei
-
Típus (NUMBER, VARCHAR2, DATE, stb.)
-
Méret (pl. VARCHAR2(50))
-
Kötelező-e (nullable)
-
Indexek: külön fülön (
Indexes
tab)
-
🔍 B. Jobb klikk → Describe (F4)
-
Írj be egy tábla nevet az SQL ablakban, pl.:
-
Jelöld ki és nyomd meg:
-
F4
vagy -
Jobb klikk → Describe
-
-
Megnyílik egy ablak a következő adatokkal:
-
Oszlopnevek
-
Típus és méret
-
Indexek (külön fül)
-
Constraint-ek (pl. PK, FK)
-
🔎 3. SQL-lekérdezéssel: hol van a mező, milyen a típusa, hossza, indexelve van-e
Ha inkább SQL lekérdezéssel szeretnéd:
A. Egy oszlop tulajdonságai:
Csak
USER_TAB_COLUMNS
-t használj, ha csak a saját sémád érdekel.
B. Hol van indexelve egy oszlop?
Ez kilistázza az összes indexet, amely tartalmazza az adott mezőt, akár összetett indexben is.
🎯 Összefoglalva – hogyan ellenőrizz tábla/mező létezést, típust, indexet:
Módszer | Mire jó | Hogyan |
---|---|---|
🔄 Autocomplete (Ctrl+Space ) | Írás közbeni gyors ellenőrzés | Editorban |
📂 Object Browser | Böngészés, vizuális lekérdezés | Bal oldalon |
🔍 F4 vagy Describe | Tábla szerkezet, indexek | SQL-ben kijelölve |
🧾 SQL lekérdezések | Mély adatmodell-vizsgálat | ALL_TAB_COLUMNS , ALL_INDEXES stb. |
.
🎯 Cél: Információk az UGYFEL.UGYFEL_NEV
mezőről
Amit meg akarunk tudni:
-
Adattípus + hossz
-
Kötelező-e (nullable?)
-
Indexelve van-e (és ha igen, milyen index része)
-
Constraint-ek (pl. UNIQUE, PRIMARY KEY, CHECK)
🔍 1. Adattípus, hossz, nullable
✅ Ez megmondja:
-
VARCHAR2
vagy más típus -
Hossza (pl.
VARCHAR2(100)
) -
Enged-e
NULL
értéket
🔐 2. Constraint-ek (PK, UK, CHECK, FK)
Itt látszik:
-
C
– Check constraint -
P
– Primary key -
U
– Unique -
R
– Foreign key (referencia más táblára)
📈 3. Index-információk az UGYFEL_NEV
mezőről
Megtudhatod:
-
Van-e index rajta
-
Az index egyedi-e (UNIQUE)
-
Egyéni vagy összetett indexben szerepel-e
-
Mi a pozíciója az indexen belül
🧭 Alternatíva: PL/SQL Developer-ben GUI-val
-
Bal oldalon nyisd meg az Object Browser-t
-
Válaszd a
UGYFEL
táblát (kereshetsz is rá fent) -
Kattints jobb gombbal → Describe (F4)
-
Menj az alábbi fülekre:
-
Columns → típus, hossz, nullable
-
Constraints → PK, UK, CHECK
-
Indexes → melyik mező része
-
🧪 Példa eredmény (elképzelt)
Tulajdonság | Érték |
---|---|
Típus | VARCHAR2(100) |
Nullable | NO (kötelező mező) |
Indexelve | IGEN (IX_UGYFEL_NEV ) |
Index típusa | Normál, nem UNIQUE |
Constraint | CHECK (pl. length > 2 ) |
💡 TIPP – gyors keresés mező szerint:
Ha nem tudod, melyik táblában van a UGYFEL_NEV
, de szeretnéd megtalálni:
További szempontok
Nézzük meg a részleteket
✅ 1. Lekérdezés: Mely mezők nincsenek indexelve, de gyakran szerepelnek WHERE-ben
🎯 Forrás: V$SQL
és DBA_TAB_COLUMNS
, DBA_IND_COLUMNS
🧠 Mit csinál ez?
-
Átnézi a
v$sql
nézetben tárolt SQL-eket -
Kikeresi, hogy milyen oszlopok szerepelnek
WHERE
-ben -
Ellenőrzi, hogy ezek indexelve vannak-e
-
Kiszűri a nem indexelteket
-
Rangsorolja, melyik hányszor szerepel
✅ 2. Lekérdezés: Mező kardinalitása (szűrési erő)
🎯 Forrás: DBA_TAB_COL_STATISTICS
🧠 Mit jelent?
-
NUM_DISTINCT
: hány különböző érték szerepel a mezőben → magas érték = jól szűr -
DENSITY
: minél kisebb, annál jobb szűrő a mező -
NUM_NULLS
: hány sorban nincs érték -
SAMPLE_SIZE
: hány sor alapján becsültek
💡 Tipp: ha nincs friss statisztika
🧩 Példák értelmezésére:
Column | num_distinct | density | Megjegyzés |
---|---|---|---|
UGYFEL_ID | 1,000,000 | 0.000001 | Tökéletes index jelölt (jó szűrő) |
UGYFEL_NEV | 10,000 | 0.0001 | Jó szűrő (név alapú keresés) |
STATUSZ | 3 | 0.3 | Rossz szűrő (alacsony kardinalitás) |
Megjegyzések
Megjegyzés küldése