Millaisia SQL-tyyppejä joins
olet käyttänyt, ja selitä, miten ne toimivat?
Vastaus:
INNER JOIN
: Palauttaa rivit vastaavilla tiedoilla molemmista taulukoista.LEFT JOIN
: Palauttaa kaikki rivit vasemmasta taulukosta ja vastaavat rivit oikeanpuoleisesta taulukosta.RIGHT JOIN
: Palauttaa kaikki rivit oikeanpuoleisesta taulukosta ja vastaavat rivit vasemmasta taulukosta.FULL JOIN
: Palauttaa kaikki rivit molemmista taulukoista, mukaan lukien rivit, jotka eivät täsmää.
Selitä SQL:n ACID-käsitteet ja niiden rooli tapahtumanhallinnassa
Vastaus: ACID tarkoittaa Atomicity, Consistency, Isolation, Durability
. Nämä ovat tärkeitä ominaisuuksia tapahtumien hallinnassa SQL:ssä:
Atomicity
varmistaa, että tapahtuma on joko kokonaan käsitelty tai sitä ei käsitellä ollenkaan.Consistency
varmistaa, että tietojen on noudatettava määriteltyjä sääntöjä, rajoituksia ja ehtoja.Isolation
varmistaa, että samanaikaiset tapahtumat eivät häiritse toisiaan.Durability
varmistaa, että kun tapahtuma on suoritettu, muutokset tietokantaan tallennetaan turvallisesti ja pysyvästi.
Mitä eroa on ROW_NUMBER(), RANK(), DENSE_RANK()
SQL:n funktioilla?
Vastaus: ROW_NUMBER(), RANK(), DENSE_RANK()
käytetään kaikkia rivien numerointiin kyselyn tuloksessa, mutta niillä on seuraavat erot:
ROW_NUMBER()
: Määrittää jatkuvia numeroita kyselyn tuloksen riveille ottamatta huomioon kaksoiskappaleita.RANK()
: Antaa numeroita kyselyn tuloksen riveille ja ohittaa seuraavan numeron tasatuloksissa.DENSE_RANK()
: Antaa numeroita kyselyn tuloksen riveille eikä ohita seuraavaa numeroa tasatuloksissa.
Kuinka käyttää window functions
SQL:ssä, ja anna esimerkki.
Vastaus: Window functions
salli laskelmien suorittaminen joukolle toisiinsa liittyviä rivejä muuttamatta pääkyselyn tulosta. Voimme esimerkiksi käyttää ikkunafunktioita juoksevien kokonaismäärien laskemiseen tai noutaa tulosjoukon N ylintä riviä.
SELECT ProductID, UnitPrice,
SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal
FROM Products;
Säännöllisten lausekkeiden käyttäminen SQL:ssä kuvioiden sovittamiseen
Vastaus: SQL:n säännöllisiä lausekkeita käytetään monimutkaisiin tekstimallihakuihin. Niitä käytetään usein LIKE
operaattorin tai funktioiden kanssa, kuten REGEXP_LIKE
(Oraclessa) tai REGEXP_MATCHES
(PostgreSQL:ssä).
SELECT * FROM Employees WHERE LastName LIKE '%son%';
Kuinka käyttää JSON-funktioita SQL:ssä JSON-tietojen käsittelyyn
Vastaus: SQL:n JSON-funktiot mahdollistavat JSON-muotoisten tietojen kyselyn, lisäämisen, päivittämisen ja poistamisen tietokannassa.
Voimme esimerkiksi käyttää toimintoja, kuten JSON_VALUE, JSON_QUERY, JSON_MODIFY(SQL Serverissä) tai operaattoreita, kuten ->, ->>, #>, #>> jne.(PostgreSQL:ssä) JSON-ominaisuuksien manipulointiin.
SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName
FROM Customers;
Kehittyneet tekniikat SQL-kyselyn optimointiin ja tietokannan suorituskyvyn viritykseen
Vastaus: SQL-kyselyjen ja tietokannan suorituskyvyn optimoimiseksi voimme käyttää tekniikoita, kuten:
- Usein kysyttyjen sarakkeiden indeksien käyttäminen.
- Optimointi
JOIN
jaWHERE
lausekkeet tehokkaaseen tiedonhakuun. - Hyödynnä ikkunatoimintoja ja sivutusta tarvittaessa.
- Vältä
SELECT
* noutaaksesi vain välttämättömät sarakkeet. - Kyselyvihjeiden käyttäminen joissakin tapauksissa.
- Tietojen normalisoinnin varmistaminen ja kaksoiskappaleiden poistaminen.
- Suorituskyvyn seurantatyökalujen käyttäminen tietokannan seurantaan ja hienosäätöön.
SET
Selitä, kuinka operaatioita käytetään (UNION, INTERSECT, EXCEPT)
SQL:ssä
Vastaus: SET
operaatioita (UNION, INTERSECT, EXCEPT)
käytetään yhdistämään ja käsittelemään eri kyselyiden tulosjoukkoja.
UNION
: Yhdistää kahden tai useamman kyselyn tulokset yhdeksi tietojoukoksi ja poistaa kaksoiskappaleet.INTERSECT
: Palauttaa rivit, jotka näkyvät molemmissa kyselyn tulosjoukoissa.EXCEPT
: Palauttaa rivit, jotka näkyvät ensimmäisessä kyselyn tulosjoukossa, mutta eivät toisessa.
Kuinka käyttää kyselytoimintoja kuten LEAD, LAG, FIRST_VALUE, LAST_VALUE
SQL:ssä
Vastaus: Kyselyfunktioita, kuten LEAD, LAG, FIRST_VALUE, LAST_VALUE
käytetään arvojen hakemiseen saman kyselyn tuloksen liittyviltä riveiltä.
LEAD
: Hakee sarakkeen arvon kyselytuloksen seuraavalta riviltä.LAG
: Hakee sarakkeen arvon kyselyn tuloksen edelliseltä riviltä.FIRST_VALUE
: Hakee sarakkeen ensimmäisen arvon kyselyn tuloksesta.LAST_VALUE
: Hakee sarakkeen viimeisen arvon kyselyn tuloksesta.