Új hozzászólás Aktív témák
-
#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; -
updog
senior tag
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.[ Szerkesztve ]
"Bocs, főnök, de én csak két emberben bízom. Az egyik én vagyok. Nem maga a másik." || "Hóhahó, mégis van graffaló!"
-
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!
-
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.[ Szerkesztve ]
-
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)[ Szerkesztve ]
-
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.
-
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...
-
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) -
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.[ Szerkesztve ]
E30 (oo=[][]=oo)
-
Petya25
addikt
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[ Szerkesztve ]
Antonio Coimbra de la Coronilla y Azevedo, bizony!
-
-
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. -
barnam_
nagyúr
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?
-
-
Jim74
nagyúr
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
-
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?
-
I02S3F
őstag
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)
[ Szerkesztve ]
-
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óÉn kérek elnézést!
-
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.
--= Zalán =--
-
martonx
veterán
-
I02S3F
őstag
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?
[ Szerkesztve ]
-
Ispy
veterán
válasz martonx #3984 üzenetére
Mi egész komoly rendszert csináltunk accessben, igaz ma már bottal sem piszkálnám meg, de a 2000-es évek környékén nem volt az olyan rossz. Aztán az ADO-val még simán van 1-2 cég, aki ma is használja.
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
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.Én kérek elnézést!
-
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.
--= Zalán =--
-
I02S3F
őstag
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?
-
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.
-
nagyúr
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.
[ Szerkesztve ]
Tudod, mit jelent az, hogy nemezis? Az érintett, erősebb fél kinyilatkoztatása a méltó büntetés mértékét illetően. Az érintett fél jelen esetben egy szadista állat... én.
-
Új hozzászólás Aktív témák
- Mini-ITX
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- Politika
- Facebook és Messenger
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- HiFi műszaki szemmel - sztereó hangrendszerek
- Szemüveges topik
- Nintendo Switch 2 vagy amit akartok (találgatós topik most még)
- VR topik (Oculus Rift, stb.)
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest