Hirdetés
- Otthoni hálózat és internet megosztás
- Egy vagyont költ humanoid robotokra az egyik kínai EV-gyártó
- Windows XP
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Mikrotik routerek
- One otthoni szolgáltatások (TV, internet, telefon)
- Hálózati / IP kamera
- Synology NAS
- A napot és a szelet is akarják az adatközpontok
- Programozás topic
Ú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
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; -
bpx
őstag
válasz
#74220800 #3894 üzenetére
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 parenthesisCREATE TABLE ELSO
(MASODIK INT(2) NOT NULL,
HARMADIK VARCHAR(14),
NEGYEDIK VARCHAR(13),
CONSTRAINT OSZT_PK PRIMARY KEY (MASODIK)); -
tm5
tag
válasz
Peter Kiss #3892 üzenetére
Í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. -
tm5
tag
válasz
#74220800 #3890 üzenetére
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
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. -
nyunyu
félisten
válasz
GreenIT #3879 üzenetére
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
válasz
GreenIT #3879 üzenetére
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. -
válasz
GreenIT #3879 üzenetére
mysql home\binbőlmysql -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
válasz
Peter Kiss #3867 üzenetére
+Ispy köszönöm mindkettőtöknek
-
GreenIT
tag
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
veterán
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.
-
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.
-
válasz
GreenIT #3871 üzenetére
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.
-
GreenIT
tag
válasz
martonx #3870 üzenetére
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.
-
GreenIT
tag
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
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.
-
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.TableSELECT CASE WHEN @A IS NULL THEN A ELSE @A END
FROM dbo.TalbeAzt gondolom, hogy az eredménynek ugyanannak kellene lennie, rosszul gondolom?
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)
-
Ispy
veterán
válasz
kw3v865 #3860 üzenetére
Ö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
válasz
kw3v865 #3860 üzenetére
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
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'
; -
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.
-
Ispy
veterán
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 =?
-
Zalanius
tag
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.
-
kem
addikt
válasz
Zalanius #3848 üzenetére
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
) 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? -
Zalanius
tag
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
-
martonx
veterán
válasz
marositech #3844 üzenetére
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
-
Ispy
veterán
válasz
marositech #3842 üzenetére
Simán be kell neki újabbra rakhatsz fel régi adatbázist, csak fordítva nem.
-
marositech
senior tag
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
veterán
válasz
marositech #3840 üzenetére
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.
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
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
veterán
válasz
marositech #3838 üzeneté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
válasz
VirsLee #3836 üzenetére
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
-seenHa 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
őstag
válasz
SunyaMacs #3835 üzenetére
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ábanFontos, 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
-timeHa 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
válasz
kw3v865 #3833 üzenetére
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?
-
válasz
Petya25 #3830 üzenetére
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
Ispy - a CAST és a %-os megoldás ügyes lett, köszi
-
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) -
Tanisz
senior tag
válasz
bambano #3820 üzenetére
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.
-
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?
-
bambano
titán
válasz
Johnny_vT #3818 üzenetére
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.
-
Johnny_vT
senior tag
válasz
bambano #3817 üzenetére
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
válasz
Johnny_vT #3815 üzenetére
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.
-
bambano
titán
válasz
Johnny_vT #3812 üzenetére
"ü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
-
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
válasz
GreenIT #3810 üzenetére
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. -
GreenIT
tag
válasz
martonx #3802 üzenetére
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. -
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
válasz
GreenIT #3800 üzenetére
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
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
válasz
GreenIT #3800 üzenetére
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
- Xiaomi 15 - kicsi telefon nagy energiával
- Okos Otthon / Smart Home
- Star Trek Online -=MMORPG=-
- E-roller topik
- Elektromos (hálózati és akkus) kéziszerszámok, tapasztalatok/vásárlás
- TCL LCD és LED TV-k
- Milyen billentyűzetet vegyek?
- MWC 2025: Előrendelhető a Nothing Phone (3a)
- One mobilszolgáltatások
- Diablo IV
- További aktív témák...
- Xiaomi Redmi Note 12 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új Bontatlan GIGABYTE Radeon RX 9070 Gaming OC 16G 3Év gari 27% Áfás számla
- AKCIÓ!!! GAMER PC: Új RYZEN 7 5700/5800X + RX 7800 XT 16GB GDDR6 + Új 16-32GB DDR4! GARANCIA/SZÁMLA!
- Iphone 14 Plus 256GB // Független // 100% akku // Számla+Garancia //
- DELL G5 5590 I7 9750H RTX 2060/6G 16G DDR4
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest