SQL žaidimų lapas

SQL apgaulingo lapo įžangos vaizdas


Šiame vadove rasite naudingą kodų lapą, kuriame užfiksuoti keli dažniausiai naudojami SQL elementai ir net keli mažiau paplitę. Tikimės, kad tai padės kūrėjams – tiek pradedantiesiems, tiek patyrusiems – geriau įsisavinti SQL kalbą.

Naudokite tai kaip greitą nuorodą kurdami, mokymosi pagalbinę medžiagą ar net atsispausdinkite ir įriškite, jei norite (kas tinka!).

Bet prieš mums pasiekiant patį kodą, kūrėjams, kurie galbūt nėra susipažinę su SQL, pradėkime nuo …

Kas yra SQL

SQL reiškia Struktūrizuota užklausų kalba. Tai pasirinkta kalba šiandienos žiniatinklyje, kai reikia saugoti, valdyti ir nuskaityti duomenis reliacinėse duomenų bazėse. Labiausiai, jei ne visi iš jūsų lankomų svetainių tam tikru būdu ja pasinaudos, įskaitant tai vienas.

Štai kaip atrodo pagrindinė reliacinė duomenų bazė. Šis pavyzdys ypač saugo el. Prekybos informaciją, ypač parduodamus produktus, juos perkančius vartotojus ir šių užsakymų, siejančių šiuos 2 subjektus, įrašus..

Pagrindinė reliacinė duomenų bazė

Naudodamiesi SQL, jūs galite bendrauti su duomenų baze rašydami užklausas, kurios įvykdytos grąžina visus jos kriterijus atitinkančius rezultatus..

Pateikiame užklausos pavyzdį:-

PASIRINKITE * iš vartotojų;

Naudodamiesi šiuo SELECT sakiniu, užklausa atrenka visus duomenis iš visų vartotojo lentelės stulpelių. Tada jis grąžins tokius duomenis, kaip nurodyta toliau, kurie paprastai vadinami rezultatų rinkiniu:-

Vartotojų lentelės pavyzdys

Jei pakeisime žvaigždutės pakaitos ženklą (*) konkrečiais stulpelių pavadinimais, iš užklausos bus grąžinti tik šių stulpelių duomenys.

PASIRINKITE vardą, pavardę iš vartotojų;

Vartotojų lentelės su sumažintais stulpeliais pavyzdys

Mes galime pridėti šiek tiek sudėtingesnį standartinį SELECT teiginį pridėdami WHERE išlygą, kuri leidžia filtruoti tai, kas grąžinama.

PASIRINKITE * IŠ PRODUKTŲ, KUR sandėlyje_skaičius <= 10 ORDER BY stock_count ASC;

Ši užklausa grąžins visus produktų lentelės duomenis, kurių rezultatų rinkinyje akcijų vertė mažesnė nei 10.

Raktinio žodžio ORDER BY naudojimas reiškia, kad rezultatai bus užsakomi naudojant „stock_count“ stulpelį, nuo žemiausių iki didžiausių verčių.

Produktų lentelės pavyzdys

Naudodamiesi INSERT INTO sakiniu, į lentelę galime įtraukti naujus duomenis. Čia pateiktas pagrindinis pavyzdys, kaip pridėti naują vartotoją prie vartotojų lentelės:-

INSERT INTO vartotojams (vardas, pavardė, adresas, el. Paštas)
VERTĖS („Tester“, „Jester“, „123 Fake Street, Šefildas, Jungtinė Karalystė“, „[apsaugotas el. Paštas]“);

Tuomet, jei turėtumėte pakartoti užklausą, kad būtų grąžinti visi duomenys iš vartotojo lentelės, rezultatų rinkinys atrodys taip:

Lentelės su nauja eilute pavyzdys

Žinoma, šie pavyzdžiai parodo tik labai mažą pasirinkimą, ką SQL kalba gali.

SQL vs MySQL

Galbūt jau esate girdėję apie „MySQL“. Svarbu, kad nepainiotumėte to su pačiu SQL, nes yra akivaizdus skirtumas.

SQL vs MySQLSQL yra kalba. Jame aprašyta sintaksė, leidžianti rašyti užklausas, kurios valdo reliacines duomenų bazes. Nieko daugiau.

„MySQL“ tuo tarpu yra duomenų bazė sistema kuri veikia serveryje. Tai padargai SQL kalbą, leidžiančią rašyti užklausas naudojant jos sintaksę MySQL duomenų bazėms tvarkyti.

Be „MySQL“, yra ir kitų sistemų, įgyvendinančių SQL. Keletas populiariausių yra šie:

  • „PostgreSQL“
  • SQLite
  • „Oracle“ duomenų bazė
  • „Microsoft SQL Server“

„MySQL“ diegimas

„Windows“

Rekomenduojamas būdas įdiegti „MySQL“ sistemoje „Windows“ yra naudojant diegimo programą, kurią galite atsisiųsti iš „MySQL“ svetainė.

Įdiekite „MySQL Windows“

„MacOS“

„MacOS“ rekomenduojamas būdas įdiegti „MySQL“ yra vietinių paketų naudojimas, o tai skamba daug sudėtingiau, nei yra iš tikrųjų. Iš esmės tai taip pat apima tiesiog atsisiųsti montuotojas.

Įdiekite „MySQL Mac“

Arba, jei norite naudoti paketų tvarkytuvus, tokius kaip Homebrew, galite įdiegti „MySQL“ taip:

užvirinti įdiegti MySQL

Jei jums reikia įdiegti senesnę „MySQL 5.7“ versiją, kuri šiandien vis dar plačiai naudojama žiniatinklyje, galite:

užvirinti diegti [el. paštas apsaugotas]

MySQL naudojimas

Kadangi „MySQL“ jau yra įdiegta jūsų sistemoje, norint kuo greičiau atsikelti ir eiti rašant SQL užklausas, rekomenduojama naudoti SQL valdymo programą, kad duomenų bazių valdymas būtų daug paprastesnis ir lengvesnis..

Yra daugybė programų, iš kurių galite pasirinkti tą patį darbą, todėl galite pasirinkti, kurią pasirinkti:

  • „MySQL Workbench“ sukūrė „Oracle“, „MySQL“ savininkas.
  • „HeidiSQL“ (Rekomenduojama „Windows“) yra nemokama atvirojo kodo programa, skirta „Windows“. Skirta „MacOS“ ir „Linux“ vartotojams, Vynas pirmiausia reikalinga kaip būtina sąlyga.
  • „phpMyAdmin“ yra labai populiari alternatyva, veikianti žiniatinklio naršyklėje.
  • „Sequel Pro“ (Rekomenduojama „MacOS“) yra vienintelė „MacOS“ alternatyva ir mūsų mėgstamiausia dėl aiškios ir lengvai naudojamos sąsajos.

Kai būsite pasirengę rašyti savo SQL užklausas, o ne leisti laiką kurdami savo duomenų bazę, apsvarstykite galimybę importuoti netikrus duomenis..

„MySQL“ svetainėje yra keletas manekenų duomenų bazės kurį galite atsisiųsti nemokamai ir tada importuoti į savo SQL programą.

„Dummy“ duomenų bazė „MySQL“

