[SQL Basic] Kuidas muuta veerge ümber ja vaadata kordumatuid väärtusi? - SQL AS / DISTINCT / IS NULL

# 7. Turundus / andmete analüüs algajatele

Täna katame ASi, DISTINCT, IS NULL. Need on üsna lihtsad ja väga levinud, nii et alustame. Siin on meie mugav sõnastik:

3. tund:
VALITAKE: palute andmebaasil teile midagi näidata
FROM: annate andmebaasile asukoha otsimiseks
SIIN: ahendate / täpsustate asukohta

4. õppetund:
ORDER BY: soovite esitada konkreetse tellimuse loendi kuvamiseks

5. tund:
AND: saate leida teavet, mis vastab kahele konkreetsele kategooriale
OR: leidke kogu teave, mis vastab vähemalt ühele määratletud kategooriale
IN: leiate teavet, mis vastab ühele järgmistest kategooriatest

6. õppetund:
LIKE: kasutatakse konkreetse veeru leidmiseks


AS: kasutatakse veergude ümbernimetamiseks
DISTINCT: kasutatakse unikaalsete väärtuste nägemiseks
IS NULL: kasutatakse nullväärtuste nägemiseks

# Sisukord

Päring 1. Hiinas asuvate filmide otsimine ja (1) veeru nime muutmine väärtuseks „China_Movie”, (2) sortimine üürimäära järgi kasvavas järjekorras
SELECT film_id, pealkiri AS China_Movie, kirjeldus, rent_rate FROM filmist, KUS kirjeldus meeldib "% china%" ORDER BY rent_rate ASC;
Päring 2. Millised on erinevad (erinevad) väärtused reitingu veerus?
VALI DISTINCT hinnang filmist;
Päring 3. Aadressi 2 nullväärtuse leidmine aadressitabelis
VALI * aadressilt, kus aadress2 ON Tühi;

# AS

Q1. Hiinas asuvate filmide otsimine ja veeru nime muutmine „China_Movie” -ks, seejärel sortimine üürimäära järgi kasvavas järjekorras

SELECT (algne veeru nimi) AS (uue veeru nimi)

Esimene päring, mida kasutame, on AS. Seda kasutatakse koos SELECT veergude ümbernimetamiseks. Tahame anda veergudele erinevad nimed, kuna ekspordime andmeid, kirjutades eritingimusi. Peame ainult kirjutama algse veeru nime pärast valimist ja lisama uue veeru nime AS-i järele.

Selles näites kasutame LIKE mustri otsimiseks, mis vastaks Hiinal põhinevate filmide teabele. Enne seda määratlegem teave, mida tahame näha. Soovime filmi ID, pealkirja, kirjeldust, hinda (rendihinda) ja tahame otsida tabelist „film”. Tellime selle ka kasvavas järjekorras hinna järgi. Proovi seda:

SELECT film_id, pealkiri, kirjeldus, rent_rate FROM filmist, KUI kirjeldus LIKE '% china%' ORDER BY rent_rate ASC;

Hea välja nägema! Siin on kõik filmid, mille kirjelduses on sõna "Hiina". Nüüd tahame veeru “pealkiri” ümber nimetada “Hiina filmiks”. Teeme seda, kasutades meie uut päringut AS. Nimetame siin ümber ainult ühte asja, seega peame AS-i kasutama ainult üks kord piirkonnas, mida soovime muuta. Ühendage päringu SELECT pealkirja järel pealkiri AS, näiteks:

SELECT film_id, pealkiri AS China_Movie, kirjeldus, rent_rate….

Ülejäänud päring jääb samaks, ainus, mida olete muutnud, on selle veeru ümbernimetamise päring. See peaks välja nägema selline:

Võite minna ühe sammu edasi ja nimetada kõik veerud ümber!
Siin on meie näide:

SELECT film_id, pealkiri AS China_Movie, kirjeldus AS kokkuvõte,
rent_rate AS Hind
Filmist
KUS kirjeldus meeldib "% china%"
TELLIMINE rent_rate ASC;

Kuidas on? Tundub nüüd palju paremini hallatav, kas pole?

# DISTINCT

Q2. Millised on reitingu veerus eristatavad (erinevad) väärtused?

SELECT DISTINCT veerg

Kui soovite näha filmitabelis selliseid filmireitinguid nagu PG, G, NC-17, kuidas saate oma päringu kirjutada? Proovi seda:

VALI film_id, pealkiri, kirjeldus, hinnang filmist;

Pange tähele, kuidas on palju erinevaid filme, millel on ühesugused hinnangud.
Mis oleks, kui tahame lihtsalt ilma filmiteabeta näha, kui palju hinnanguid on saadaval? Me võime seda kirjutada nii:

VALI hinnang filmist;

Kuigi see annab meile soovitud teavet, näitab see sama reitingu mitut tulemust. Seda tabelit on lihtsam sortida, kui meil on hinnete loend ilma duplikaatideta. Siin tuleb DISTINCT sisse. See päring töötab koos SELECT-iga, nii et laskem selle praktikas kasutada, et näha täpselt, millised hinnangud on saadaval:

VALI DISTINCT hinnang filmi tellimusest reitingu järgi;

Lisasime siia ORDER BY, et saada täpsemat teavet.

Seal see meil on! Näeme kõigi tabelites olevate filmide 5 saadaolevat reitingut ilma duplikaatteabeta.

# ON NULL

Q3. Aadressi 2 nullväärtuse leidmine aadressitabelis

KUS veerg on tühi

Lõpuks õppige, kuidas leida SQL-i nullväärtus.

Mõiste NULL tähistab väärtust null. See tähendab, et puudub igasugune teave.

Vaatame korraks aadressitabelit. Käivitage see päring:

VALI * aadressilt;

Veerus aadress2 näete mõnda tulemust tähega „(null)” ja ülejäänud on lihtsalt tühjad. Ehkki meie silmis on tühjad ka tühised, loeb SQL neid väärtuse omavatena. Väärtus on lihtsalt tühik! Vaadakem siis ainult tühikutega veerge, jättes tühiku meie üksikute tsitaatide vahele.

VALI * aadressilt, kus aadress2 = '';

Siin on aadressi2 tulemuste loend tühjaga. Järgmisena vaatame tulemusi, kus teave on (null). Kas saame kirjutada lihtsalt kuhu WHERE address2 = '(null)'?
Proovi!

Nagu näete, ei saa me tulemusi. Seda seetõttu, et peame siin kasutama teist päringut. Proovige seda:

VALI * aadressilt, kus aadress2 ON Tühi;

Seal me läheme! Siin on kõik aadressid, mille aadressi2 teave on null, mis tähendab, et midagi pole sisestatud (isegi tühikut!). Nii et kui soovite kunagi leida veerge, milles on (null), peate kasutama päringut NULL.

# Harjutamise aeg

Teie seekordne väljakutse on leida filmitabelist rendi kestuse ainulaadne väärtus ja sortida see kasvavas järjekorras. Enne meie allolevat õpetust tutvuge veidi aega, et see ise välja mõelda.

Kasutage päringuid SELECT, DISTINCT, FROM ja ORDER BY

Alustage järgmiselt: VALI DISTINCT rent_duration….

Kas sa said selle? Võrrelge oma päringut allpool esitatud päringuga!

VALI DISTINCT rent_duration filmist TELLIMISEL rent_duration ASC-st;

Selles näites peame kasutama DISTINCT, kuna tahame näha kordumatuid väärtusi ilma duplikaatideta. Ilma DISTINCTta saame ridu ja ridu teavet, mida me ei vaja.

Mida sa arvasid? Kuidas oli? Kui tunnete end kadununa, järgige allolevas lingis pakutavat videoõpetust:

# Õppevideo

Näeme järgmine kord!

Klõpsake SQLGate'i tasuta versiooni allalaadimiseks

# [SQL põhiseeria] - turundus / andmete analüüs algajatele

1. Mis on SQL? - andmebaasi tutvustus
2. SQLGate'i allalaadimine ja andmebaasiga ühendamine
3. Milliseid andmeid on filmi tabelis? - VALI / FROM / KUS
4. Kuidas sorteerida filmiloendeid hinna (renditasu) järgi? - TELLIMUS
5. Kas ma saan rentida 3-tunnise filmi 0,99 dollari eest? - JA / VÕI / IN
6. Kuidas leida põnevat filmi? - LIKE
7. Kuidas veerge ümber nimetada ja kordumatuid väärtusi näha? - AS / DISTINCT / IS NULL
8. Vaatame andmebaasi näidistabeleid!
9. Milline on kõigi filmide summaarne pikkus kokku? - COUNT / SUM
10. Milline on filmi keskmine pikkus? - AVG / MIN / MAX
11. Kui paljudel filmidel on sama reiting? - RÜHMIGE POOLT
12. Määrake väärtus, mis põhineb rendi kestusel. - JUHTUM
13. Uurime filmide žanreid tabelite liitmise kaudu! - Siseühendus
14. Vaatame filmide rentimist varude nimekirja järgi! - VASAK / PAREM LIITUMINE
15. Leidkem kliente, kes on laenutanud filme hinnaga 9,99 dollarit! - alam päringud
16. Kuidas töötada SQL-i kuupäevafunktsioonidega - DATE_FORMAT, DATEDIFF
17. Kuidas töötada stringi funktsioonidega SQL-is - CONCAT, LENGTH, SUBSTR
18. Kasutagem mõnda numbrilist SQL-funktsiooni - TRUNCATE, ROUND, MOD