[SQL Basic] Kuinka työskennellä merkkijonofunktioiden kanssa SQL: ssä - SQL CONCAT, PITUUS, SUBSTR

# 17. Markkinointi / Data-analyysi aloittelijoille

Tässä opetusohjelmassa opitaan toiminnoista, joita voit käyttää merkkijonotietojen käsittelemiseen helposti ja nopeasti. Merkkijonoille on monenlaisia ​​toimintoja, ja joskus eri tietokannoissa, kuten Oracle, SQL Server ja MySQL, on erilaisia ​​menetelmiä. Käytämme merkkijonotietoja MySQL: n perusteella.

#Sanasto:

Tunssi 3: VALITSE / MITÄ / MITÄ
Leson 4: TILAUS
Tunssi 5: JA / TAI / IN
Leson 6: LIKE
Leson 7: AS / DISTINCT / IS NULL
Tunssi 9: COUNT / SUM
Tunssi 10: AVG / MAX / MIN
Leson 11: RYHMITTÄMINEN / SAAMINEN
Leson 12: CASE
Leson 13: SISÄINEN LIITTYMINEN
Leson 14: ULKOINEN VASEN LIITTY / ULKOINEN OIKEA LIITTYMINEN
Leson 15: AINEET
Leson 16: DATE_FORMAT / DATEDIFF

#Sisällysluettelo

Kysely 1. Yhdistä asiakkaan etunimi-sarakkeet luodaksesi uuden kokonimenimen sarakkeen (CONCAT)
SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS täydellinen_nimi asiakasta;
Kysely 2. Lasketaan asiakkaan koko nimen pituus (LENGTH)
SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS full_name, PITUUS (CONCAT (etunimi, sukunimi)) AS pituus_nimi asiakasta;
Kysely 3. Tulostetaan vain kolme merkkiä asiakkaan nimestä (SUBSTR)
SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS koko_nimi, SUBSTR (CONCAT (etunimi, ““, sukunimi), 1, 3) AS lyhyt nimi FROM asiakkaalta;

Q1. Yhdistä asiakkaan etunimi-sarakkeet luodaksesi uuden kokonimenimen sarakkeen (CONCAT)

Katsotaanpa ensin asiakaspöytää.

VALITSE * asiakkaalta;

Taulukossa näkyvät eri sarakkeisiin tallennetut asiakkaan etunimet. Saatat tarvita koko nimen yhdessä monimutkaisemmissa kyselyissä, joten on hyvä tietää, kuinka nämä kaksi yhdistetään yhdeksi riviksi. Ja yhdistääksesi nämä kaksi MySQL: ssä, voit käyttää CONCATia.

#CONCAT

Aloita määrittämällä mikä sarake haluat nähdä: asiakastunnus
VALITSE asiakasnumero

Haluamme nähdä myös koko nimen, joten käytämme CONCATia etunimen ja sukunimen yhdistämiseen. Jos haluat lisätä välilyönnin näiden kahden väliin, meidän on asetettava yksi siellä ja korostettava se kaksoislainauksilla (“”). Varmista, että erotat kaikki kolme pilkuilla:
CONCAT (etunimi, ””, sukunimi)

Nimeä tämä uusi sarake täydelliseksi nimellä:
AS koko_nimi

Ja lopuksi sulje se taulukon nimellä ja puolipisteellä. Täysi ja lopullinen kyselysi näyttää tältä:
SELECT customer_id, CONCAT (etunimi, “”, sukunimi) AS täydellinen_nimi asiakasta;

️ Muotoile kysely SQLGate-sovelluksessa F9!

Voit myös lisätä jonkin verran ylimääräistä tekstiä CONCAT-kyselyyn seuraavasti:

SELECT customer_id, CONCAT ("Hei. Olen", etunimi, "", sukunimi) AS full_name FROM asiakkaalta;

Hei! Hauska tavata!

Q2. Lasketaan asiakkaan koko nimen pituus (etunimen ja sukunimen merkit).

Joskus on tarpeen laskea merkkijonon pituus. Käytämme LENGTH-kyselyä siihen. Tämä toiminto hyväksyy merkkijonodatan syötearvoksi, laskee kuinka monta merkkiä sillä on ja antaa numerot (laskee tavujen perusteella).

#PITUUS

Voit käyttää merkkijonoja tai merkkijonoja suoraan LENGTH-toiminnossa, mutta tässä esimerkissä käytämme juuri oppimamme CONCAT-kyselyä. Edellisessä esimerkissä CONCAT-toiminnon tulos oli merkkijono, joka vastasi asiakkaan nimeä (koko_nimi), joten voimme käyttää sitä ilman ongelmia. Mutta jos CONCATia käytetään numeerisiin laskelmiin, et voi toistaa tätä kyselyä.

Tässä on visuaalinen erittely siitä, mitä tämä kysely tekee:

Joten aseta ensin tarkasteltavat sarakkeet VALITSE-toimintoon:
SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS koko_nimi

Lisää sitten LENGTH-toiminto. Haluamme laskea jokaisen merkin etunimessä ja sukunimessä, lukuun ottamatta aiemmin lisäämääsi välilyöntiä, joten aiomme kirjoittaa CONCAT-toiminnomme uudestaan ​​LENGTH. Sen pitäisi näyttää seuraavalta:
PITUUS (CONCAT (etunimi, sukunimi))

Mene eteenpäin ja nimeä uusi sarake nimeksi Pituus ja sulje kysely:
AS-nimi_pituus FROM asiakkaalta;

Tässä on mitä lopullinen kysely näyttää:

SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS full_name, PITUUS (CONCAT (etunimi, sukunimi)) AS name_length FROM asiakas;

Loistava! Mutta miksi teimme niin? Miksi meidän on tiedettävä asiakasnimien pituus? Meidän on ymmärrettävä tämä toiminto käytännön aikaa koskevassa kysymyksessä. Näet sen ponnahdusikkunan myöhemmin uudelleen. Jatkamme nyt ~

Q3. Tulostetaan vain kolme asiakkaan nimen merkkiä (kolme ensimmäistä ja kolme viimeistä).

SUBSTR-toimintoa käytetään vain osan koko merkkijonosta purkamiseen. Sen avulla voit myös asettaa aloituskohdan ja määrittää, kuinka monta merkkiä haluat purkaa.

#SUBSTR

Jatkamme rakentamista aikaisemmalle kyselyllemme. Aloita SELECT:
SELECT customer_id, CONCAT (etunimi, ““, sukunimi)

Älä unohda nimetä uutta saraketta uudelleen:
AS koko_nimi

Kytke sitten SUBSTR ja sen sisään, kopioi CONCAT-toiminto. Täällä meillä on kaksi uutta tekijää ajatella. Ensinnäkin meidän on ilmoitettava lähtökohta. Koska haluamme sen alkavan aivan alussa, käytämme numeroa 1. Seuraavaksi meidän on ilmoitettava, kuinka monta merkkiä nimestä halusimme tulostaa. Sanotaan vain 3 merkkiä:
SUBSTR (CONCAT (etunimi, ““, sukunimi), 1, 3)

Tässä on visuaalinen esitys siitä, mitä SUBTR tekee:

Nimeä myös tämä sarake uudelleen:
AS lyhytnimi

Sulje se FROM-toiminnolla:
Asiakkaalta;

Viimeisen kyselysi pitäisi näyttää tältä:

SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS koko_nimi, SUBSTR (CONCAT (etunimi, ““, sukunimi), 1, 3) AS lyhyt nimi FROM asiakkaalta;

Joten nyt näemme vain jokaisen nimen 3 ensimmäistä merkkiä! MARY SMITHistä on tullut juuri MAR. kiva!

Oletetaan, että haluamme tulostaa vain merkkijonon 3 viimeistä merkkiä. Kuinka jatkamme sitä? Tämä on vähän kovaa. Koska kaikkien nimien pituus on erilainen, emme voi laskea tarkkaa sijaintia. Mutta mitä voimme tehdä, on mennä taaksepäin! Kerro vain SQLGate: lle, että haluat palata 3 nimikettä taaksepäin kaikissa nimissä ja aloittaa sieltä. Voimme tehdä tämän kirjoittamalla negatiivisen 3 (-3). Sen pitäisi näyttää tältä:

SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS koko_nimi, SUBSTR (CONCAT (etunimi, ““, sukunimi), 1, 3) AS lyhyt nimi FROM asiakkaalta;

Voit asettaa aloituskohdan merkkijonon edessä käyttämällä positiivisia numeroita tai asettaa sen merkkijonon takaosaan käyttämällä negatiivisia numeroita.

# Käytännön aika

Tulosta luettelo asiakkaiden nimistä ja heidän sensuroiduista sähköposteistaan ​​(käyttämällä CONCAT, SUBSTR, REPEAT, LENGTH)

Kun käsittelemme asiakkaan henkilökohtaisia ​​tietoja, kuten nimi, osoite ja puhelinnumero, meidän on käsiteltävä sitä paljastamatta sitä. Käyttämällä tähän saakka opittuja toimintoja, käytämme asiakastaulukoita korvaamaan asiakkaan sähköposti merkkijonolla, jota ei voida tunnistaa.

Käytämme CONCATia ja SUBSTR: ää sensuroidaksesi sähköpostia. Käytä ensin CONCAT-työkalua saadaksesi asiakkaiden koko nimi. Käytä sitten CONCAT ja SUBSTR yhdessä saadaksesi sähköpostiviestit, käytä REPEAT ja INSTR sensoidaksesi sen ja käytä AS nimeämällä sarake uudelleen.

UUDELLEEN: toista merkkijono niin monta kertaa kuin haluat
INSTR: palauttaa merkkijonon ensimmäisen esiintymiskohdan toisessa merkkijonossa

Tulos näyttää tältä:

Haluatko hieman hämmentyä? Tarkastellaan se:

Aloita SELECT-toiminnollasi ja seuraa sitä ensimmäisessä sarakkeessa, jota haluat tarkastella, Asiakastunnus-sarakkeessa:
VALITSE asiakasnumero

Yhdistä asiakkaiden etunimi ja sukunimi CONCAT -sovelluksella ja nimeä uusi sarake täydelliseksi nimellä:
CONCAT (etunimi, ““, sukunimi) AS koko_nimi

Luo salainen sähköpostisarake CONCAT-sovelluksella uudelleen seuraavien vaiheiden avulla:

  1. Tulosta asiakkaan sähköpostin 3 ensimmäistä kirjainta SUBSTR: n avulla
    (SUBSTR (sähköposti, 1, 3)
  2. INSTR: n avulla tunnistamme merkkijonon (sähköposti) ja määritämme tietyn merkin (@) merkkijonon haluamaasi lähtöpaikkaan.
    INSTR (sähköposti, '@')
  3. Nyt kun haluamme sensuroida sähköpostia, joudumme asettamaan tähdet (*), jotta jäljellä oleva pituus (merkit) täytettäisiin alkuperäisen 3 painetun jälkeen. Koska pituus on erilainen jokaiselle sähköpostille, meidän on toistettava se niin monta kertaa kuin on tarpeen, joten käytämme REPEAT. Aiomme myös vähentää 1 (-1) @ -symbolille ja vähentää 3 (-3) sähköpostin kolmelle painetulle tekstille, jotta tietoja ei sensuroida.
    TOISTO ('*', INSTR (sähköposti) -1-3)
  4. Lisää verkkotunnus merkkijonoon ja sulje CONCAT-toiminto:
    ’@ Sakilacustomer.org’)
  5. Nimeä uusi sarake uudelleen ja kirjoita taulukon nimi:
    AS secret_email asiakkaalta;

Kun suoritat kyselyn (F5), tulostuvat heidän sähköpostinsa kolme ensimmäistä merkkiä, joita seuraa tähdet, jotka sensuroivat loput henkilökohtaiset tiedot! Tässä on täydellinen kysely yhdessä:

SELECT customer_id, CONCAT (etunimi, ““, sukunimi) AS full_name, CONCAT (SUBSTR (email, 1, 3), REPEAT ('*', INSTR (email, '@') - 1–3)), '@sakilacustomer. org ') AS secret_email asiakkaalta;

Se voi vaikuttaa hieman monimutkaiselta, mutta ei ole vaikeaa määritellä jokainen näytettävä merkkijono kerralla ja yhdistää se sitten CONCAT-toimintoon. Vaikka osoitimme vain näiden toimintojen yleisesti käytettyä käytäntöä, on monia muita tapoja käyttää niitä. Kokeile heidän kanssaan löytää oikea

Jos haluat enemmän visuaalista ohjausta, tutustu alla olevaan video-oppaaseemme:

# Opetusvideo

Napsauta ladataksesi SQLGate Free version

# [SQL Basic Series] - Markkinointi / tietoanalyysi aloittelijoille

1. Mikä on SQL? - Tietokannan esittely
2. SQLGate-tiedoston lataaminen ja yhdistäminen tietokantaan
3. Millaisia ​​tietoja elokuvataulussa on? - VALITSE / MITÄ / MITÄ
4. Kuinka lajitella elokuvaluettelot hinnan (vuokrahinnan) mukaan? - TILAA
5. Voinko vuokrata 3 tunnin elokuvan 0,99 dollarilla? - JA / TAI / IN
6. Kuinka löydän jännittävän elokuvan? - KUTEN
7. Kuinka nimetä sarakkeet uudelleen ja nähdä ainutlaatuiset arvot? - AS / DISTINCT / IS NULL
8. Katsotaanpa esimerkkejä tietokantataulukoista!
9. Mikä on kaikkien elokuvien yhteenlaskettu pituus? - COUNT / SUM
10. Mikä on elokuvan keskimääräinen pituus? - AVG / MIN / MAX
11. Kuinka monella elokuvalla on sama luokitus? - RYHMITTÄMINEN / SAAMINEN
12. Oletetaan arvo, joka perustuu vuokrauksen kestoon. - CASE
13. Otetaan selville elokuvan genrejä liittymällä pöytiin! - SISÄINEN LIITTYMINEN
14. Tarkistetaan elokuvien vuokrat vuokraluettelosta! - VASEN / OIKEA LIITTYMINEN
15. Löydämme asiakkaita, jotka ovat vuokranneet elokuvia hintaan 9,99 dollaria! - Alikysely
16. Kuinka työskennellä SQL-päivämäärätoimintojen kanssa - DATE_FORMAT, DATEDIFF
17. Kuinka työskennellä kielitoimintojen kanssa SQL: ssä - CONCAT, LENGTH, SUBSTR
18. Käytämme joitain numeerisia SQL-toimintoja - TRUNCATE, ROUND, MOD