Új hozzászólás Aktív témák
-
-
rossz hírem van. ilyen szempontból az adatbázis is csak egy alkalmazás, ráadásul olyan, ami kiszolgál más alkalmazásokat.
valamint a kiszolgálandó alkalmazásban történő bármiféle változás képes bonyolult folyamatokat is indukálni az adatbázisban. pl. ha egyszerre túl sok lekérdezés és írás fut ugyanabban a táblában (pl. racoltok), az okozhat szűk keresztmetszetet, amikor valamelyik lekérdezés, vagy művelet éppen az előző befejezésére vár.
az egész olyan, mint egy ogre. az meg olyan, mint a hagyma. amint lehántod a külső réteget, meglátod, mi van alatta. de előtte nem. ha megszüntetsz egy problémát, meglátod azt, ami alatta volt, de addig elfedett.ha a nem várt események ilyen nagy hatással vannak rád, akkor érdemes felkeresni emiatt szakembert is, attól függetlenül, hogy milyen feladatkört kapsz/választasz.
-
Peter Kiss
őstag
Nekem az a tapasztalatom, ha valakinek a sima játékos szoftverfejlesztés sem megy rendesen, maradjon k távol az adatbázisoktól.
Nálunk az nagyátlag, legyen az junior vagy senior, netán más minta, teljesen fogalmatlan az adatbázisokkal kapcsolatban, legyen az relációs, doc vagy csak egy key-value storage.
-
I02S3F
addikt
Sziasztok! Főnök ajánlotta nekem az adatbázisokat, mint egy nekem való IT területet, mert szabályokra épül és én szabályok szerint élek. Ezért szerinte könnyebben tudnék ott érvényesülni, mint a szoftverírásban. (Van egy olyan tulajdonságom, hogy ha olyan eset következik be, amire nem készültem fel, nincsenek előismereteim, akkor "szétesek".)
Kicsit utánaolvastam az adatbázisoknak. Szabályszerűnek az adatmodellt, a normálformákat találtam és a mezőkre, a tábla "oszlopaira" vonatkozó megkötéseket.
Vannak ezen kívül más szabályok is?
-
Zalanius
tag
Elromlani sok minden el tud, szerintem egy kicsit túl van már tágítva ez a nézőpont. Egy-egy bad sectortól még nem dőlnek össze komplett rendszerek, ilyen kapcsolat-megszakadásokra meg szinkronizációs fennforgásokra vagy más adatintegritási kihívásokra már 20-30 éve is bőven fel voltak készülve a nagy DBMS-ek, és azóta egyik se lett butább... Ha ez mélyebben érdekel, keress rá pl. erre: "SQL Server IO Internals", mert egész érdekes dolgokat lehet megtudni arról, mit milyen prioritással írnak diszkre, milyen paritásbitekkel stb. stb. Ez a mai gyakorlati felhasználástól egy eléggé távol eső terület, a fekete öves enterprise sysadminoknak talán lehet ilyen dolga szökőévente, ha nagyon nincs szerencséjük.
Kiszámítathatatlan működés: hát ennek szerintem pont az ellenkezőjéről van itt szó. És egy tervezőnek meg üzemeltetőnek is ezt kell szem előtt tartani, egyrészt preventív módszerekkel (erőforrásterv, jogkörök, jogosultsági mátrixok) meg az ütemezett backupokkal.
-
martonx
veterán
Hát a 2000-es években még akár menő is lehetett. Illetve lehetnek olyan speciális esetek, ahol a mai napig is megállhatja a helyét. Én pl. pár évvel ezelőtt kellett, hogy olyan alkalmazást csináljak, ami 3 féle tök különböző adatforrásból dolgozott (1 SQL tábla, 1 Access tábla és 1 excel sheet), erre az Access nagyon jó volt, mert lazán be tudja mindet nyalni, és utána az SQL-ével lehet queryzni az adatokat, majd onnan SQL-be lementettem a szépen mergelt adatokat.
De ez nagyon spéci dolog volt, értelmes üzleti rendszert akkor se alapoznék Access-re. -
I02S3F
addikt
válasz
Zalanius
#3986
üzenetére
Istenigazából van egy paranoiám, hogy elromlik a rendszer.
Volt már dolgom korruptálódott fájllal, ami javíthatatlanná vált. Például háttértár szektor hiba miatt. Feltételezem egy ilyen megöli az egész adatbázist. Mígha külön fájlokban vannak legalább a táblák és, ha egy sérült, akkor csak az a rekord, vagy tábla sérült, de a többi betöltődik, az álomvilág lenne. Nem tudom így működik-e? Milyen gyakran sérülnek az adatbázisok, például kapcsolati hiba miatt, szinkronizációs hiba miatt? Ez az én szempontom igazából számít a gyakorlatban? Meghát az is kérdéses, hogy mikor/mennyire kiszámíthatatlan a működése egy szoftvernek? Mennyire számottevő ez?

(#3987) martonx - Köszönöm. A programnyelv az adatbázis kezeléshez, vagy a frontend íráshoz szükséges? Az adatbázisokkal nem csak SQL-lel lehet kommunikálni?

-
-
Zalanius
tag
Accesstől függetlenül tulajdonképpen melyik szempontot gondolod problémásnak, az "egyetlen"-t? Pl. MS SQL Server esetén is egy (tipikusan) .mdf fájlban vannak a sémák és adatok, tehát a lényeg, ha eltekintünk az .ndf meg .ldf fájloktól. A sérüléses gondolatot mondjuk értem, de attól aligha volna kisebb ez a veszély, ha fel volna szeletelve több kisebb, de egyformán létfontosságú fájlra. A biztonságra persze adni kell, de különféle helyi-távoli backupok, failover clusterek stb. nem változtatnak az "egyetlen fájl" alapelven. Amiben más ez a világ, mint egy doksikönyvtárban tenyésző .accdb, hogy a mondott .mdf fájlhoz nem fér hozzá egy mezei user vagy process.
-
martonx
veterán
Pont ezért nem használunk Access-t komoly üzleti rendszerekhez

Egyébként az Access tud normális SQL adatbázisokhoz is kapcsolódni, azaz lehet pl. úgy használni, hogy az Access csak a frontendjét adja az adatbázisnak (formok, riportok). De ahhoz meg gagyi. Leginkább móricka projektekre, meg önképzésre jó
-
I02S3F
addikt
Sziasztok! Azt olvastam, hogy az Access egyetlen fájlban tárolja az adatbázist. Ez nagyüzemben is így van? Nem veszélyes ez?( Megsérül a fájl és cseszhető a tartalma.)

Szerk. : Most jut eszembe, hogy a fájl lehet egy összefűzött csomag is (mint a tar)
-
Gabró
tag
válasz
barnam_
#3976
üzenetére
Hasonló cipőben járok.
Van egy néhány milliárd rekordos táblánk (amit lehetne normalizálni, és amivel jó lenne, ha a középiskolában felszedett ismereteimnél hatékonyabban tudnék dolgozni). A prograomunk MS SQL Server Management Studio, amiből jelenleg külső adatbázisként érhető el egy Oracle dump fileból maga az adattábla (nekem ez nem mond túl sokat, mindenesetre az alap lekérdezések futnak, de van olyan, hogy értetlenül állok hibaüzenetek előtt).
Megnéztem a Masterfieldet, tőlük ez a tanfolyam lenne szerintem a legmegfelelőbb [link]
Kinéztem a Pentánál is egy hasonló kurzust: [link]
Vannak esetleg konkrét tapasztalaitok a fentiekkel?
-
válasz
barnam_
#3976
üzenetére
Masterfiled-nél voltam alap SQL oktatáson. Háááát, ha kollégám nem tartott volna előtte jó pár órás felkészítést, akkor pislogtam volna, mint hal a szatyorban

Nem rossz, de 4 nap alatt elég tömény a dolog, ha sosem foglalkoztál előtte vele. De, ha egyszer ráérzel az ízére már sosem akarsz többé excelt használni

-
A munkahelyem elküldene SQL tanfolyamra, hogy tudjak készíteni lekérdezéseket, tudjam kezelni a meglévő adatbázisunkat, tehát aféle kezdő dolog lenne első körben.
Tudnátok oktatási helyet ajánlani Budapesten?
-
tm5
tag
válasz
Petya25
#3973
üzenetére
Valami ilyesmi kellene:
SELECT *
FROM (
SELECT nev, ora, darab
FROM tabla
)
PIVOT ( sum(darab) FOR (ora) IN (10 'Ora 10', 11 'Ora 11', 12 'Ora 12') )
ORDER BY 1 DESC
A 10, 11, 12 óra értékek ha szövegek akkor tedd őket is aposztofok közé, illetve annyi ilyen 'ora-érték' 'ora-alias' párt kell felvenned az IN szekcióba, ahány oszlopra van szükség. -
Petya25
őstag
MS SQL Pivottal nem boldogulok, valaki aki rutinosabb?
Tudom, excelben egy mozdulat nekem is...
Persze az alap táblában nincs meg minden név, óra kombináció előre.select név, óra, darab from tábla
név, óra, darab
Józsi, 10, 2
Józsi, 11, 5
Józsi, 12, 3
Béla, 10, 3
Béla, 11, 6
Béla, 12, 7pivot kéne nevenként / óránként a darab
név, 10, 11, 12
Józsi, 2, 5, 3
Béla, 3, 6, 7 -
soldi3r
veterán
Nem sok idom volt mostanaban foglalkozni vele, talan majd az unnepek alatt.
Addig jutottam, hogy feltettem egy Oracle Linux 7-et, arra ra pedig egy Oracle 12c-t. Mindkettot az oracle-base.com alapjan
Hirtelen felindulasbol meg az SQL Developert probaltam, de a csatlakozas nem sikerult. Ha jol sejtem, nem indul el csak ugy a hatterben. Tudna valaki errol valamilyen ertheto leirast adni? Kicsit elvesztem az oracle oldalan a 2000 oldalas pdf-ek kozt. -
amdni
aktív tag
Próbáltam MariaDB-is a dolgot, de itt sem írja ki a show create table diak a foreign key sort.
MariaDB [adatbazis1]> create table osztaly(
-> id int(4) primary key auto_increment,
-> osztalynev char(1)
-> );
Query OK, 0 rows affected (0.019 sec)MariaDB [adatbazis1]>
MariaDB [adatbazis1]>
MariaDB [adatbazis1]> create table diak(
-> id int(4) primary key auto_increment,
-> osztaly_id int(4),
-> foreign key (osztaly_id) references osztaly(id)
-> );
Query OK, 0 rows affected (0.007 sec)MariaDB [adatbazis1]> show create table diak;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| diak | CREATE TABLE `diak` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`osztaly_id` int(4) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `osztaly_id` (`osztaly_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.017 sec) -
amdni
aktív tag
mysql> SELECT @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;
+-----------------------------+------------------------------+
| @@GLOBAL.foreign_key_checks | @@SESSION.foreign_key_checks |
+-----------------------------+------------------------------+
| 1 | 1 |
+-----------------------------+------------------------------+
1 row in set (0.01 sec)Úgy látom hogy ez jó, de nálam mégsem jó valami...

-
bpx
őstag
Mert pl. lehet, hogy tiltva van. Ennek by default 1-et kellene visszadni global és session szinten is:
SELECT @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;Ha viszont 0, akkor nem történik meg a foreign keyek ellenőrzése, és büntetlenül lehet azt megsértő adatokat bevinni.
-
Doink
aktív tag
MariaDB [test2]> CREATE TABLE osztaly (
-> id INT NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.03 sec)
MariaDB [test2]> CREATE TABLE diak (
-> id INT NOT NULL AUTO_INCREMENT,
-> osztaly_id INT,
-> PRIMARY KEY (id),
-> FOREIGN KEY (osztaly_id) REFERENCES osztaly(id)
-> );
Query OK, 0 rows affected (0.03 sec)
MariaDB [test2]> SHOW CREATE TABLE diak;
+-------+--------------+
| Table | Create Table |
+-------+--------------+
| diak | CREATE TABLE `diak` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`osztaly_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `osztaly_id` (`osztaly_id`),
CONSTRAINT `diak_ibfk_1` FOREIGN KEY (`osztaly_id`) REFERENCES `osztaly` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------+
1 row in set (0.00 sec)
MariaDB [test2]> INSERT INTO diak (osztaly_id) VALUES(9999);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
(`test2`.`diak`, CONSTRAINT `diak_ibfk_1` FOREIGN KEY (`osztaly_id`) REFERENCES `osztaly` (`id`))
MariaDB [test2]> INSERT INTO diak (osztaly_id) VALUES(9999);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test2`.`diak`, CONSTRAINT `diak_ibfk_1` FOREIGN KEY (`osztaly_id`) REFERENCES `osztaly` (`id`))
MariaDB [test2]> INSERT INTO osztaly (id) VALUES(1);
Query OK, 1 row affected (0.01 sec)
MariaDB [test2]> INSERT INTO diak (osztaly_id) VALUES(1);
Query OK, 1 row affected (0.01 sec) -
Doink
aktív tag
Hogy kikényszerítsd a valid értéket a mezőre.
Például ilyet ne csinálhass ha nincs 99999 ID-jű osztály:
insert into osztaly values(3, 'B');
insert into tanulok values(1, 'Béla', 99999);Egyébként ez egy one-to-many mert (1osztály)-(sok gyerek) de egy gyerek csak 1 osztályba jár.
Ha egy gyerek több osztályba is jár akkor lesz many-to-many. -
amdni
aktív tag
Üdv mindenkinek!
Mysql-ből 1 valamit nem értek, hiába olvasok utána, valami nem stimmel, bízom benne, hátha itt valaki el tudja magyarázni hogy meg értsem.
pl egy nagyon egyszerű példa:
CREATE TABLE `osztaly` (
`id` int(1),
`osztaly` char(1),
PRIMARY KEY (`id`),
foreign key (id) references tanulok (osztaly)
);CREATE TABLE `tanulok` (
`kulcs` int(1),
`nev` varchar(30),
`osztaly` int(1),
PRIMARY KEY (`kulcs`)
);Tehát itt most 1:1 kapcsolat áll fenn? Mit kellene átírni hogy 1
(egy -több) vagy N:M (több-több) kapcsolat áll fenn?
A másik hogy mi értelme ennek?
pl:
insert into osztaly values(3, 'B');
insert into tanulok values(1, 'Béla', 3);És mikor lekérdezem:
select * from osztaly join tanulok on osztaly.id = tanulok.osztaly;
De ez akkor is működik ha nem használok foreign key-t. Tehát mi értelme? Mire jó az idegen kulcs?Előre is köszi a segítséget!
-
updog
őstag
válasz
#74220800
#3952
üzenetére
A
like '[0-9]'az pontosan a '[0-9]' stringgel hasonlítja össze az egy darab karaktered
A funkció amit keresel, a REGEXP_LIKE. -
#74220800
törölt tag
Hi,
Szerintetek ez a function miert nem szamolja meg a szamokat a stringben?create or replace function szamos(a VARCHAR2) RETURN int is
db int := 0;
begin
for i in 1..LENGTH(a) LOOP
if SUBSTR(a, i, 1) like '[0-9]' then
db := db + 1;
end if;
end LOOP;
return db;
end szamos;
select szamos('1rohadjmeg1') from dual; -
bpx
őstag
válasz
Ablakos
#3946
üzenetére
Kb. 2,5 éve van ilyen, hogy Red Hat Developer license.
[link] Itt rányomsz a letöltésre, elkezdi letölteni az ISO-t, és továbbít egy olyan oldalra, ahol leírja, hogy hogyan telepítsd. Kb. annyi a lényeg, hogy telepíteni kell a "Developer Tools" add-ont, és ha ez megvan, a telepítés végén az RH account adatok megadása után automatikusan regisztrálja a gépet, lesz rá 1 éves licenc, lehet vele használni a RH repot, stb. 1 év után, ha lejárt, kell rá renew, szintén ingyenes [link]
Ha másért nem, nekem legalább azért jó volt, mert így legalább elérem access.redhat.com-on a Subscriber Exclusive Contentet, mert egyébként nincs semmilyen RH előfizetésünk céges szinten.
-
-
bpx
őstag
válasz
soldi3r
#3943
üzenetére
Szerintem otthonra, 1 felhasználós környezetbe, tanulási célra, tök felesleges az XE, amikor erre a célra az Enterprise Editiont is bárki letöltheti az Oracle publikus oldaláról, és nincsenek benne XE szintű korlátozások, és ugyanúgy egy darab RPM-ből telepíthető. Az EE .rpm 3,3 GB, az XE .rpm meg 2,5 GB, tehát hiába Express Edition, az is egy jó nagy monstrum.
OS-ből ha Linux, akkor Oracle Linux (ingyenes, csak a support fizetős), RHEL (van ingyen licenc 1 accounthoz 1 gépre), SLES (nem tudom, max 5%-ban fordul elő Oracle alatt, nagyon ritkán találkozom vele), preferencia ebben a sorrendben. Otthoni környezetben esetleg Windows (na arra nem is jött ki a legújabb XE).
A desktop Linux distro-t felejtsük el, működésre lehet bírni rajta, egy Fedora-n még könnyebben, de egy Ubuntu-n már nehezebben, de nem is ezzel érdemes foglalkozni, hanem a hasznos dolgokkal. Pl. egy Oracle Linux-on alapból megy minden a saját repo-ból és beránt minden függőséget, létrehozza a usert, beállítja a kernel paraméteretek, limiteket, stb.
Annyi még, hogy fejlesztői irányból érdekel és nem infra/DBA oldalról, akkor kb. letöltesz egy előre összerakott virtuális gépet és kész: [link]
-
soldi3r
veterán
Megneztem a linkelt treningeket. Nagyjabol vegig ertem rajtuk. Nekem tokeletes. Neznek egy gyakorlos adatbazist.
Latom, hogy van olyan Oracle DB XE, ami ingyenesnek tunik. Milyen oprendszert erdemes alatenni? Az Oracle sajatjat, vagy inkabb egy Fedorat? -
mr.nagy
tag
Sziasztok,
Köszönöm a válaszokat! Ma nem leszek pc közelébe de holnap kipróbálom mindegyik megoldást.
-
válasz
mr.nagy
#3935
üzenetére
bocs, mssql-hez nem értek. postgresben úgy csinálnám, hogy van generate_series függvény, ami halmazt ad vissza. az egyik lehetőség: ezt
select now()+generate_series(0,7)*'1 day'::interval;
berakod egy subselectbe, és kiválasztod azt, ahol a hét napja az, amit szeretnél.Ha az mssql is tudja, amit a postgres, hogy sorozat timestamp is lehet, akkor egyszerűbb a dolog:
select generate_series(now(),now()+'7 days'::interval,'1 day'); -
válasz
mr.nagy
#3935
üzenetére
Remélem jó lesz, amit összeraktam
.
A lényeg, ha a +8 nap dátum péntekre vagy előbbre esik, akkor 5-től annyival kevesebb napot kell hozzáadni a + 8 napos dátumhoz, ahányadik nap a héten a + 8 napos dátum.
Ha péntek után esik a +8 nap, akkor 12-től (5 + 7, azaz péntek + 1 hét) annyival kevesebb napot kell hozzáadni a + 8 napos dátumhoz ahányadik nap a héten a + 8 napos dátum.Remélem sikerült érthetően fogalmaznom, így jó pár pohár bor után
. Mindenféleképpen próbáld ki pár napon, hogy jól számol-e 
Igazából az első set date-s sor és az utolsó iif-esre van szükséged, a többi csak az átláthatóság kedvéért hagytam benne.
set DATEFIRST 1 -- ezzel beállítod, hogy a hétfő legyen a hét első napja, mert alap esetben, ha jól tudom, akkor a vasárnap az 1. Én jobban szeretem, ha a hétfő az 1.
select cast(getdate()as date) as "Mai nap dátum"
,datepart(weekday,getdate()) as "Mai nap sorszáma a héten"
,cast(getdate()+8 as date) as "Mai nap + 8 nap dátum"
,datepart(weekday,getdate()+8) as "Mai nap + 8 nap sorszám a héten"
,iif(datepart(weekday,getdate()+8)<=5,cast(getdate()+8+(5-datepart(weekday,getdate()+8)) as date),cast(getdate()+8+(12-datepart(weekday,getdate()+8))as date)) -
Zalanius
tag
válasz
mr.nagy
#3935
üzenetére
Az ilyen "rákövetkező hét x. nap" stb. elég mókolós tud lenni, ezért ha nem megy egyből kisujjból, célszerű felírni néhány segédváltozót, azzal elbabrálni, tesztelgetni. Két példa lent:
-- 1. Olvasmányosan
DECLARE @bazisnap date = SYSDATETIME();
DECLARE @napdelta int = 8; -- adjunk hozzá x napot
DECLARE @celnap int = 6; -- a következő pénteket keressük, a péntek sorszáma 6, ez a skála 1-7 közötti
DECLARE @eredmeny date;
-- 8 nap múlva milyen nap lesz?
DECLARE @x1 int = (SELECT DATEPART(dw, DATEADD(day, @napdelta, @bazisnap)));
-- Adjuk az deltához a még hiányzó napokat, két eset lehetséges
IF @x1 > @celnap SET @napdelta = @napdelta + 7 - (@x1 - @celnap); ELSE SET @napdelta = @napdelta + @celnap - @x1;
SET @eredmeny = DATEADD(day, @napdelta, @bazisnap);
-- Ellenőrizhető az összes részszámítás is, ha kell
SELECT @eredmeny, @napdelta, @x1;
-- 2. Kevésbé olvasmányosan
SELECT CASE WHEN DATEPART(dw, DATEADD(day, 8, SYSDATETIME())) <= 6 THEN CONVERT(date, DATEADD(day, 8 + 6 - DATEPART(dw, DATEADD(day, 8, SYSDATETIME())), SYSDATETIME()))
ELSE CONVERT(date, DATEADD(day, 8 + 7 - (DATEPART(dw, DATEADD(day, 8, SYSDATETIME())) - 6), SYSDATETIME()))
END; -
Magnézium
csendes tag
Sziasztok!
Letöltöttem és telepítettem két programot:
MySQL Community Server (csak a Servert választottam ki telepítésre)
MySQL Query broswer 1.1.20Hiába csinálok a MySQL 8.0 Command Line Client parancssoros ablakban adatbázisokat, táblázatokat, a Query Broswerben nem jelenik a Schemata ablakban. Brosweren keresztül is csináltam sémát, táblát, az sem jelenik meg, de a Line Clientben viszont igen.
Tudna valaki segíteni?
Köszönöm!
M. -
válasz
mr.nagy
#3935
üzenetére
Azt hiszem a weekday utasítás adja meg egy adott nap hányadik a héten.Ez alapján meg lehet képlettel hatarozni a következő pénteket. Azt hiszem a vasárnap az 1 alap sql beállításban, de nem vagyok benne biztos. Telefonról vagyok, ha nem megy, akkor este jobban utána tudok nézni.
-
mr.nagy
tag
Sziasztok!
MSSQL-ben kellene azt megoldani, hogy a mai dátumhoz adjon hozzá x napot (pl. 8 nap), majd ehhez a dátumhoz képest az első péntek dátumát adja vissza. Tehát ma + 8 nap az 2018-12-16, de ez vasárnap, nekem pedig a 2018-12-21.-i péntek dátumára lenne szükségem.
Az elsörész ok:
select (getdate() + 8), de innen hogyan tovább azt nem tudom!Előre is köszönöm, annak aki tud segíteni!
-
Ispy
nagyúr
válasz
axxiion
#3933
üzenetére
.Ezt most csak gyorsba, ez visszaadja azokat a számlákat, amik előtt nem volt sorszám kiadva:
-- DROP TABLE #T
CREATE TABLE #T (ID INT)
INSERT INTO #T (ID) VALUES(1)
INSERT INTO #T (ID) VALUES(2)
INSERT INTO #T (ID) VALUES(4)
INSERT INTO #T (ID) VALUES(5)
INSERT INTO #T (ID) VALUES(6)
INSERT INTO #T (ID) VALUES(7)
INSERT INTO #T (ID) VALUES(11)
INSERT INTO #T (ID) VALUES(12)
SELECT #T.ID
FROM #T
LEFT JOIN #T T2 ON #T.ID=T2.ID+1
WHERE T2.ID IS NULLA kódot írd át a saját adatbázisodra, a lényeg, hogy az ellenőrzendő sorszámot egyel megnövelve saját magához kötöd, ahol nincsen kapcsolat, ott luk van.
-
axxiion
csendes tag
Sziasztok, az alábbi 3 feladathoz szeretnék segítséget kérni:
séma:
https://arato.inf.unideb.hu/kadek.tamas/zh18.pngkérdések:
1.Egyetlen INSERT utasításban rögzítsen két egyforma tételt két különböző számlaszámhoz.
2.Készítsen olyan lekérdezést (SELECT utasítást), amely ellenőrzi, hogy folyamatosan kerültek-e kiosztásra a számlaszámok
3.Készítsen olyan lekérdezést, amely szállítóként és vevőként összesíti a forintban kifizetett forgalmat. A lekérdezés eredménye tartalmazza a szállító nevét, a vevő nevét és az összesített forgalmat (a számlák végösszegét).
Valamint esetleg még erre:
Készítsen egy új táblát, amelynek rekordjai külső kulcs megszorítás segítségével hivatkozzák a zh18_szamla_tetel tábla egy-egy rekordját.
Ha esetleg valaki valami irányt tudna mondani, hogy hol tudnék hasonló feladatok megoldását megnézni az nagyon jó lenne.
Előre is köszönöm.
-
soldi3r
veterán
Koszi! Megnezem ezeket.
-
tm5
tag
-
updog
őstag
válasz
soldi3r
#3927
üzenetére
Az Oracle-nek teljesen jól használható dokumentációja van, ha nem ragaszkodsz a könyvekhez

-
soldi3r
veterán
Szevasztok!
Kicsit beleasnam magam az SQL rejtelmeibe. Tudtok ajanlani valami konyvet hozza? Amiket hirtelen talaltam, azok eleg regiek.
Nem tervezek fejleszto lenni, csak egy ket dolgot megerteni MS es Oracle rendszerekben. -
Közben megcsináltam "favágó" módszerrel

A selectet lefuttattam top 1-re, azt kimásoltam fejléccel Excelbe. Kitöröltem az egy adatot tartalmazó sort, hogy csak a fejléc maradjon, majd elmentettem csv-be.
Utána lefuttattam a teljes select-et, azt exportáltam fejléc nélkül csv-be, utána parancssorból össze copyztam a két csv file-t.Tudom, hogy nem elegáns, de most ez volt a leggyorsabb.

-
MariaDB-ben az alábbit meg lehet valósítani úgy, hogy ugyanazon szerveren vannak az adatbázisok?
A cél az lenne, hogy ne egy nagy DB-m legyen, hanem több, kisebb.
Ha igen, pontosan mi a megoldásnak a neve, ami alapján tovább tudok haladni?


-
Köszönöm
Olvasgatok...
Aztán, ha nagyon nem megy, akkor a könyvvizsgálók megkapják a 6 milló rekordos adatbázisukat fejléc nélkül
Majd mailben megírom nekik, hogy melyik oszlopnak mi a fejléce. Így is szétsz*ptam az agyam, mire SAP-ból legyűjtöttem az adatokat... 
-
Ispy
nagyúr
válasz
Peter Kiss
#3918
üzenetére
Azért az SSMS-sel óvatosan, nekem már többször előferdült, hogy összefosta magát nagy adatmennyiségnél, igaz lehet csak a memóriát zabálta fel és azért.
Ezt is érdemes megnézni: OPENROWSET
-
Sziasztok,
Ki kellene exportálnom egy lekérdezés eredményét txt-be, vagy csv-be. A copy - paste megoldás nem jó, mert a select végeredménye kb. 6 millió rekord. Ja, és ezt úgy kellene megtenni, hogy a fejlécek is benne legyenek az exportált állományban.
Előre is köszönöm segítséget

-
zozokaa
csendes tag
Hali, kellene 1 kis segítség, egy alkalmazást csinálok beadandó feladatnak suliba és nem nagyon tudom hogy milyen táblákat kéne csináljak és melyiket melyikkel kapcsoljam össze.
Egy filmes alkalmazás lenne ahol van 1 felhasználó aki tud filmeket értékelni, kedvencekbe rakni, kommentelni alá stb. Laravellel+mysqlel írom
-
tm5
tag
Kb. ennyinek kéne lennie:
SELECT datum, service, usergroup, customer, napi/14.4
FROM
(
SELECT date(date) datum, service, usergroup, customer, count( * ) as napi FROM database.Availability
WHERE status='Up' and service = 'HTTP' AND usergroup = 'EMEA' AND customer = 'Customer1' GROUP BY
usergroup,server, date(date)
) -
Pé
senior tag
Sziasztok, kis segítséget szertnék kérni.
Van egy adatbázisom amelybe több helyről, minden helyről több gép küld státuszjelentést percenként. Ebből az adatból szeretnék napi rendelkezésre állást számolni.
Eljutottam eddig :SELECT date(date), service, usergroup, customer, count( * ) as napi FROM database.Availability WHERE status='Up' and service = 'HTTP' AND usergroup = 'EMEA' AND customer = 'Customer1' GROUP BY usergroup,server, date(date)
Ebből kapok egy ilyet :
date(date) service usergroup customer napi
2018-10-31 HTTP EMEA Customer1 1395
2018-11-01 HTTP EMEA Customer1 1401
2018-11-02 HTTP EMEA Customer1 1440
2018-11-03 HTTP EMEA Customer1 1413
2018-11-04 HTTP EMEA Customer1 1398
2018-11-05 HTTP EMEA Customer1 1381
2018-11-06 HTTP EMEA Customer1 1345Nekem viszont kéne egy 6. oszlop is, ami az 5. oszlop / 14,4 érték, ami megadja %-ban- hogy mennyi volt a rendelkezésre állás. Ezt sehogy sem tudtam belehegeszteni. A segítséget előre is köszönöm.

(ja, mysql-ben csinálnám)
-
bpx
őstag
válasz
user112
#3906
üzenetére
Lehet a MIN helyett SUM, de ebben az esetben nincs jelentősége, hogy melyik, mert csoportonként csak 1 sorban lesz érték, a GROUP BY miatt viszont muszáj valamilyen aggregate functiont használni.
Az összeget bele lehet rakni új oszlopként, simán csak pl.:
min(Aerteke) + min(Berteke) as osszegVagy akár:
select
kod,
min(Aerteke) as Aerteke,
min(Berteke) as Berteke,
sum(ertek) as osszeg
from
(
select
kod,
ertek,
case when tipus = 'A' then ertek end as Aerteke,
case when tipus = 'B' then ertek end as Berteke
from
tabla
) group by kod; -
bpx
őstag
válasz
user112
#3904
üzenetére
Erre szoktunk PIVOT-ot használni, de egy ilyen egyszerű esetben a "lábbal hajtós" megoldás is elfogadható, pl.:
select
kod,
min(Aerteke) as Aerteke,
min(Berteke) as Berteke
from
(
select
kod,
case when tipus = 'A' then ertek end as Aerteke,
case when tipus = 'B' then ertek end as Berteke
from
tabla
) group by kod; -
user112
senior tag
Sziasztok!
Egy Oracle táblában Kod, Tipus, Érték mezők vannak.
A Tipus "A" és "B" érték vehet fel.
Hogyan tudom az A és B értékét egy sorba összesiteni?
Kod, AÉrtéke, BÉrtéke.
Esetleg a kettő összege lehetne a 4. oszlop.
Köszönöm. -
válasz
kw3v865
#3900
üzenetére
ha postgresql-hez kötött megoldás is megfelel, akkor:
where id = (select last_value from table_id_seq);ezzel a lekérdezéssel bármikor le tudod kérdezni a legutolsó id-t. de ez nem szép.
ha az adott sessionben raktad bele a sort, akkor egy fokkal rendesebben néz ki:
where id = (select currval('table_id_seq'));vagy, szerintem a legjobb megoldás, kérdezd le, hogy milyen értéket szúrt be az insert, ha ez megoldható:
insert blablab returning id;ezt akkor tudod használni, ha az insertet akkor csinálod, amikor az id-je is kell.
Új hozzászólás Aktív témák
- HP ProDesk 600 G5 i5-9500 8GB 256GB 1 év garancia
- Azonnali készpénzes AMD Radeon RX 9000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! ASUS ROG GL10DH brand számítógép - R7 3700X 32GB DDR4 512GB SSD RTX 2060S 8GB 500W W11
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest





(egy -több) vagy N:M (több-több) kapcsolat áll fenn?
.



