Új hozzászólás Aktív témák
-
bambano
titán
válasz
sztanozs
#2106
üzenetére
A bármi az nem az ms sql express.
Te azt mondtad, hogy az ilyen express kiadásoknak lehet komoly alternatívája a pg. szerintem meg nem, fullos oracle-nek, ms sql szervernek, stb. bárminek lehet. ha meg az ora és a pg árazását hasonlítom össze... nem is kell folytatnom a mondatot. -
bambano
titán
olvasgatom ezt a remek mysql doksit, ilyenek vannak benne:
- az enumos oszlop típusa lehet string vagy int. remek.
- ha beszúrsz egy nemlétező értékkel rendelkező rekordot, akkor simán lecseréli üres stringre.
- számokat csak stringként lehet belerakni, így ha egy gyengén típusos nyelvvel kérdezed le, mint az nagy divat, akkor nem tudod eldönteni, hogy mit adott vissza az sql szerver.hát szóval lehet, hogy nem sért adatbázistervezési szabályt (egyelőre még nem találtam meg a bizonyítékot
), de hogy az implementációjától sírva kirohannék a világból, az biztos. -
bambano
titán
"Ez úgy hangzott, mintha az SQL használatával nagyságrendekkel rosszabb teljesítményt érnénk el": ez valószínűleg azért hangzott úgy, mert igaz, feltéve, hogy nem az eredeti szövegkörnyezetéből kiszakítva értelmezed a mondatot. az eredeti szövegkörnyezetben nem az volt az állítás, hogy egyik sql lekérdezés a másik sqlhez képest milyen, hanem az, hogy egy adott sql lekérdezés egy nem sql rendszerű, itt konkrétan hálós volt emlegetve, adatbáziskezelőhöz képest milyen. hát lassú.
Az eredeti mondat ez volt: "merthogy az sql masszívan nem hatékony akár a hálós adatbáziskezelőket nézed, " és igen, az sql rohadtul nem hatékony egy hálós adatbáziskezelőhöz képest, pláne, ha a lekérdezés olyan, amire a hálóst tervezték.
a személy meg a város kérdéskör meg akkor lesz érdekes, ha egy városból több személy van, pláne, ha nem egyszerre töltik be az adatokat, és akkor elkezdik a t. userek mindenféle néven illetni a településeket. ez még városoknál nem annyira nyilvánvaló, de én még nem láttam olyan adatbázist, ahol az utcaneveket képesek lettek volna egységesen írni. az meg, hogy ilyenkor nyakonvágjam a t. usert, kívánatos, de nem lehetséges megoldás

no mindegy, járod a magad útját, oszt jónapot.
-
bambano
titán
ha csinálsz egy személyzeti nyilvántartást, a település nevét ott se rakod be karakteresen, hanem csinálsz hozzá egy szótár táblát és integer azonosítóval "linkeled".
pontosan ugyanezért denormalizálás, amiről beszélsz.azok után pedig, hogy azt állítottam, az sql-ben a teljesítményt feláldozzuk más célok elérése érdekében, ez a link mennyiben releváns?
-
bambano
titán
ha egy táblában van ötezer sor, aminek egy mezőjében 10 stringből található 1, akkor az denormalizált.
a string rendszerű tárolással meg az a baj, hogy könnyű elgépelni, mikor hivatkozol rá, esetleg van benne ékezet is, amitől fejreállnak a kliensek, meg hasonlók. persze mondhatod erre, hogy nem, de abból az lesz, hogy most nem, és később?
az egész sql bagázs arról szól, hogy a hatékonyságot feláldozzuk más erények érdekében. merthogy az sql masszívan nem hatékony akár a hálós adatbáziskezelőket nézed, akár a nosql-t, vagy ilyeneket.
-
bambano
titán
ezt az ötletet a Chomsky féle normálformákról és az adatbázis normalizálásról szóló vizsgán ne vezessétek elő, mert megbuktatnak

átfogalmazva: az ötlet rossz, nem denormalizálunk adatbázist.
a helyes megoldás, hogy felveszel egy kulcstáblát, és abba belerakod a szövegeket, azonosítóval.
amikor az adatbáziskezelés elveiről van szó, akkor a disk io nem számít szerintem.
-
bambano
titán
debian, postgresql
van-e arra mód, hogy egy select eredményéből újabb aggregált eredményt csináljak anélkül, hogy letenném egy ideiglenes táblába?
részletek:
van egy tábla, benne szerződések, és egy ügyfélazonosító. egy ügyfélnek tetszőleges számú szerződése lehet.
azt szeretném tudni, hogy hány ügyfél van, akinek 1,2,3,... darab szerződése van.
addig oké, hogy egy select ugyfelid,count(*) as darab from szerzodes megmondja, hogy egy ügyfélnek hány szerződése van, de erre kellene még egy aggregálás a darab szerint.tia
-
bambano
titán
válasz
csabyka666
#2047
üzenetére
ahhoz, hogy lásd ennek a célját, érdemes először alaposan elolvasni a Chomsky-féle normálformákat.
-
bambano
titán
-
bambano
titán
számlafejbe végösszeget... a pokolba vezető út is jószándékkal van kikövezve

