SQL. Kaip krūvoje lentų rasti stulpelį

Categories SQLPosted on

Kad tapčiau tikru duomenų analitiku, teko pradėti gilintis į visokias įmonės duombazes. O čia atėjo ir pirmoji pažintis su SQL. Pirmas kelias dienas tas SQL man nepatiko, nes teko analizuoti jau parašytą script’ą ir ieškoti – kas negerai suformuotoje duomenų lentoje. Bet paskui atsirado progų ir pačiam pa’script’inti, tai tuomet jau pradėjo ir patikti 🙂

Žodžiu, visas įdomumas šito reikalo yra tame, kad prisijungus prie duomenų bazės joje randi šimtus ar tūkstančius visokių lentų, view’ų ir pan. ir norint ką nors ten surasti pradžioje būna labai sudėtinga.

Man teko turimame script’e prie duomenų pridėti vieną stulpelį, kuris turėjo būti kažkurioje kitoje lentoje ir su tik maždaug žinomu pavadinimu. Pradžioje pradėjau tiesiog bukai eiti per susijusias lentas ir ieškoti to stulpelio. O paskui pagalvojau, kad reikia atrasti gudresnį būdą, ir jį radau 🙂

Tiesiog reikia pasileisti va tokį script’uką:

SELECT table_name, COLUMN_NAME 
FROM all_tab_columns
WHERE COLUMN_NAME LIKE '%RUSIS%'

Skriptukas prabėga per visą duombazę ir šiuo atveju randa visus stulpelius, kuriuose yra tekstas „RUSIS“. Radęs atvaizduoja tikslų stulpelio ir lentos pavadinimą. Tiesa, šis scriptas skirtas Oracle duombazėms kitoms, jis gali šiek tiek skirtis.

Ką gi, dar vienas įrankis į mano sąskaitą 🙂

2 comments

  1. Šaunuolis. Dar vieną patarimą galiu duoti. Gali būti prikurta daugiau bazių, daug schemų, ir kartais nereikia ieškoti per absoliučiai visas schemas (gali užtrukti arba išduoti per daug atsakymų), užtenka tik tos schemos prie kurios esi prisijungęs, tada:

    FROM user_tab_columns

    Na, čia bendram išprūsimui, gal kada nors pravers kokioje nors situacijoje. Man buvo tokia situacija 🙂

    1. Dėkui už patarimą 🙂 Kol kas tai man čia šitie reikalai kaip kosmosas 😀 viena žinoti SQL komandas, o kita duombazių struktūrą, kur ko ieškoti, kokia logika ir t.t. Viena diena man patinka knaisiotis po jas, kitą – jau ne 😀 Python, visgi, įdomiau 😀

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *