SQL-petuleht

SQL-petulehe sissejuhatus


Selles juhendis leiate kasuliku peitlehe, mis dokumenteerib mõned SQL-i kõige sagedamini kasutatavad elemendid ja isegi mõned vähem levinud elemendid. Loodetavasti aitab see arendajatel – nii algajatel kui ka kogenud kasutajatel – SQL-keele mõistmise oskust paremini omandada.

Kasutage seda kiire väljatöötamise, õppeabivahendina või printige see välja ja köidage soovi korral (mis iganes töötab!).

Kuid enne kui jõuame petulehe juurde, alustame arendajatega, kes pole ehk SQL-iga tuttavad:

Mis on SQL

SQL tähistab struktureeritud päringu keelt. See on tänapäeva veebis valitud keel suhtlusbaasides andmete salvestamiseks, töötlemiseks ja otsimiseks. Enamik, kui mitte kõik teie külastatud veebisaitidest kasutab seda mingil viisil, sealhulgas see üks.

Siit saate välja, kuidas põhiline relatsioonandmebaas välja näeb. Eelkõige salvestab see näide e-kaubanduse teavet, eriti müügis olevaid tooteid, neid ostvaid kasutajaid ja neid 2 üksust ühendavate tellimuste andmeid.

Põhiline relatsiooniandmebaas

SQL-i abil saate andmebaasiga suhelda, kirjutades päringuid, mis täitmise korral annavad kõik kriteeriumidele vastavad tulemused.

Siin on näidispäring:-

VALI * kasutajatelt;

Seda käsku SELECT kasutades valib päring kõik andmed kasutaja tabeli kõigist veergudest. Seejärel tagastaks andmed nagu allpool, mida tavaliselt nimetatakse tulemuste kogumiks:-

Kasutajate tabeli näidis

Kui asendaksime tärniga metamärgi (*) konkreetsete veerunimedega, tagastatakse päringust ainult nende veergude andmed.

VALIDA kasutajatelt eesnimi, perekonnanimi;

Näide kasutajate tabelist vähendatud veergudega

Saame standardsele SELECT-avaldusele natuke keerukust lisada, lisades klausli WHERE, mis võimaldab teil filtrida, mida tagastatakse.

VALI * toodetest, kus laoarvestus <= 10 ORDER BY stock_count ASC;

See päring tagastaks kõik tooted tabelist, mille stock_count väärtus on tulemuste komplektis väiksem kui 10.

Märksõna ORDER BY kasutamine tähendab, et tulemused tellitakse veerus stock_count, madalaimad väärtused kõrgeimani.

Toodete tabeli näidis

Kasutades avaldust INSERT INTO, saame tabelisse lisada uusi andmeid. Siin on põhinäide, mis lisab kasutajate tabelisse uue kasutaja:-

INSERT INTO kasutajad (eesnimi, perekonnanimi, aadress, e-post)
VÄÄRTUSED ('Tester', 'Jester', '123 Fake Street, Sheffield, Ühendkuningriik', '[e-posti aadress on kaitstud]');

Kui peaksite uuesti päringut uuesti esitama, et kõik andmed tabelist tagasi saada, näeksid tulemuste komplekt välja järgmine:

Uue reaga tabeli näidis

Muidugi näitavad need näited vaid väga väikest valikut sellest, milleks SQL keel võimeline on.

SQL vs MySQL

Võib-olla olete MySQList juba varem kuulnud. On oluline, et te ei segaks seda SQL-iga ise, kuna seal on selge erinevus.

SQL vs MySQLSQL on keel. See kirjeldab süntaksi, mis võimaldab teil kirjutada päringuid, mis haldavad relatsiooniandmebaase. Mitte midagi rohkemat.

MySQL vahepeal on andmebaas süsteem mis töötab serveris. See tööriistad SQL-i keel, mis võimaldab teil päringuid kirjutada, kasutades selle süntaksit MySQL-i andmebaaside haldamiseks.

Lisaks MySQL-le on ka teisi SQL-i rakendavaid süsteeme. Mõned populaarsemad on järgmised:

  • PostgreSQL
  • SQLite
  • Oracle'i andmebaas
  • Microsoft SQL Server

MySQL installimine

Windows

MySQL-i installimiseks Windowsi jaoks on soovitatav kasutada installiprogrammi, mille saate alla laadida saidist MySQL veebisait.

Installige MySQL Windows

MacOS

MacOS-is on soovitatav MySQL-i installimisviis looduslike pakettide kasutamine, mis kõlab palju keerulisemalt kui see tegelikult on. Põhimõtteliselt hõlmab see ka lihtsalt faili allalaadimist paigaldaja.

Installige MySQL Mac

Kui soovite kasutada paketihaldureid, näiteks Kodutütar, saate MySQL-i installida nii:

pruulida installima mysql

Kui teil on vaja installida vanem MySQL versioon 5.7, mida tänapäeval veebis endiselt laialt kasutatakse, saate teha järgmist.

õlle installimine [e-posti aadressiga kaitstud]

MySQL kasutamine

Kui MySQL on nüüd teie süsteemi installitud, on SQL-i päringute võimalikult kiireks üleslaadimiseks soovitatav kasutada SQL-i haldusrakendust, et muuta andmebaaside haldamine palju lihtsamaks ja hõlpsamaks protsessiks.

Valida on palju rakendusi, mis teevad suuresti sama töö, seega on teie enda isiklik eelistus, kumba kasutada:

  • MySQL Workbench on välja töötanud MySQLi omanik Oracle.
  • HeidiSQL (Soovitatav Windows) on Windowsi jaoks mõeldud tasuta avatud lähtekoodiga rakendus. MacOS-i ja Linuxi kasutajatele, Vein on kõigepealt vajalik eeltingimusena.
  • phpMyAdmin on väga populaarne alternatiiv, mis töötab veebibrauseris.
  • Sequel Pro (Soovitatav macOS) on ainus macOS-i alternatiiv ja tänu oma selgele ja hõlpsasti kasutatavale liidesele meie lemmik.

Kui olete valmis alustama oma SQL-päringute kirjutamist, selle asemel, et kulutada aega oma andmebaasi loomisele, kaaluge selle asemel näiteandmete importimist.

MySQL veebisait pakub mitmeid mannekeenide andmebaasid mida saate tasuta alla laadida ja seejärel oma SQL-i rakendusse importida.

Mannekeenide andmebaas MySQL

Meie lemmik neist on maailm andmebaas, mis pakub huvitavaid andmeid SQL-i päringute kirjutamiseks. Siin on ekraanipilt oma riigi tabelist Sequel Pro-s.

Sequel Pro näide

See näitepäring tagastab kõik riigid, mille riigipeaks on kuninganna Elizabeth II.

Sequel Pro näide

Ehkki see naaseb kõigisse Euroopa riikidesse, kus elab üle 50 miljoni elaniku, koos oma pealinna ja selle elanikega.

Sequel Pro näide

Ja see viimane arv tagastab prantsuse keele kõnelejate keskmise protsendi riikides, kus prantsuse kõnelejate koguarv on suurem kui 10%.

Sequel Pro näide

Spikker

Märksõnad

SQL-lausetes kasutatud märksõnade kogum, kirjeldus ja vajaduse korral näide. Mõnel edasijõudnumal märksõnal on hiljem oma petteleht.

Kui näite kõrval on mainitud MySQL, tähendab see, et see näide on rakendatav ainult MySQL andmebaaside jaoks (erinevalt muudest andmebaasisüsteemidest).

SQL märksõnad
MärksõnaKirjeldus
LISAMALisab olemasolevale tabelile uue veeru.

Näide: Lisab tabeli nimega kasutajad uue veeru nimega “email_address”..

ALTER TABLE kasutajad
ADD email_address varchar (255);
LISA KONSTRAATSee loob olemasolevale tabelile uue piirangu, mida kasutatakse tabelis olevate andmete reeglite täpsustamiseks.

Näide: Lisab veergude ID ja SURNAME uue PRIMARY KEY piirangu nimega “user”.

ALTER TABLE kasutajad
ADD CONSTRAINT user PRIMARY KEY (ID, SURNAME);
ALTER TABELLisab, kustutab või redigeerib tabeli veerge. Seda saab kasutada ka piirangute lisamiseks ja kustutamiseks tabelisse, nagu ülaltoodud.

Näide: Lisab tabeli nimega “tehingud” uue tõeväärtuse veeru nimega “heaks kiidetud”.

ALTER TABLE tehingud
ADD heaks tõeväärtus;

Näide 2: Kustutab tabeli „pakkumised” veeru „kinnitatud”

ALTER TABLE tehingud
DROP COLUMN heaks kiidetud;
ALTER VEERGMuudab tabeli veeru andmetüüpi.

Näide: Muutke tabelis „kasutajad” veerg „incept_date” tüüpi „datetime”.

ALTER TABLE kasutajad
ALTER COLUMN incept_date datetime;
KÕIKTagastab tõese, kui kõik alampäringu väärtused vastavad läbitud tingimusele.

Näide: Tagastab kasutajatele, kellel on suurem arv ülesandeid, kui kasutajale, kellel on HR-osakonnas kõige rohkem ülesandeid (id 2)

VALI ees- ja perekonnanimi, ülesanded_no
FROM kasutajatelt
KUS ülesanded_no> KÕIK (vali ülesanded kasutajalt, kus osakond_id = 2);
JAKasutatakse eraldi tingimuste liitmiseks WHERE klausli piires.

Näide: Tagastab sündmused, mis asuvad Suurbritannias Londonis

VALI * sündmustest
KUS host_country = 'Ühendkuningriik' JA host_city = 'London';
MIDAGITagastab väärtuse true, kui mõni alam päringu väärtustest vastab antud tingimusele.

Näide: Tagastab toodete tabelist tooted, mis on tellimusi saanud - tellimustabelisse salvestatud - kogusega üle 5.

VALI nimi
FROM toodetest
KUI productId = ANY (IGAN) (SELECT productId Tellimustest, kus kogus on üle 5);
ASNimetab tabeli või veeru ümber pseudonüümi väärtusega, mis eksisteerib ainult päringu ajal.

Näide: Varjunimed veerg north_east_user_subscriptions

SELECT north_east_user_subscriptions AS ne_subs
FROM kasutajatelt
KUS ne_subs> 5;
ASCKasutatakse koos ORDER BY andmete edastamiseks kasvavas järjekorras.

Näide: Õunad, banaanid, virsikud, redis

VAHELValib antud vahemikus olevad väärtused.

Näide 1: Valib laoseisu kogusega 100 kuni 150.

VALI * laost
KUS 100 ja 150 VAHELINE kogus;

Näide 2: Valib aktsiad kogusega, mis EI ole vahemikus 100 kuni 150. Alternatiivina pöörab märksõna NOT kasutamine siin loogika ümber ja valib väärtused väljaspool antud vahemikku.

VALI * laost
KUI kogus ei ole 100 ja 150 vahel;
JUHTUMMuutke päringu väljundit sõltuvalt tingimustest.

Näide: Tagastab kasutajad ja nende tellimused koos uue veeruga nimega activity_levels, mis teeb otsuse tellimuste arvu põhjal.

VALI ees- ja perekonnanimi, tellimused
JUHTUM, kui tellimusi on üle 10, siis on väga aktiivne
KUI 3 JA 10 VAHEL KOGUS "Aktiivne"
ELSE 'passiivne'
END AS tegevuse_tasemed
FROM kasutajatelt;
KONTROLLIMALisab piirangu, mis piirab veerule lisatava väärtuse.

Näide 1 (MySQL): Veendub, et kasutajate tabelisse lisatud kasutajad on vähemalt 18-aastased.

CREATE TABLE kasutajaid (
eesnimi varchar (255),
vanusevaheline,
KONTROLLI (vanus> = 18)
);

Näide 2 (MySQL): Lisab kontrollimise pärast seda, kui tabel on juba loodud.

ALTER TABLE kasutajad
LISAKONTROLL (vanus> = 18);
LOE ANDMEBAASLoob uue andmebaasi.

Näide: Loob uue andmebaasi nimega websitesetup.

CREATE DATABASE veebilehtede seadistamine;
LOE TABELLoob uue tabeli .

Näide: Loob andmebaasi „websitesetup” uue tabeli „kasutajad”.

CREATE TABLE kasutajaid (
id int,
eesnimi varchar (255),
perekonnanimi varchar (255),
aadress varchar (255),
kontakt_number int
);
DEFAULTMäärab veeru vaikeväärtuse;

Näide 1 (MySQL): Loob uue tabeli nimega Tooted, mille nimeveerg on vaikimisi väärtusega „Kohatäite nimi” ja veerg available_from, mille vaikeväärtus on tänane kuupäev.

CREATE TABLE tooteid (
id int,
nimi varchar (255) DEFAULT 'Kohahoidja nimi',
saadaval_kuupäevast DEFAULT GETDATE ()
);

Näide 2 (MySQL): Sama nagu ülalpool, kuid olemasoleva tabeli redigeerimine.

ALTER TABLE tooted
ALTER nimi SET SET DEFAULT 'Kohahoidja nimi',
ALTER available_fr SET SET DEFAULT GETDATE ();
KustutaKustutage andmed tabelist.

Näide: Eemaldab kasutaja, kelle kasutajanimi on 674.

Kustuta kasutajatelt, kus user_id = 674;
DESCKasutatakse ORDER BY abil andmete tagastamiseks kahanevas järjekorras.

Näide: Redis, virsikud, banaanid, õunad

DROP veergKustutab tabeli veeru.

Näide: Eemaldab veeru eesnimi kasutajate tabelist.

ALTER TABLE kasutajad
DROP COLUMN eesnimi
Drop andmebaasKustutab kogu andmebaasi.

Näide: Kustutab andmebaasi nimega websitesetup.

DROP DATABASE veebilehtede seadistamine;
Drop DefaultEemaldab veeru vaikeväärtuse.

Näide (MySQL): Eemaldab vaikimisi väärtuse tabeli veerust „nimi”.

ALTER TABLE tooted
ALTER VEERU nimi Drop Default;
DROP TABELKustutab tabeli andmebaasist.

Näide: Eemaldab kasutajate tabeli.

DROP TABLE kasutajad;
EKSISTIDKontrollib alampäringus mis tahes kirje olemasolu, mis vastab tõesele, kui üks või mitu kirjet tagastatakse.

Näide: Loetleb kõik edasimüügid, mille tehingute finantseerimise protsent on alla 10.

VALI edasimüüja_nimi
Edasimüügist
KUS VÕISTLUSED (VALI tehingu_nimi tehingutest) KUS vahendusfirma_id = tehingud.maksetehingu_ID JA finantseerimise protsent < 10);
FROMMäärab, millisesse tabelisse andmed valida või kustutada.

Näide: Valib andmed kasutajate tabelist.

VALI ala_haldur
FROM piirkonnajuhtidest
KUI ESITATAKSE (VALI TOODE NIMI POOLT TOODETEST, KUS area_manager_id = Deals.area_manager_id JA Hind < 20);
INKasutatakse WHERE klausli kõrval mitme OR-i tingimuse otseteena.

Seega:-

VALI * kasutajatelt
KUS riik = 'USA' VÕI riik = 'Ühendkuningriik' VÕI riik = 'Venemaa' VÕI riik = 'Austraalia';

Sa võid kasutada:-

VALI * kasutajatelt
KUS riik IN ('USA', 'Ühendkuningriik', 'Venemaa', 'Austraalia');
SISSE SISSELisage tabelisse uued read.

Näide: Lisab uue sõiduki.

INSERT INTO autod (mark, mudel, läbisõit, aasta)
VÄÄRTUSED ('Audi', 'A3', 30000, 2016);
ON NULLTühjade (NULL) väärtuste testid.

Näide: Tagastab kasutajad, kellele pole kontaktnumbrit antud.

VALI * kasutajatelt
KUS kontaktnumber on tühi;
EI OLE NULLNULLI tagurpidi. Tühjade väärtuste testid / NULL.
MEELDISTagastab tõese, kui operandi väärtus vastab mustrile.

Näide: Tagastab tõesuse, kui kasutaja eesnimi lõpeb sõnaga "poeg".

VALI * kasutajatelt
KUST eesnimi meeldib "% poeg";
MITTETagastab tõesuse, kui rekord EI TÕENDA seda tingimust.

Näide: Tagastab tõesuse, kui kasutaja eesnimi ei lõpe sõnaga "poeg".

VALI * kasutajatelt
KUI eesnimi EI meeldi "% poeg";
VÕIKasutatakse koos WHERE andmete lisamisega, kui mõlemad tingimused on täidetud.

Näide: Tagastab kasutajad, kes elavad kas Sheffieldis või Manchesteris.

VALI * kasutajatelt
KUS linn = 'Sheffield' VÕI 'Manchester';
TELLIMUSKasutatakse tulemuste andmete sortimiseks kasvavas (vaikimisi) või kahanevas järjekorras ASC- või DESC-märksõnade abil.

Näide: Tagastab riigid tähestiku järjekorras.

VALI * riikidest
TELLIMUS nime järgi;
ROWNUMTagastab tulemused, kus rea number vastab läbitud tingimusele.

Näide: Tagastab riikide tabelist kümme parimat riiki.

VALI * riikidest
KUS ROWNUM <= 10;
VALIKasutatakse andmete valimiseks andmebaasist, mis seejärel tagastatakse tulemuste komplektis.

Näide 1: Valib kõigi kasutajate hulgast kõik veerud.

VALI * kasutajatelt;

Näide 2: Valib kõigi kasutajate veerud ees- ja perekonnanimed.xx

VALI eesnimi, perekonnanimi kasutajatelt;
VALI DISTINCTSama nimega SELECT, välja arvatud duplikaatväärtused.

Näide: Loob kasutajate tabeli andmete põhjal varundamise tabeli.

SELECT * INTO usersBackup2020
FROM kasutajatelt;
VALI SISSEKopeerib andmed ühest tabelist ja lisab need teise.

Näide: Tagastab kasutajate tabelist kõik riigid, eemaldades kõik duplikaadid (mis oleks väga tõenäoline)

VALI kasutajatelt DISTINCT riik;
VALI ÜLESVõimaldab teil tabelist naasmiseks kindlaksmääratud arvu kirjeid.

Näide: Tagastab autode tabelist 3 parimat autot.

VALI TOP 3 * autodest;
SETKasutatakse koos UPDATE tabelis olemasolevate andmete värskendamiseks.

Näide: Värskendab tellimuse tabelis väärtuse ja koguse väärtusi, mille ID on 642.

UPDATE tellimusi
SET-väärtus = 19,49, kogus = 2
KUS id = 642;
MÕNEDIgasugune.
TOPKasutatakse koos valiku SELECT abil tabelist määratud arvu kirjete tagastamiseks.

Näide: Tagastab kasutajate tabelist 5 parimat kasutajat.

VALI TOP 5 * kasutajatelt;
KIIRTABELSarnaselt DROP-iga, kuid tabeli ja selle andmete kustutamise asemel kustutab see ainult andmed.

Näide: Tühistab istungite tabeli, kuid jätab laua ise puutumata.

TRUNCATE TABLE sessioonid;
LIIDUKombineerib kahe või enama VALI avalduse tulemused ja tagastab ainult erinevad väärtused.

Näide: Tagastab linnad sündmuste ja tellijate tabelitest.

VALI linn üritustest
LIIDU
VALI tellijate seast linn;
LIIDU KÕIKSama mis UNION, kuid sisaldab dubleerivaid väärtusi.
AinulaadneSee piirang tagab veeru kõigi väärtuste kordumatuse.

Näide 1 (MySQL): Uute kasutajate tabeli loomisel lisab ID-veergu kordumatu piirangu.

CREATE TABLE kasutajaid (
id int EI NULL,
nimi varchar (255) EI NULL,
Ainulaadne (id)
);

Näide 2 (MySQL): Muudab olemasolevat veergu, et lisada UNIKALIK piirang.

ALTER TABLE kasutajad
LISAKS UNIKS (id);
UuendamineOlemasolevate andmete värskendamine tabelis.

Näide: Värskendab autode tabelis läbisõidu ja serviceDue väärtusi sõidukile, mille id on 45.

UPDATE autod
SET läbisõit = 23500, serviceDue = 0
KUS id = 45;
VÄÄRTUSEDKasutatakse märksõna INSERT INTO kõrval tabelisse uute väärtuste lisamiseks.

Näide: Lisab autode lauale uue auto.

INSERT INTO autod (nimi, mudel, aasta)
VÄÄRTUSED ('Ford', 'Fiesta', 2010);
KUSFiltreerib tulemused, et hõlmata ainult andmeid, mis vastavad antud tingimusele.

Näide: Tagastab tellimused kogusega üle 1 kauba.

VALI * tellimustest
KUS kogus> 1;

Kommentaarid

Kommentaarid võimaldavad teil selgitada SQL-i lausete jaotisi või kommenteerida koodi ja takistada selle täitmist.

SQL-is on 2 tüüpi kommentaare, üherealine ja mitmerealine.

Üherealised kommentaarid

Üherealised kommentaarid algavad tähega -. Mis tahes teksti pärast neid 2 tähemärki rea lõpuni eiratakse.

-- Minu valitud päring
VALI * kasutajatelt;

Mitmerealised kommentaarid

Mitmerealised kommentaarid algavad tähega / * ja lõpevad tähega * /. Need ulatuvad üle mitme rea, kuni sulgevad tegelased on leitud.

/ *
See on minu valitud päring.
See haarab kasutajate tabelist kõik andmeridad
* /
VALI * kasutajatelt;

/ *
See on veel üks valitud päring, mida ma ei soovi veel täita

VALI * ülesannetest;
* /

MySQL andmetüübid

Uue tabeli loomisel või olemasoleva redigeerimisel peate määrama andmete tüübi, mida iga veerg aktsepteerib.

Allpool toodud näites peavad ID-veergu edastatud andmed olema int, samas kui veerus first_name on VARCHAR-i andmetüüp, maksimaalselt 255 tähemärki.

CREATE TABLE kasutajaid (
id int,
eesnimi varchar (255)
);

Stringi andmetüübid

Stringi andmetüübid
AndmetüüpKirjeldus
CHAR (suurus)Fikseeritud pikkusega string, mis võib sisaldada tähti, numbreid ja erimärke. Suuruseparameeter seab stringi maksimaalse pikkuse vahemikus 0 - 255 vaikimisi 1.
VARCHAR (suurus)Muutuva pikkusega string, mis sarnaneb CHAR () -ga, kuid maksimaalse stringi pikkusega 0–65535.
BINARY (suurus)Sarnaselt CHAR () -ga, kuid salvestab binaarsed baitijadad.
VARBINARY (suurus)Sarnaselt VARCHAR-iga (), kuid binaarsete baidistringide jaoks.
TINYBLOBHoiab binaarseid suuri objekte (BLOB), maksimaalse pikkusega 255 baiti.
TINYTEXTHoiab stringi, mille maksimaalne pikkus on 255 tähemärki. Kasutage selle asemel VARCHAR (), kuna see tõmmatakse palju kiiremini.
TEKST (suurus)Hoiab stringi maksimaalse pikkusega 65535 baiti. Jällegi, parem kasutada VARCHAR ().
BLOB (suurus)Hoiab binaarseid suuri objekte (BLOB), maksimaalse pikkusega 65535 baiti.
KESKTEKSTHoiab stringi, mille maksimaalne pikkus on 16 777 215 tähemärki.
KESKMOBOBHoiab binaarseid suuri objekte (BLOB) maksimaalse pikkusega 16 777 215 baiti.
PIKKTEKSTHoiab stringi, mille maksimaalne pikkus on 4 294 967 295 tähemärki.
LONGBLOBHoiab binaarseid suuri objekte (BLOB) maksimaalse pikkusega 4 294 967 295 baiti.
ENUM (a, b, c jne ...)Stringiobjekt, millel on ainult üks väärtus, mis valitakse teie määratletud väärtuste loendist (maksimaalselt 65535). Kui lisatakse väärtus, mida selles loendis pole, asendatakse see tühja väärtusega. Mõelge sellele, et ENUM on selles osas sarnane HTML-raadiokastidega.

CREATE TABLE t-särgid (värv ENUM ('punane', 'roheline', 'sinine', 'kollane', 'lilla'));
SET (a, b, c jne ...)Stringiobjekt, millel võib olla 0 või enam väärtust, mis valitakse teie määratletud väärtuste loendist (maksimaalselt 64 väärtust). Mõelge, et SET oleks selles osas sarnane HTML-märkeruutudega.

Numbrilised andmetüübid

Stringi andmetüübid
AndmetüüpKirjeldus
BIT (suurus)Bittiväärtuse tüüp vaikimisi 1. Väärtuse lubatud bittide arv seatakse suuruseparameetri abil, mis võib hoida väärtusi vahemikus 1 kuni 64.
TINYINT (suurus)Väga väike täisarv tähisega vahemikus -128 kuni 127 ja allkirjastamata vahemikus 0 kuni 255. Siin määrab parameeter suurus maksimaalse lubatud kuvalaiuse, mis on 255.
BOOLPõhimõtteliselt on kiire viis veeru TINYINT seadmiseks suurusega 1. 0 loetakse valeks, 1 aga tõeseks.
BOOLEANSama mis BOOL.
VÄIKE (suurus)Väike täisarv tähisega vahemikus -32768 kuni 32767 ja allkirjastamata vahemikus 0 kuni 65535. Siin määrab parameeter suurus maksimaalse lubatud kuvalaiuse, mis on 255.
KESKMINE (suurus)Keskmine täisarv tähistatud vahemikuga -8388608 kuni 8388607 ja allkirjastamata vahemikus 0 kuni 16777215. Siin määrab parameeter suurus maksimaalse lubatud kuvalaiuse, mis on 255.
INT (suurus)Keskmine täisarv, mille märgistatud vahemik on vahemikus -2147483648 kuni 2147483647 ja allkirjastamata vahemikus 0 kuni 4294967295. Siin määrab parameeter suurus maksimaalse lubatud kuvalaiuse, mis on 255.
INTEGER (suurus)Sama mis INT.
BIGINT (suurus)Keskmine täisarv, mille allkirjastatud vahemik on -9223372036854775808 kuni 9223372036854775807 ja allkirjastamata vahemik 0 kuni 18446744073709551615. Siin määrab suuruseparameeter maksimaalse lubatud kuvalaiuse, mis on 255.
Ujuk (p)Ujukoma number. Kui täpsuse (p) parameeter on vahemikus 0 kuni 24, siis on andmetüüp seatud väärtusele FLOAT (), kui aga andmetüüp on vahemikus 25 kuni 53, on andmetüübiks seatud kahekordne (). Selle käitumise eesmärk on muuta väärtuste säilitamine tõhusamaks.
Topelt (suurus, d)Ujukoma numbri väärtus, mille korral numbrite koguarv määratakse suuruseparameetriga ja numbrite arv pärast koma määratakse parameetriga d.
DECIMAL (suurus, d)Täpne fikseeritud punkti arv, kus numbrite koguarv on määratud suuruseparameetritega ja numbrite koguarv pärast koma on määratud parameetriga d.

Suuruse puhul on maksimaalne arv 65 ja vaikeväärtus 10, samas kui d puhul on maksimaalne arv 30 ja vaikeseade 10.

DEC (suurus, d)Sama mis DECIMAL.

Kuupäeva / kellaaja andmete tüübid

Kuupäeva / kellaaja andmete tüübid
AndmetüüpKirjeldus
DATELihtne kuupäev YYYY-MM – DD formaadis, toetatud vahemikus '1000-01-01' kuni '9999-12-31'.
DATETIME (fsp)Kuupäeva kellaaeg AAAA-KK-PP pp: kk: ss, toetatud vahemikus '1000-01-01 00:00:00' 9999-12-31 23:59:59 '.

Kui lisate veeru määratlusele DEFAULT ja ON UPDATE, seab see automaatselt praeguse kuupäeva / kellaaja.

TIMESTAMP (fsp)Unixi ajatempel, mis on väärtus, mis on seotud sekundite arvuga alates Unixi ajast ('1970-01-01 00:00:00' UTC). Selle toetatud vahemik on '1970-01-01 00:00:01' UTC kuni '2038-01-09 03:14:07' UTC.

Kui lisate veeru määratlusele DEFAULT CURRENT_TIMESTAMP ja ON UPDATE CURRENT TIMESTAMP, seab see automaatselt praeguse kuupäeva / kellaaja.

TIME (fsp)Aeg hh: mm: ss vormingus, toetatud vahemikus '-838: 59: 59' kuni '838: 59: 59'.
AASTAAastas koos toetatud vahemikuga '1901' kuni '2155'.

Operaatorid

Aritmeetikaoperaatorid

Aritmeetikaoperaatorid
OperaatorKirjeldus
+Lisama
-Lahuta
*Korrutage
/Jagage
%Modulo

Bitwise operaator

Bitwise operaatorid
OperaatorKirjeldus
&Bitwise JA
|Bitwise VÕI
^Bituaalselt eksklusiivne VÕI

Võrdlusoperaatorid

Võrdlusoperaatorid
OperaatorKirjeldus
=Võrdne
>Suurem kui
<Vähem kui
> =Suurem või võrdne
<=Vähem või võrdne
<>Pole võrdne

Liitoperaatorid

Liitoperaatorid
OperaatorKirjeldus
+=Lisage võrdsed
-=Lahuta võrdub
* =Korrutage võrdsega
/ =Jagage võrdselt
% =Modulo võrdub
& =Bitwise JA võrdub
^ - =Bitwise eksklusiivne võrdub
| * =Bitwise VÕI võrdub

Funktsioonid

Keelte funktsioonid

Keelte funktsioonid
NimiKirjeldus
ASCIITagastab konkreetse märgi samaväärse ASCII väärtuse.
CHAR_LENGTHTagastab stringi tähemärgipikkuse.
CHARACTER_LENGTHSama mis CHAR_LENGTH.
CONCATLisab laused kokku minimaalselt 2-ga.
CONCAT_WSLisab avaldis koos, kuid eraldajaga iga väärtuse vahel.
VÄLJASTagastab indeksi väärtuse väärtuse loendis sisalduva väärtuse suhtes.
LEIA SEESTagastab stringi asukoha stringide loendis.
VORMNumbri möödumisel tagastab selle numbri, mis on vormindatud komadega (nt 3 400 000).
INSERTVõimaldab sisestada ühe stringi teatud asukohas, teatud arvu märkide jaoks.
INSTRTagastab ühe stringi esimese esinemise teise positsiooni.
LCASETeisendage string väiketähtedeks.
VASAKAlustades vasakult, eraldage stringist antud tähemärkide arv ja tagastage need teisena.
PIKKUSTagastab stringi pikkuse, kuid baitides.
ASUKOHTTagastab ühe stringi esimese esinemise teises,
VÄHEMSama mis LCASE.
LPADVasak padjad ühe nööriga kindla pikkusega.
LTRIMEemaldage antud stringi kõik tühikud.
MIDKaevandab ühe stringi teisest, alustades suvalisest kohast.
SEISUKOHTTagastab positsiooni, kui üks alamstring ilmub teises.
KORDAVõimaldab korrata stringi
AsendaVõimaldab asendada stringis olevad alamstringid uue alamstringiga.
TAGURPIDIPöörab stringi ümber.
ÕIGEParempoolsest küljest eraldage stringist antud tähemärkide arv ja tagastage need teisena.
RPADParem padjad ühe nööriga kindla pikkusega.
RTRIMEemaldab antud stringi kõik tühikud.
RUUMTagastab tühikutega stringi, mis võrdub summa, mille te selle läbisite.
STRCMPVõrdleb 2 stringi erinevuste jaoks
SUBSTRKaevandab ühe alamstringi teisest, alustades mis tahes positsioonist.
SUBSTRINGSama mis SUBSTR
SUBSTRING_INDEXTagastab stringist alamstringi, enne kui möödunud alamstring leitakse, mitu korda võrdub möödunud arvuga.
TRIMEemaldab antud stringi lõpp- ja esiosa tühikud. Sama, kui juhiksite LTRIM-i ja RTRIM-i koos.
UCASETeisendage string suurtäheks.
ÜLESSama mis UCASE.

Numbrifunktsioonid

Numbrifunktsioonid
NimiKirjeldus
ABSTagastab antud arvu absoluutse väärtuse.
ACOSTagastab antud numbri kaare koosinus.
NAGUTagastab antud numbri kaare siinuse.
ATANTagastab ühe või kahe antud arvu kaare puutuja.
ATAN2Tagastab 2 antud arvu kaare puutuja.
AVGTagastab antud avalduse keskmise väärtuse.
CEILTagastab lähima täisarvu (täisarvu) etteantud komakohast ülespoole.
LÕPETAMINESama mis CEIL.
COSTagastab antud numbri koosinus.
COTTagastab antud numbri cotangent.
COUNTTagastab SELECT-päringuga tagastatud kirjete summa.
KÕRVADTeisendab radiaani väärtuse kraadideks.
DIVVõimaldab jagada täisarvu.
EXPTagastab e antud arvu võimsuse.
KORRUSTagastab lähima täisarvu (täisarvu) allapoole antud komakohta.
SUUREMTagastab argumentide loendis suurima väärtuse.
VÄHEMALTTagastab argumentide loendis väikseima väärtuse.
LNTagastab antud arvu naturaalse logaritmi
LOGITagastab antud arvu naturaalse logaritmi või antud arvu logaritmi antud alusele
LOG10Toimib samamoodi nagu LOG, kuid tugineda 10-le.
LOG2Toimib samamoodi nagu LOG, kuid 2. aluse jaoks.
MAXTagastab väärtuste komplekti kõrgeima väärtuse.
MINTagastab väikseima väärtuse väärtuste komplektist.
MODTagastab antud arvu ülejäänud osa jagatud teise numbriga.
PITagastab PI.
POWTagastab antud arvu väärtuse, mis on tõstetud teise antud numbri võimsusele.
VÕIMSama mis POW.
RADIANIDTeisendab kraadide väärtuse radiaanideks.
RANDTagastab juhusliku arvu.
RINGÜmardage antud arv komakohani.
SIGNTagastab antud numbri tähise.
SINTagastab antud numbri siinuse.
SQRTTagastab antud arvu ruutjuure.
SUMTagastab antud väärtuste komplekti väärtuse kombineeritult.
TANTagastab antud arvu puutuja.
TRUNCATETagastab arvu, mis kärbitakse antud komakohtade arvu järgi.

Kuupäeva funktsioonid

Kuupäeva funktsioonid
NimiKirjeldus
LISAKSLisage kuupäevale intervall (nt: 10 PÄEVA) kuupäevale (nt: 20/01/20) ja tagastage tulemus (nt: 20/01/30).
LISAKSLisage ajavahemik (nt 02:00) kellaajale või kuupäevale (05:00) ja tagastage tulemus (07:00).
CURDATEHankige praegune kuupäev.
TÄNANE KUUPÄEVSama mis CURDATE.
CURRENT_TIMEHankige praegune aeg.
CURRENT_TIMESTAMPHankige praegune kuupäev ja kellaaeg.
CURTIMESama mis CURRENT_TIME.
DATEKohandab kuupäeva päevaväljendist.
DATEDIFFTagastab päevade arvu kahe antud kuupäeva vahel.
DATE_ADDSama mis ADDDATE.
KUUPÄEVAVORMINGVormindab kuupäeva vastavalt antud mustrile.
DATE_SUBLahutage kuupäevavahemik (nt: 10 PÄEVA) kuupäevaga (nt: 20/01/20) ja tagastage tulemus (nt: 20/01/10).
PÄEVTagastab antud kuupäeva päeva.
PÄEVAnimiTagastab antud kuupäeva nädalapäeva nime.
DAYOFWEEKTagastab antud kuupäeva nädalapäeva indeksi.
DAYOFYEARTagastab antud kuupäeva aastapäeva.
EKSTRAAKTVäljavõte antud osa kuupäevast (nt KUU 20/01/20 = 01).
PÄEVADESTTagastab kuupäeva antud numbrilisest kuupäevaväärtusest.
TundNaaske tund antud kuupäevast.
VIIMANE PÄEVHankige antud kuupäeva jaoks kuu viimane päev.
KOHALIK AEGSaab praeguse kohaliku kuupäeva ja kellaaja.
LOCALTIMESTAMPSama mis LOCALTIME.
VALMISTATUDLoob kuupäeva ja tagastab selle, võttes aluseks antud aasta ja päevade arvu väärtused.
MAKETIMELoob aja ja tagastab selle, võttes aluseks antud tunni, minuti ja teise väärtuse.
MIKROSEKONDTagastab antud aja või kuupäevaaja mikrosekundi.
MINUTITagastab antud aja või kuupäevavahemiku minuti.
KUUTagastab antud kuupäeva kuu.
MONTHNAMETagastab antud kuupäeva kuu nime.
KOHESama mis LOCALTIME.
PERIOD_ADDLisab antud kuude arvu antud perioodile.
PERIOD_DIFFTagastab kahe antud perioodi vahe.
KVARTALTagastab antud kuupäeva jaoks kvartali.
TEINETagastab antud aja või kuupäeva aja teise.
SEC_TO_TIMETagastab aja vastavalt sekunditele.
STR_TO_DATELoob kuupäeva ja tagastab selle antud stringi ja vormingu alusel.
SUBDATESama kui DATE_SUB.
SUBTIMELahutab ajaintervalli (nt 02:00) kellaaja või päevaajaga (05:00) ja tagastab tulemuse (03:00).
SYSDATESama mis LOCALTIME.
AegTagastab aja antud kellaajast või päevast.
TIME_FORMATTagastab antud aja antud vormingus.
TIME_TO_SECTeisendab aja ja teisendab selle sekunditeks.
AJAKIRITagastab kahe antud aja / päevaaja avaldise vahe.
TIMESTAMPTagastab antud kuupäeva või päevaaja kuupäevaväärtuse.
TO_DAYSTagastab päevade koguarvu, mis on möödunud numbrist „00–000000” antud kuupäevani.
NÄDALTagastab antud kuupäeva nädala numbri.
NÄDALAPÄEVTagastab antud kuupäeva nädalapäeva numbri.
WEEKOFYEARTagastab antud kuupäeva nädala numbri.
AASTATagastab aasta antud kuupäevast.
AASTAREEKTagastab antud kuupäeva aasta- ja nädala numbri.

Muud funktsioonid

Muud funktsioonid
NimiKirjeldus
BINTagastab antud arvu kahendkoodina.
BINARYTagastab antud väärtuse binaarstringina.
KASTTeisendage üks tüüp teiseks.
KOKKUVÕTEVäärtuste loendist tagastage esimene väärtus, mis pole null.
CONNECTION_IDPraeguse ühenduse jaoks tagastage kordumatu ühenduse ID.
CONVTeisendage antud arv ühest numbrilisest põhisüsteemist teise.
KONVERTEETeisendage antud väärtus antud andmetüübiks või märgikomplektiks.
CURRENT_USERTagastage kasutaja ja hostinimi, mida kasutati serveriga autentimiseks.
ANDMEBAASHankige praeguse andmebaasi nimi.
RÜHMIGEKasutatakse ühendatud funktsioonide (COUNT, MAX, MIN, SUM, AVG) kõrval tulemuste grupeerimiseks.

Näide: Loetleb aktiivsete tellimustega kasutajate arvu.

VALI COUNT (kasutaja_ID), aktiivsed_korraldused
FROM kasutajatelt
GROUP BY aktiivsed tellimused;
OLEMASSeda kasutatakse WHERE asemel koos koondatud funktsioonidega.

Näide: Loetleb aktiivsete tellimustega kasutajate arvu, kuid hõlmab ainult neid kasutajaid, kellel on rohkem kui 3 aktiivset tellimust.

VALI COUNT (kasutaja_ID), aktiivsed_korraldused
FROM kasutajatelt
GROUP BY aktiivsed tellimused
ARVUTanud (kasutaja_id)> 3;
KUIKui tingimus on tõeline, tagastage väärtus, vastasel juhul tagastage mõni teine ​​väärtus.
IFNULLKui antud avaldus võrdub nulliga, tagastage antud väärtus.
ISNULLKui avaldis on null, tagastage 1, vastasel juhul tagastage 0.
LAST_INSERT_IDTabelis viimase lisatud või värskendatud rea jaoks tagastage automaatne juurdekasvu ID.
NULLIFVõrreldab 2 antud avaldust. Kui need on võrdsed, tagastatakse NULL, vastasel juhul tagastatakse esimene avaldis.
SESSION_USERTagastab praeguse kasutaja ja hostinimed.
SYSTEM_USERSama mis SESSION_USER.
KASUTAJASama mis SESSION_USER.
VERSIOONTagastab MySQL-i andmebaasi praeguse versiooni.

Metamärgi tegelased

SQL-is on metamärgid erimärgid, mida kasutatakse märksõnadega LIKE ja NOT LIKE, mis võimaldavad meil keerukamate mustritega andmeid otsida palju tõhusamalt.

Metamärgid
NimiKirjeldus
%Võrdleb nulli või enama tähemärgiga.

Näide 1: Leidke kõik kasutajad, kelle perekonnanimed lõppevad sõnaga 'son'.

VALI * kasutajatelt
KUS perekonnanimi meeldib "% poeg";

Näide 2: Leidke kõik kasutajad, kes elavad linnades, mis sisaldavad mustrit „che”

VALI * kasutajatelt
KUST linn meeldib "% che%";
_Võrdleb ühegi tähemärgiga.

Näide: Leidke kõik kasutajad, kes elavad linnades, alustades mis tahes 3 tähemärgist, millele järgneb 'chester'.

VALI * kasutajatelt
KUS linn meeldib "___chester";
[charlist]Võrdleb loendis sisalduva ühe tähemärgiga.

Näide 1: Leidke kõik kasutajad, kelle eesnimed algavad tähega J, H või M.

VALI * kasutajatelt
KUS eesnimi meeldib "[jhm]%";

Näide 2: Leidke kõik kasutajad, kelle eesnimed algavad tähtedega A - L.

VALI * kasutajatelt
KUST eesnimi meeldib "[a-l]%";

Näide 3: Leia kõik eesnimedega kasutajad, mis ei lõpe n-täheliste tähtedega.

VALI * kasutajatelt
KUS eesnimi meeldib "% [! N-s]";

Võtmed

Relatsioonandmebaasides on olemas primaar- ja võõrvõtmete mõiste. SQL-tabelites on need lisatud piirangutena, kus tabelis võib olla primaarvõti, võõras võti või mõlemad.

Esmane võti

Primaarvõti võimaldab iga tabeli kirje üheselt tuvastada. Iga tabeli kohta võib olla ainult üks primaarvõti ja selle piirangu saate määrata ükskõik millisele üksikule või veerukombinatsioonile. Kuid see tähendab, et iga veeru (veergude) iga väärtus peab olema kordumatu.

Tavaliselt on peamiseks võtmeks tabelis ID-veerg ja see on tavaliselt seotud märksõnaga AUTO_INCREMENT. See tähendab, et uute kirjete loomisel suureneb väärtus automaatselt.

Näide 1 (MySQL)

Looge uus tabel ja määrake primaarvõti ID veergu.

CREATE TABLE kasutajaid (
id int MITTE MITTE AUTO_INCREMENT,
eesnimi varchar (255),
perenimi varchar (255) EI NULL,
aadress varchar (255),
e-posti aadress varchar (255),
PRIMARY KEY (id)
);

Näide 2 (MySQL)

Muutke olemasolevat tabelit ja määrake primaarvõtmeks veerg first_name.

ALTER TABLE kasutajad
ADD PRIMARY KEY (eesnimi);

Võõrvõti

Võõrvõti saab rakendada ühele või mitmele veerule ja seda kasutatakse 2 tabeli linkimiseks relatsiooniandmebaasis.

Nagu allolevalt skeemilt näha, nimetatakse võõrast võtit sisaldavat tabelit alamvõtmeks, samas kui tabelit, mis sisaldab viidatud võtit või kandidaatvõtit, nimetatakse põhitabeliks.

MySQL-i võtmed

See tähendab põhimõtteliselt seda, et veeru andmeid jagatakse kahe tabeli vahel, kuna ka võõrvõti hoiab ära kehtetute andmete sisestamise, mida põhitabelil samuti pole..

Näide 1 (MySQL)

Looge uus tabel ja muutke kõik veerud, mis viitavad teistes tabelites asuvatele ID-dele, võõrasteks võtmeteks.

CREATE TABLE tellimusi (
id int EI NULL,
user_id int,
product_id int,
PRIMARY KEY (id),
VÄLISVÕTM (user_id) VIITAB kasutajaid (id),
VÄLISVÕTM (product_id) VIITADE tooteid (id)
);

Näide 2 (MySQL)

Muutke olemasolevat tabelit ja looge võõrvõti.

ALTER TABLE tellimused
LISAKE VÄLISVÕTM (user_id) VIITAB kasutajaid (id);

Indeksid

Indeksid on atribuudid, mida saab määrata veergudele, mida sageli otsitakse, et muuta andmete otsimine kiiremaks ja tõhusamaks.

See ei tähenda, et iga veerg tuleks muuta indeksiks, kuna indeksiga veeru värskendamine võtab kauem aega kui ilma veeruta. Selle põhjuseks on asjaolu, et kui indekseeritud veerge värskendatakse, tuleb uuendada ka indeksit ennast.

Indeksid
NimiKirjeldus
LOE INDEKSLoob kasutajate tabeli ees- ja perekonnanime veergudes indeksi nimega idx_test. Sel juhul on lubatud duplikaatväärtused.
CREATE INDEX idx_test
ON kasutajad (eesnimi, perekonnanimi);
LOE ainulaadne indeksSama nagu ülalpool, kuid dubleerivaid väärtusi pole.

CREATE UNIQUE INDEX idx_test
ON kasutajad (eesnimi, perekonnanimi);
DROPI INDEKSEemaldab indeksi.

ALTER TABLE kasutajad
DROP INDEX idx_test;

Liitub

SQL-is kasutatakse JOIN-klauslit tulemuste komplekti tagastamiseks, mis ühendab andmeid mitmest tabelist, tuginedes mõlemas leiduvale ühisele veerule

Teil on kasutamiseks mitmeid erinevaid liitumisi:-

  • Sisemine liitumine (vaikimisi): Tagastab kõik kirjed, millel on mõlemas tabelis vastavad väärtused.
  • Vasakpoolne liitumine: Tagastab kõik esimese tabeli kirjed koos kõigi teise tabeli vastavate kirjetega.
  • Parempoolne liitumine: Tagastab kõik teise tabeli kirjed koos kõigi esimestest vastavate kirjetega.
  • Täielik liitumine: Tagastab kõik kirjed mõlemast tabelist, kui vaste on olemas.

Tavaline viis tööga liitumise visualiseerimiseks on järgmine:

MySQL liitub

Järgmises näites kasutatakse sisemist liitumist uue ühendava vaate loomiseks, mis ühendab tellimuste tabeli ja seejärel 3 erinevat tabelit

Asendame kasutaja_id ja toote_id tellimuse teinud kasutaja ees- ja perekonnanime veergudega koos ostetud üksuse nimega.

MySQL-i näidistabel

VALI tellimused.id, kasutajate.fi algusnimi, kasutajate.nimi, toodete.nimi kui „tootenimi”
Tellimustest
INNER JOIN kasutajad saidil tellimused.user_id = kasutajad.id
INNER JOIN tooted tellimustele.product_id = products.id;

Tagastaks tulemuste komplekti, mis näeb välja järgmine:

MySQL-i näidistabel

Vaade

Vaade on sisuliselt SQL-i tulemikomplekt, mis salvestatakse andmebaasis sildi all, nii et saate sellele hiljem naasta, ilma et peaksite päringut uuesti käima. Need on eriti kasulikud, kui teil on kulukas SQL-päring, mida võib mitu korda vaja minna, nii et selle asemel, et seda ikka ja jälle sama tulemuste komplekti genereerimiseks käivitada, saate selle lihtsalt korra teha ja vaatena salvestada..

Vaadete loomine

Vaate loomiseks saate teha järgmist:

CREATE VIEW prioriteedikasutajad AS
VALI * kasutajatelt
KUS riik = 'Ühendkuningriik';

Kui teil tulevikus on vaja juurde pääseda salvestatud tulemustele, saate seda teha järgmiselt:

SELECT * FROM [prioriteedikasutajad];

Vaadete asendamine

Käsu CREATE OR REPLACE abil saab vaadet värskendada.

LOE VÕI Asenda vaade [prioriteedikasutajad] AS
VALI * kasutajatelt
KUS riik = 'Ühendkuningriik' VÕI riik = 'USA';

Vaadete kustutamine

Vaate kustutamiseks kasutage lihtsalt käsku DROP VIEW.

DROP VIEW prioriteetsed kasutajad;

Järeldus

Enamik tänapäevase veebisaidi veebisaite kasutab mingil viisil relatsioonilisi andmebaase. See teeb SQL-ist väärtusliku teadmiskeele, kuna see võimaldab teil luua keerukamaid, funktsionaalseid veebisaite ja süsteeme.

Lisage see leht järjehoidjate hulka, nii et kui tulevikus töötate SQL-iga ja ei mäleta konkreetset operaatorit täpselt, kuidas kirjutada kindlat päringut või olete lihtsalt segaduses, kuidas liitumine töötab, siis on teil käes olev petuleht, mis on valmis, tahetakse ja suudame aidata.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map