-
bambano
titán
-
-
bambano
titán
válasz
martonx
#1833
üzenetére
de nem akarom a query recordjain végiglépkedni, mert egy query-m van.
van egy táblám, van benne n darab query. ezekből a querykből mindig pontosan egyre van szükségem, sem többre, sem kevesebbre. pontosan egy elemű for ciklust futtatni nem látszik hasznosnak. majd egy másik, későbbi időpontban egy másik queryre van szükségem, de akkor is csak pontosan egyre.(#1834) Ispy

-
bambano
titán
válasz
martonx
#1831
üzenetére
a probléma a következő: van egy halom mérési eredményem. ebből csinálni kell egy halom grafikont. a grafikon legyártása gyakorlatilag ugyanolyan lépésekből áll, kivéve, hogy az adatsort, amiből lesz, más-más query-k adják. ezért gondoltam arra, hogy a különbözőséget jelentő queryket belerakom egy táblába, a többihez írok egy darab scriptet, aminek egy paramétere, hogy hanyadik query-s grafikont csinálja meg és azt futtatom.
ehhez kellene egy olyan, amit más programozási nyelvekben evalnak szoktak hívni, hogy összerakom valahogy egy stringbe a queryt és azt ugyanúgy feldolgoztatom, mintha simán beírt query lenne.
"Úgy értettem, hogy egy query eredményeként kigenerálsz egy rakás SQL query-t, és ezeket szeretnéd egymás után futtatni programozottan.": mindig egy query lesz az eredmény, azt kell futtatni.
Erre elvileg (postgrestől elvonatkoztatva) két módszer létezhet:
- van készen eval függvény
- tárolt eljárást kell rá írni.A postgresben nincs eval függvény, meg más sem, amire hunyorítva nézve eval függvény lehetne, ezért ez az út járhatatlan.
A postgresnek a tárolt eljárási környezetében van olyan, hogy visszatérési eredményként egy query által generált táblát adok vissza, de ezzel az a probléma, hogy a tárolt eljárás definíciós részében meg kell adni a tábla formátumát, hogy milyen rekordtípust fog visszaadni, az pedig nem egyforma. Így nem tudom a tárolt eljárásban a return query exec-et használni.
-
bambano
titán
válasz
martonx
#1829
üzenetére
Három dolgot nem értek a válaszodban:
- függvényt kerestem volna eredetileg, ez meg tárolt procedúrában egy vezérlési szerkezet
- attól, hogy for-ral dolgozom fel a query eredményét, hogyan fog változni a tárolt procedúra által visszaadott adatok típusa?
- miért kellene for-t használnom arra, amire van beépített kész utasítás?tartok tőle, nem ugyanazt értettük a kérdésem alatt.
-
bambano
titán
válasz
Speeedfire
#1824
üzenetére
execute vagy pl/pgsql scriptben van, vagy prepared statementben. Ez utóbbi esetben nem így kell meghívni, hanem a nevével és a paramétereivel.
a pl/pgsql scripttel azért nem bírtam még zöldágra vergődni, mert nem lehet tudni előre, hogy milyen formátumban adja vissza a táblát az exec, de azt előre bele kellene drótozni a scriptbe. pech.
-
bambano
titán
válasz
Speeedfire
#1822
üzenetére
én úgy látom, hogy itt a from query-ben megadott select eredményét hozza ki, nem pedig a megadott select lefuttatásával kapott eredményt.
de lehet, hogy elgépeltem valamit, nem tudom.
-
bambano
titán
kellene gyors segítség: postgresql-ben van valami eval vagy exec szerű függvény? valami ilyen kellene, hogy:
select * from eval (select sql_command from table where id=1);
egy halom grafikont kellene legyártanom, és utálnám, ha kézzel kellene. tia.
-
bambano
titán
válasz
dellfanboy
#1798
üzenetére
az milyen jó lesz, ha rájönnek, hogy az ő biztonsági előírásaik ellenére meg tudtad oldani a feladatot, és leadtad, ahelyett, hogy szólták volna, hogy akadályozva vagy.
na akkor fognak fejek hullani, sorozatban, a tied csak az első lesz, de nem az egyetlen.
-
bambano
titán
válasz
Jester01
#1731
üzenetére
egy insert into tabla (sql_command) values ('select * from customer where name like 'kovács%';'); utasítás szerintem nem fog lefutni.
az még nekem is egyértelmű, hogy itt a belső aposztrófokat escapelni kell. és még mit?
de mivel az itteni hozzászólások alapján többen is jobban konyítanak ehhez, mint én, hasznosnak láttam feltenni a kérdést. -
bambano
titán
válasz
Jester01
#1729
üzenetére
adminisztrációs rendszer. jávában, webes felülettel. időnként beesik a főnök agyába, hogy erről meg arról listát akar. én meg nem akarok folyton gép előtt dekkolni, hogy megcsináljam neki a listát.
ezért azt találtam ki, hogy írok egy programrészt, ami egy tetszőleges select eredményét xls-be konvertálva letölthetővé teszi a webes felületről. egy tábla, abban egy rekord egy lekérdezés, egyik mező név, másik mező egy text, amiben a select van. ha a főnöknek kiújul a könyökfájása, akkor összematekolom az sql kifejezést és beletöltöm az adatbázis táblájába távolról.na innen indul a kérdés, hogy milyen formátumban töltsem bele. utána ő a webes felületén kiválasztja egy dropdown menüből, hogy melyik listát akarja, klikkel és letöltődik a lista.
egy átlagos selectben nyilván lesz aposztróf, stb. amit csak úgy nem lehet inzertálni a táblába, meg szelektálni belőle. ehhez kellene a net nagy iq-ja, hogy hogyan kódoljam a selectet, amit utána jávában egyszerűen vissza lehet konvertálni sql stringgé, amit utána le tudod futtatni.
de nekem nem kell webes felület, hogy beletöltsem az adatbázisba, egyrészt mer minek, másrészt nem baj az, ha ők nem tudnak mindenféle bravúros dolgot könnyen beletölteni, amivel utána kigyalulnak mindent.
a base64, mint eddig elhangzott ötlet, egészen jónak tűnik, csak megvárom, tud-e valaki jobbat (ezt a mondatot erősen értsd magadra
) -
bambano
titán
válasz
Jester01
#1725
üzenetére
nem használhatok paraméteres sql-t, mert semmilyen előzetes infóm nincs arról, hogy milyen selectet akarnak később... azt akarom megoldani, hogy egyszer megfaragom a programot jávában, utána pedig bármilyen hasfájásuk van, csak betolok egy rekordot egy táblába és le tudják tölteni a keresés eredményét.
ezt, hogy előre semmit nem tudok a lekérdezésről, nemigen lehet paraméterezni...
a bármi más escapelését eddig kerülőúton oldottam meg...
-
bambano
titán
válasz
Peter Kiss
#1723
üzenetére
nekem is ez volt a kezdő ötlet, de itt szokott lenni jobb is...
-
bambano
titán
a kérdés konkrétan postgresql és jáva, de szerintem általánosítható.
text mezőben akarok sql kereséseket tárolni. hogy kell escape-lni, van-e rá valami szabvány eljárás vagy kész függvény?
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Trollok komolyan
- Motoros topic
- Kerékpárosok, bringások ide!
- Parfüm topik
- Apple MacBook
- Milyen billentyűzetet vegyek?
- EAFC 26
- További aktív témák...
- 2018 MacBook Air 13 Retina, i5, 256 GB SSD / 8 GB ram, nemrég hőpasztázva + tisztítva, karcmentes,
- LENOVO ThinkPad s3 YOGA 14",i5-5200U,8GB DDR3,256GB SSD, WIN10,TOUCH
- HIHETETLEN! DE ÚJ DOBOZOS LAPTOPOK AKÁR FÉLPÉNZÉRT FÉLÁRON !!! ///////// FÉLPÉNZES LAPTOP //////////
- HP EliteBook 830 G8 11.Gen i5 16/256GB Gyári magyar bill, kb.0 perces, üzletből, 12 hó garanciával
- HIHETETLEN! DE ÚJ DOBOZOS LAPTOPOK AKÁR FÉLPÉNZÉRT FÉLÁRON !!! ///////// FÉLPÉNZES LAPTOP //////////
- BESZÁMÍTÁS! 16GB SK Hynix 1600Mhz DDR3L memória garanciával hibátlan működéssel
- Apple iPad Air 5.Gen 64GB 100% (1év Garancia) - AKCIÓ
- Apple iPhone 12 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 16 Pro Max 256GB Desert Titanium használt, karcmentes 95% akku (344 ciklus) 6 hó
- Apple iPhone 13 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
), de hogy az implementációjától sírva kirohannék a világból, az biztos.

