Hirdetés

Új hozzászólás Aktív témák

  • kw3v865
    senior tag

    Sziasztok!

    PostgreSQL-ben a következőre keresek hatékony, azaz gyors megoldást: adott egy táblám, melynek az ID mezője serial típusú, azaz minden egyes insertnél eggyel nő az értéke. Olyan lekérdezést írok, ami csak az utolsó, azaz legnagyobb ID-jú sort updateli. Szerintetek miként lehet kiválasztani a leggyorsabban a legutolsóként beinsertelt sort?
    Most így csinálom:
    WHERE id IN (SELECT max(id) FROM table)

    Van ennél hatékonyabb, azaz gyorsabb módszer?

  • Dinter
    addikt

    nem 100%, hogy jó
    select licenseplate, vehicleidnum, brand, cartype, registration from car where carid in (select carid from rental group by carid having count(rentalid) =3);

    Köszi, működik, ezer hála :R

  • velizare
    nagyúr

    Sziasztok.

    Feladat: ki kell listázni a háromszor kölcsönzött autókat (having-gel). Ezek a táblák vannak: [link]

    Arra gondoltam, hogy mivel már megcsináltam az egyes autókhoz az összes kölcsönzést, ezt csoportosítanám rendszám szerint, majd megnézném, hogy a száma egyenlő-e hárommal, de nem igazán akar összejönni.

    Eddig így próbáltam:

    SELECT LicensePlate, VehicleIdNum, Brand, CarType, Registration FROM CAR
    HAVING COUNT(SELECT LicensePlate FROM CAR
    WHERE RENTAL.CARID=CAR.CARID)=3;

    nem 100%, hogy jó
    select licenseplate, vehicleidnum, brand, cartype, registration from car where carid in (select carid from rental group by carid having count(rentalid) =3);

  • Dinter
    addikt

    Sziasztok.

    Feladat: ki kell listázni a háromszor kölcsönzött autókat (having-gel). Ezek a táblák vannak: [link]

    Arra gondoltam, hogy mivel már megcsináltam az egyes autókhoz az összes kölcsönzést, ezt csoportosítanám rendszám szerint, majd megnézném, hogy a száma egyenlő-e hárommal, de nem igazán akar összejönni.

    Eddig így próbáltam:

    SELECT LicensePlate, VehicleIdNum, Brand, CarType, Registration FROM CAR
    HAVING COUNT(SELECT LicensePlate FROM CAR
    WHERE RENTAL.CARID=CAR.CARID)=3;

  • #74220800
    törölt tag

    Először azt kellene tisztázni, hogy milyen fajta SQL, mert Oracle adatbázisban nincs olyan, hogy INT(2). Olyan van, hogy INT, amit egyébként senki nem használ, vagy olyan, hogy NUMBER(2, 0). Ez megy (és akkor még a VARCHAR2 szóba sem jött):

    CREATE TABLE ELSO
    (MASODIK NUMBER(2, 0) NOT NULL,
    HARMADIK VARCHAR(14),
    NEGYEDIK VARCHAR(13),
    CONSTRAINT OSZT_PK PRIMARY KEY (MASODIK));

    oh köszi.
    sorry de en most csak copyztam .
    nekem sima oracle sql-re van szüksegem.
    gondolom az oktato közben atirta mysql-re, mert az könnyebben elerhetö otthonrol.

  • bpx
    őstag

    thx a valaszokat!

    De megint akadalyba ütköztem. Nem tudom megcsinalni a tablat....
    Szerintetek itt, honnet hianyolja a jobb zarojelet?
    ORA-00907: missing right parenthesis

    CREATE TABLE ELSO
    (MASODIK INT(2) NOT NULL,
    HARMADIK VARCHAR(14),
    NEGYEDIK VARCHAR(13),
    CONSTRAINT OSZT_PK PRIMARY KEY (MASODIK));

    Először azt kellene tisztázni, hogy milyen fajta SQL, mert Oracle adatbázisban nincs olyan, hogy INT(2). Olyan van, hogy INT, amit egyébként senki nem használ, vagy olyan, hogy NUMBER(2, 0). Ez megy (és akkor még a VARCHAR2 szóba sem jött):

    CREATE TABLE ELSO
    (MASODIK NUMBER(2, 0) NOT NULL,
    HARMADIK VARCHAR(14),
    NEGYEDIK VARCHAR(13),
    CONSTRAINT OSZT_PK PRIMARY KEY (MASODIK));

  • #74220800
    törölt tag

    thx a valaszokat!

    De megint akadalyba ütköztem. Nem tudom megcsinalni a tablat....
    Szerintetek itt, honnet hianyolja a jobb zarojelet?
    ORA-00907: missing right parenthesis

    CREATE TABLE ELSO
    (MASODIK INT(2) NOT NULL,
    HARMADIK VARCHAR(14),
    NEGYEDIK VARCHAR(13),
    CONSTRAINT OSZT_PK PRIMARY KEY (MASODIK));

  • tm5
    tag

    SQL Server Developer Edition is ingyenes.

    Így van, de ha még most ismerkedik az SQL-lel akkor az Express is bőven elég.
    A Developer Edition lényegében egy ingyenes Enterprise Edition, szóval sok olyan dolgot is tartalmaz ami neki szerintem fölösleges.

  • Peter Kiss
    őstag

    Hát van MS SQL-ből és Oracle-ből is egy un. Express Edition ami ingyenes. Felrakod lokálisan magadnak és kész. De lehet, hogy ha csak egyszeübb dolgokat akarsz kipróbálni akkor az sql fiddle is elég neked.

    SQL Server Developer Edition is ingyenes.

  • tm5
    tag

    Hi,

    nem tudtok valamilyen ingyenes szervert, ahol sql utasitasokat tudnek gyakorolni? Zh-ra gyakorolnek es az egyetemi szerver itthonrol nem erhetö el....

    Hát van MS SQL-ből és Oracle-ből is egy un. Express Edition ami ingyenes. Felrakod lokálisan magadnak és kész. De lehet, hogy ha csak egyszeübb dolgokat akarsz kipróbálni akkor az sql fiddle is elég neked.

  • #74220800
    törölt tag

    Hi,

    nem tudtok valamilyen ingyenes szervert, ahol sql utasitasokat tudnek gyakorolni? Zh-ra gyakorolnek es az egyetemi szerver itthonrol nem erhetö el....

  • zolynet
    veterán

    és el is nevezheted az oszlopokat, amire akarod. pl.
    select count(order_id) as 'Rendelések száma' from tt WHERE YEAR(order_date) = 2017;

    Köszi, az aliasozás az oké, a túlbonyolító fejemmel van a baj. :B

  • velizare
    nagyúr

    Mindig túlbonyolítom. :W
    Köszi! ;)

    és el is nevezheted az oszlopokat, amire akarod. pl.
    select count(order_id) as 'Rendelések száma' from tt WHERE YEAR(order_date) = 2017;

  • zolynet
    veterán

    Pl. union helyett simán egy sorban, több oszloppal:

    select
    count(order_id), count(distinct restaurant_id), count(distinct customer_id), sum(purchase_value)
    from tt
    WHERE YEAR(order_date) = 2017
    ;

    Mindig túlbonyolítom. :W
    Köszi! ;)

  • bpx
    őstag

    Hogy lehetne ezt a lekérdezést kicsit zizelláltabban: sqlfiddle
    Listázni kell egy select-be, hogy 2017-ben hány darab megrendelés történt, mekkora összértékben, hány különböző étteremből (mondjuk unique-ot írnak) jött ez a megrendelés illetve hány különböző ügyfél rendelt.

    Pl. union helyett simán egy sorban, több oszloppal:

    select
    count(order_id), count(distinct restaurant_id), count(distinct customer_id), sum(purchase_value)
    from tt
    WHERE YEAR(order_date) = 2017
    ;

  • zolynet
    veterán

    Hogy lehetne ezt a lekérdezést kicsit zizelláltabban: sqlfiddle
    Listázni kell egy select-be, hogy 2017-ben hány darab megrendelés történt, mekkora összértékben, hány különböző étteremből (mondjuk unique-ot írnak) jött ez a megrendelés illetve hány különböző ügyfél rendelt.

  • Szia, azokra a régi szar gépekre csak azért xampp-t felrakni, hogy legyen phpmyadmin rajtuk, elég overkill.

    A MySql-nek van ám hivatalos GUI-ja is http://www.oldapps.com/mysql-gui-tools.php?system=Windows_XP
    Emellé felraksz egy XP-n latest MySql-t és máris egy csomó szívástól megkímélted magad.

    Fa es erdo esetet ismered? ;)

  • nyunyu
    félisten

    Mindenkinek koszonom a reagalasokat, egyben valaszolok:

    1. Nem vagyok programozo, csak egy onkentes segito, akinek annyi a feladata, hogy mukodokepes gepet adjon at a tanaroknak.

    2. Eeeeegen, anno nekem is acces2k-t tanitottak, mert abban lehetett gyorsan osszekattintgatni a kapcsolatokat.
    Szerintem egyedul az a resze tartotta eletben - ha lett volna mysql-hez az access-ben levo grafikus megjeleniteshez hasonlo, azonnal a mennybe ment volna.

    A tanarok reszerol is az volt az igeny, hogy parancssorbol es editorokkal dolgoznak, de legyen mellette valami "grafikus megjelenites".
    Ezert jott a xampp, abbol csak a mysql 5.39 server es 5.0 kliens megy apache 2.4 alatt (a tobbi program letiltva).
    Tehat mysql 5-ben tudnak programozni es php 5.4 parancsokat hasznalni.
    A phpmyadmin 4.2 pedig lehetoseget ad latni "grafikusan" az adatbazisok tablait, szerkezetet, es 25 soronkent listazni egy-egy tabla tartalmat.

    3. A gepek beuzemelve, egyedul azert nem tudom oket kiadni a kezembol, mert nem tudom letrehozni az indulo tablakat, amelyeknek nemcsak azonosaknak kell lenniuk, de importalni kell tudniuk csv-bol.

    Koszonom a tippet, akkor phpmyadmin parancssorbol megprobalom, az "auto increment" hianyzik a "grafikus" phpmyadmin-os lehetosegek kozul.

    Az se lenne rossz, ha a csv fajlbol importalas parancssorbol menne, mert tanulok legalabb megtanulnak a gepeles elonyeit a kattintgatasos marhasagokkal szemben, plane, amikor kiderul, hogy a kattintgatasos megoldas erosen butit a parancssoros lehetosegekhez kepest.;)

    4. (csak info gyanant) A tanuloknak notepadplus-ben kell majd dolgozniuk, ezugyben is szamitok par visszajelzesre a tanaroktol, mert Visual Studio vagy Atom volt az eredeti elvaras, de azok mar eleve nem xp-re keszultek.;)

    Valamelyik régebbi, XPre még feltelepíthető SQL Server Express?
    Ahogy nézem a 2008 R2 SP2 még felmenne, 2012 már nem.

    Azokban lévő SQL Server Management Studio GUIja nem sokban különbözött a Visual Studiotól.

  • martonx
    veterán

    Mindenkinek koszonom a reagalasokat, egyben valaszolok:

    1. Nem vagyok programozo, csak egy onkentes segito, akinek annyi a feladata, hogy mukodokepes gepet adjon at a tanaroknak.

    2. Eeeeegen, anno nekem is acces2k-t tanitottak, mert abban lehetett gyorsan osszekattintgatni a kapcsolatokat.
    Szerintem egyedul az a resze tartotta eletben - ha lett volna mysql-hez az access-ben levo grafikus megjeleniteshez hasonlo, azonnal a mennybe ment volna.

    A tanarok reszerol is az volt az igeny, hogy parancssorbol es editorokkal dolgoznak, de legyen mellette valami "grafikus megjelenites".
    Ezert jott a xampp, abbol csak a mysql 5.39 server es 5.0 kliens megy apache 2.4 alatt (a tobbi program letiltva).
    Tehat mysql 5-ben tudnak programozni es php 5.4 parancsokat hasznalni.
    A phpmyadmin 4.2 pedig lehetoseget ad latni "grafikusan" az adatbazisok tablait, szerkezetet, es 25 soronkent listazni egy-egy tabla tartalmat.

    3. A gepek beuzemelve, egyedul azert nem tudom oket kiadni a kezembol, mert nem tudom letrehozni az indulo tablakat, amelyeknek nemcsak azonosaknak kell lenniuk, de importalni kell tudniuk csv-bol.

    Koszonom a tippet, akkor phpmyadmin parancssorbol megprobalom, az "auto increment" hianyzik a "grafikus" phpmyadmin-os lehetosegek kozul.

    Az se lenne rossz, ha a csv fajlbol importalas parancssorbol menne, mert tanulok legalabb megtanulnak a gepeles elonyeit a kattintgatasos marhasagokkal szemben, plane, amikor kiderul, hogy a kattintgatasos megoldas erosen butit a parancssoros lehetosegekhez kepest.;)

    4. (csak info gyanant) A tanuloknak notepadplus-ben kell majd dolgozniuk, ezugyben is szamitok par visszajelzesre a tanaroktol, mert Visual Studio vagy Atom volt az eredeti elvaras, de azok mar eleve nem xp-re keszultek.;)

    Szia, azokra a régi szar gépekre csak azért xampp-t felrakni, hogy legyen phpmyadmin rajtuk, elég overkill.

    A MySql-nek van ám hivatalos GUI-ja is http://www.oldapps.com/mysql-gui-tools.php?system=Windows_XP
    Emellé felraksz egy XP-n latest MySql-t és máris egy csomó szívástól megkímélted magad.

  • velizare
    nagyúr

    Mindenkinek koszonom a reagalasokat, egyben valaszolok:

    1. Nem vagyok programozo, csak egy onkentes segito, akinek annyi a feladata, hogy mukodokepes gepet adjon at a tanaroknak.

    2. Eeeeegen, anno nekem is acces2k-t tanitottak, mert abban lehetett gyorsan osszekattintgatni a kapcsolatokat.
    Szerintem egyedul az a resze tartotta eletben - ha lett volna mysql-hez az access-ben levo grafikus megjeleniteshez hasonlo, azonnal a mennybe ment volna.

    A tanarok reszerol is az volt az igeny, hogy parancssorbol es editorokkal dolgoznak, de legyen mellette valami "grafikus megjelenites".
    Ezert jott a xampp, abbol csak a mysql 5.39 server es 5.0 kliens megy apache 2.4 alatt (a tobbi program letiltva).
    Tehat mysql 5-ben tudnak programozni es php 5.4 parancsokat hasznalni.
    A phpmyadmin 4.2 pedig lehetoseget ad latni "grafikusan" az adatbazisok tablait, szerkezetet, es 25 soronkent listazni egy-egy tabla tartalmat.

    3. A gepek beuzemelve, egyedul azert nem tudom oket kiadni a kezembol, mert nem tudom letrehozni az indulo tablakat, amelyeknek nemcsak azonosaknak kell lenniuk, de importalni kell tudniuk csv-bol.

    Koszonom a tippet, akkor phpmyadmin parancssorbol megprobalom, az "auto increment" hianyzik a "grafikus" phpmyadmin-os lehetosegek kozul.

    Az se lenne rossz, ha a csv fajlbol importalas parancssorbol menne, mert tanulok legalabb megtanulnak a gepeles elonyeit a kattintgatasos marhasagokkal szemben, plane, amikor kiderul, hogy a kattintgatasos megoldas erosen butit a parancssoros lehetosegekhez kepest.;)

    4. (csak info gyanant) A tanuloknak notepadplus-ben kell majd dolgozniuk, ezugyben is szamitok par visszajelzesre a tanaroktol, mert Visual Studio vagy Atom volt az eredeti elvaras, de azok mar eleve nem xp-re keszultek.;)

    mysql home\binből mysql -u UserName -p YourDatabaseName < SomeShit.csv ?
    jó ez mondjuk csv-vel nem megy, mert nem tudja, melyik táblába kell felrakni, csak ha .sql az export.

    de ha tudnak programozni mysqlben, akkor ez egy feladat nekik. a fenti paranccsal kapnak egy parancsssoros klienst, onnantól pedig load data statementet kell tudniuk használni hozzá.

  • zolynet
    veterán

    Table Variables and Transactions

    Egy ponton rossz szavakat használ, de: "the table variable doesn’t participate in transactions".

    Tipikus példa lehet felhasználásra, mikor egy nagyobb bármit futtatsz, és ilyen debug jellegű adatokat gyűjtesz, ha a tranzakciódat rollback-elni kell, akkor ezek a debug adatok még megmaradnak.

    Mivel SQL Server-ről van szó, így az SQL Server Books Online ajánlott, minden is benne van, le van írva.

    +Ispy köszönöm mindkettőtöknek ;)

  • Ja, nekem ne mond, még a mai napig van olyan ügyfelünk, aki a 1x éves accesses programunkat használja. :DDD

    De szerencsére én már nem dolgozok vele.

    Mindenkinek koszonom a reagalasokat, egyben valaszolok:

    1. Nem vagyok programozo, csak egy onkentes segito, akinek annyi a feladata, hogy mukodokepes gepet adjon at a tanaroknak.

    2. Eeeeegen, anno nekem is acces2k-t tanitottak, mert abban lehetett gyorsan osszekattintgatni a kapcsolatokat.
    Szerintem egyedul az a resze tartotta eletben - ha lett volna mysql-hez az access-ben levo grafikus megjeleniteshez hasonlo, azonnal a mennybe ment volna.

    A tanarok reszerol is az volt az igeny, hogy parancssorbol es editorokkal dolgoznak, de legyen mellette valami "grafikus megjelenites".
    Ezert jott a xampp, abbol csak a mysql 5.39 server es 5.0 kliens megy apache 2.4 alatt (a tobbi program letiltva).
    Tehat mysql 5-ben tudnak programozni es php 5.4 parancsokat hasznalni.
    A phpmyadmin 4.2 pedig lehetoseget ad latni "grafikusan" az adatbazisok tablait, szerkezetet, es 25 soronkent listazni egy-egy tabla tartalmat.

    3. A gepek beuzemelve, egyedul azert nem tudom oket kiadni a kezembol, mert nem tudom letrehozni az indulo tablakat, amelyeknek nemcsak azonosaknak kell lenniuk, de importalni kell tudniuk csv-bol.

    Koszonom a tippet, akkor phpmyadmin parancssorbol megprobalom, az "auto increment" hianyzik a "grafikus" phpmyadmin-os lehetosegek kozul.

    Az se lenne rossz, ha a csv fajlbol importalas parancssorbol menne, mert tanulok legalabb megtanulnak a gepeles elonyeit a kattintgatasos marhasagokkal szemben, plane, amikor kiderul, hogy a kattintgatasos megoldas erosen butit a parancssoros lehetosegekhez kepest.;)

    4. (csak info gyanant) A tanuloknak notepadplus-ben kell majd dolgozniuk, ezugyben is szamitok par visszajelzesre a tanaroktol, mert Visual Studio vagy Atom volt az eredeti elvaras, de azok mar eleve nem xp-re keszultek.;)

  • Ispy
    nagyúr

    Hát akkor ennyi erővel lehet MS SQL express is, az tuti ingyenes, van import funkció, hozzá meg Management Studio, backup-restore is megy rajta.

    Ms sqlben tudsz csinálni egy importáló scriptet is, amit csak lefuttatsz és bennt vannak az adatok, persze ez mehet fapadosan, meg lehet csinosítani, okosítani.

    Gugli első találat

    A táblába csinálsz egy identity column-t, ami primary key is egyben, így az garantáltan egyedi és futó sorszám lesz.

    De akár azt is lehet, hogy van egy központi adatbázis, oda feltöltöd a csv-t scripttel vagy varázslóval és utána a komplett táblát scripteled ki insertbe és akkor csak ezt az inserted futtatod le a többi gépen, mindegy a lényeg, hogy sokféleképpen meg lehet oldani, manuális, fél automata vagy akár automata módszerrel is.

    Sőt, a komplett adatbázist is tudod telepíteni scriptből és akkor a backup/restorral sem kell szenvedni, csak megnyitod a kis telepítő scripted F5 és kész az új adatbázis.

    Később, ha lesz hálózat, akkor meg mehet source controlba az egész. ;]

  • velizare
    nagyúr

    A ROWID nagyon nem erre való. Semmi sem garantálja a növekedést, és ha a táblát akár csak adatbázison belül is elmozgatod, a ROWID értékek változnak.

    igaz. engem általában kielégít az ilyetén használata, de elfogadom, végülis nem erre való, igazad van.

    megnéztem, hogy mi mit használunk ilyenre, és ahol van, ott egy szekvencia van rá felvéve, amit egy tábálra rakott before insert trigger pakol bele az új sorba. de gondolom ennél azért már szebb módszerek is vannak erre.

  • bpx
    őstag

    a myphpadmint felejtsük el sql oktatásra. az arra való, hogy azt a weboldalt, amit phpben létrehozol, meg tudd hajtani egy adatbázisból származó adatokkal.

    ha én tanítanék offline adatbáziskezelést, akkor fognék egy mysql szervert (ha abból van ingyenes, és ami fut xp-n), létrehoznék rajta egy adatbázist, azt feltölteném sa szükséges sémákkal, táblákkal, értékekkel, róla egy backupot, és utána ezt a backupot restoreolnám az összes oktatógépen. és akkor mindenkinél ugyanaz van. ez esetben szükséges egy sql kliens is, amivel hozzá tudsz kapcsolódni az adatbázishoz. ízlés szerint tudsz válogatni, nagyon jó ingyenesek vannak. a hardcore sqlesek a toadra esküsznek, én személy szerint a dbeavert szeretem, de ennél mondjuk pont macerás a csv import (egy virtuális db-t kell neki felkonfigurálni hozzá).

    2, ezt az oracle alapból egy rowid nevű pszeudocolumn-nal támogatja külön kérés nélkül.
    mysqlnél meg mondjuk létrehozol egy primary key-t az táblához, auto incrementtel. mondjuk így:

    CREATE TABLE Persons (
    ID int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
    );

    afaik excel már képes közvetlen db-be exportolni, de még soha nem próbáltam ki, hogy ezt hogy is teszi.

    A ROWID nagyon nem erre való. Semmi sem garantálja a növekedést, és ha a táblát akár csak adatbázison belül is elmozgatod, a ROWID értékek változnak.

  • Ispy
    nagyúr

    akár, az így a leírtak alapján még jobb.
    csak az accesst kerüljük már el így 2018ban a picsába. ;]

    Ja, nekem ne mond, még a mai napig van olyan ügyfelünk, aki a 1x éves accesses programunkat használja. :DDD

    De szerencsére én már nem dolgozok vele.

  • velizare
    nagyúr

    Hát akkor ennyi erővel lehet MS SQL express is, az tuti ingyenes, van import funkció, hozzá meg Management Studio, backup-restore is megy rajta.

    akár, az így a leírtak alapján még jobb.
    csak az accesst kerüljük már el így 2018ban a picsába. ;]

  • Ispy
    nagyúr

    a myphpadmint felejtsük el sql oktatásra. az arra való, hogy azt a weboldalt, amit phpben létrehozol, meg tudd hajtani egy adatbázisból származó adatokkal.

    ha én tanítanék offline adatbáziskezelést, akkor fognék egy mysql szervert (ha abból van ingyenes, és ami fut xp-n), létrehoznék rajta egy adatbázist, azt feltölteném sa szükséges sémákkal, táblákkal, értékekkel, róla egy backupot, és utána ezt a backupot restoreolnám az összes oktatógépen. és akkor mindenkinél ugyanaz van. ez esetben szükséges egy sql kliens is, amivel hozzá tudsz kapcsolódni az adatbázishoz. ízlés szerint tudsz válogatni, nagyon jó ingyenesek vannak. a hardcore sqlesek a toadra esküsznek, én személy szerint a dbeavert szeretem, de ennél mondjuk pont macerás a csv import (egy virtuális db-t kell neki felkonfigurálni hozzá).

    2, ezt az oracle alapból egy rowid nevű pszeudocolumn-nal támogatja külön kérés nélkül.
    mysqlnél meg mondjuk létrehozol egy primary key-t az táblához, auto incrementtel. mondjuk így:

    CREATE TABLE Persons (
    ID int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
    );

    afaik excel már képes közvetlen db-be exportolni, de még soha nem próbáltam ki, hogy ezt hogy is teszi.

    Hát akkor ennyi erővel lehet MS SQL express is, az tuti ingyenes, van import funkció, hozzá meg Management Studio, backup-restore is megy rajta.

  • velizare
    nagyúr

    Ez volt a legfrissebb, ami mukodott XP alatt, ezt kell hasznalni, mert itt nincs halokartya, off-line alapon minden gyerek csak a tananyaggal tud foglalkozni, ami php es sql lesz elso korben. Igy a tanaroknak se kell

    Az a feladatom, hogy legyen egyseges indulo tabla, amit tudnak majd modositani es boviteni, es akkor kiadhatjuk a gepeket az oktatoknak, de valamiert a phpmyadmin allandoan uj es uj tablakat hoz letre csv import eseteben.

    Ha a phpmyadmin a rossz - amint arra bambano utalt - akkor arra kernek megoldasi javaslatot, hogyan tudom megoldani

    1. a csv importalasokat ugyanabba a tablaba

    2. automatikusan novekvo unique azonosito letrehozasat minden adatsorhoz.

    Vagy arra kernek megoldast, hogyan tudok letrehozni mindenhol azonos indulo adatbazist azonos tablaval es azonos adatokkal es biztositani a lehetoseget, hogy a tanarok altal kozzetett excel tablazatok mindig importalhatoak legyenek az adatbazisba, ott mar nyilvan ujabb tablakba.

    a myphpadmint felejtsük el sql oktatásra. az arra való, hogy azt a weboldalt, amit phpben létrehozol, meg tudd hajtani egy adatbázisból származó adatokkal.

    ha én tanítanék offline adatbáziskezelést, akkor fognék egy mysql szervert (ha abból van ingyenes, és ami fut xp-n), létrehoznék rajta egy adatbázist, azt feltölteném sa szükséges sémákkal, táblákkal, értékekkel, róla egy backupot, és utána ezt a backupot restoreolnám az összes oktatógépen. és akkor mindenkinél ugyanaz van. ez esetben szükséges egy sql kliens is, amivel hozzá tudsz kapcsolódni az adatbázishoz. ízlés szerint tudsz válogatni, nagyon jó ingyenesek vannak. a hardcore sqlesek a toadra esküsznek, én személy szerint a dbeavert szeretem, de ennél mondjuk pont macerás a csv import (egy virtuális db-t kell neki felkonfigurálni hozzá).

    2, ezt az oracle alapból egy rowid nevű pszeudocolumn-nal támogatja külön kérés nélkül.
    mysqlnél meg mondjuk létrehozol egy primary key-t az táblához, auto incrementtel. mondjuk így:

    CREATE TABLE Persons (
    ID int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
    );

    afaik excel már képes közvetlen db-be exportolni, de még soha nem próbáltam ki, hogy ezt hogy is teszi.

  • A konfigodat olvasva, mondjuk kezdetnek ugorhatnál bő 10 évet előre az időben, és naprakész toolokkal kellene dolgozni.

    Ez volt a legfrissebb, ami mukodott XP alatt, ezt kell hasznalni, mert itt nincs halokartya, off-line alapon minden gyerek csak a tananyaggal tud foglalkozni, ami php es sql lesz elso korben. Igy a tanaroknak se kell

    Az a feladatom, hogy legyen egyseges indulo tabla, amit tudnak majd modositani es boviteni, es akkor kiadhatjuk a gepeket az oktatoknak, de valamiert a phpmyadmin allandoan uj es uj tablakat hoz letre csv import eseteben.

    Ha a phpmyadmin a rossz - amint arra bambano utalt - akkor arra kernek megoldasi javaslatot, hogyan tudom megoldani

    1. a csv importalasokat ugyanabba a tablaba

    2. automatikusan novekvo unique azonosito letrehozasat minden adatsorhoz.

    Vagy arra kernek megoldast, hogyan tudok letrehozni mindenhol azonos indulo adatbazist azonos tablaval es azonos adatokkal es biztositani a lehetoseget, hogy a tanarok altal kozzetett excel tablazatok mindig importalhatoak legyenek az adatbazisba, ott mar nyilvan ujabb tablakba.

  • martonx
    veterán

    Tudna valaki segiteni, hogyan lehet Phpmyadmin-t megbizhatova tenni?

    Par rejtelyes esetet produkal:

    1. nincs automatikus id
    Adatbazis letrehozva, magyar utf8 beallitva, tabla kezzel begepelve jo, de mindig reklamal, hogy nincs egyedi azonosito, nem adja automatikusan. Kulon letrehozva azonosito, beallitva unique-nak, attol kezdve nem reklamal, de adatbevitelnel ott is kezzel kell megadni az azonositot, nem noveli automatikusan.

    2. csv fajlbol importalva adatokat mindig uj tablat hoz letre, nem hajlando a korabbit hasznalni, meg akkor se, ha az altala korabban letrehozott tablaba kellene importalni ujabb adatot. Mindig uj tablat hoz letre.

    kornyezet:
    XP SP3 alatt XAMPP 1.8.3 van, a csomagbol csak apache 2 es mysql 5 fut, hozza Firefox 41 bongeszo, szepen mukodik. Phpmyadmin 4.2.7 is elvileg jol mukodik, a fentieket kiveve. ;]

    A konfigodat olvasva, mondjuk kezdetnek ugorhatnál bő 10 évet előre az időben, és naprakész toolokkal kellene dolgozni.

  • bambano
    titán

    Tudna valaki segiteni, hogyan lehet Phpmyadmin-t megbizhatova tenni?

    Par rejtelyes esetet produkal:

    1. nincs automatikus id
    Adatbazis letrehozva, magyar utf8 beallitva, tabla kezzel begepelve jo, de mindig reklamal, hogy nincs egyedi azonosito, nem adja automatikusan. Kulon letrehozva azonosito, beallitva unique-nak, attol kezdve nem reklamal, de adatbevitelnel ott is kezzel kell megadni az azonositot, nem noveli automatikusan.

    2. csv fajlbol importalva adatokat mindig uj tablat hoz letre, nem hajlando a korabbit hasznalni, meg akkor se, ha az altala korabban letrehozott tablaba kellene importalni ujabb adatot. Mindig uj tablat hoz letre.

    kornyezet:
    XP SP3 alatt XAMPP 1.8.3 van, a csomagbol csak apache 2 es mysql 5 fut, hozza Firefox 41 bongeszo, szepen mukodik. Phpmyadmin 4.2.7 is elvileg jol mukodik, a fentieket kiveve. ;]

    úgy, hogy letörlöd.

  • Tudna valaki segiteni, hogyan lehet Phpmyadmin-t megbizhatova tenni?

    Par rejtelyes esetet produkal:

    1. nincs automatikus id
    Adatbazis letrehozva, magyar utf8 beallitva, tabla kezzel begepelve jo, de mindig reklamal, hogy nincs egyedi azonosito, nem adja automatikusan. Kulon letrehozva azonosito, beallitva unique-nak, attol kezdve nem reklamal, de adatbevitelnel ott is kezzel kell megadni az azonositot, nem noveli automatikusan.

    2. csv fajlbol importalva adatokat mindig uj tablat hoz letre, nem hajlando a korabbit hasznalni, meg akkor se, ha az altala korabban letrehozott tablaba kellene importalni ujabb adatot. Mindig uj tablat hoz letre.

    kornyezet:
    XP SP3 alatt XAMPP 1.8.3 van, a csomagbol csak apache 2 es mysql 5 fut, hozza Firefox 41 bongeszo, szepen mukodik. Phpmyadmin 4.2.7 is elvileg jol mukodik, a fentieket kiveve. ;]

  • Peter Kiss
    őstag

    1.
    Szerintem nincsen különbség, performancbe talán, én erre ISNULL-t használok, erre lett kitalálva.
    2.
    Gondolom a BEGIN TRAN előtti állapotot fogja, igaz még csak én is mostanában fedeztem fel magnak a tábla változókat, jobb később, mint soha. :D

    Table Variables and Transactions

    Egy ponton rossz szavakat használ, de: "the table variable doesn’t participate in transactions".

    Tipikus példa lehet felhasználásra, mikor egy nagyobb bármit futtatsz, és ilyen debug jellegű adatokat gyűjtesz, ha a tranzakciódat rollback-elni kell, akkor ezek a debug adatok még megmaradnak.

    Mivel SQL Server-ről van szó, így az SQL Server Books Online ajánlott, minden is benne van, le van írva.

  • Ispy
    nagyúr

    Sziasztok!

    Lenne egy két kérdésem, megtaláltam egy régi tesztet és gondoltam megkérdezem hogy jól gondolom-e.

    1.
    Mi a különbség a következő utasítások végeredményhalmazai között?

    SELECT ISNULL(@A,A)
    FROM dbo.Table

    SELECT CASE WHEN @A IS NULL THEN A ELSE @A END
    FROM dbo.Talbe

    Azt gondolom, hogy az eredménynek ugyanannak kellene lennie, rosszul gondolom? :F
    Az eredmény típusa lesz itt a bukfenc?

    2.
    Ha egy tábla típusú változóba (declare @temp table (id int)) rekordokat szúrunk tranzakción belül,
    akkor mi lesz a változó tartalma, ha ROLLBACK TRAN utasítást adunk ki.

    Szerintem a beszúrás előtti állapot, amit a változó tartalmazott. (természetesen a beszúrandó rekordok nélkül)

    1.
    Szerintem nincsen különbség, performancbe talán, én erre ISNULL-t használok, erre lett kitalálva.
    2.
    Gondolom a BEGIN TRAN előtti állapotot fogja, igaz még csak én is mostanában fedeztem fel magnak a tábla változókat, jobb később, mint soha. :D

  • zolynet
    veterán

    Sziasztok!

    Lenne egy két kérdésem, megtaláltam egy régi tesztet és gondoltam megkérdezem hogy jól gondolom-e.

    1.
    Mi a különbség a következő utasítások végeredményhalmazai között?

    SELECT ISNULL(@A,A)
    FROM dbo.Table

    SELECT CASE WHEN @A IS NULL THEN A ELSE @A END
    FROM dbo.Talbe

    Azt gondolom, hogy az eredménynek ugyanannak kellene lennie, rosszul gondolom? :F
    Az eredmény típusa lesz itt a bukfenc?

    2.
    Ha egy tábla típusú változóba (declare @temp table (id int)) rekordokat szúrunk tranzakción belül,
    akkor mi lesz a változó tartalma, ha ROLLBACK TRAN utasítást adunk ki.

    Szerintem a beszúrás előtti állapot, amit a változó tartalmazott. (természetesen a beszúrandó rekordok nélkül)

  • kw3v865
    senior tag

    Ötlet, én így csinálnám (nincsen tapasztalatom ekkora táblával, szkuzi):

    - hozzáadsz egy ID mezőt a táblához, running number 1-8000000-ig folyamatos sorszámod lesz, sorba rendezés, ahogy neked sorba kellenek az adatok
    - joinolod a táblát saját magához úgy, hogy tábla1 ID=tábla2ID+1, igy kapni fogsz egy olyan lekérdezést, ahol minden tábla1 sor mellett ott lesz a következő sor adatai
    - ráereszted a függvényt az updattel
    - én a helyedben tesztelném mondjuk a megoldást 100k adattal és ha jó, akkor darabokban futtatnám a taskot nem egyben, mert a világ összes memóriája sem lesz elég, pláne ha tranzakcióban fut az update....

    Köszi mindenkinek az ötleteket. Végül megkerültem a problémát, a több millió sor miatt végül más irányból közelítettem meg a problémát, a memória korlát miatt...

  • VirsLee
    támogató

    Sziasztok!

    A következő SQL-es (PostgreSQL) kérdésre keresem a megoldást:
    adott egy táblám, melynek mezői: "id", "valami", "masvalami". Az "id" és a "valami" oszlopok fel vannak töltve, míg a "masvalami" egyelőre üres.
    A feladat az, hogy a "masvalami" oszlopot UPDATE-eljem, melyhez egy függvényt alkalmazok (most teljesen irreleváns, hogy mit csinál ez a függvény).
    A függvény 2 argumentumot kér: 1. a "masvalami" mező értéke 2. a következő sor "masvalami" mezőjének az értéke.
    Szerintetek hogy lehetne ezt a legegyszerűbben és leggyorsabban megoldani? Számít a gyorsaság, hiszen 8 millió rekord van a táblában.

    Mit jelent ebben az esetben a következő sor? ID+1?
    Miért van szükség függvényre?
    Az összes sort be szeretnéd update-elni, vagy néha egyet-egyet?

  • Ispy
    nagyúr

    Sziasztok!

    A következő SQL-es (PostgreSQL) kérdésre keresem a megoldást:
    adott egy táblám, melynek mezői: "id", "valami", "masvalami". Az "id" és a "valami" oszlopok fel vannak töltve, míg a "masvalami" egyelőre üres.
    A feladat az, hogy a "masvalami" oszlopot UPDATE-eljem, melyhez egy függvényt alkalmazok (most teljesen irreleváns, hogy mit csinál ez a függvény).
    A függvény 2 argumentumot kér: 1. a "masvalami" mező értéke 2. a következő sor "masvalami" mezőjének az értéke.
    Szerintetek hogy lehetne ezt a legegyszerűbben és leggyorsabban megoldani? Számít a gyorsaság, hiszen 8 millió rekord van a táblában.

    Ötlet, én így csinálnám (nincsen tapasztalatom ekkora táblával, szkuzi):

    - hozzáadsz egy ID mezőt a táblához, running number 1-8000000-ig folyamatos sorszámod lesz, sorba rendezés, ahogy neked sorba kellenek az adatok
    - joinolod a táblát saját magához úgy, hogy tábla1 ID=tábla2ID+1, igy kapni fogsz egy olyan lekérdezést, ahol minden tábla1 sor mellett ott lesz a következő sor adatai
    - ráereszted a függvényt az updattel
    - én a helyedben tesztelném mondjuk a megoldást 100k adattal és ha jó, akkor darabokban futtatnám a taskot nem egyben, mert a világ összes memóriája sem lesz elég, pláne ha tranzakcióban fut az update....

  • bambano
    titán

    Sziasztok!

    A következő SQL-es (PostgreSQL) kérdésre keresem a megoldást:
    adott egy táblám, melynek mezői: "id", "valami", "masvalami". Az "id" és a "valami" oszlopok fel vannak töltve, míg a "masvalami" egyelőre üres.
    A feladat az, hogy a "masvalami" oszlopot UPDATE-eljem, melyhez egy függvényt alkalmazok (most teljesen irreleváns, hogy mit csinál ez a függvény).
    A függvény 2 argumentumot kér: 1. a "masvalami" mező értéke 2. a következő sor "masvalami" mezőjének az értéke.
    Szerintetek hogy lehetne ezt a legegyszerűbben és leggyorsabban megoldani? Számít a gyorsaság, hiszen 8 millió rekord van a táblában.

    ha az a kérdés, hogy hogyan hozod össze a rekordot meg az utána következő rekordot, akkor ebből inspirálódhatsz:

    lehet táblának saját magával vett descartes szorzatát venni:

    select t1.*,t2.* from tabla t1, tabla t2;

    ezt a te esetedben nagyjából így kellene alkalmazni:

    select t1.*,fuggveny(t1.masvalami,t2.masvalami) from tabla t1, tabla t2 where t1.id+1=t2.id;

    ebből meg tudod faragni az udapte utasítást.

    ha egy 8 millió soros táblára ráborítod, jusson eszedbe, hogy adatbáziskezelésnél a sok ramot csak a mégtöbb ram pótolhatja :)

  • kw3v865
    senior tag

    Sziasztok!

    A következő SQL-es (PostgreSQL) kérdésre keresem a megoldást:
    adott egy táblám, melynek mezői: "id", "valami", "masvalami". Az "id" és a "valami" oszlopok fel vannak töltve, míg a "masvalami" egyelőre üres.
    A feladat az, hogy a "masvalami" oszlopot UPDATE-eljem, melyhez egy függvényt alkalmazok (most teljesen irreleváns, hogy mit csinál ez a függvény).
    A függvény 2 argumentumot kér: 1. a "masvalami" mező értéke 2. a következő sor "masvalami" mezőjének az értéke.
    Szerintetek hogy lehetne ezt a legegyszerűbben és leggyorsabban megoldani? Számít a gyorsaság, hiszen 8 millió rekord van a táblában.

  • kem
    addikt

    Nem értek a TimesTenhez, szóval csak belemakogok, de ez a rész

    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    miért nem join-ként van definiálva?

    Illetve itt a like-hoz nem kell %-jel vagy valami? Alapból benne keres? Vagy itt csak azokra vagy kiváncsi, ahol guestPIN, akkor meg minek a like, miért nem simán =?

    Koszonom a valaszokat megprobalok valaszolni mindegyikre:

    Ketto fele Subscription van. az egyikhez van pin rendelve a masikhoz meg csak teloszam. Ebbol csak az egyik variacioval kell foglalkoznunk azert szurjuk ezt itt. Atirom =re koszonom.

    #3856 sztanozs:
    ez alapján kellene excludolnia?
    Igen ez az utolso filter amivel az osszes subscriptionbol kivonom azokat ahol deffinialva van a parameter. az erteke mindegy a lenyeg, hogy lehessen valtoztatni. Egyebkent ahol nincs deffinialva ott amutomatikusan orokli es mivel a hierarhiat kell valtoztatnom a nagyobb feladat soran ezert kell mindenkeppen fixalni ezen a szinten az ertekeket. Viszont ha nincs deffinialva akkor nem tudom atallitani.
    itt egyenlőségjel helyett nem IN kellene?
    Nem. Itt csak 1 ertekre van szuksegunk es azzal szurni.

    Kozben a tobbiek arra gondolnak, hogy valoszinuleg a tul nagy adathalmaz miatt kifut a memoriabol az egyebkent is memoriaban futo adatbazik csak valamiert ezt nem reportalja az OS logba vagy a Timesten logba szoval ez a kovetkezo dolog aminek utana nezek.

    szerk:

    Mrgvan a megoldas. a CREATE VIEW-ban kicsereltem a LIKE-ot =ra
    create view waitRoomEnabled as
    select s."UID" as SUBSCRIPTION_UID
    from subscription s
    join subscription_attribute sa on s."UID" = sa.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    join domain_parameter dp on sa.DOMAIN_PARAMETER_UID = dp."UID"
    where dp.ID = 'waitRoomEnabled'
    ;

  • VirsLee
    támogató

    where
    ml.SUBSCRIPTION_UID is null
    <-- ez alapján kellene excludolnia?
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    <-- itt egyenlőségjel helyett nem IN kellene?
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    1. igen, és fog is
    2. szebb az IN, de ha garantálni tudod, hogy csak egy elemet ad vissza a subquery, nem lesz vele gond, persze ettől még nem ez lesz a leghatékonyabb :)

  • kw3v865
    senior tag

    [link] szerintem az al-lekérdezésre tegyél egy rank()-et és a fő lekérdezésben az alapján tudsz szűkíteni.

    Köszönöm, megnézem!

  • sztanozs
    veterán

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    where
    ml.SUBSCRIPTION_UID is null
    <-- ez alapján kellene excludolnia?
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    <-- itt egyenlőségjel helyett nem IN kellene?
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

  • velizare
    nagyúr

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    ha nem működik egy join írd át nested selectre, és nézd meg úgy.

    @Ispy: tipikusan nehezebben átlátható, főleg az egzotikus fajta. én leszoktam róla, az interpreter/optimizer úgyis szétszedi, amire neki tetszik. a fenti statementben is van 3 join, úgy hiányzik a negyedik, mint púp a hátamra.

  • velizare
    nagyúr

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    meh, dupla.

    plz töröljük.

  • Ispy
    nagyúr

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    Nem értek a TimesTenhez, szóval csak belemakogok, de ez a rész

    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    miért nem join-ként van definiálva?

    Illetve itt a like-hoz nem kell %-jel vagy valami? Alapból benne keres? Vagy itt csak azokra vagy kiváncsi, ahol guestPIN, akkor meg minek a like, miért nem simán =?

  • Koszi a valaszt. Nekem az SQL meg elegge uj ezt is segitseggel raktam ossze kollegaval aki mar elment nyugdijba. Az adatbazis eleg komplikalt (legalabb is nekem :D ) A feladat pedig az, hogy a waitRoomEnabled view-kent letrejovo tablaban talalhato subscription-oket kell megkulmboztetni azoktol az osszes subscription-tol ahol ez a waitRoomEnabled parameter nincsen definialva, igy annak erteket nem lehet megvaltoztatni. Ezert valasztjuk ki az is null erteket, tehat balra azt tartjuk meg ahol az nincsen definialva. Ez eddig mukodott mindegyik rendszeren de most azt latom, hogy nehol forditva mukodik mint ahogy eddig es 0 erteket ad. Az uj modszer pedig megmutatja, hogy majdnem 400.000 ilyen Subscription wan ebben az adathalmazban. Ez egyebkent egy 1 evvel ez elotti feladat amiben ezek az SQL-ek nem megfeleloen futottak le es probalom kideriteni miert. altalaban 3 illetve 6-bol egyszer nem futott le rendesen. Mindenhol ugyan ez a waitRoomEnabled parameter.

    Thx így már jobban értem, mi volt a cél. Reflexből a NOT IN meg NOT EXISTS variációkra gondolnék ilyen esetekben, nem erre a változatra, ezért volt furcsa, de valszeg ez csak ilyen egyéni dolog.

    Sajnos érdemi ötletem az továbbra sincs, ha itt az a probléma, hogy tökugyanaz a query hol ilyen, hol olyan eredményt ad, és közben egész biztos lehetsz benne, hogy a többi kapcsolt tábla nem variál a dolgon. Egyáltalán nem tűnik normálisnak, se az in-memory, se más db esetén.

  • bambano
    titán

    Sziasztok!

    PostgreSQL-ben szeretnék kiválasztani SELECT-tel egy adott sort a sor száma alapján. Tehát van egy al-lekérdezésem, mely x db sort tartalmaz, és annak szeretném kiválasztani pl. a 3. sorát.
    Van valami ötletetek miként lehet ezt megtenni?

    [link] szerintem az al-lekérdezésre tegyél egy rank()-et és a fő lekérdezésben az alapján tudsz szűkíteni.

  • kem
    addikt

    Sry előre ha fura a kérdés, de left OUTER join és az exclude hogyan említhető egyszerre? Amikor utoljára ORA-ztam, az outer join pont az ellentéte volt, teljes megőrzés a bal táblára.

    Azt sem értem, hogy miért kell a vonatkozó mezőn ott a null filter, de emögött biztos van szándék.

    Koszi a valaszt. Nekem az SQL meg elegge uj ezt is segitseggel raktam ossze kollegaval aki mar elment nyugdijba. Az adatbazis eleg komplikalt (legalabb is nekem :D ) A feladat pedig az, hogy a waitRoomEnabled view-kent letrejovo tablaban talalhato subscription-oket kell megkulmboztetni azoktol az osszes subscription-tol ahol ez a waitRoomEnabled parameter nincsen definialva, igy annak erteket nem lehet megvaltoztatni. Ezert valasztjuk ki az is null erteket, tehat balra azt tartjuk meg ahol az nincsen definialva. Ez eddig mukodott mindegyik rendszeren de most azt latom, hogy nehol forditva mukodik mint ahogy eddig es 0 erteket ad. Az uj modszer pedig megmutatja, hogy majdnem 400.000 ilyen Subscription wan ebben az adathalmazban. Ez egyebkent egy 1 evvel ez elotti feladat amiben ezek az SQL-ek nem megfeleloen futottak le es probalom kideriteni miert. altalaban 3 illetve 6-bol egyszer nem futott le rendesen. Mindenhol ugyan ez a waitRoomEnabled parameter.

  • kw3v865
    senior tag

    Sziasztok!

    PostgreSQL-ben szeretnék kiválasztani SELECT-tel egy adott sort a sor száma alapján. Tehát van egy al-lekérdezésem, mely x db sort tartalmaz, és annak szeretném kiválasztani pl. a 3. sorát.
    Van valami ötletetek miként lehet ezt megtenni?

  • Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    Sry előre ha fura a kérdés, de left OUTER join és az exclude hogyan említhető egyszerre? Amikor utoljára ORA-ztam, az outer join pont az ellentéte volt, teljes megőrzés a bal táblára.

    Azt sem értem, hogy miért kell a vonatkozó mezőn ott a null filter, de emögött biztos van szándék.

  • kem
    addikt

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

  • marositech
    senior tag

    Ha 65Mbyte-ról van szó, akkor én a helyedben simán kigeneráltnám a komplett DB-t sémástól, adatostól sql scriptbe, felraknék egy SQL 2017 (2014-et felrakni így 2018 közepén???) Express Editiont, és ráereszteném a scriptet. Érdekes mód, simán be fog minden menni :)

    Sajnos a számlázóprogram az SQL 2014-et kér. Azaz nem javasolja az ennél frissebb feltelepítését. :(((
    És még kiderült, hogy maga a számlázóprogram is képes menteni és visszaállítani. :)
    Tehát legyalulható minden régi SQL és az újat felrakni. Majd hétfőn kiderül. ;)

  • martonx
    veterán

    Amúgy az elképzelt metódus csak félig jó. Sikeresen upgradelt, de utána a mainternace résznél nem tudok editiont váltani. Szóval marad a backup-restore mód.

    Ha 65Mbyte-ról van szó, akkor én a helyedben simán kigeneráltnám a komplett DB-t sémástól, adatostól sql scriptbe, felraknék egy SQL 2017 (2014-et felrakni így 2018 közepén???) Express Editiont, és ráereszteném a scriptet. Érdekes mód, simán be fog minden menni :)

  • marositech
    senior tag

    Simán be kell neki újabbra rakhatsz fel régi adatbázist, csak fordítva nem.

    Amúgy az elképzelt metódus csak félig jó. Sikeresen upgradelt, de utána a mainternace résznél nem tudok editiont váltani. Szóval marad a backup-restore mód.

  • Ispy
    nagyúr

    Most aza gond, hogy a kedves elődöm nem adta ki a passt. Így nem tudok belépni a database részre.:)

    Össz-vissz az SQL 65 MB :) Ha ilyen pofonegyszerű lenne, akkor minek bonyolítják? :\
    Tehát azt mondod, hogy a 2005-ös backupot szépen befogadja a 2008-as?

    1GB RAM, 10 GB DATA és 1 CPU/4 MAG a korlát.
    Kíváncsiságból kipróbálom a Te megoldásodat. ;)

    Simán be kell neki újabbra rakhatsz fel régi adatbázist, csak fordítva nem.

  • marositech
    senior tag

    Régi adatbázison csinálsz egy backup database-t, felrakod a tetszőleges express editiont és ott meg restore database-zel visszarakod, én biztos nem pöcsölnék ilyen upgradelésekkel, az egész meg van pillanatok alatt.

    Már ha nem egy 20 terrás adatbázisról beszélünk. :DDD

    Azt azért tudják, hogy így 1 GB ramra le lesznek korlátozva? Illetve proci limit is van, ha jól rémlik és azt hiszem 10 GB az adatbázis korlát.

    Most aza gond, hogy a kedves elődöm nem adta ki a passt. Így nem tudok belépni a database részre.:)

    Össz-vissz az SQL 65 MB :) Ha ilyen pofonegyszerű lenne, akkor minek bonyolítják? :\
    Tehát azt mondod, hogy a 2005-ös backupot szépen befogadja a 2008-as?

    1GB RAM, 10 GB DATA és 1 CPU/4 MAG a korlát.
    Kíváncsiságból kipróbálom a Te megoldásodat. ;)

  • Ispy
    nagyúr

    Lépcsőzetes frissítést kért az egyik számlázóprogram.
    2005->2008->2014

    És a standard funkcióját nem is használja ki, elég neki az express.

    Jelenleg azt agyaltam ki, hogy rátolok egy trialos standard 2008-ast, ott már tudok az editionokon változtatni. Kiválasztom az expresst és akkor már elvileg gond nélkül mehetne rá a 2014 express.

    Bár a MSSQL backup restore funkciót nem nagyon ismerem.

    Régi adatbázison csinálsz egy backup database-t, felrakod a tetszőleges express editiont és ott meg restore database-zel visszarakod, én biztos nem pöcsölnék ilyen upgradelésekkel, az egész meg van pillanatok alatt.

    Már ha nem egy 20 terrás adatbázisról beszélünk. :DDD

    Azt azért tudják, hogy így 1 GB ramra le lesznek korlátozva? Illetve proci limit is van, ha jól rémlik és azt hiszem 10 GB az adatbázis korlát.

  • marositech
    senior tag

    Backup-restore. ;]

    Egyébként 2018-ban miért egy 10 éves expressre akartok upgradelni?

    Lépcsőzetes frissítést kért az egyik számlázóprogram.
    2005->2008->2014

    És a standard funkcióját nem is használja ki, elég neki az express.

    Jelenleg azt agyaltam ki, hogy rátolok egy trialos standard 2008-ast, ott már tudok az editionokon változtatni. Kiválasztom az expresst és akkor már elvileg gond nélkül mehetne rá a 2014 express.

    Bár a MSSQL backup restore funkciót nem nagyon ismerem.

  • Ispy
    nagyúr

    Nemtudom, hogy jó helyre írok-e. Próba cseresznye. MSSQL Server téma.
    Sajnos nem lehet upgradelni SQL 2005-öt 2008-ra, mert az Standard verzió, a cél pedig Express.
    Van erre valami nagyon jó okosság?

    Köszönöm előre!

    Backup-restore. ;]

    Egyébként 2018-ban miért egy 10 éves expressre akartok upgradelni?

  • marositech
    senior tag

    Nemtudom, hogy jó helyre írok-e. Próba cseresznye. MSSQL Server téma.
    Sajnos nem lehet upgradelni SQL 2005-öt 2008-ra, mert az Standard verzió, a cél pedig Express.
    Van erre valami nagyon jó okosság?

    Köszönöm előre!

  • SunyaMacs
    aktív tag

    Az itteni funkcionalitáshoz azért lehet, hogy többre lenne szükség.
    - messageid
    - topicid
    - status is kell, mert lehet szerkeszteni, moderátor törölheti, stb
    - egy üzenet több csatolt képet is tartalmazhat, ezeket is tárolnod kell, bár értelemszerűen nem ebben a táblában

    Fontos, ha valaki szerkeszt egy hozzászólást megőrzöd-e az eredetit.

    Először írd össze, hogy mit kell ténylegesen tudnia. Ha ez megvan, akkor érdemes mellé valamit tervezni.

    Azóta úgy oldottam meg, hogy csináltam egy másik táblát az üzenetet váltott felhasználóknak, a következő oszlopokkal:
    messages_conversations:
    -id
    -user
    -user2
    -last_msg_time
    -seen

    Ha a felhasználó olyan felhasználónak küld üzenetet, akivel még nem beszélt, mindkettőjüknek be lesz jegyezve a másik(user2), a küldőnek seen igaz, a fogadónak seen hamis. Ha már beszéltek, a last_msg_time és a fogadónak a seen lesz updatelve.

  • VirsLee
    támogató

    Sziasztok!
    Ti hogyan csinálnátok hasonló privát üzenet rendszert, mint ami itt a PH-n van?
    Az alap tábla ötlet:

    messages:
    -from_id
    -to_id
    -text
    -time

    Ha a felhasználó megnyitja az üzeneteket, csoportosítja felhasználónként, kiírja az üzenetek számát és ezt az üzenet ideje szerint rendezi csökkenőbe. Ha rányom a felhasználóra, kiírja a felhasználó által küldött és a felhasználónak küldött üzeneteket.

    Hogyan oldanátok meg a queryket? Előre is köszi!

    Az itteni funkcionalitáshoz azért lehet, hogy többre lenne szükség.
    - messageid
    - topicid
    - status is kell, mert lehet szerkeszteni, moderátor törölheti, stb
    - egy üzenet több csatolt képet is tartalmazhat, ezeket is tárolnod kell, bár értelemszerűen nem ebben a táblában

    Fontos, ha valaki szerkeszt egy hozzászólást megőrzöd-e az eredetit.

    Először írd össze, hogy mit kell ténylegesen tudnia. Ha ez megvan, akkor érdemes mellé valamit tervezni.

  • SunyaMacs
    aktív tag

    Sziasztok!
    Ti hogyan csinálnátok hasonló privát üzenet rendszert, mint ami itt a PH-n van?
    Az alap tábla ötlet:

    messages:
    -from_id
    -to_id
    -text
    -time

    Ha a felhasználó megnyitja az üzeneteket, csoportosítja felhasználónként, kiírja az üzenetek számát és ezt az üzenet ideje szerint rendezi csökkenőbe. Ha rányom a felhasználóra, kiírja a felhasználó által küldött és a felhasználónak küldött üzeneteket.

    Hogyan oldanátok meg a queryket? Előre is köszi!

  • kw3v865
    senior tag

    Sziasztok!

    PostgreSQL-t használok és exportálok CSV-be adatokat for ciklussal így:

    for rec in
    select format('copy(select valami from table where nev=''%s'' order by gid)
    to ''%s'' with csv delimiter '';'' HEADER',nev,'C:/eredmeny/'||nev||'.csv' ) scr from(
    Select distinct nev from tabla)t
    loop
    execute rec.scr;
    end loop;

    Ez most külön CSV-t hoz létre minden egyes névnek. Eddig rendben van, jól működik. Azonban, én azt szeretném, hogy a fájlnévben egy másik mező értéke is szerepeljen. Tehát ne csak a név, hanem egy másik oszlophoz tartozó érték is benne legyen a filenévben. Valahogy így: telepules_nev.CSV
    Minden egyes településhez több név is tartozik.

    Szerintetek hogyan lehet ezt megvalósítani?

    Na, elvileg megoldottam, így: :)

    for rec in
    select format('copy(select valami from table where nev=''%s'' order by gid)
    to ''%s'' with csv delimiter '';'' HEADER',nev,telepules,'C:/eredmeny/'||telepules||'_'||nev||'.csv' ) scr from(
    Select distinct nev, telepules from tabla)t
    loop
    execute rec.scr;
    end loop;

    Azért még leellenőrzöm alaposan, hogy tényleg jó-e.

  • kw3v865
    senior tag

    Sziasztok!

    PostgreSQL-t használok és exportálok CSV-be adatokat for ciklussal így:

    for rec in
    select format('copy(select valami from table where nev=''%s'' order by gid)
    to ''%s'' with csv delimiter '';'' HEADER',nev,'C:/eredmeny/'||nev||'.csv' ) scr from(
    Select distinct nev from tabla)t
    loop
    execute rec.scr;
    end loop;

    Ez most külön CSV-t hoz létre minden egyes névnek. Eddig rendben van, jól működik. Azonban, én azt szeretném, hogy a fájlnévben egy másik mező értéke is szerepeljen. Tehát ne csak a név, hanem egy másik oszlophoz tartozó érték is benne legyen a filenévben. Valahogy így: telepules_nev.CSV
    Minden egyes településhez több név is tartozik.

    Szerintetek hogyan lehet ezt megvalósítani?

  • Petya25
    őstag

    elvileg a dateadd simán időt is képes kezelni, viszont akkor a kezdő offsetet nem stringként, hanem time típusúként kell megadnod, így:

    declare @starttime time(0) = '0:01';
    declare @szam int = '2510';
    select dateadd(mi, @szam,@starttime);
    17:51:00

    az előnye, hogy egyszerű, mint a bevert szög, mert nem kell castolgatni, trimmelegni.
    a hátránya, hogy a nap feletti részt kapod meg, tehát ha 1 napnál több percre jön ki, akkor az óra:perc maradékot kapod, ahogy fent is látod (2510 perc több, mint egy óra). ha kell a nap is, akkor az már datetime.

    Aha, így ez se rossz.
    Csak sajna simán van több kijövő óra mint 24.
    Azért köszönöm.

  • velizare
    nagyúr

    Köszi az ötleteket.

    cain69 - nem tudom a dátummal mit akartál, a szám csak a percek száma, nincs benne dátum :F

    Ispy - a CAST és a %-os megoldás ügyes lett, köszi

    elvileg a dateadd simán időt is képes kezelni, viszont akkor a kezdő offsetet nem stringként, hanem time típusúként kell megadnod, így:

    declare @starttime time(0) = '0:01';
    declare @szam int = '2510';
    select dateadd(mi, @szam,@starttime);
    17:51:00

    az előnye, hogy egyszerű, mint a bevert szög, mert nem kell castolgatni, trimmelegni.
    a hátránya, hogy a nap feletti részt kapod meg, tehát ha 1 napnál több percre jön ki, akkor az óra:perc maradékot kapod, ahogy fent is látod (2510 perc több, mint egy óra). ha kell a nap is, akkor az már datetime.

  • Petya25
    őstag

    Köszi az ötleteket.

    cain69 - nem tudom a dátummal mit akartál, a szám csak a percek száma, nincs benne dátum :F

    Ispy - a CAST és a %-os megoldás ügyes lett, köszi

  • Ispy
    nagyúr

    MS SQL-ben küzdöttem egy számból idő formára konvertálással.
    Ennél egyszerűbb megoldást tud valaki?

    -- percek száma int-ben jön
    declare @szam int = '2510'

    -- ami kéne: óra:perc pl. 41:50
    select rtrim(convert(char, convert(int,@szam/60)))+':'+right('0'+rtrim(convert(char, @szam - convert(int,@szam/60)*60)),2)

    Egész szám:

    [szám]/60

    Maradék:

    [szám]%60

    Pl:

    declare @int integer = 2510

    select @int/60, @int%60, , CAST(@int/60 AS varchar(10)) + ':' + RIGHT('00'+ CAST(@int%60 AS varchar(10)), 2)

  • velizare
    nagyúr

    MS SQL-ben küzdöttem egy számból idő formára konvertálással.
    Ennél egyszerűbb megoldást tud valaki?

    -- percek száma int-ben jön
    declare @szam int = '2510'

    -- ami kéne: óra:perc pl. 41:50
    select rtrim(convert(char, convert(int,@szam/60)))+':'+right('0'+rtrim(convert(char, @szam - convert(int,@szam/60)*60)),2)

    declare @szam int = '2510';
    select dateadd(mi, @szam,'2018/05/22');
    2017-08-26 17:50:00.000

  • Petya25
    őstag

    MS SQL-ben küzdöttem egy számból idő formára konvertálással.
    Ennél egyszerűbb megoldást tud valaki?

    -- percek száma int-ben jön
    declare @szam int = '2510'

    -- ami kéne: óra:perc pl. 41:50
    select rtrim(convert(char, convert(int,@szam/60)))+':'+right('0'+rtrim(convert(char, @szam - convert(int,@szam/60)*60)),2)

  • bambano
    titán

    A helyzetet jól látod, kizárólag saját felhasználásra lenne lett volna :) Már van egy kb. 340 soros Excelem, de itt és most untam meg a kézzel való feltöltését :DD

    akkor az adatvédelmi törvényt nem sérted, csak a szerzői jogról szólót.

  • Johnny_vT
    senior tag

    Azért ez nem ilyen egyértelmű, de jó amit írtál, teljesen rendben van, abszolút jogos. Egyetértek.

    Viszont az árnyaltság miatt: hiszen, ha ő azért gyűjti az adatokat programmal is akár a weboldalról, hogy a saját autóvásárlásához segítse magát, és szűrt, szempontok alapján adatok érdeklik csak amiket később kielemez, az kb ugyanaz, mintha excelbe kézzel bepötyögné és onnan alkotna halmazokat és eredményeket saját magának.

    Ez nekem nem volt egyértelmű Johnny_vT kérdéséből, bár lehet benéztem :)

    Viszont amit Te is írtál, hogy azért gyűjtené az adatokat, hogy egy 3. személynek vagy személyeknek nyújtson információkat belőle akár haszonszerzés miatt is, az valóban adatlopás és személyes adatokhoz fűződő adatvédelmi jog megsértése.

    A helyzetet jól látod, kizárólag saját felhasználásra lenne lett volna :) Már van egy kb. 340 soros Excelem, de itt és most untam meg a kézzel való feltöltését :DD

  • Tanisz
    senior tag

    két dolog:
    1. az adatbázishoz kapcsolódik szerzői jog. az adatbázist valószínűleg abban a gazdasági konstrukcióban építik, hogy bejön az adat, reklámokkal megpakolva kiteszik, azért kapnak díjat, ebből tartják fent a szájtot. ha te excelben pörgeted, akkor megsérted az adatbázis tulajdonos szerzői jogait.
    2. a rajta levő személyes adatokhoz fűződő adatvédelmi jog: az adatot csak arra lehet használni, amire felhasználási engedélyt kaptál az adat tulajdonosától. tehát pl. hiába van kint a nevem, mobilszámom, email címem nyilvános adatbázisban, ha én ezeket az adatokat egy bizonyos célhoz kötötten tettem ki oda, te nem használhatod semmilyen más célra. a felhasználási jogosultságot nem a publicitás alapozza meg, hanem az adatkezelési cél és a hozzá adott engedély.

    tehát ha én azért rakom ki publikusan a telefonszámomat, hogy az autómat megvegyék, akkor azt csak az a webhely kezelheti, amelyikre kiraktam a hirdetésemet, csak azért, hogy az autóm eladásában közreműködjön, plusz a vevő kezelheti abból a célból, hogy vételi szándéka esetén felhívjon. minden más felhasználás illegális. te semmilyen engedélyt nem kaptál az adat kezelésére, tehát nem kezelheted. teljesen mindegy, hol találtad az adatomat, ha nem kaptál tőlem engedélyt a kezelésére, akkor nem kezelheted.

    Azért ez nem ilyen egyértelmű, de jó amit írtál, teljesen rendben van, abszolút jogos. Egyetértek.

    Viszont az árnyaltság miatt: hiszen, ha ő azért gyűjti az adatokat programmal is akár a weboldalról, hogy a saját autóvásárlásához segítse magát, és szűrt, szempontok alapján adatok érdeklik csak amiket később kielemez, az kb ugyanaz, mintha excelbe kézzel bepötyögné és onnan alkotna halmazokat és eredményeket saját magának.

    Ez nekem nem volt egyértelmű Johnny_vT kérdéséből, bár lehet benéztem :)

    Viszont amit Te is írtál, hogy azért gyűjtené az adatokat, hogy egy 3. személynek vagy személyeknek nyújtson információkat belőle akár haszonszerzés miatt is, az valóban adatlopás és személyes adatokhoz fűződő adatvédelmi jog megsértése.

  • tm5
    tag

    Sziasztok!

    PostgreSQL-ben van egy táblám, ami egyik mezőjében számokat tartalmaz ehhez hasonlóan:
    4,5,6,10,11,12,55,56,57,888,889,890

    Tehát számsorozatok, de van köztük kihagyás is. Azt szeretném csinálni, hogy ezeket csoportosítsa össze. Tehát egy új oszlopban kapjon egy azonosítót minden egyes csoport. Példámnál maradva 4 csoport lenne: az elsőben a 4,5,6. Másodikban a 10,11,12 stb.

    Szerintetek hogyan lehetne ezt megvalósítani SQL-ben?

    Szerintem itt pont ezt veséztük ki: [link]

  • kw3v865
    senior tag

    Sziasztok!

    PostgreSQL-ben van egy táblám, ami egyik mezőjében számokat tartalmaz ehhez hasonlóan:
    4,5,6,10,11,12,55,56,57,888,889,890

    Tehát számsorozatok, de van köztük kihagyás is. Azt szeretném csinálni, hogy ezeket csoportosítsa össze. Tehát egy új oszlopban kapjon egy azonosítót minden egyes csoport. Példámnál maradva 4 csoport lenne: az elsőben a 4,5,6. Másodikban a 10,11,12 stb.

    Szerintetek hogyan lehetne ezt megvalósítani SQL-ben?

  • Johnny_vT
    senior tag

    két dolog:
    1. az adatbázishoz kapcsolódik szerzői jog. az adatbázist valószínűleg abban a gazdasági konstrukcióban építik, hogy bejön az adat, reklámokkal megpakolva kiteszik, azért kapnak díjat, ebből tartják fent a szájtot. ha te excelben pörgeted, akkor megsérted az adatbázis tulajdonos szerzői jogait.
    2. a rajta levő személyes adatokhoz fűződő adatvédelmi jog: az adatot csak arra lehet használni, amire felhasználási engedélyt kaptál az adat tulajdonosától. tehát pl. hiába van kint a nevem, mobilszámom, email címem nyilvános adatbázisban, ha én ezeket az adatokat egy bizonyos célhoz kötötten tettem ki oda, te nem használhatod semmilyen más célra. a felhasználási jogosultságot nem a publicitás alapozza meg, hanem az adatkezelési cél és a hozzá adott engedély.

    tehát ha én azért rakom ki publikusan a telefonszámomat, hogy az autómat megvegyék, akkor azt csak az a webhely kezelheti, amelyikre kiraktam a hirdetésemet, csak azért, hogy az autóm eladásában közreműködjön, plusz a vevő kezelheti abból a célból, hogy vételi szándéka esetén felhívjon. minden más felhasználás illegális. te semmilyen engedélyt nem kaptál az adat kezelésére, tehát nem kezelheted. teljesen mindegy, hol találtad az adatomat, ha nem kaptál tőlem engedélyt a kezelésére, akkor nem kezelheted.

    Köszi, így már egyre világosabb a szituáció :R

  • bambano
    titán

    Nem vitatkozni akarok, hiszen az ügyben nincs tapasztalatom. Viszont logikailag nem látom miért lenne a hirdetett járművek adatainak begyűjtése jogsértő, hiszen azok teljesen nyilvánosan publikált adatok, amiket én is, te is bármikor elérhetünk a weboldalon. A különbség, hogy nem a mobile lassú kezelőfelületét kell nyomkodni hozzá, hanem egy Excel táblát / adatbázist pörgetni.

    Analógia (szerintem): mintha egy koncerten egyesével kéne mindenkitől megkérdezned, hogy milyen színű pólót hord, de ehelyett te a lelátóról összeszámolod magadnak.

    A személyes adatok (mint név, telefonszám) ehhez szükségtelenek is lennének. Bár az tény, hogy valószínűleg csak egy extra lekérdezésen múlna azok kigyűjtése is, azaz a lehetőség adott rá (de ezek is nyilvánosan az oldal minden user-ének).

    két dolog:
    1. az adatbázishoz kapcsolódik szerzői jog. az adatbázist valószínűleg abban a gazdasági konstrukcióban építik, hogy bejön az adat, reklámokkal megpakolva kiteszik, azért kapnak díjat, ebből tartják fent a szájtot. ha te excelben pörgeted, akkor megsérted az adatbázis tulajdonos szerzői jogait.
    2. a rajta levő személyes adatokhoz fűződő adatvédelmi jog: az adatot csak arra lehet használni, amire felhasználási engedélyt kaptál az adat tulajdonosától. tehát pl. hiába van kint a nevem, mobilszámom, email címem nyilvános adatbázisban, ha én ezeket az adatokat egy bizonyos célhoz kötötten tettem ki oda, te nem használhatod semmilyen más célra. a felhasználási jogosultságot nem a publicitás alapozza meg, hanem az adatkezelési cél és a hozzá adott engedély.

    tehát ha én azért rakom ki publikusan a telefonszámomat, hogy az autómat megvegyék, akkor azt csak az a webhely kezelheti, amelyikre kiraktam a hirdetésemet, csak azért, hogy az autóm eladásában közreműködjön, plusz a vevő kezelheti abból a célból, hogy vételi szándéka esetén felhívjon. minden más felhasználás illegális. te semmilyen engedélyt nem kaptál az adat kezelésére, tehát nem kezelheted. teljesen mindegy, hol találtad az adatomat, ha nem kaptál tőlem engedélyt a kezelésére, akkor nem kezelheted.

  • nyunyu
    félisten

    Nem vitatkozni akarok, hiszen az ügyben nincs tapasztalatom. Viszont logikailag nem látom miért lenne a hirdetett járművek adatainak begyűjtése jogsértő, hiszen azok teljesen nyilvánosan publikált adatok, amiket én is, te is bármikor elérhetünk a weboldalon. A különbség, hogy nem a mobile lassú kezelőfelületét kell nyomkodni hozzá, hanem egy Excel táblát / adatbázist pörgetni.

    Analógia (szerintem): mintha egy koncerten egyesével kéne mindenkitől megkérdezned, hogy milyen színű pólót hord, de ehelyett te a lelátóról összeszámolod magadnak.

    A személyes adatok (mint név, telefonszám) ehhez szükségtelenek is lennének. Bár az tény, hogy valószínűleg csak egy extra lekérdezésen múlna azok kigyűjtése is, azaz a lehetőség adott rá (de ezek is nyilvánosan az oldal minden user-ének).

    Attól még, hogy nyilvánosan publikált adathalmaz, valakinek a szellemi tulajdonát képezik.

  • Johnny_vT
    senior tag

    szerintem felesleges elolvasni az eula-t, aki feltette az adatait a mobile.de-re, biztosan nem adott rá engedélyt, hogy te onnan leszedd, hiszen nem is tudhatott róla, hogy le akarod szedni.

    az én álláspontom szerint ez az ötlet sérti az adatvédelmi szabályokat, én hozzá se fognék.

    Nem vitatkozni akarok, hiszen az ügyben nincs tapasztalatom. Viszont logikailag nem látom miért lenne a hirdetett járművek adatainak begyűjtése jogsértő, hiszen azok teljesen nyilvánosan publikált adatok, amiket én is, te is bármikor elérhetünk a weboldalon. A különbség, hogy nem a mobile lassú kezelőfelületét kell nyomkodni hozzá, hanem egy Excel táblát / adatbázist pörgetni.

    Analógia (szerintem): mintha egy koncerten egyesével kéne mindenkitől megkérdezned, hogy milyen színű pólót hord, de ehelyett te a lelátóról összeszámolod magadnak.

    A személyes adatok (mint név, telefonszám) ehhez szükségtelenek is lennének. Bár az tény, hogy valószínűleg csak egy extra lekérdezésen múlna azok kigyűjtése is, azaz a lehetőség adott rá (de ezek is nyilvánosan az oldal minden user-ének).

  • bambano
    titán

    Köszi az intést. Délután szakítok időt a jogi nyilatkozatra / EULA-ra, aztán megpróbálom felkutatni az illetőt, aki a Totalcar cikkben szerepel. Valószínűleg kiismeri magát a témában :)

    szerintem felesleges elolvasni az eula-t, aki feltette az adatait a mobile.de-re, biztosan nem adott rá engedélyt, hogy te onnan leszedd, hiszen nem is tudhatott róla, hogy le akarod szedni.

    az én álláspontom szerint ez az ötlet sérti az adatvédelmi szabályokat, én hozzá se fognék.

  • sztanozs
    veterán

    Sziasztok!

    Épp ismerkedni kezdek az SQL-lel, de mielőtt végleg elhatároznám magam, gondoltam rákérdezek itt is, hogy tényleg lenne-e értelme.

    Szóval, a célom az, hogy készítsek egy nagyon-nagyon basic adatbázis lekérdező rendszert, amely különböző online weboldalakról gyűjti ki a kért információkat. Legyen az mobile.de-s autóhirdetés, Vatera, vagy hasonló hirdetési felületek. Hogy konkrétabban megfogalmazzam: elsőként mindenképp mobile.de-vel kezdeném, mert más okból ez érdekel most leginkább.

    A kérdésem inkább jogi, mint technikai jellegű: ha saját erőből vagy segítséggel sikerülne összeraknom egy ilyen adatbányász kódot, azzal az adott weboldal (esetünkben mobile.de) üzemeltetőjét én jogi értelemben megkárosítom? A német adatvédelmi törvények elég szigorúak, viszont technikailag itt nem adatlopásról van szó (hiszen az információ szabadon, ingyen hozzáférhető). Ami egyedül aggályos, hogy ezzel az oldal üzemeltetését lehetővé tévő hirdetéseket kerülném meg, ugyanis a nyers adattáblákban ez nyilván nem jelenik meg.

    Totalcar.hu-n volt régebben egy cikk, ahol arról írtak, hogy egy magyar srác pont ezt tette és így optimalizálta az autókeresést. A kódot természetesen a fenti okokból nem tette közzé és én sem szándékozok szándékosan szivárogtatni :)

    Elolvasod a felhasználási feltételeket, és rögtön ki fog derülni, hogy csinálhatod-e vagy sem (vsz nem).

  • Johnny_vT
    senior tag

    "üzemeltetőjét én jogi értelemben megkárosítom?": igen, egyértelműen megkárosítod.
    "technikailag itt nem adatlopásról van szó (hiszen az információ szabadon, ingyen hozzáférhető": de, adatlopás.

    itt az a lényeg, hogy a mobile.de milyen feltételekkel vette át a hirdető adatait. egyrészt nyilván nem olyannal, hogy azt bárki viheti és akkor a mobile.de rendszerét megkerülve szabadon garázdálkodhat közöttük.
    másrészt aki oda felrakott egy hirdetésben személyes adatot, az azt engedélyezte, hogy azt az adatot a mobile.de az autó eladásával kapcsolatos folyamatokban kezelheti. senki semmilyen más célra nem kezelheti.

    az igaz, hogy a németeknél szigorú a törvény, szóval ha nem akarsz beleszakadni a bírságukba, ne csináld.

    Köszi az intést. Délután szakítok időt a jogi nyilatkozatra / EULA-ra, aztán megpróbálom felkutatni az illetőt, aki a Totalcar cikkben szerepel. Valószínűleg kiismeri magát a témában :)

  • bambano
    titán

    Sziasztok!

    Épp ismerkedni kezdek az SQL-lel, de mielőtt végleg elhatároznám magam, gondoltam rákérdezek itt is, hogy tényleg lenne-e értelme.

    Szóval, a célom az, hogy készítsek egy nagyon-nagyon basic adatbázis lekérdező rendszert, amely különböző online weboldalakról gyűjti ki a kért információkat. Legyen az mobile.de-s autóhirdetés, Vatera, vagy hasonló hirdetési felületek. Hogy konkrétabban megfogalmazzam: elsőként mindenképp mobile.de-vel kezdeném, mert más okból ez érdekel most leginkább.

    A kérdésem inkább jogi, mint technikai jellegű: ha saját erőből vagy segítséggel sikerülne összeraknom egy ilyen adatbányász kódot, azzal az adott weboldal (esetünkben mobile.de) üzemeltetőjét én jogi értelemben megkárosítom? A német adatvédelmi törvények elég szigorúak, viszont technikailag itt nem adatlopásról van szó (hiszen az információ szabadon, ingyen hozzáférhető). Ami egyedül aggályos, hogy ezzel az oldal üzemeltetését lehetővé tévő hirdetéseket kerülném meg, ugyanis a nyers adattáblákban ez nyilván nem jelenik meg.

    Totalcar.hu-n volt régebben egy cikk, ahol arról írtak, hogy egy magyar srác pont ezt tette és így optimalizálta az autókeresést. A kódot természetesen a fenti okokból nem tette közzé és én sem szándékozok szándékosan szivárogtatni :)

    "üzemeltetőjét én jogi értelemben megkárosítom?": igen, egyértelműen megkárosítod.
    "technikailag itt nem adatlopásról van szó (hiszen az információ szabadon, ingyen hozzáférhető": de, adatlopás.

    itt az a lényeg, hogy a mobile.de milyen feltételekkel vette át a hirdető adatait. egyrészt nyilván nem olyannal, hogy azt bárki viheti és akkor a mobile.de rendszerét megkerülve szabadon garázdálkodhat közöttük.
    másrészt aki oda felrakott egy hirdetésben személyes adatot, az azt engedélyezte, hogy azt az adatot a mobile.de az autó eladásával kapcsolatos folyamatokban kezelheti. senki semmilyen más célra nem kezelheti.

    az igaz, hogy a németeknél szigorú a törvény, szóval ha nem akarsz beleszakadni a bírságukba, ne csináld.

  • Tanisz
    senior tag

    Sziasztok!

    Épp ismerkedni kezdek az SQL-lel, de mielőtt végleg elhatároznám magam, gondoltam rákérdezek itt is, hogy tényleg lenne-e értelme.

    Szóval, a célom az, hogy készítsek egy nagyon-nagyon basic adatbázis lekérdező rendszert, amely különböző online weboldalakról gyűjti ki a kért információkat. Legyen az mobile.de-s autóhirdetés, Vatera, vagy hasonló hirdetési felületek. Hogy konkrétabban megfogalmazzam: elsőként mindenképp mobile.de-vel kezdeném, mert más okból ez érdekel most leginkább.

    A kérdésem inkább jogi, mint technikai jellegű: ha saját erőből vagy segítséggel sikerülne összeraknom egy ilyen adatbányász kódot, azzal az adott weboldal (esetünkben mobile.de) üzemeltetőjét én jogi értelemben megkárosítom? A német adatvédelmi törvények elég szigorúak, viszont technikailag itt nem adatlopásról van szó (hiszen az információ szabadon, ingyen hozzáférhető). Ami egyedül aggályos, hogy ezzel az oldal üzemeltetését lehetővé tévő hirdetéseket kerülném meg, ugyanis a nyers adattáblákban ez nyilván nem jelenik meg.

    Totalcar.hu-n volt régebben egy cikk, ahol arról írtak, hogy egy magyar srác pont ezt tette és így optimalizálta az autókeresést. A kódot természetesen a fenti okokból nem tette közzé és én sem szándékozok szándékosan szivárogtatni :)

    Nem vagyok "jogtudor", de ha csak saját felhasználásra csinálod szerintem semmi akadálya nincs,egész addig, amíg az adatkereséseid nem terhelik agyon a szervereket :D
    Bár a mobile.de oldalon utána kellene nézni a Privacy Notice-nál vagy hasonló helyeken.

  • Johnny_vT
    senior tag

    Sziasztok!

    Épp ismerkedni kezdek az SQL-lel, de mielőtt végleg elhatároznám magam, gondoltam rákérdezek itt is, hogy tényleg lenne-e értelme.

    Szóval, a célom az, hogy készítsek egy nagyon-nagyon basic adatbázis lekérdező rendszert, amely különböző online weboldalakról gyűjti ki a kért információkat. Legyen az mobile.de-s autóhirdetés, Vatera, vagy hasonló hirdetési felületek. Hogy konkrétabban megfogalmazzam: elsőként mindenképp mobile.de-vel kezdeném, mert más okból ez érdekel most leginkább.

    A kérdésem inkább jogi, mint technikai jellegű: ha saját erőből vagy segítséggel sikerülne összeraknom egy ilyen adatbányász kódot, azzal az adott weboldal (esetünkben mobile.de) üzemeltetőjét én jogi értelemben megkárosítom? A német adatvédelmi törvények elég szigorúak, viszont technikailag itt nem adatlopásról van szó (hiszen az információ szabadon, ingyen hozzáférhető). Ami egyedül aggályos, hogy ezzel az oldal üzemeltetését lehetővé tévő hirdetéseket kerülném meg, ugyanis a nyers adattáblákban ez nyilván nem jelenik meg.

    Totalcar.hu-n volt régebben egy cikk, ahol arról írtak, hogy egy magyar srác pont ezt tette és így optimalizálta az autókeresést. A kódot természetesen a fenti okokból nem tette közzé és én sem szándékozok szándékosan szivárogtatni :)

  • martonx
    veterán

    Igen, hulyek voltak, de vastagon benne voltak az eredeti cegek (o, ms, ci, stb. )szakertoi is. Milliardokat tapsoltak el, majd a fonokok szepen nyugdijaztak magukat vegkielegitessel.
    Most van egy kis ceg lelkes "fiatalokkal" es ugy tunik, nekem is meglesz a helyem nyugdijig es visszaterhetek a regi temamhoz, idosoros adatok teruleti abrazolasahoz, csak most mar pythonos alapokon. Egy ideig azt hittem, a crm lesz nekem jo, de rajottem, az mindig egyedi megoldasokat igenyel, ugyhogy ennyi.
    Igazabol csak azert irtam be, mert nekem nagy meglepetes volt, hogy szinte a semmibol letrehoztak egy olcso, de ugy tunik, jol mukodo kornyezetet. Mindig is tudtam, hogy sok uj programnyelv es megoldas van, de en is benne voltam abban a hitben, hogy ragaszkodni kell a "bevalt, jo oreg, stabil" megoldasokhoz es mellette lehet celfeladatokra uj megoldasokat bevonni, figyelve az integralasra, stb.
    Most meghokkenve lattam, hogy egy ev alatt (nyilvan csak szamomra) teljesen ismeretlen megoldasokat egymassal integralva mi mindent hoztak letre szinte nullabol, mert az elodok evekre elore eltapsoltak a koltsegvetesuket. Raadasul az egeszet ugy oldottak meg, hogy ok linux alatt nyomulnak, mig a cegeket meghagytak a win-es kornyezetben, egyetlen modernizalassal, hogy ot eves win10-es liszenszeket vettek globalisan, es a grafikus alkalmazasokat latva a "nagy oregek" is kezdik belatni, hogy erdemes lenne valtani xp-rol vagy win7-rol.
    Amugy halkan jegyzem meg, hogy a fejleszteseket is szinte publikusan intezik, github es tarsai alatt roman, lengyel es mas, aktiv szoftveresekkel, mikozben az a magyaroknal majdhogynem ismeretlen, a kezikonyv magyarra forditasa meg csak el se kezdodott.

    Amit leírtál az nem magyar vs külföldi, bejáratott technológiák vs újak, Linux vs Windows kérdése hanem jó fejlesztők kérdése.
    Pláne ahogy írtad, a gond valószínűleg az előző társasággal se az volt, és erre utaltam én is az előző hsz-emben, hogy milyen technológiákra szavaztak, magyarok voltak-e vagy sem, hanem hogy hülyék voltak, nem dolgoztak, érteni se nagyon értettek hozzá, csak a zsebüket tömték.

  • Félre ne érts, nem vagyok Oracle fan (akkor már inkább MS SQL Server...), de ez az azt mondták dolog azért nagyon nem így megy. Egyáltalán mit kellett tárolni, mit kellett lekérdezni, milyen szerver architektúrában gondolkoztak és így tovább. Hiszem, hogy akik ilyet, csak így egyszerűen kijelentenek, egyszerűen nem értenek hozzá.
    Én is láttam olyan projektet, ahol azért cserélték le a MySql-t (na jó a MySql valóban nem az SQL technológia csúcsa) MongoDB-re, mert olvastak blogokat, meg teszteket, hogy az mennyivel gyorsabb, aztán kiderült, hogy amikor adatot kellett lekérdezni, akkor pont ugyanolyan szarban voltak vele :D
    Végül az én csapatom oldotta meg a gondot MS SQL Serverrel újra írva az egészet. Esetemben se az MS SQL volt önmagában a megoldás, hanem a normálisan megírt backend.

    Nyilván van amiben egy NoSql jobb (mint mondtam mi is használjuk, ha a szükség úgy hozza, pl. log adatok beleömlesztésére, tracking pixelek adatainak beleömlesztésére, redist distributed cache-nek stb...), csak az ilyen nagy kijelentéseken akadok fenn, hogy ez szar, az meg a jövő, miközben érződik, hogy akik ezeket a kijelentéseket teszik, rohadtul nem értenek hozzá.

    Igen, hulyek voltak, de vastagon benne voltak az eredeti cegek (o, ms, ci, stb. )szakertoi is. Milliardokat tapsoltak el, majd a fonokok szepen nyugdijaztak magukat vegkielegitessel.
    Most van egy kis ceg lelkes "fiatalokkal" es ugy tunik, nekem is meglesz a helyem nyugdijig es visszaterhetek a regi temamhoz, idosoros adatok teruleti abrazolasahoz, csak most mar pythonos alapokon. Egy ideig azt hittem, a crm lesz nekem jo, de rajottem, az mindig egyedi megoldasokat igenyel, ugyhogy ennyi.
    Igazabol csak azert irtam be, mert nekem nagy meglepetes volt, hogy szinte a semmibol letrehoztak egy olcso, de ugy tunik, jol mukodo kornyezetet. Mindig is tudtam, hogy sok uj programnyelv es megoldas van, de en is benne voltam abban a hitben, hogy ragaszkodni kell a "bevalt, jo oreg, stabil" megoldasokhoz es mellette lehet celfeladatokra uj megoldasokat bevonni, figyelve az integralasra, stb.
    Most meghokkenve lattam, hogy egy ev alatt (nyilvan csak szamomra) teljesen ismeretlen megoldasokat egymassal integralva mi mindent hoztak letre szinte nullabol, mert az elodok evekre elore eltapsoltak a koltsegvetesuket. Raadasul az egeszet ugy oldottak meg, hogy ok linux alatt nyomulnak, mig a cegeket meghagytak a win-es kornyezetben, egyetlen modernizalassal, hogy ot eves win10-es liszenszeket vettek globalisan, es a grafikus alkalmazasokat latva a "nagy oregek" is kezdik belatni, hogy erdemes lenne valtani xp-rol vagy win7-rol.
    Amugy halkan jegyzem meg, hogy a fejleszteseket is szinte publikusan intezik, github es tarsai alatt roman, lengyel es mas, aktiv szoftveresekkel, mikozben az a magyaroknal majdhogynem ismeretlen, a kezikonyv magyarra forditasa meg csak el se kezdodott.

  • Petya25
    őstag

    szuper akkor ezt kevertem, akkor az első kérdésem átfogalmaznám úgy, hogy "accessben mik a helyes szintaktikák"

    Ha így szeretnéd látni, illetve beírni a dátumot:
    tervezőben where mező = Format("2018.03.29";"yyyy.mm.dd")
    sql-ben where mező = Format("2018.03.29","yyyy/mm/dd")
    betweenre is működik csak ott 2x kell

    és

    where mező Like ("%keres%")

  • Doink
    aktív tag

    szuper akkor ezt kevertem, akkor az első kérdésem átfogalmaznám úgy, hogy "accessben mik a helyes szintaktikák"

  • K1nG HuNp
    őstag

    Nem ugyan az, az ms sql az egy szoftver és Transact SQL (T-SQL) dialektussal tudsz beszélgetni vele.

    szuper akkor ezt kevertem, akkor az első kérdésem átfogalmaznám úgy, hogy "accessben mik a helyes szintaktikák"

  • Doink
    aktív tag

    MS SQL az a microsoft access-ban használt sql nem? Nekünk abban kell dolgozni, és a megoldásból szedtem azt a sort. én is kötőjelekkel találtam a neten mindenhol kb a helyes dátum jelölést

    Nem ugyan az, az ms sql az egy szoftver és Transact SQL (T-SQL) dialektussal tudsz beszélgetni vele.

  • K1nG HuNp
    őstag

    Biztos MS SQL???

    1. MSSQL-ben #-ot nem használunk between '2012-12-24' and '2013-01-01' a helyes szintaktika
    2. Like-ban szótöredékre %-ot használunk biztosan nem *-ot.

    Szóval nekem nagyon gyanús, hogy valamit nagyon-nagyon félrenézel.

    MS SQL az a microsoft access-ban használt sql nem? Nekünk abban kell dolgozni, és a megoldásból szedtem azt a sort. én is kötőjelekkel találtam a neten mindenhol kb a helyes dátum jelölést

  • martonx
    veterán

    Sziasztok!

    MS SQL-el kapcsolatban lenne néhány apróbb kérdésem. Főként a dátumok kezelésével és néhány szintaktikai dologgal. A neten tök más dolgokat találtam, gondolom ez az sql fajták különbözősége miatt van. Mindegy a lényeg:

    1 Hogyan tudok egy pl "2018-04-25 és 2018-04-26 között" feltételt megadni. Az érettségik megoldásaiban igy néz ki:
    (...) datum BETWEEN #24/12/2012# AND #01/01/2013#

    Pontosan mire szolgálnak a # jelek, kötelezően a d/m/y formátumot kell használni?

    2 Ha csak egy szótöredékre keresek akkor azt hogyan tudom helyesen a LIKE-val megtenni, esetleg mást kell használni? mi a pontos szintaktika? LIKE "*valami*" vagy nem kell kacsacsőr, esetleg kivülre kell a csillag?

    Biztos MS SQL???

    1. MSSQL-ben #-ot nem használunk between '2012-12-24' and '2013-01-01' a helyes szintaktika
    2. Like-ban szótöredékre %-ot használunk biztosan nem *-ot.

    Szóval nekem nagyon gyanús, hogy valamit nagyon-nagyon félrenézel.

  • K1nG HuNp
    őstag

    Sziasztok!

    MS SQL-el kapcsolatban lenne néhány apróbb kérdésem. Főként a dátumok kezelésével és néhány szintaktikai dologgal. A neten tök más dolgokat találtam, gondolom ez az sql fajták különbözősége miatt van. Mindegy a lényeg:

    1 Hogyan tudok egy pl "2018-04-25 és 2018-04-26 között" feltételt megadni. Az érettségik megoldásaiban igy néz ki:
    (...) datum BETWEEN #24/12/2012# AND #01/01/2013#

    Pontosan mire szolgálnak a # jelek, kötelezően a d/m/y formátumot kell használni?

    2 Ha csak egy szótöredékre keresek akkor azt hogyan tudom helyesen a LIKE-val megtenni, esetleg mást kell használni? mi a pontos szintaktika? LIKE "*valami*" vagy nem kell kacsacsőr, esetleg kivülre kell a csillag?

  • martonx
    veterán

    nem véletlenül létezik még az Oracle, MS SQL, MySQL, PostgreSql és társaik.

    Azt mondtak, az Oracle megbukott, nem volt kepes tobb szaz telephely (server) adatait biztonsagosan es gyorsan kezelni, mig a Redis megoldotta.

    Félre ne érts, nem vagyok Oracle fan (akkor már inkább MS SQL Server...), de ez az azt mondták dolog azért nagyon nem így megy. Egyáltalán mit kellett tárolni, mit kellett lekérdezni, milyen szerver architektúrában gondolkoztak és így tovább. Hiszem, hogy akik ilyet, csak így egyszerűen kijelentenek, egyszerűen nem értenek hozzá.
    Én is láttam olyan projektet, ahol azért cserélték le a MySql-t (na jó a MySql valóban nem az SQL technológia csúcsa) MongoDB-re, mert olvastak blogokat, meg teszteket, hogy az mennyivel gyorsabb, aztán kiderült, hogy amikor adatot kellett lekérdezni, akkor pont ugyanolyan szarban voltak vele :D
    Végül az én csapatom oldotta meg a gondot MS SQL Serverrel újra írva az egészet. Esetemben se az MS SQL volt önmagában a megoldás, hanem a normálisan megírt backend.

    Nyilván van amiben egy NoSql jobb (mint mondtam mi is használjuk, ha a szükség úgy hozza, pl. log adatok beleömlesztésére, tracking pixelek adatainak beleömlesztésére, redist distributed cache-nek stb...), csak az ilyen nagy kijelentéseken akadok fenn, hogy ez szar, az meg a jövő, miközben érződik, hogy akik ezeket a kijelentéseket teszik, rohadtul nem értenek hozzá.

  • bpx
    őstag

    nem véletlenül létezik még az Oracle, MS SQL, MySQL, PostgreSql és társaik.

    Azt mondtak, az Oracle megbukott, nem volt kepes tobb szaz telephely (server) adatait biztonsagosan es gyorsan kezelni, mig a Redis megoldotta.

    Fogalmazzunk inkább úgy, hogy az Oracle csak sokkal több pénzért tudná ezt, amit már egyre több helyen nem akarnak megfizetni, jogosan.
    Kíváncsi vagyok medig tarthatják még a mostani árazást és üzletpolitikájukat.
    Az infrastuktúra még elfogadható, de a support és az általuk szállított alkalmazás színvonala ezért a pénzért gyalázatos.

Új hozzászólás Aktív témák