Kuidas konkateneerida MS Accessis, PostgreSQLis ja LibreOffice Baseis tekstilisi väärtuseid, kui üks väärtus puudub (on NULL)? Oletame, et andmebaasis on tabel, kuhu on lisatud kaks rida andmeid. Ühel isikul perenimi puudub (on NULL).CREATE TABLE Isik(isik_id INTEGER,eesnimi VARCHAR(50) NOT NULL,perenimi VARCHAR(50), stringide liitminekonkatenatsioonNULL väärtusCoalesceMS AccessPostgreSQLConcat 23.03.2024 16:53:47 | Erki Eessaar
Kas tühja stringi esinemise keelamine ja NOT NULL kitsendus on üks ja sama asi? Ei ole! Tühi string on väärtus (kuigi väga lühike).NULL on tähis, et väärtust ei ole.NOT NULL veergu saab seega tühja stringi panna, sest see täidab tingimuse, et väljas peab väärtus olema.Kui näiteks s... tühi stringNULLNOT NULLCHECK kitsendusOracle erinevusedandmekvaliteetpuuduvad väärtused 03.03.2024 12:21:36 | Erki Eessaar
Kas on mingit vahet selles osas, kui otsingutingimusse kirjutada IS TRUE või =TRUE? Tegelikult ei ole. Teen väikese katsetuse PostgreSQLis (ver 16).CREATE TABLE Bool_test (bool_test_id SERIAL,flag BOOLEAN NOT NULL,CONSTRAINT pk_bool_test PRIMARY KEY (bool_tes... PostgreSQLBOOLEANtõeväärtusSQL süntaksNULLkolmene loogikaNOT NULL 16.01.2024 19:00:01 | Erki Eessaar
Lõin andmebaasis tabeli, kus võtmeveeru puhul oleks tulnud selle väärtused süsteemil genereerida, kuid unustasin seda määrata. Lisasin tabelisse juba ridu. Kuidas see omadus tabelile tagantjärgi lisada? Toon näite.CREATE TABLE Kasutaja_rolli_omamine (kasutaja_rolli_omamine_id INTEGER NOT NULL,kasutaja_id INTEGER NOT NULL,rolli_kood SMALLINT NOT NULL,alguse_aeg TIMESTAMP(0) NO... identiteedi veergserial notatsioonarvujada generaatorPostgreSQLidentiteedi veergSERIALSEQUENCEandmete parandamine 18.11.2023 11:55:33 | Erki Eessaar
Millal võiks olla kasu baastabeli arvutatud veergudest? Arvutatud veeru puhul arvutatakse väljas olev väärtus teiste samas reas olevate väärtuste puhul ja salvestatakse kettale. PostgreSQLarvutatud veerudgenerated columnsjõudlusoptimeeriminedenormaliseeriminekoondandmed 14.10.2023 11:50:04 | Erki Eessaar
Mul on sellised ja sellised tabelid ning ma pean nende põhjal lahendama sellise ja sellise andmete otsimise ülesande. Milline oleks selle ülesande kõige parema jõudlusega lahendus? Tuleb korraldada eksperiment ja erinevaid lahendusi katsetada. Kui Teil pole käepärast serverit, kus saate "liivakastis" mängida, siis isegi keskkonnas nagu DB Fiddle PostgreSQLjõudlustestidoptimeerimineEXPLAIN ANALYZEmaterialiseeritud vaatedtestandmedeksperiment 10.10.2023 10:19:50 | Erki Eessaar
Miks mitte kasutada klassifikaatori tabeli, välisvõtme veeru ja sellel oleva välisvõtme kitsenduse asemel loendustüüpi veergu? Sest see: vähendab lahenduse porditavust e ülekantavust, vähendab lahenduse paindlikkust, suurendab keerukust, suurendab PostgreSQL näitel salvestusruumi kasutamist. Kirjutan järgnevalt se... klassifikaatorloendustüüpenumeration typeenumerationreference dataPostgreSQLloendustüüpklassifikaatoridandmebaasi disainporditavus 13.06.2023 19:53:59 | Erki Eessaar
Miks ei ole hea mõte kasutada kõikides tabelites surrogaatvõtit? Surrogaatvõti on lihtvõti, mille väärtused on süsteemi genereeritud unikaalsed täisarvud. Need väärtused on kasutusel tarkvara siseselt ridade identifitseerimiseks, kuid andmebaasi kasutavatele inimestele ei tähenda need väärtused mi... surrogaatvõtisisuline võtiprimaarvõtivälisvõtiandmebaasi disainpäringute kiirusindeksid 20.02.2023 17:41:01 | Erki Eessaar
Mille poolest erineb MS Accessi andmetüüp BIT (YESNO) SQL standardis ettenähtud andmetüübist BOOLEAN? MS Accessis on BIT tüüp selline, mille korral tehakse teisendus NULL=>FALSECREATE TABLE Toode (toode_kood INTEGER,on_aktiivne BIT DEFAULT TRUE,CONSTRAINT pk_toode PRIMARY KEY (toode_kood)); PostgreSQLMS AccessBITBOOLEANYESNOtõeväärtusNULL 16.02.2023 15:24:14 | Erki Eessaar
Kas Oracles saab defineerida vaadetele kitsendusi? Jah saab. Esiteks saab vaadetele lisada WITH CHECK OPTION (andmemuudatus vaate kaudu peab rahuldama vaate alampäringu tingimusi) ja WITH READ ONLY (vaade on ainult lugemiseks, st kirjutuskaitsega) kitsendused. Neid kitsendusi jõustatakse ... OraclevaadekitsendusOraclevaadekitsendusedWITH CHECK OPTIONWITH READ ONLY 27.11.2022 17:35:57 | Erki Eessaar