Mūsų mėgstamiausias iš jų yra pasaulis duomenų bazę, kurioje pateikiami įdomūs duomenys, skirti praktikuoti SQL užklausų rašymą. Štai „Sequel Pro“ šalies lentelės ekrano kopija.

„Sequel Pro“ pavyzdys

Šis užklausos pavyzdys grąžina visas šalis, kurių valstybės vadovė yra karalienė Elžbieta II.

„Sequel Pro“ pavyzdys

Nors ši šalis grąžina visas Europos šalis, kuriose gyvena daugiau kaip 50 mln. Gyventojų, kartu su jų sostine ir jos gyventojais.

„Sequel Pro“ pavyzdys

Ir pagal šį galutinį rezultatą gaunamas vidutinis prancūzakalbių procentas šalyse, kuriose bendras prancūzakalbių skaičius yra didesnis nei 10%..

„Sequel Pro“ pavyzdys

Cheat Sheet

Raktažodžiai

Raktinių žodžių, naudojamų SQL sakiniuose, rinkinys, aprašymas ir, jei reikia, pavyzdys. Kai kurie sudėtingesni raktiniai žodžiai vėliau turi savo skyrių, pateiktą apgaulės lape.

Kai šalia pavyzdžio minimas „MySQL“, tai reiškia, kad šis pavyzdys yra taikomas tik „MySQL“ duomenų bazėms (skirtingai nei bet kuri kita duomenų bazių sistema).

SQL raktiniai žodžiai
Raktažodžiaiapibūdinimas
PAPILDYTIPrideda naują stulpelį prie esamos lentelės.

Pavyzdys: Prideda naują stulpelį pavadinimu „email_address“ prie lentelės, pavadintos „vartotojai“.

ALTER TABLE vartotojai
PRIDĖTI el. Pašto adresą varchar (255);
PRIDĖTI KONTRASTĄTai sukuria naują esamos lentelės suvaržymą, kuris naudojamas bet kokių lentelės duomenų taisyklėms nurodyti.

Pavyzdys: Ant stulpelių ID ir PAVARDĖ pridedamas naujas PRIMARY KEY apribojimas, pavadintas „vartotojas“.

ALTER TABLE vartotojai
PRIDĖTI CONSTRAINT vartotojo PAGRINDINĮ RAKTĄ (ID, PAVARDĖ);
KITOS LENTELĖSPrideda, ištrina arba redaguoja stulpelius lentelėje. Tai taip pat gali būti naudojama lentelėse pridedant ir ištrinant apribojimus, kaip aprašyta aukščiau.

Pavyzdys: Prideda naują loginį stulpelį, pavadintą „patvirtintas“, prie lentelės, pavadintos „pasiūlymai“.

KITOS LENTELĖS pasiūlymai
PRIDĖTI patvirtintą boolean;

2 pavyzdys: Iš lentelės „pasiūlymai“ ištrinamas stulpelis „patvirtinta“

KITOS LENTELĖS pasiūlymai
DROP COLUMN patvirtinta;
VAIRO KOLONĖPakeičia lentelės stulpelio duomenų tipą.

Pavyzdys: Lentelėje „vartotojai“ stulpelį „incept_date“ įveskite į „datetime“ tipą.

ALTER TABLE vartotojai
ALTER COLUMN incept_date datetime;
VISOSGrąžina teisingą, jei visos antrinės užklausos reikšmės atitinka įvykdytą sąlygą.

Pavyzdys: Grąžina vartotojus su didesniu užduočių skaičiumi nei vartotojas, turintis daugiausia užduočių HR departamente (2 id)

PASIRINKITE vardą, pavardę, užduotis_ne
NUO vartotojų
WHERE užduotys_no> VISOS (PASIRINKITE užduotis iš vartotojo, kur skyrius_id = 2);
IRNaudojamas norint sujungti atskiras sąlygas pagal WHERE išlygą.

Pavyzdys: Grąžina įvykius, esančius Londone, Jungtinėje Karalystėje

PASIRINKITE * IŠ įvykių
KUR host_country = 'Jungtinė Karalystė' IR host_city = 'London';
JOKIŲGrįžta tiesa, jei kuri nors iš antrinės užklausos reikšmių atitinka nurodytą sąlygą.

Pavyzdys: Iš produktų lentelės, kuri gavo užsakymus, grąžina produktus, saugomus užsakymų lentelėje, kurių kiekis yra didesnis nei 5.

PASIRINKITE vardą
IŠ produktų
KUR „productId“ = BET KOKIAS (PASIRINKITE prekę, kuri gaunama iš užsakymų, kai kiekis> 5);
ASPervardija lentelę arba stulpelį su slapyvardžio verte, kuri egzistuoja tik užklausos metu.

Pavyzdys: Slapyvardis „north_east_user_subscriptions“

PASIRINKITE šiaurės_namų_naudotojų_prenumeracijų kaip „ne_subs“
NUO vartotojų
KUR ne_subs> 5;
ASCNaudojama kartu su UŽSAKYTI, norint grąžinti duomenis didėjančia tvarka.

Pavyzdys: Obuoliai, bananai, persikai, ridikėliai

TARP TARPPasirenka reikšmes nurodytame diapazone.

1 pavyzdys: Parenka atsargas, kurių kiekis yra nuo 100 iki 150.

PASIRINKITE * IŠ atsargų
KUR TARP 100 IR 150;

2 pavyzdys: Parenka atsargas, kurių kiekis NĖRA nuo 100 iki 150. Arba naudojant ne raktinį žodį čia, atvirkštinė logika pasirenkama ir vertės nurodytos diapazono ribose pasirenkamos..

PASIRINKITE * IŠ atsargų
KUR NEMOKAMAS TARP 100 IR 150;
ATVEJISPakeiskite užklausos išvestį, atsižvelgiant į sąlygas.

Pavyzdys: Grąžina vartotojus ir jų prenumeratas kartu su nauju stulpeliu, vadinamu aktyvumo lygiais, kuris priima sprendimą pagal prenumeratų skaičių.

PASIRINKITE vardą, pavardę, prenumeratas
ATVEJIS, kai prenumeratų yra daugiau nei 10, tada „labai aktyvus“
KADA 3 IR 10 TAI „Aktyvus“ kiekis
ELSE 'neaktyvus'
END AS veiklos lygiai
NUO vartotojų;
PATIKRINTIPridedamas apribojimas, ribojantis vertę, kurią galima pridėti prie stulpelio.

1 pavyzdys (MySQL): Įsitikina, kad visi vartotojai, įtraukti į vartotojų lentelę, yra 18 ar vyresni.

CREATE TABLE vartotojai (
vardas_vardas varcaras (255),
amžiaus tarpt,
PATIKRINTI (amžius> = 18)
);

2 pavyzdys (MySQL): Prideda patikrinimą po to, kai lentelė jau yra sukurta.

ALTER TABLE vartotojai
PRIDĖTI PATIKRINIMĄ (amžius> = 18);
CREATE DUOMENŲ BAZĖSukuriama nauja duomenų bazė.

Pavyzdys: Sukuriama nauja duomenų bazė pavadinimu „websitesetup“.

CREATE DATABASE svetainių kūrimas;
KŪRIMO LENTELĖSukuria naują lentelę .

Pavyzdys: Sukuria naują lentelę, vadinamą „vartotojai“ duomenų bazės „svetainių sąranka“.

CREATE TABLE vartotojai (
id int,
vardas_vardas varcaras (255),
pavardė varchar (255),
adresas varchar (255),
kontaktinis_numeris int
);
NUMATYTASNustato numatytąją stulpelio vertę;

1 pavyzdys (MySQL): Sukuriama nauja lentelė pavadinimu „Produktai“, kurios pavadinimo stulpelis yra numatytoji reikšmė „Vietos vardo vardas“, ir stulpelis „available_from“ su numatytąja šios dienos data..

CREATE TABLE produktai (
id int,
vardas varchar (255) Numatytasis 'Vietos vietos pavadinimas',
available_from date DEFAULT GETDATE ()
);

2 pavyzdys (MySQL): Tas pats, kaip aukščiau, bet esamos lentelės redagavimas.

ALTER TABLE produktai
ALTER vardas SET Numatytasis 'Vietos pavadinimas',
ALTER available_fr SET SET DEFAULT GETDATE ();
IŠTRINTIIštrinkite duomenis iš lentelės.

Pavyzdys: Pašalina vartotoją, kurio „user_id“ yra 674.

IŠtrinti iš vartotojų, kur user_id = 674;
DESCNaudojama kartu su UŽSAKYTI, norint grąžinti duomenis mažėjančia tvarka.

Pavyzdys: Ridikėliai, persikai, bananai, obuoliai

NUOLAIDOS KOLONĖIštrina stulpelį iš lentelės.

Pavyzdys: Pašalina „first_name“ stulpelį iš vartotojų lentelės.

ALTER TABLE vartotojai
DROP COLUMN vardas
NURODYMO DUOMENŲ BAZĖIštrina visą duomenų bazę.

Pavyzdys: Ištrina duomenų bazę pavadinimu „websitesetup“.

„DROP DATABASE“ svetainiųįrengimas;
NUOLAIDA NUOLAIDAPašalina numatytąją stulpelio vertę.

Pavyzdys (MySQL): Pašalina numatytąją vertę iš lentelės „produktai“ stulpelio „vardas“.

ALTER TABLE produktai
ALTER COLUMN pavadinimas DROP DEFAULT;
NUORODOS LENTELĖIštrina lentelę iš duomenų bazės.

Pavyzdys: Pašalina vartotojų lentelę.

DROP TABLE vartotojai;
EKSISTAIPatikrinama, ar yra kokių nors įrašų, esančių antrinėje užklausoje, ar jie yra teisingi, jei grąžinamas vienas ar daugiau įrašų.

Pavyzdys: Išvardija visus prekybos atstovus, kurių sandorių finansavimo procentas yra mažesnis nei 10.

PASIRINKITE platintojo_pavadinimas
IŠ prekybos atstovų
KUR ESAMI (PASIRINKITE sandorio pavadinimą IŠ sandorių, KUR dilerių_idai = pasiūlymai.paslaugos_ID IR finansai_procentai) < 10);
NUONurodoma, kurią lentelę pasirinkti arba ištrinti duomenis.

Pavyzdys: Parenka duomenis iš vartotojų lentelės.

PASIRINKITE srities valdytoją
IŠ teritorijos valdytojų
Kuri egzistuoja (PASIRINKITE produkto pavadinimą iš produktų, kur WHERE area_manager_id = deals.area_manager_id IR kaina < 20);
INNaudojamas kartu su WHERE išlyga kaip kelių ARBA sąlygų trumpinys.

Taigi vietoj:-

PASIRINKITE * iš vartotojų
KUR šalis = „JAV“ ARBA šalis = „Jungtinė Karalystė“ ARBA šalis = „Rusija“ ARBA šalis = „Australija“;

Tu gali naudoti:-

PASIRINKITE * iš vartotojų
KUR šalis yra („JAV“, „Jungtinė Karalystė“, „Rusija“, „Australija“);
ĮSIDĖKITE ĮPridėkite naujų eilučių prie lentelės.

Pavyzdys: Prideda naują transporto priemonę.

INSERT INTO automobiliai (markė, modelis, rida, metai)
VERTĖS ('Audi', 'A3', 2016 m. 30000);
YRA NULLTuščių (NULL) verčių bandymai.

Pavyzdys: Grąžina vartotojus, kurie nepateikė kontaktinio numerio.

PASIRINKITE * iš vartotojų
KUR kontaktinis numeris NULL;
NĖRA NULLNULL atvirkštinė dalis. Vertių, kurios nėra tuščios, testai / NULL.
KAIPGrąžina tiesą, jei operando vertė atitinka modelį.

Pavyzdys: Grįžta tiesa, jei vartotojo vardas ir pavardė baigiasi žodžiu „sūnus“.

PASIRINKITE * iš vartotojų
KUR vardas yra panašus į „% sūnų“;
NEGrįžta tiesa, jei įrašas NEATITIKIA šios sąlygos.

Pavyzdys: Grįžta tiesa, jei vartotojo vardas ir pavardė nesibaigia žodžiu „sūnus“.

PASIRINKITE * iš vartotojų
KUR pirmas vardas NETIKI „% sūnus“;
ARBANaudojama kartu su KUR, norint įtraukti duomenis, kai kuri nors sąlyga yra teisinga.

Pavyzdys: Grąžina vartotojus, gyvenančius Šefilde ar Mančesteryje.

PASIRINKITE * iš vartotojų
KUR miestas = 'Šefildas' arba 'Mančesteris';
RŪŠIUOTI PAGALNaudojama rezultatų duomenims rūšiuoti didėjančia (numatytąja) ar mažėjančia tvarka, naudojant ASC arba DESC raktinius žodžius.

Pavyzdys: Grąžina šalis abėcėlės tvarka.

PASIRINKITE * IŠ šalių
UŽSAKYTI PAVADINIMĄ;
ROWNUMGauna rezultatus, kai eilutės numeris atitinka įvykdytą sąlygą.

Pavyzdys: Grąžina 10 geriausių šalių pagal šalių lentelę.

PASIRINKITE * IŠ šalių
KUR ROWNUM <= 10;
PASIRINKTINaudojama duomenims iš duomenų bazės atrinkti, kurie vėliau grąžinami į rezultatų rinkinį.

1 pavyzdys: Pasirenka visus stulpelius iš visų vartotojų.

PASIRINKITE * iš vartotojų;

2 pavyzdys: Iš visų vartotojų pasirenka vardo ir pavardės stulpelius.xx

PASIRINKITE vardą, pavardę iš vartotojų;
PASIRINKITE NUSTATYMĄPanašūs kaip PASIRINKTI, išskyrus pasikartojančias reikšmes.

Pavyzdys: Sukuriama atsarginių kopijų lentelė, naudojant duomenis iš vartotojų lentelės.

SELECT * INTO usersBackup2020
NUO vartotojų;
PASIRINKITENukopijuoja duomenis iš vienos lentelės ir įterpia juos į kitą.

Pavyzdys: Grąžina visas šalis iš vartotojų lentelės, pašalindamas visas pasikartojančias reikšmes (tai būtų labai tikėtina)

PASIRINKITE DISTINCT šalį iš vartotojų;
PASIRINKITE TOPGrąžina iš lentelės nustatytą įrašų skaičių.

Pavyzdys: Grąžina 3 geriausius automobilius iš automobilių lentelės.

PASIRINKITE TOP 3 * IŠ automobilių;
NUSTATYTINaudojamas kartu su UPDATE esamiems lentelės duomenims atnaujinti.

Pavyzdys: Atnaujina užsakymo lentelėje 642 ID vertės ir kiekio reikšmes.

ATNAUJINTI užsakymus
SET vertė = 19,49, kiekis = 2
KUR id = 642;
KAI KURIEIdentiškas bet kuriam.
TOPNaudojamas kartu su SELECT, kad iš lentelės būtų grąžintas nustatytas įrašų skaičius.

Pavyzdys: Grąžina 5 geriausius vartotojus iš vartotojų lentelės.

PASIRINKITE TOP 5 * iš vartotojų;
NUSTATYMO LENTELĖPanašus į DROP, tačiau užuot ištrynę lentelę ir jos duomenis, ištrinami tik duomenys.

Pavyzdys: Išvalo sesijų stalą, tačiau palieka patį stalą nepažeistą.

TRUNCATE TABLE sesijos;
SĄJUNGAApjungia 2 ar daugiau SELECT teiginių rezultatus ir pateikia tik atskiras reikšmes.

Pavyzdys: Grąžina miestus iš įvykių ir abonentų lentelių.

PASIRINKITE miestą iš renginių
SĄJUNGA
PASIRINKITE miestą iš abonentų;
SĄJUNGOS VISOSTas pats kaip SĄJUNGOS, tačiau apima pasikartojančias reikšmes.
UNIKALUSŠis apribojimas užtikrina, kad visos stulpelio vertės yra unikalios.

1 pavyzdys (MySQL): Kurdamas naują vartotojų lentelę, stulpelio ID prideda unikalų apribojimą.

CREATE TABLE vartotojai (
id int NE NULL,
vardas varchar (255) NE NULL,
UNIKALUS (ID)
);

2 pavyzdys (MySQL): Pakeičia esamą stulpelį, kad būtų pridėtas UNIKALUS apribojimas.

ALTER TABLE vartotojai
PRIDĖTI UNIKALIĄ (ID);
ATNAUJINTIAtnaujina esamus duomenis lentelėje.

Pavyzdys: Atnaujina automobilio lentelės ridos ir „serviceDue“ reikšmes, kurių ID yra 45.

ATNAUJINTI automobilius
SET rida = 23500, serviceDue = 0
KUR id = 45;
VERTĖSNaudojamas šalia raktinio žodžio INSERT INTO, kad lentelė būtų pridėta naujų verčių.

Pavyzdys: Prideda naują automobilį prie automobilių stalo.

INSERT INTO automobiliai (pavadinimas, modelis, metai)
VERTĖS („Ford“, „Fiesta“, 2010);
KURFiltruojant rezultatus įtraukiami tik tie duomenys, kurie atitinka nurodytą sąlygą.

Pavyzdys: Grąžina užsakymus, kurių kiekis yra didesnis nei 1.

PASIRINKITE * IŠ užsakymų
KUR kiekis> 1;

Komentarai

Komentarai leidžia paaiškinti savo SQL teiginių skyrius arba komentuoti kodą ir užkirsti kelią jo vykdymui.

SQL yra 2 tipų komentarai: viena eilutė ir daugialypė.

Vienos eilutės komentarai

Vienos eilutės komentarai prasideda raide -. Bet koks tekstas po šių 2 simbolių iki eilutės pabaigos bus ignoruojamas.

-- „My Select“ užklausa
PASIRINKITE * iš vartotojų;

Daugia eilutės komentarai

Daugialypiai komentarai prasideda raide / * ir baigiasi * /. Jie driekiasi keliomis eilutėmis, kol bus rasta uždarymo simboliai.

/ *
Tai yra mano pasirinkta užklausa.
Jis sugriebia visas duomenų eilutes iš vartotojų lentelės
* /
PASIRINKITE * iš vartotojų;

/ *
Tai yra dar viena pasirinkta užklausa, kurios dar nenoriu vykdyti

PASIRINKITE * IŠ UŽDAVINIŲ;
* /

„MySQL“ duomenų tipai

Kurdami naują lentelę arba redaguodami esamą, turite nurodyti duomenų, kuriuos priima kiekvienas stulpelis, tipą.

Žemiau pateiktame pavyzdyje duomenys, perduoti ID stulpeliui, turi būti int, o pirmojo vardo stulpelyje yra VARCHAR duomenų tipas, daugiausia iki 255 simbolių..

CREATE TABLE vartotojai (
id int,
vardas_vardas varcaras (255)
);

Styginių duomenų tipai

Styginių duomenų tipai
Duomenų tipasapibūdinimas
CHAR (dydis)Fiksuoto ilgio eilutė, kurią gali sudaryti raidės, skaičiai ir specialieji ženklai. Dydžio parametras nustato maksimalų eilutės ilgį nuo 0 iki 255 su numatytuoju 1.
VARCHAR (dydis)Kintamo ilgio eilutė, panaši į CHAR (), bet maksimali eilutės ilgio sritis nuo 0 iki 65535.
BINARY (dydis)Panašus į CHAR (), tačiau saugo dvejetainius baitų eilutes.
VARBINARY (dydis)Panašus į VARCHAR (), bet dvejetainiams baitų eilutėms.
TINYBLOBASTalpina dvejetainius didelius objektus (BLOB), kurių didžiausias ilgis yra 255 baitai.
TINYTEXTLaikoma eilutė, kurios ilgis negali viršyti 255 simbolių. Vietoj to naudokite VARCHAR (), nes jis kuriamas daug greičiau.
TEKSTAS (dydis)Turi eilutę, kurios ilgis ne didesnis kaip 65535 baitai. Vėlgi, geriau naudoti VARCHAR ().
BLOB (dydis)Turi dvejetainius didelius objektus (BLOB), kurių didžiausias ilgis yra 65535 baitai.
MEDIUMTEXTLaikoma eilutė, kurios ilgis negali viršyti 16 777 215 simbolių.
MEDIUMBLOBTuri dvejetainius didelius objektus (BLOB), kurių didžiausias ilgis yra 16 777 215 baitų.
ILGALAIKISLaikoma eilutė, kurios ilgis neviršija 4 294 967 295 simbolių.
LONGBLOBTalpina dvejetainius didelius objektus (BLOB), kurių didžiausias ilgis yra 4 294 967 295 baitai.
ENUM (a, b, c ir tt ...)Eilučių objektas, turintis tik vieną reikšmę, kuri pasirenkama iš jūsų apibrėžtų verčių sąrašo, ne daugiau kaip iki 65535 reikšmių. Jei pridedama vertė, kurios nėra šiame sąraše, ji pakeičiama tuščia reikšme. Pagalvokite, ar ENUM šiuo atžvilgiu yra panašus į HTML radijo langelius.

CREATE LABLE marškinėliai (spalva ENUM ('raudona', 'žalia', 'mėlyna', 'geltona', 'purpurinė'));
SET (a, b, c ir tt ...)Eilučių objektas, turintis 0 ar daugiau reikšmių, pasirenkamas iš jūsų apibrėžtų verčių sąrašo, ne daugiau kaip 64 vertės. Pagalvokite, ar šiuo atžvilgiu „SET“ yra panašus į HTML žymimuosius laukelius.

Skaitinių duomenų tipai

Styginių duomenų tipai
Duomenų tipasapibūdinimas
BIT (dydis)Bito vertės tipas, kurio numatytoji reikšmė yra 1. Leistinas vertės bitų skaičius nustatomas pagal dydžio parametrą, kuris gali išlaikyti reikšmes nuo 1 iki 64.
TINYINT (dydis)Labai mažas sveikas skaičius su pažymėtu diapazonu nuo -128 iki 127 ir nepasirašytu diapazonu nuo 0 iki 255. Čia dydžio parametras nurodo maksimalų leidžiamą ekrano plotį, kuris yra 255.
BOOLIš esmės greitas stulpelio nustatymo į TINYINT dydis yra 0. 0 laikomas klaidingu, o 1 - tikru..
BOOLĖTas pats kaip BOOL.
MAŽAS (dydis)Mažas sveikas skaičius su pažymėtu diapazonu nuo -32768 iki 32767, o nepasirašytas diapazonas nuo 0 iki 65535. Čia dydžio parametras nurodo maksimalų leidžiamą ekrano plotį, kuris yra 255.
MEDIUMINT (dydis)Vidutinis sveikas skaičius su pažymėtu diapazonu nuo -8388608 iki 8388607, o nepasirašytas diapazonas nuo 0 iki 16777215. Čia dydžio parametras nurodo maksimalų leidžiamą ekrano plotį, kuris yra 255.
INT (dydis)Vidutinis sveikas skaičius su pažymėtu diapazonu nuo -2147483648 iki 2147483647, o nepaženklintas diapazonas nuo 0 iki 4294967295. Čia dydžio parametras nurodo maksimalų leidžiamą ekrano plotį, kuris yra 255.
INTEGER (dydis)Tas pats kaip INT.
BIGINT (dydis)Vidutinis sveikasis skaičius su pasirašytu diapazonu nuo -9223372036854775808 iki 9223372036854775807, o nepasirašytas diapazonas nuo 0 iki 18446744073709551615. Čia dydžio parametras nurodo maksimalų leidžiamą ekrano plotį, kuris yra 255.
Plūduriuojantis (p)Slankiojo kablelio skaičiaus reikšmė. Jei tikslumo (p) parametras yra nuo 0 iki 24, tada duomenų tipas yra nustatytas kaip FLOAT (), o jei jo vertė yra nuo 25 iki 53, duomenų tipas yra nustatytas dvigubai (). Taip elgiamasi siekiant efektyviau saugoti vertybes.
Dvivietis (dydis, d)Slankiojo kablelio skaičiaus reikšmė, kai visi skaičiai nustatomi pagal parametrą dydis, o skaitmenų skaičius po kablelio nustatomas parametru d..
DECIMAL (dydis, d)Tikslus fiksuoto taško skaičius, kai bendras skaitmenų skaičius nustatomas pagal dydžio parametrus, o bendras skaitmenų skaičius po kablelio nustatomas d parametru.

Dydžio atveju maksimalus skaičius yra 65, o numatytasis yra 10, o d atveju maksimalus skaičius yra 30, o numatytasis yra 10..

DEC (dydis, d)Tas pats, kaip ir DECIMAL.

Datos / laiko duomenų tipai

Datos / laiko duomenų tipai
Duomenų tipasapibūdinimas
DATAPaprasta data MMMM-MM – DD formatu, palaikoma diapazonu nuo „1000-01-01“ iki „9999-12-31“.
DATETIME (fsp)Datos laikas MMMM-MM-DD valandos: mm: ss formatu su palaikomu diapazonu nuo „1000-01-01 00:00:00“ iki „9999-12-31 23:59:59“.

Prie stulpelio apibrėžimo pridėję Numatytieji ir ON UPDATE, jis automatiškai nusistato esamą datą / laiką.

TIMESTAMP (fsp)„Unix“ laiko žyma, kuri yra vertė, palyginti su sekundžių skaičiumi nuo „Unix“ epochos („1970-01-01 00:00:00“ UTC). Tai palaiko diapazoną nuo „1970-01-01 00:00:01“ UTC iki „2038-01-09 03:14:07“ UTC.

Prie stulpelio apibrėžimo pridedant Numatytąjį CURRENT_TIMESTAMP ir ONDATE CURRENT TIMESTAMP, jis automatiškai nusistato į dabartinę datą / laiką.

LAIKAS (fsp)Laikas hh: mm: ss formatu su palaikomu diapazonu nuo „-838: 59: 59“ iki „838: 59: 59“.
METAIPer metus su palaikomu diapazonu nuo 1901 iki 2155.

Operatoriai

Aritmetikos operatoriai

Aritmetikos operatoriai
operatoriusapibūdinimas
+Papildyti
-Atimkite
*Padauginkite
/Padalinti
%Modulo

„Bitwise“ operatorius

„Bitwise“ operatoriai
operatoriusapibūdinimas
IrBitų ir
|„Bitmed“ ARBA
^„Bitwise“ išskirtinis ARBA

Palyginimo operatoriai

Palyginimo operatoriai
operatoriusapibūdinimas
=Lygus
>Geresnis negu
<Mažiau nei
> =Didesnis arba lygus
<=Mažesnis arba lygus
<>Ne lygus

Sudėtiniai operatoriai

Sudėtiniai operatoriai
operatoriusapibūdinimas
+=Pridėti lygius
-=Atimkite lygius
* =Daugyba lygi
/ =Padalinkite lygius
% =Modulo lygus
& =Bitiškai IR lygus
^ - =Bitiškai išskirtinis lygus
| * =Bitiškai ARBA lygus

Funkcijos

Styginių funkcijos

Styginių funkcijos
vardasapibūdinimas
ASCIIGauna lygiavertę konkretaus simbolio ASCII reikšmę.
CHAR_LENGTHGrąžina eilutės simbolio ilgį.
CHARACTER_LENGTHToks pat kaip CHAR_LENGTH.
KONCATASPrideda išraiškas kartu su mažiausiai 2.
CONCAT_WSPrideda išraiškas kartu, bet su kiekvienos vertės skiriamuoju elementu.
LAUKASGrąžina indekso vertę, palyginti su vertės padėtimi reikšmių sąraše.
RASTI RINKINYSGrąžina eilutės vietą stygų sąraše.
FORMAKai perduotas skaičius, grąžinamas tas skaičius, suformatuotas taip, kad būtų įtrauktos kableliai (pvz., 3 400 000).
ĮDĖTILeidžia įterpti vieną eilutę į kitą tam tikru metu, tam tikram simbolių skaičiui.
INSTRGrąžina poziciją, kai pirmą kartą viena eilutė pasirodo kitoje.
LCASEKonvertuoti eilutę į mažąsias raides.
KairėPradedant iš kairės, ištraukite iš eilutės nurodytą simbolių skaičių ir grąžinkite juos kaip kitą.
ILGISGrąžina eilutės ilgį, bet baitais.
VIETAGrąžina pirmąjį vienos eilutės įvykį kitoje,
ŽEMATas pats, kas LCASE.
LPADKairės pagalvėlės viena eilute su kita, tam tikro ilgio.
LTRIMIš duotos eilutės pašalinkite visus priekinius tarpus.
MIDIštraukia vieną eilutę iš kitos, pradedant nuo bet kurios padėties.
POZICIJAGrąžina poziciją, kai pirmą kartą viena eilutė pasirodo kitoje.
PAKARTOTILeidžia pakartoti eilutę
PAKEISKITELeidžia pakeisti bet kokius eilutės substring egzempliorius naujais substring.
ATGALGrąžina eilutę.
TEISĖPradedant iš dešinės, iš eilutės ištraukite duotą simbolių skaičių ir grąžinkite juos kaip kitą.
RPADDešinės pagalvėlės viena eilute su kita, tam tikro ilgio.
RTRIMPašalina visus nurodytos eilutės tarpus.
ERDVĖGrąžina eilutę, užpildytą tarpų, lygų sumai, kurią jūs ją perdavote.
STRCMPPalyginamos 2 eilutės skirtumams
PAGRINDASIštraukia vieną iš eilutės iš kitos, pradedant nuo bet kurios padėties.
PATEIKIMASTas pats kaip SUBSTR
SUBSTRING_INDEXGrąžina eilutės dalį iš eilutės, kol nerandama praleista eilutė, kiek kartų prilygsta išlaikytam skaičiui.
APKARPYTIPašalina iš nurodytos eilutės galinius ir tarpinius taškus. Lygiai taip pat, lyg jūs būtumėte kartu valdę LTRIM ir RTRIM.
UCASEKonvertuokite eilutę į didžiąsias raides.
AUKŠTISTas pats, kaip UCASE.

Skaitinės funkcijos

Skaitinės funkcijos
vardasapibūdinimas
ABSGauna absoliučią nurodyto skaičiaus vertę.
ACOSGauna nurodyto skaičiaus lanko kosinusą.
ASINGrąžina nurodyto skaičiaus lanko sinusą.
ĮDEGISGrąžina vieno ar 2 nurodytų skaičių lanko tangentą.
ATAN2Grąžinkite 2 nurodytų skaičių lanko tangentą.
AVGGauna vidutinę duotos išraiškos vertę.
CEILGrąžina artimiausią sveiką skaičių (sveiką skaičių) aukštyn nuo nurodyto dešimtainio taško skaičiaus.
LUBOSTas pats kaip CEIL.
COSGrąžina nurodyto skaičiaus kosinusą.
COTGrąžina nurodyto skaičiaus cotangentą.
COUNTGrąžina įrašų, kurie grąžinami SELECT užklausa, kiekį.
RAUGAIRadianų reikšmė paverčiama laipsniais.
DIVLeidžia padalinti sveikus skaičius.
Tinka ikiGrąžina e į nurodytą skaičių.
GRINDYSGrąžina artimiausią sveiką skaičių (sveiką skaičių) žemyn nuo nurodyto dešimtainio taško skaičiaus.
DIDŽIAUSIASGrąžina aukščiausią argumentų sąrašo vertę.
MAŽIAUSIAIGrąžina mažiausią reikšmę argumentų sąraše.
LNGrąžina duotojo skaičiaus natūralųjį logaritmą
ŽURNALASGrąžina duotojo skaičiaus natūralųjį logaritmą arba duotojo skaičiaus logaritmą prie nurodytos bazės
LOG10Veikia taip, kaip LOG, bet remiasi 10.
LOG2Veikia taip, kaip LOG, bet remiasi 2.
MAXGrąžina didžiausią reikšmę iš verčių rinkinio.
MINGauna mažiausią reikšmę iš verčių rinkinio.
MODGrąžina duoto numerio likusią dalį, padalytą iš kito nurodyto skaičiaus.
PIGrąžina PI.
POWGrąžina duoto skaičiaus reikšmę, padidintą iki kito nurodyto skaičiaus.
JĖGOSTas pats, kas POW.
RADIJAIKonvertuoja laipsnių vertę į radianus.
RANDGauna atsitiktinį skaičių.
APRAŠASSuapvalinkite duotą skaičių iki nurodytos dešimtųjų tikslumu.
SIGNASGrąžina duoto skaičiaus ženklą.
SINGrąžina nurodyto skaičiaus sinusą.
SQRTGrąžina duoto skaičiaus kvadratinę šaknį.
SUMAGrąžina duoto verčių rinkinio vertę kartu.
TANGauna nurodyto skaičiaus liestinę.
TRUNCATEGrąžina skaičių, sutrumpintą iki nurodyto dešimtųjų tikslumo.

Datos funkcijos

Datos funkcijos
vardasapibūdinimas
PRIDĖTIPridėkite datos intervalą (pvz .: 10 DIENA) prie datos (pvz .: 20/01/20) ir grąžinkite rezultatą (pvz .: 20/01/30).
PAPILDYMASPridėkite laiko intervalą (pvz .: 02:00) prie laiko ar dienos laiko (05:00) ir grąžinkite rezultatą (07:00).
CURDATEGaukite dabartinę datą.
DABARTINĖ DATATas pats, kaip CURDATE.
DABARTINIS LAIKASGaukite esamą laiką.
CURRENT_TIMESTAMPGaukite dabartinę datą ir laiką.
CURTIMETas pats, kaip CURRENT_TIME.
DATAIštraukia datą iš dienos išraiškos.
DATEDIFFGrąžina dienų skaičių tarp 2 nurodytų datų.
DATE_ADDTas pats, kaip PRIDĖTI.
DATOS FORMATASFormatuoja datą pagal nurodytą šabloną.
DATE_SUBAtimkite datos intervalą (pvz .: 10 DIENA) iš datos (pvz .: 20/01/20) ir grąžinkite rezultatą (pvz .: 20/01/10).
DIENAGrąžina nurodytos datos dieną.
DIENAGauna nurodytos datos savaitės dienos pavadinimą.
SAVAITĖS DIENAGrąžina nurodytos datos savaitės dienos indeksą.
DAYOFYEARGrąžina nurodytos datos metų dieną.
IŠSKIRTISIštrauka iš datos, kurią davote (pvz., MĖNESIS 20/01/20 = 01).
IŠ DIENŲGrąžinkite datą iš nurodytos skaitinės datos vertės.
VALANDAGrąžinkite valandą nuo nurodytos datos.
PASKUTINĖ DIENAGaukite paskutinę nurodytos datos mėnesio dieną.
VIETINIS LAIKASGauna esamą vietinę datą ir laiką.
LOCALTIMESTAMPTas pats, kas LOCALTIME.
PADARYTASukuria datą ir ją grąžina, remdamasis nurodytų metų ir dienų skaičiaus vertėmis.
SKIRK LAIKOSukuria laiką ir grąžina jį pagal nurodytą valandą, minutę ir antrą reikšmę.
MIKROSEKONDASGrąžina nurodyto laiko arba dienos laiko mikrosekundę.
MINUTĖGrąžina nurodyto laiko arba dienos laiką.
MĖNESISGrąžina nurodytos datos mėnesį.
MONTHNAMEGauna nurodytos datos mėnesio pavadinimą.
DABARTas pats, kas LOCALTIME.
PERIOD_ADDPrideda nurodytą mėnesių skaičių prie nurodyto laikotarpio.
PERIOD_DIFFGrąžina skirtumą tarp 2 nurodytų laikotarpių.
KETVIRTASGrąžina nurodytos datos metų ketvirtį.
ANTRASISGrąžina nurodytą laiką arba dienos laiką.
SEC_TO_TIMEGrąžina laiką pagal nurodytas sekundes.
STR_TO_DATESukuria datą ir grąžina ją pagal nurodytą eilutę ir formatą.
PATEIKTITas pats, kaip DATE_SUB.
SUBTIMASAtima laiko intervalą (pvz .: 02:00) iš laiko ar dienos laiko (05:00) ir grąžina rezultatą (03:00).
SYSDATETas pats, kas LOCALTIME.
LAIKASGrąžina laiką iš nurodyto laiko arba dienos laiko.
LAIKO FORMATASGrąžina nurodytą laiką nurodytu formatu.
TIME_TO_SECKonvertuoja ir grąžina laiką į sekundes.
TIMEDIFFGrąžina skirtumą tarp 2 nurodytų laiko / dienos laiko išraiškų.
TIMESTAMPGrąžina nurodytos datos arba dienos laiko vertę.
TO_DAYSGrąžina bendrą dienų skaičių, praėjusį nuo „00–000000“ iki nurodytos datos.
SAVAITĖGrąžina nurodytos datos savaitės numerį.
SAVAITĖGauna nurodytos datos savaitės dienos numerį.
SAVAITGALISGrąžina nurodytos datos savaitės numerį.
METAIGrąžina metus nuo nurodytos datos.
METŲ SAVAITĖSGauna nurodytos datos metų ir savaitės skaičių.

Įvairios funkcijos

Įvairios funkcijos
vardasapibūdinimas
BINGauna duotą skaičių dvejetainiu būdu.
BINARYGauna nurodytą vertę kaip dvejetainę eilutę.
CASTKonvertuokite vieną tipą į kitą.
KOALESIJAIš verčių sąrašo grąžinkite pirmąją nulinę reikšmę.
CONNECTION_IDDabartiniam ryšiui grąžinkite unikalų ryšio ID.
CONVKonvertuokite duotą skaičių iš vienos skaitmeninės bazinės sistemos į kitą.
PAVERSTIKonvertuokite nurodytą vertę į duotą duomenų tipą arba simbolių rinkinį.
DABARTINIS VARTOTOJASGrąžinkite vartotojo ir pagrindinio kompiuterio vardą, kuris buvo naudojamas autentifikuoti su serveriu.
DUOMENŲ BAZĖGaukite dabartinės duomenų bazės pavadinimą.
GRUPUOTI PAGALNaudojama kartu su bendromis funkcijomis (COUNT, MAX, MIN, SUM, AVG), norint grupuoti rezultatus.

Pavyzdys: Išvardijamas aktyvių užsakymų vartotojų skaičius.

PASIRINKITE SKAIČIŲ (vartotojo_ID), aktyvios_sakymai
NUO vartotojų
GROUP BY aktyvūs užsakymai;
TURĖTIJis naudojamas WHERE vietoje su bendromis funkcijomis.

Pavyzdys: Išvardijamas aktyvių užsakymų vartotojų skaičius, tačiau įtraukiami tik vartotojai, turintys daugiau nei 3 aktyvius užsakymus.

PASIRINKITE SKAIČIŲ (vartotojo_ID), aktyvios_sakymai
NUO vartotojų
GROUP BY aktyvūs užsakymai
TURĖTAS Skaičiuoti (vartotojo_ID)> 3;
JEIJei sąlyga yra tiesa, grąžinkite vertę, kitu atveju grąžinkite kitą vertę.
IFNULLJei duota išraiška prilygsta nuliui, grąžinkite nurodytą reikšmę.
ISNULASJei išraiška yra nulinė, grąžinkite 1, kitu atveju grąžinkite 0.
LAST_INSERT_IDUž paskutinę lentelės pridėtą ar atnaujintą eilutę grąžinkite automatinio prieaugio ID.
NULLIFPalygina du pateiktus posakius. Jei jie yra lygūs, grąžinama NULL, priešingu atveju grąžinama pirmoji išraiška.
SESSION_USERGrąžinkite esamą vartotojo ir pagrindinio kompiuterio pavadinimus.
SYSTEM_USERTas pats, kaip SESSION_USER.
VARTOTOJASTas pats, kaip SESSION_USER.
VERSIJAGrąžina dabartinę „MySQL“ duomenų bazės maitinimo versiją.

Pakaitos simboliai

„SQL“ pakaitos simboliai yra specialūs simboliai, naudojami su raktiniais žodžiais „LIKE“, o „NETINK“ - tai leidžia žymiai efektyviau ieškoti duomenų su sudėtingais modeliais.

Pakaitos simboliai
vardasapibūdinimas
%Prilygsta nuliui ar daugiau simbolių.

1 pavyzdys: Rasti visus vartotojus, kurių pavardės baigiasi „son“.

PASIRINKITE * iš vartotojų
KUR pavardė LIKE '% son';

2 pavyzdys: Rasti visus vartotojus, gyvenančius miestuose, kuriuose yra „che“ pavyzdys

PASIRINKITE * iš vartotojų
KUR miestas patinka „% che%“;
_Prilygsta bet kuriam atskiram personažui.

Pavyzdys: Suraskite visus miestuose gyvenančius vartotojus, prasidedančius bet kokiais 3 simboliais, po kurių eina „chester“.

PASIRINKITE * iš vartotojų
KUR miestas patinka „___chester“;
[charlist]Prilygsta bet kuriam sąrašo simboliui.

1 pavyzdys: Rasti visus vartotojus, kurių vardai prasideda J, H arba M.

PASIRINKITE * iš vartotojų
KUR vardas yra panašus į „[jhm]%“;

2 pavyzdys: Rasti visus vartotojus, kurių vardai prasideda raidėmis tarp A - L.

PASIRINKITE * iš vartotojų
KUR vardas yra LIKE '[a-l]%';

3 pavyzdys: Rasti visus vartotojus, kurių vardai nesibaigia raidėmis tarp n.

PASIRINKITE * iš vartotojų
KUR vardas yra LIKE '% [! N-s]';

Raktai

Reliacinėse duomenų bazėse yra pirminių ir pašalinių raktų samprata. SQL lentelėse jie įtraukiami kaip suvaržymai, kai lentelė gali turėti pirminį raktą, užsienio raktą arba abu.

Pirminis raktas

Pagrindinis raktas leidžia unikaliai identifikuoti kiekvieną lentelės įrašą. Vienoje lentelėje gali būti tik vienas pagrindinis raktas, ir jūs galite priskirti šį apribojimą bet kuriai atskirai ar stulpelių kombinacijai. Tačiau tai reiškia, kad kiekviena šio stulpelio vertė turi būti unikali.

Paprastai lentelėje pagrindinis raktas yra ID stulpelis ir paprastai suporuotas su raktiniu žodžiu AUTO_INCREMENT. Tai reiškia, kad vertė automatiškai didėja, kai sukuriami nauji įrašai.

1 pavyzdys („MySQL“)

Sukurkite naują lentelę ir nustatykite pagrindinį raktą į ID stulpelį.

CREATE TABLE vartotojai (
id int NE NULL AUTO_INCREMENT,
vardas_vardas varcaras (255),
pavardė varchar (255) NE NULL,
adresas varchar (255),
el. paštas varchar (255),
PAGRINDINIS RAKTAS (ID)
);

2 pavyzdys („MySQL“)

Pakeiskite esamą lentelę ir nustatykite pagrindinį raktą į „first_name“ stulpelį.

ALTER TABLE vartotojai
PRIDĖTI PRIMARINĮ RAKTĄ (vardas_pavadinimas);

Svetimas raktas

Svetimas raktas gali būti pritaikytas vienam ar daugeliui stulpelių ir naudojamas 2 lentelėms susieti reliacinėje duomenų bazėje.

Kaip matyti iš žemiau pateiktos diagramos, lentelė, kurioje yra pašalinis raktas, yra vadinama antriniu raktu, o lentelė, kurioje yra nurodytas raktas, arba kandidato raktas, yra vadinama pagrindine lentele..

„MySQL“ raktai

Tai iš esmės reiškia, kad stulpelio duomenys yra dalijami tarp 2 lentelių, nes svetimas raktas taip pat neleidžia įterpti netinkamų duomenų, kurių taip pat nėra pagrindinėje lentelėje..

1 pavyzdys („MySQL“)

Sukurkite naują lentelę ir visus stulpelius, nurodančius ID kitose lentelėse, paverskite svetimais raktais.

CREATE TABLE užsakymai (
id int NE NULL,
user_id int,
produkto_vid,
PAGRINDINIS RAKTAS (ID),
UŽSIENIO RAKTAS („user_id“) NUORODA vartotojų (ID),
UŽSIENIO RAKTAS (produkto_ID) NUORODOS produktai (ID)
);

2 pavyzdys („MySQL“)

Pakeiskite esamą lentelę ir sukurkite užsienio raktą.

ALTER TABLE užsakymai
PRIDĖTI UŽSIENIO RAKTĄ („user_id“) NUORODA vartotojų (ID);

Rodyklės

Indeksai yra atributai, kuriuos galima priskirti stulpeliams, į kuriuos dažnai ieškoma, kad duomenų gavimas būtų greitesnis ir efektyvesnis..

Tai nereiškia, kad kiekvienas stulpelis turėtų būti paverčiamas rodykle, nes stulpelio su rodykle atnaujinimas užtrunka ilgiau nei stulpelis be. Taip yra todėl, kad atnaujinus indeksuotus stulpelius, reikia atnaujinti ir patį rodyklę.

Rodyklės
vardasapibūdinimas
KŪRIS INDEKSĄSukuria rodyklę pavadinimu „idx_test“ naudotojų lentelės vardo ir pavardės stulpeliuose. Tokiu atveju leidžiamos dubliuojamos vertės.
CREATE INDEX idx_test
ON vartotojai (vardas, pavardė);
Sukurti unikalų indeksąTas pats, kas aprašyta aukščiau, tačiau nėra pasikartojančių verčių.

CREATE UNIQUE INDEX idx_test
ON vartotojai (vardas, pavardė);
DROP INDEXPašalina rodyklę.

ALTER TABLE vartotojai
DROP INDEX idx_test;

Prisijungia

SQL sistemoje JOIN yra naudojama grąžinti rezultatų rinkinį, kuriame sujungiami duomenys iš kelių lentelių, remiantis bendru stulpeliu, kuris pateikiamas abiejose lentelėse.

Galite naudoti daugybę skirtingų jungčių:-

  • Vidinis prisijungimas (numatytasis): Grąžina visus įrašus, kurių abiejose lentelėse yra atitinkamos vertės.
  • Kairysis prisijungti: Grąžina visus įrašus iš pirmosios lentelės kartu su visais atitinkančiais įrašais iš antrosios lentelės.
  • Dešiniuoju prisijungimu: Grąžina visus įrašus iš antrosios lentelės kartu su visais atitinkamais įrašais iš pirmosios.
  • Visas prisijungimas: Grąžina visus įrašus iš abiejų lentelių, kai yra atitiktis.

Įprastas būdas vizualizuoti, kaip prisijungia darbas, yra toks:

„MySQL“ prisijungimai

Šiame pavyzdyje vidinis sujungimas bus naudojamas naujam vienijančiam vaizdui sukurti, sujungiant užsakymų lentelę, o po to - 3 skirtingas lenteles

„User_id“ ir „product_id“ pakeisime užsakymą pateikusio vartotojo vardo ir pavardės stulpeliais kartu su įsigytos prekės pavadinimu..

„MySQL“ pavyzdžių lentelė

PASIRINKITE užsakymų.id, vartotojų.fipavadinimas_vardas, vartotojų.pavardė, produktų.pavadinimas kaip „produkto pavadinimas“
NUO užsakymų
„INNER JOIN“ vartotojai, esantys užsakymu.user_id = vartotojai.id
INNER JOIN produktai užsakymai.produktas_id = produktai.id;

Grąžins rezultatų rinkinį, kuris atrodo taip:

„MySQL“ pavyzdžių lentelė

Vaizdas

Vaizdas iš esmės yra SQL rezultatų rinkinys, kuris saugomas duomenų bazėje su etikete, todėl galite prie jo grįžti vėliau, nereikia pakartoti užklausos. Tai ypač naudinga, kai turite brangiai kainuojančią SQL užklausą, kurios gali prireikti keletą kartų, taigi, užuot naudoję ją pakartotinai ir generuodami tą patį rezultatų rinkinį, galite tai padaryti vieną kartą ir išsaugoti kaip rodinį..

Vaizdų kūrimas

Norėdami sukurti rodinį, galite tai padaryti taip:

CREATE VIEW prioritetiniai vartotojai AS
PASIRINKITE * iš vartotojų
KUR šalis = „Jungtinė Karalystė“;

Ateityje, jei jums reikės pasiekti išsaugotą rezultatų rinkinį, galite tai padaryti taip:

PASIRINKITE * IŠ [prioritetų_naudotojų];

Rodinių pakeitimas

Naudodamiesi komanda CREATE AR REPLACE, vaizdas gali būti atnaujintas.

KŪRINTI ARBA PAKEITTI VAIZDĄ [prioriteto_naudotojai] AS
PASIRINKITE * iš vartotojų
KUR šalis = „Jungtinė Karalystė“ ARBA šalis = „JAV“;

Ištrina rodinius

Norėdami ištrinti rodinį, tiesiog naudokite komandą DROP VIEW.

DROP VIEW prioritetiniai vartotojai;

Išvada

Didžioji dalis šių dienų internetinių svetainių tam tikru būdu naudoja reliacines duomenų bazes. Tai daro SQL vertinga kalba, kurią reikia žinoti, nes tai leidžia sukurti sudėtingesnes, funkcionalesnes svetaines ir sistemas.

Pažymėkite šį puslapį kaip žymę, todėl ateityje, jei dirbate su SQL ir nelabai atsimenate konkretų operatorių, kaip parašyti tam tikrą užklausą ar esate tiesiog susipainioję dėl to, kaip prisijungia, tada turėsite rankos apgauti lapą, kuris yra pasirengęs, nori ir gali padėti.

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