SQL apkrāptu lapa

SQL apkrāptu lapu ievada attēls


Šajā ceļvedī atradīsit noderīgu apkrāptu lapu, kurā dokumentēti daži no visbiežāk izmantotajiem SQL elementiem un pat daži no retāk izmantotajiem. Cerams, ka tas palīdzēs izstrādātājiem – gan iesācējiem, gan pieredzējušiem – prasmīgāk izprast SQL valodu.

Izmantojiet to kā ātru uzziņu izstrādes laikā, mācību palīglīdzekli vai pat izdrukājiet un sasieniet, ja vēlaties (neatkarīgi no tā, kas darbojas!).

Bet pirms mēs nonākam pie krāpšanās lapas, izstrādātājiem, kuri, iespējams, nav pazīstami ar SQL, sāksim ar…

Kas ir SQL

SQL apzīmē strukturētu vaicājumu valodu. Tā ir izvēles valoda šodienas tīklā datu glabāšanai, manipulēšanai un izguvei relāciju datu bāzēs. Lielākā daļa, ja nē visiem no jūsu apmeklētajām vietnēm to kaut kādā veidā izmantos, ieskaitot šo viens.

Lūk, kā izskatās pamata relāciju datu bāze. Šajā piemērā īpaši tiek glabāta informācija par e-komerciju, it īpaši pārdošanā esošajiem produktiem, lietotājiem, kas tos pērk, un šo pasūtījumu uzskaite, kas saista šīs 2 vienības.

Relāciju pamata datu bāze

Izmantojot SQL, jūs varat mijiedarboties ar datu bāzi, rakstot vaicājumus, kuri, izpildot tos, atdod visus rezultātus, kas atbilst tās kritērijiem.

Šis ir vaicājuma piemērs:-

SELECT * FROM lietotājiem;

Izmantojot šo SELECT paziņojumu, vaicājumā tiek atlasīti visi dati no visām lietotāja tabulas kolonnām. Pēc tam tiktu atgriezti dati, piemēram, zemāk, ko parasti sauc par rezultātu kopu:-

Lietotāju tabulas piemērs

Ja tā vietā mēs aizstātu zvaigznītes aizstājējzīmi (*) ar noteiktiem kolonnu nosaukumiem, no vaicājuma tiktu atgriezti tikai dati no šīm kolonnām.

SELECT vārdu, uzvārdu no lietotājiem;

Lietotāju tabulas piemērs ar samazinātām slejām

Mēs varam pievienot nedaudz sarežģītību standarta SELECT paziņojumam, pievienojot WHERE klauzulu, kas ļauj filtrēt to, kas tiek atgriezts.

SELECT * FROM produktus, kur krājumu skaits <= 10 ORDER BY stock_count ASC;

Šis vaicājums parādīs visus datus no produktu tabulas, kuru krājumu_vērtība rezultātu kopā ir mazāka par 10.

Atslēgvārda ORDER BY lietošana nozīmē, ka rezultāti tiks pasūtīti, izmantojot kolonnu stock_count, no zemākajām vērtībām līdz visaugstākajām.

Produktu tabulas piemēri

Izmantojot paziņojumu INSERT INTO, mēs varam tabulā pievienot jaunus datus. Šis ir pamata piemērs, kā pievienot jaunu lietotāju lietotāju tabulai:-

INSERT INTO lietotājiem (vārds, uzvārds, adrese, e-pasts)
VĒRTĪBAS ('Tester', 'Jester', '123 Fake Street, Šefīlda, Lielbritānija', '[e-pasts aizsargāts]');

Tad, ja jūs atkārtotu vaicājumu, lai atgrieztu visus datus no lietotāja tabulas, rezultātu kopa izskatās šādi:

Tabulas piemērs ar jaunu rindu

Protams, šie piemēri parāda tikai ļoti nelielu izvēli tam, ko SQL valoda spēj.

SQL vs MySQL

Jūs, iespējams, jau esat dzirdējis par MySQL. Ir svarīgi, lai jūs to nesajauktu ar pašu SQL, jo pastāv acīmredzama atšķirība.

SQL vs MySQLSQL ir valoda. Tajā ir aprakstīta sintakse, kas ļauj rakstīt vaicājumus, kas pārvalda relāciju datu bāzes. Nekas vairāk.

MySQL tikmēr ir datu bāze sistēma kas darbojas uz servera. Tā darbarīki SQL valoda, ļaujot rakstīt vaicājumus, izmantojot tās sintakse, lai pārvaldītu MySQL datu bāzes.

Papildus MySQL ir arī citas sistēmas, kas ievieš SQL. Daži no populārākajiem ir šādi:

  • PostgreSQL
  • SQLite
  • Oracle datu bāze
  • Microsoft SQL Server

MySQL instalēšana

Windows

Ieteicamais veids, kā instalēt MySQL operētājsistēmā Windows, ir, izmantojot instalēšanas programmu, kuru varat lejupielādēt no vietnes MySQL vietne.

Instalējiet MySQL Windows

MacOS

MacOS operētājsistēmā ieteicams izmantot MySQL instalēšanas veidus, izmantojot vietējās pakotnes, kas izklausās daudz sarežģītāk, nekā patiesībā ir. Būtībā tas nozīmē arī tikai uzstādītājs.

Instalējiet MySQL Mac

Kā alternatīvu, ja vēlaties izmantot pakešu pārvaldniekus, piemēram, Pašmāju, MySQL var instalēt šādi:

brūvēt instalēt MySQL

Lai gan jums jāinstalē vecāka MySQL 5.7 versija, kas mūsdienās joprojām tiek plaši izmantota tīmeklī, jūs varat:

brūvēt instalēšanu [aizsargāts ar e-pastu]

Izmantojot MySQL

Tā kā MySQL tagad ir instalēts jūsu sistēmā, lai pēc iespējas ātrāk piecelties un dotos uz SQL vaicājumiem, ieteicams izmantot SQL pārvaldības lietojumprogrammu, lai datu bāzu pārvaldīšana būtu daudz vienkāršāka un vienkāršāka..

Ir daudz lietotņu, no kurām izvēlēties, kuras lielākoties veic vienu un to pašu darbu, tāpēc ir jāizlemj, kuru lietot:

  • MySQL Workbench ir izstrādājis Oracle, MySQL īpašnieks.
  • HeidiSQL (Ieteicams Windows) ir bezmaksas atvērtā koda lietotne operētājsistēmai Windows. MacOS un Linux lietotājiem, Vīns vispirms ir nepieciešams kā priekšnoteikums.
  • phpMyAdmin ir ļoti populāra alternatīva, kas darbojas tīmekļa pārlūkā.
  • Sequel Pro (Ieteicams MacOS) ir tikai MacOS alternatīva, un tā ir mūsu iecienītākā viela, pateicoties skaidrajai un ērti lietojamajai saskarnei.

Kad esat gatavs sākt rakstīt savus SQL vaicājumus, nevis tērēt laiku savas datu bāzes izveidošanai, tā vietā apsveriet iespēju importēt fiktīvus datus..

Vietne MySQL piedāvā vairākus fiktīvas datu bāzes kuru varat lejupielādēt bez maksas un pēc tam importēt savā SQL lietotnē.

Manekenu datu bāze MySQL

Mūsu iecienītākais no tiem ir pasaule datu bāze, kas sniedz dažus interesantus datus, kā praktizēt SQL vaicājumu rakstīšanu. Tālāk ir parādīts ekrāna attēls no savas valsts tabulas Sequel Pro.

Sequel Pro piemērs

Šis vaicājuma piemērs atgriež visas valstis, kurās karaliene Elizabete II ir viņu valsts vadītāja ����.

Sequel Pro piemērs

Kamēr šī atgriežas visas Eiropas valstis ar vairāk nekā 50 miljoniem iedzīvotāju, kā arī to galvaspilsēta un tās iedzīvotāji.

Sequel Pro piemērs

Šis pēdējais rezultāts parāda vidējo franciski runājošo procentuālo daudzumu valstīs, kur kopējais franciski runājošo skaits ir lielāks par 10%.

Sequel Pro piemērs

Špikeris

Atslēgas vārdi

SQL paziņojumos izmantoto atslēgvārdu kolekcija, apraksts un attiecīgā gadījumā piemērs. Dažiem no sarežģītākajiem atslēgvārdiem vēlāk ir krāpšanas lapas sadaļa.

Ja blakus piemēram ir minēts MySQL, tas nozīmē, ka šis piemērs ir piemērojams tikai MySQL datu bāzēm (pretstatā jebkurai citai datu bāzu sistēmai).

SQL atslēgas vārdi
AtslēgvārdsApraksts
PIEVIENOTEsošai tabulai pievieno jaunu kolonnu.

Piemērs: Tabulai ar nosaukumu “lietotāji” pievieno jaunu sleju ar nosaukumu “email_address”..

ALTER TABLE lietotāji
PIEVIENOT e-pasta adresi varchar (255);
PIEVIENOT KONTRASTUTas rada jaunu ierobežojumu esošai tabulai, kuru izmanto, lai norādītu noteikumus visiem tabulas datiem.

Piemērs: Kolonnu ID un SURNAME pievieno jaunu PRIMARY KEY ierobežojumu ar nosaukumu “lietotājs”.

ALTER TABLE lietotāji
PIEVIENOT CONSTRAINT lietotāja PRIMĀRĀM ATSLĒGĀM (ID, UZVĀRDS);
ALTER TABULAPievieno, dzēš vai rediģē tabulas kolonnas. To var arī izmantot, lai pievienotu un izdzēstu ierobežojumus tabulā, kā minēts iepriekš.

Piemērs: Tabulai ar nosaukumu “piedāvājumi” pievieno jaunu Būla kolonnu ar nosaukumu “apstiprināta”..

ALTER TABLE piedāvājumi
PIEVIENOT apstiprinātu Būla;

2. piemērs: No tabulas “piedāvājumi” izdzēš kolonnu “apstiprināts”

ALTER TABLE piedāvājumi
Pilienu kolonna apstiprināta;
ALTERA SLEJAMaina tabulas kolonnas datu tipu.

Piemērs: Tabulā “lietotāji” kolonu “incept_date” izveidojiet par “dattetime” veidu.

ALTER TABLE lietotāji
ALTER COLUMN incept_date datetime;
VISIAtgriežas kā taisnība, ja visas apakšvaicājuma vērtības atbilst nodotajam nosacījumam.

Piemērs: Tiek atgriezts lietotājs ar lielāku uzdevumu skaitu nekā lietotājs ar lielāko uzdevumu skaitu HR departamentā (id 2).

SELECT vārdu, uzvārdu, uzdevumus_no
NO lietotājiem
KUR uzdevumi_no> VISI (ATLASIET uzdevumus no lietotāja, kur departaments_id = 2);
UNIzmanto, lai pievienotos atsevišķiem nosacījumiem WHERE klauzulā.

Piemērs: Atgriež pasākumus, kas atrodas Londonā, Apvienotajā Karalistē

SELECT * NO notikumiem
WHERE host_country = 'United Kingdom' UN host_city = 'London';
JEBKĀDAAtgriežas kā taisnība, ja kāda no apakšvaicājuma vērtībām atbilst dotajam nosacījumam.

Piemērs: Atgriež produktus no produktu tabulas, kuri saņēmuši pasūtījumus - kas glabāti pasūtījumu tabulā - ar daudzumu, kas lielāks par 5.

SELECT vārdu
NO produktiem
KUR productId = JEBKĀDA (SELECT productId FROM pasūtījumiem, ja daudzums> 5);
ASPārdēvē tabulu vai kolonnu ar aizstājvārda vērtību, kas pastāv tikai vaicājuma laikā.

Piemērs: Pseidonīmi north_east_user_subscriptions kolonna

SELECT ziemeļu_lietotāju_pierakstījumi AS ne_subs
NO lietotājiem
KUR ne_subs> 5;
ASCIzmanto kopā ar ORDER BY, lai atgrieztos datus augošā secībā.

Piemērs: Āboli, banāni, persiki, redīsi

STARPAtlasa vērtības dotajā diapazonā.

1. piemērs: Atlasa krājumus ar daudzumu no 100 līdz 150.

SELECT * NO krājuma
KUR DAUDZ STARP 100 UN 150;

2. piemērs: Atlasa krājumus ar daudzumu, kas NAV no 100 līdz 150. Alternatīvi, izmantojot atslēgvārdu NAV, tiek mainīta loģika un tiek atlasītas vērtības ārpus norādītā diapazona..

SELECT * NO krājuma
KUR DAUDZ NAV STARP 100 UN 150;
LIETAMainiet vaicājuma izvadi atkarībā no apstākļiem.

Piemērs: Atgriež lietotājus un viņu abonementus, kā arī jaunu kolonnu ar nosaukumu aktivitātes_līmeņi, kas izlemj, pamatojoties uz abonementu skaitu.

SELECT vārdu, uzvārdu, abonementus
LIETA, KAD abonementi> 10 TAD “Ļoti aktīvi”
KAD Daudzums starp 3 un 10, tad "aktīvs"
ELSE “neaktīvs”
END AS aktivitātes_līmeņi
NO lietotājiem;
PĀRBAUDEPievieno ierobežojumu, kas ierobežo kolonnai pievienojamo vērtību.

1. piemērs (MySQL): Pārliecinās, ka visiem lietotājiem, kas pievienoti lietotāju tabulai, ir 18 vai vairāk.

CREATE TABLE lietotāji (
pirmais vārds varchar (255),
vecums int,
PĀRBAUDE (vecums> = 18)
);

2. piemērs (MySQL): Pēc tam, kad tabula jau ir izveidota, pievieno pārbaudi.

ALTER TABLE lietotāji
PIEVIENOT PĀRBAUDI (vecums> = 18);
Izveidot datu bāziIzveido jaunu datu bāzi.

Piemērs: Izveido jaunu datu bāzi ar nosaukumu “websitesetup”.

CREATE DATABASE websitesetup;
Izveidot tabuluIzveido jaunu tabulu .

Piemērs: “Tīmekļa vietnes iestatīšanas” datu bāzē izveido jaunu tabulu ar nosaukumu “lietotāji”.

CREATE TABLE lietotāji (
id int,
pirmais vārds varchar (255),
uzvārds varchar (255),
adrese varchar (255),
kontaktu_numurs int
);
DEFAULTIestata kolonnas noklusējuma vērtību;

1. piemērs (MySQL): Izveido jaunu tabulu ar nosaukumu Produkti, kurai ir nosaukuma kolonna ar noklusējuma vērtību “Viettura nosaukums” un pieejama_no kolonnas ar noklusējuma vērtību šodienas datums.

CREATE TABLE produkti (
id int,
vārds varchar (255) DEFAULT 'Viettura nosaukums',
pieejams_no datuma: DEFAULT GETDATE ()
);

2. piemērs (MySQL): Tas pats, kas minēts iepriekš, bet esošās tabulas rediģēšana.

ALTER TABLE produkti
ALTER nosaukums SET DEFAULT 'Vietnes nosaukums',
ALTER available_fr SET SET DEFAULT GETDATE ();
DZĒSTDzēst datus no tabulas.

Piemērs: Noņem lietotāju, kura lietotāja_id ir 674.

Svītrot no lietotājiem, kur user_id = 674;
DESCIzmanto kopā ar ORDER BY, lai atgrieztos datus dilstošā secībā.

Piemērs: Redīsi, persiki, banāni, āboli

Pilienu kolonnaIzdzēš kolonnu no tabulas.

Piemērs: No lietotāju tabulas noņem kolonnu first_name.

ALTER TABLE lietotāji
DROP COLUMN pirmais_vārds
Pilienu datu bāzeIzdzēš visu datu bāzi.

Piemērs: Izdzēš datu bāzi ar nosaukumu “websitesetup”.

DROP DATABASE vietņu iestatīšana;
Pilienu noklusējumsTiek noņemta kolonnas noklusējuma vērtība.

Piemērs (MySQL): Noņem noklusējuma vērtību tabulas “produkti” kolonnā “nosaukums”.

ALTER TABLE produkti
ALTER kolonnas nosaukums DROP DEFAULT;
Pilienu tabulaIzdzēš tabulu no datu bāzes.

Piemērs: Noņem lietotāju tabulu.

DROP TABLE lietotāji;
EKSPERTIPārbauda jebkura ieraksta esamību apakšvaicājumā, kas ir patiess, ja tiek atgriezts viens vai vairāki ieraksti.

Piemērs: Tiek uzskaitīti visi izplatītāji, kuru darījuma finansējuma procents ir mazāks par 10.

SELECT koncesijas_nosaukums
NO Dīleriem
KUR PIENĀKAS (IZVĒLĒJIETies darījuma_nosaukums no darījumiem, KUR tirgotavas_id = piedāvājumi.bankaship_ID UN finanses_procenti < 10);
NONorāda, no kuras tabulas atlasīt vai izdzēst datus.

Piemērs: Atlasa datus no lietotāju tabulas.

SELECT apgabala pārvaldnieks
NO apgabala pārvaldniekiem
KUR IZMEKLĒ (IZVĒLIETIES PRODUKTU NOSAUKUMU NO PRODUKTIEM, KUR apgabals_manager_id = piedāvājumi.area_manager_id UN Cena < 20);
INIzmanto kopā ar WHERE klauzulu kā saīsni vairākiem VAI nosacījumiem.

Tā vietā, lai:-

SELECT * FROM lietotājiem
KUR valsts = “ASV” VAI valsts = “Apvienotā Karaliste” VAI valsts = “Krievija” VAI valsts = “Austrālija”;

Tu vari izmantot:-

SELECT * FROM lietotājiem
KUR valstī IN (“ASV”, “Apvienotā Karaliste”, “Krievija”, “Austrālija”);
IEVADIETPievienojiet tabulai jaunas rindas.

Piemērs: Pievieno jaunu transportlīdzekli.

INSERT INTO automašīnas (marka, modelis, nobraukums, gads)
VĒRTĪBAS ('Audi', 'A3', 30000, 2016);
IR NULLTukšo (NULL) vērtību testi.

Piemērs: Atgriež lietotājus, kuri nav norādījuši kontakta numuru.

SELECT * FROM lietotājiem
KUR kontakta numurs ir NULL;
NAV NULLNULL reverss. Testu vērtības, kas nav tukšas / NULL.
PATĪKAtgriežas kā taisnība, ja operanda vērtība atbilst modelim.

Piemērs: Atgriežas kā taisnība, ja lietotāja vārds ir beidzies ar “dēls”.

SELECT * FROM lietotājiem
KUR pirmais vārds LIKE '% dēls';
NAVAtgriežas, ja ieraksts NEATBILST nosacījumam.

Piemērs: Atgriežas kā taisnība, ja lietotāja vārds uzvārds nebeidzas ar “dēls”.

SELECT * FROM lietotājiem
KUR pirmais vārds NEVAJADZAS “% dēls”;
VAIIzmanto kopā ar WHERE, lai iekļautu datus, ja kāds no nosacījumiem ir taisnība.

Piemērs: Atgriež lietotājus, kuri dzīvo Šefīldā vai Mančesterā.

SELECT * FROM lietotājiem
KUR pilsēta = 'Šefīlda' VAI 'Mančestra';
SAKĀRTOT PĒCIzmanto rezultātu datu kārtošanai augošā (noklusējuma) vai dilstošā secībā, izmantojot ASC vai DESC atslēgvārdus.

Piemērs: Atgriež valstis alfabēta secībā.

ATLASĪT * NO valstīm
PASŪTĪT PĒC vārda;
ROWNUMAtgriež rezultātus, ja rindas numurs atbilst nokārtotajam nosacījumam.

Piemērs: Atgriež desmit valstis no tabulas.

ATLASĪT * NO valstīm
KUR ROWNUM <= 10;
IZVĒLĒTIESIzmanto, lai atlasītu datus no datu bāzes, kas pēc tam tiek atgriezta rezultātu kopā.

1. piemērs: No visiem lietotājiem tiek atlasītas visas kolonnas.

SELECT * FROM lietotājiem;

2. piemērs: No visiem lietotājiem tiek atlasītas kolonnas vārdi un uzvārdi.xx

SELECT vārdu, uzvārdu no lietotājiem;
IZVĒLIET DISTINCTUSamazina kā SELECT, izņemot dublējošās vērtības.

Piemērs: Izveido rezerves tabulu, izmantojot datus no lietotāju tabulas.

SELECT * INTO usersBackup2020
NO lietotājiem;
IZVĒLĒTIESKopē datus no vienas tabulas un ievieto tos citā.

Piemērs: Atgriež visas valstis no lietotāju tabulas, noņemot visas dublikātu vērtības (kas ir ļoti iespējams)

SELECT DISTINCT valsti no lietotājiem;
SELECT TOPĻauj atgriezties noteiktā skaitā ierakstu, lai atgrieztos no tabulas.

Piemērs: Atgriež 3 labākās automašīnas no automašīnu galda.

SELECT TOP 3 * NO automašīnām;
IESTATĪTIzmanto kopā ar UPDATE, lai atjauninātu esošos datus tabulā.

Piemērs: Atjaunina vērtību un daudzumu vērtības pasūtījumam ar ID 642 pasūtījumu tabulā.

UPDATE pasūtījumi
SET vērtība = 19,49, daudzums = 2
KUR id = 642;
DAŽIIdentisks jebkuram.
TOPSTiek izmantots kopā ar SELECT, lai no tabulas atgrieztu noteiktu ierakstu skaitu.

Piemērs: Atgriež piecus labākos lietotājus no lietotāju tabulas.

SELECT TOP 5 * NO lietotājiem;
TRUNCATE TABULALīdzīgi kā DROP, bet tabulas un tās datu dzēšanas vietā tiek izdzēsti tikai dati.

Piemērs: Noņem sesiju tabulu, bet pats galds paliek neskarts.

TRUNCATE TABLE sesijas;
SAVIENĪBAApvieno rezultātus no 2 vai vairākiem SELECT paziņojumiem un atgriež tikai atšķirīgas vērtības.

Piemērs: Atgriež pilsētas no notikumu un abonentu tabulām.

IZVĒLĒTIES pilsētu no notikumiem
SAVIENĪBA
SELECT pilsētu no abonentiem;
SAVIENĪBA VISSTas pats, kas SAVIENĪBA, taču tajā ir dublētās vērtības.
UNIKĀLIŠis ierobežojums nodrošina, ka visas kolonnas vērtības ir unikālas.

1. piemērs (MySQL): Veidojot jaunu lietotāju tabulu, ID slejai pievieno unikālu ierobežojumu.

CREATE TABLE lietotāji (
id int NAV NULL,
vārds varchar (255) NAV NULL,
UNIKĀLS (id)
);

2. piemērs (MySQL): Maina esošo kolonnu, lai pievienotu UNIKĀLU ierobežojumu.

ALTER TABLE lietotāji
PIEVIENOT UNIKĀLU (id);
ATJAUNINĀTAtjaunina esošos datus tabulā.

Piemērs: Atjaunina nobraukuma un serviceDue vērtības transportlīdzeklim ar ID 45 automašīnām tabulā.

ATJAUNINĀT automašīnas
SET nobraukums = 23500, serviceDue = 0
KUR id = 45;
VĒRTĪBASLieto kopā ar atslēgvārdu INSERT INTO, lai tabulai pievienotu jaunas vērtības.

Piemērs: Pievieno jaunu mašīnu automašīnu galdam.

INSERT INTO automašīnas (nosaukums, modelis, gads)
VĒRTĪBAS ('Ford', 'Fiesta', 2010);
KURFiltrē rezultātus, lai iekļautu tikai tos datus, kas atbilst dotajam nosacījumam.

Piemērs: Tiek atgriezti pasūtījumi, kuru daudzums pārsniedz 1 vienību.

SELECT * NO pasūtījumiem
KUR daudzums> 1;

Komentāri

Komentāri ļauj izskaidrot SQL paziņojumu sadaļas vai komentēt kodu un novērst tā izpildi.

SQL ir 2 komentāru veidi: vienrindas un daudzrindu.

Komentāri vienā rindā

Komentāri vienā rindā sākas ar -. Jebkurš teksts pēc šīm 2 rakstzīmēm līdz rindas beigām tiks ignorēts.

-- My Select vaicājums
SELECT * FROM lietotājiem;

Daudzrindu komentāri

Daudzrindu komentāri sākas ar / * un beidzas ar * /. Viņi stiepjas pāri vairākām līnijām, līdz ir atrasti noslēdzošie burti.

/ *
Šis ir mans atlasītais vaicājums.
Tas satver visas datu rindas no lietotāju tabulas
* /
SELECT * FROM lietotājiem;

/ *
Šis ir vēl viens atlasītais vaicājums, kuru es pagaidām nevēlos izpildīt

ATLASĪT * NO uzdevumiem;
* /

MySQL datu tipi

Veidojot jaunu tabulu vai rediģējot esošo, jums jāprecizē datu tips, kuru pieņem katra kolonna.

Zemāk redzamajā piemērā datiem, kas nosūtīti uz ID kolonnu, jābūt int, savukārt slejā first_name ir VARCHAR datu tips ar ne vairāk kā 255 rakstzīmēm..

CREATE TABLE lietotāji (
id int,
pirmais vārds varchar (255)
);

Stīgu datu tipi

Stīgu datu tipi
Datu tipsApraksts
CHAR (lielums)Fiksēta garuma virkne, kurā var būt burti, cipari un speciālās rakstzīmes. Lieluma parametrs nosaka maksimālo virknes garumu no 0 līdz 255 ar noklusējuma vērtību 1.
VARCHAR (izmērs)Mainīga garuma virkne, kas līdzīga CHAR (), bet ar maksimālo virknes garumu no 0 līdz 65535.
BINĀRS (izmērs)Līdzīgi kā CHAR (), bet saglabā bināru baitu virknes.
VARBINARY (izmērs)Līdzīgi kā VARCHAR (), bet binārajām baitu virknēm.
TINYBLOBIetver lielos bināros objektus (BLOB) ar maksimālo garumu 255 baiti.
TINYTEXTTur virkni, kuras maksimālais garums ir 255 rakstzīmes. Tā vietā izmantojiet VARCHAR (), jo tas tika atgūts daudz ātrāk.
TEXT (izmērs)Tur virkni, kuras maksimālais garums ir 65535 baiti. Atkal labāk izmantot VARCHAR ().
BLOB (izmērs)Ietver lielos bināros objektus (BLOB) ar maksimālo garumu 65535 baiti.
MEDIUMTEXTTur virkni, kuras maksimālais garums ir 16 777 215 rakstzīmes.
MEDIUMBLOBIetver lielos bināros objektus (BLOB) ar maksimālo garumu 16 777 215 baitus.
ILGTEKSTSTur virkni, kuras maksimālais garums ir 4 294 967 295 rakstzīmes.
LONGBLOBTur bināros lielos objektus (BLOB) ar maksimālo garumu 4 294 967 295 baiti.
ENUM (a, b, c utt.)Virknes objekts, kuram ir tikai viena vērtība, kuru izvēlas no jūsu definēto vērtību saraksta, nepārsniedzot 65535 vērtības. Ja tiek pievienota vērtība, kuras šajā sarakstā nav, tā vietā tiek aizstāta ar tukšu vērtību. Domājiet, ka ENUM šajā ziņā ir līdzīgs HTML radio lodziņiem.

CREATE TABLE tshirts (krāsa ENUM ('sarkans', 'zaļš', 'zils', 'dzeltens', 'purpursarkans'));
SET (a, b, c utt.)Virknes objekts, kuram var būt 0 vai vairāk vērtību, kurš tiek izvēlēts no jūsu definēto vērtību saraksta, maksimāli līdz 64 vērtībām. Domājiet, ka SET šajā ziņā ir līdzīgs HTML izvēles rūtiņām.

Skaitlisko datu tipi

Stīgu datu tipi
Datu tipsApraksts
BIT (izmērs)Bitu vērtības tips ar noklusējumu 1. Atļautais vērtību bitu skaits tiek iestatīts, izmantojot lieluma parametru, kurš var turēt vērtības no 1 līdz 64.
TINYINT (izmērs)Ļoti mazs vesels skaitlis ar parakstītu diapazonu no -128 līdz 127 un neparakstīts diapazons no 0 līdz 255. Šeit lieluma parametrs norāda maksimālo pieļaujamo displeja platumu, kas ir 255.
BOOLBūtībā ātrs veids, kā kolonnu iestatīt uz TINYINT ar izmēru 0, tiek uzskatīts par nepatiesu, savukārt 1 tiek uzskatīts par patiesu.
BOOLIJASTas pats, kas BOOL.
MAZA (izmērs)Neliels vesels skaitlis ar parakstītu diapazonu no -32768 līdz 32767 un neparakstīts diapazons no 0 līdz 65535. Šeit lieluma parametrs norāda maksimālo pieļaujamo displeja platumu, kas ir 255.
MEDIUMINT (izmērs)Vidējs vesels skaitlis ar parakstītu diapazonu no -8388608 līdz 8388607 un neparakstīts diapazons no 0 līdz 16777215. Šeit lieluma parametrs norāda maksimālo pieļaujamo displeja platumu, kas ir 255.
INT (lielums)Vidējs vesels skaitlis ar parakstītu diapazonu no -2147483648 līdz 2147483647 un neparakstīts diapazons no 0 līdz 4294967295. Šeit lieluma parametrs norāda maksimālo pieļaujamo displeja platumu, kas ir 255.
INTEGER (izmērs)Tas pats, kas INT.
BIGINT (izmērs)Vidējs vesels skaitlis ar parakstītu diapazonu no -9223372036854775808 līdz 9223372036854775807 un neparakstīts diapazons no 0 līdz 18446744073709551615. Šeit lieluma parametrs norāda maksimālo pieļaujamo displeja platumu, kas ir 255.
PELDĪBA (p)Peldošā komata skaitļa vērtība. Ja precizitātes (p) parametrs ir no 0 līdz 24, tad datu tips tiek iestatīts uz FLOAT (), savukārt, ja tas ir no 25 līdz 53, tad datu tips ir iestatīts uz DOUBLE (). Šāda rīcība ir paredzēta, lai vērtību glabāšana būtu efektīvāka.
DVĪŅI (izmērs, d)Peldošā komata skaitļa vērtība, kurā ciparu kopskaitu nosaka lieluma parametrs, un ciparu skaitu aiz komata nosaka d parametrs.
DECIMAL (izmērs, d)Precīzs fiksēta punkta numurs, kurā kopējo ciparu skaitu nosaka lieluma parametri, un kopējo ciparu skaitu aiz komata nosaka d parametrs.

Lielumam maksimālais skaits ir 65 un noklusējums ir 10, savukārt d lielākais skaits ir 30 un noklusējums ir 10.

DEC (lielums, d)Tas pats, kas DECIMAL.

Datuma / laika datu veidi

Datuma / laika datu veidi
Datu tipsApraksts
DATUMSVienkāršs datums GGGG-MM – DD formātā ar atbalstītu diapazonu no “1000-01-01” līdz “9999-12-31”.
DATETIME (fsp)Datuma laiks GGGG-MM-DD hh: mm: ss formātā ar atbalstītu diapazonu no '1000-01-01 00:00:00' līdz '9999-12-31 23:59:59'.

Kolonnas definīcijai pievienojot DEFAULT un ON UPDATE, tas automātiski iestata pašreizējo datumu / laiku.

TIMESTAMP (fsp)Unix laika zīmogs, kas ir vērtība attiecībā pret sekunžu skaitu kopš Unix laikmeta (“1970-01-01 00:00:00” UTC). Tam ir atbalstīts diapazons no “1970-01-01 00:00:01” UTC līdz “2038-01-09 03:14:07” UTC.

Kolonnas definīcijai pievienojot noklusējuma CURRENT_TIMESTAMP un ONDATE CURRENT TIMESTAMP, tas automātiski tiek iestatīts uz pašreizējo datumu / laiku.

TIME (fsp)Laiks formātā hh: mm: ss ar atbalstītu diapazonu no '-838: 59: 59' līdz '838: 59: 59'.
GADSGadā ar atbalstīto diapazonu no 1901 līdz 2155.

Operatori

Aritmētiskie operatori

Aritmētiskie operatori
OperatorsApraksts
+Pievienot
-Atņem
*Reizināt
/Padalieties
%Modulo

Bitwise operators

Bitwise operatori
OperatorsApraksts
&Bitu veidā UN
|Bitīti VAI
^Bitu ekskluzīvs VAI

Salīdzināšanas operatori

Salīdzināšanas operatori
OperatorsApraksts
=Vienāds ar
>Lielāks nekā
<Mazāk nekā
> =Lielāks vai vienāds ar
<=Mazāks vai vienāds ar
<>Nav vienāds ar

Saliktie operatori

Saliktie operatori
OperatorsApraksts
+=Pievienojiet vienādu
-=Atņem vienādus
* =Reizināt vienāds
/ =Dalīt vienāds
% =Modulo ir vienāds
& =Bitīti UN vienāds
^ - =Bitīti ekskluzīvs vienāds
| * =Bitu veidā VAI vienāds

Funkcijas

Stīgu funkcijas

Stīgu funkcijas
VārdsApraksts
ASCIIAtgriež līdzvērtīgu ASCII vērtību konkrētai rakstzīmei.
CHAR_LENGTHAtgriež virknes rakstzīmju garumu.
CHARACTER_LENGTHTas pats, kas CHAR_LENGTH.
KONKURTSPievieno izteiksmes kopā ar vismaz 2.
CONCAT_WSPievieno izteiksmes kopā, bet ar atdalītāju starp katru vērtību.
LAUKSAtgriež indeksa vērtību attiecībā pret vērtības pozīciju vērtību sarakstā.
ATRAST SEKAtgriež virknes pozīciju virkņu sarakstā.
FORMĀTSPiešķirot skaitli, tiek atgriezts skaitlis, kas formatēts, lai iekļautu komatus (piemēram, 3 400 000)..
IEVADIETĻauj ievietot vienu virkni citā noteiktā brīdī, noteiktam rakstzīmju skaitam.
INSTRAtgriež pozīciju, kurā pirmo reizi viena virkne parādās citā.
LCASEPārvērtiet virkni uz mazajiem burtiem.
LEFTSākot no kreisās puses, no virknes izvelciet doto rakstzīmju skaitu un atgrieziet tās kā citas.
GARUMSAtgriež virknes garumu, bet baitos.
VIETAAtgriež vienas virknes pirmo parādīšanos citā,
ZEMĀKTas pats, kas LCASE.
LPADKreisie spilventiņi viena aukla ar otru, līdz noteiktam garumam.
LTRIMNo dotās virknes noņemiet visas atstarpes.
MIDIzņem vienu virkni no citas, sākot no jebkuras pozīcijas.
POZĪCIJAAtgriež pozīciju, kurā pirmo reizi viena apakšvirkne parādās citā.
ATKĀRTOTĻauj atkārtot virkni
AIZVIETOTĻauj aizstāt virknes apakšvirknes gadījumus ar jaunu apakšvirkni.
PĀRSKATĪŠANAVirkne tiek apgriezta.
PA LABISākot no labās puses, no virknes izvelciet doto rakstzīmju skaitu un atgrieziet tās kā citas.
RPADTiesības spilventiņi viena virkne ar otru, lai noteiktu garumu.
RTRIMNo dotās virknes noņem visas atstarpes.
SPACEAtgriež virkni, kas pilna ar atstarpēm, vienāda ar summu, kuru jūs to pārsūtījāt.
STRCMPSalīdzina 2 virknes atšķirībām
SUBSTRIzņem vienu apakšvirkni no citas, sākot no jebkuras pozīcijas.
SUBSTRINGTas pats, kas SUBSTR
SUBSTRING_INDEXAtgriež apakšvirkni no virknes, pirms tiek atrasta nodotā ​​apakšvirkne, cik reizes ir vienāds ar nodoto skaitli.
TRIMNo dotās virknes noņem beigu un priekšējās atstarpes. Tas pats, it kā jūs vadītu LTRIM un RTRIM kopā.
UCASEPārvērtiet virkni uz lielajiem burtiem.
AugšējāTas pats, kas UCASE.

Ciparu funkcijas

Ciparu funkcijas
VārdsApraksts
ABSAtgriež noteiktā skaitļa absolūto vērtību.
ACOSAtgriež norādītā skaitļa loka kosinusu.
Atgriež norādītā skaitļa loka sinusu.
ATANAtgriež loka tangenci vienam vai diviem dotajiem skaitļiem.
ATAN2Atgrieziet loka skaitli, kas atbilst 2 dotajiem skaitļiem.
AVGAtgriež dotās izteiksmes vidējo vērtību.
CEILAtgriež tuvāko veselo skaitli (veselo skaitli) uz augšu no noteiktā decimālā komata.
GRIESTUTas pats, kas CEIL.
COSAtgriež noteiktā skaitļa kosinusu.
BĒRNU GULTIŅAAtgriež noteiktā skaitļa koaģentu.
COUNTAtgriež ierakstu daudzumu, kas tiek atgriezts ar SELECT vaicājumu.
GADIRadiāna vērtību pārvērš grādos.
DIVĻauj sadalīt veselus skaitļus.
EXPAtgriež e uz dotā skaitļa jaudu.
StāvsAtgriež tuvāko veselo skaitli (vesels skaitlis) uz leju no dotā decimālā komata.
LIELĀKĀAtgriež lielāko vērtību argumentu sarakstā.
VismazākAtgriež mazāko vērtību argumentu sarakstā.
LNAtgriež dotā skaitļa dabisko logaritmu
LOGAtgriež dotā skaitļa dabisko logaritmu vai dotā skaitļa logaritmu dotajā bāzē
LOG10Vai tāpat kā LOG, bet bāzēties uz 10.
LOG2Vai tas pats, kas LOG, bet uz 2. bāzi.
MaksAtgriež augstāko vērtību no vērtību kopas.
MINAtgriež zemāko vērtību no vērtību kopas.
MODAtgriež dotā numura atlikušo daļu, dalītu ar otru doto numuru.
PIAtgriež PI.
POWAtgriež dotā skaitļa vērtību, kas paaugstināta līdz otra dotā skaitļa jaudai.
SPĒKĀTas pats, kas POW.
RADIĀNIGrādu grādu konvertē uz radiāniem.
RANDAtgriež izlases numuru.
RAUNDSNoapaļojiet doto skaitli līdz norādītajam zīmei aiz komata.
PARAKSTSAtgriež dotā numura zīmi.
SINAtgriež norādītā skaitļa sinusu.
SQRTAtgriež dotā skaitļa kvadrātsakni.
SUMAtgriež dotās vērtību kopas vērtību kopā.
TANAtgriež norādītā skaitļa pieskari.
TRUNCATEAtgriež skaitli, kas saīsināts līdz dotajam decimālzīmju skaitam.

Datuma funkcijas

Datuma funkcijas
VārdsApraksts
PIEVIENOTPievienojiet datuma intervālu (piemēram: 10 DIENA) datumam (piemēram, 20/01/20) un atgrieziet rezultātu (piemēram: 20/01/30).
PAPILDINĀJUMSPievienojiet laika intervālu (piemēram, 02:00) laikam vai dienas laikam (05:00) un atgrieziet rezultātu (07:00).
CURDATEIegūstiet pašreizējo datumu.
ŠODIENAS DATUMSTas pats, kas CURDATE.
PAŠREIZĒJAIS LAIKSIegūstiet pašreizējo laiku.
CURRENT_TIMESTAMPIegūstiet pašreizējo datumu un laiku.
LAIKSTas pats, kas CURRENT_TIME.
DATUMSIzņem datumu no dienas izteiksmes.
DATEDIFFAtgriež dienu skaitu starp diviem norādītajiem datumiem.
DATE_ADDTāds pats kā ADDDATE.
DATUMA FORMĀTSFormatē datumu atbilstoši dotajam paraugam.
DATE_SUBAtņemiet datuma intervālu (piemēram: 10 DIENA) no datuma (piemēram: 20/01/20) un atgrieziet rezultātu (piemēram: 20/01/10).
DIENAAtgriež dienu par norādīto datumu.
DIENVADSAtgriež norādītā datuma nedēļas dienas nosaukumu.
DAYOFWEEKAtgriež nedēļas datuma indeksu dotajam datumam.
DAYOFYEARAtgriež gada dienu par norādīto datumu.
EKSTRAKTSIzraksts no norādītās daļas datuma (piemēram, MĒNESIS 20/01/20 = 01).
NO DIENĀMAtgrieziet datumu no dotās skaitliskās vērtības.
STUNDAAtgrieziet stundu no norādītā datuma.
PĒDĒJĀ DIENAIegūstiet norādītā datuma mēneša pēdējo dienu.
VIETĒJAIS LAIKSTiek iegūts pašreizējais vietējais datums un laiks.
LOCALTIMESTAMPTas pats, kas LOCALTIME.
MAKEDATEIzveido datumu un atdod to, pamatojoties uz dotā gada un dienu skaita vērtībām.
MAKETIMEIzveido laiku un atgriež to, pamatojoties uz doto stundu, minūti un otro vērtību.
MIKROSEKONDSAtgriež noteiktā laika vai dienas laika mikrosekundi.
MINUTEAtgriež noteiktā laika vai dienas laika minūti.
MēnesisAtgriež norādītā datuma mēnesi.
MONTHNAMEAtgriež norādītā datuma mēneša nosaukumu.
TAGADTas pats, kas LOCALTIME.
PERIOD_ADDDotajam periodam pievieno norādīto mēnešu skaitu.
PERIOD_DIFFAtgriež starpību starp diviem dotajiem periodiem.
CeturksnisAtgriež gada ceturksni par norādīto datumu.
OTRĀAtgriež noteiktā laika vai dienas laika otro.
SEC_TO_TIMEAtgriež laiku, pamatojoties uz dotajām sekundēm.
STR_TO_DATEIzveido datumu un atgriež to, pamatojoties uz doto virkni un formātu.
SUBDATETāds pats kā DATE_SUB.
SUBTIMEAtņem laika intervālu (piemēram: 02:00) uz laiku vai dienas laiku (05:00) un atdod rezultātu (03:00).
SYSDATETas pats, kas LOCALTIME.
LAIKSAtgriež laiku no noteiktā laika vai dienas laika.
TIME_FORMATAtgriež norādīto laiku dotajā formātā.
TIME_TO_SECLaiks tiek konvertēts un atgriezts sekundēs.
TIMEDIFFAtgriež starpību starp 2 dotajiem laika / dienas laika izteiksmēm.
TIMESTAMPAtgriež noteiktā datuma vai dienas laika datuma vērtību.
TO_DAYSTiek parādīts kopējais dienu skaits, kas pagājis no “00–000000” līdz noteiktajam datumam.
NEDĒĻAAtgriež nedēļas numuru norādītajam datumam.
NEDĒĻAS DIENAAtgriež norādītā datuma nedēļas dienas numuru.
WEEKOFYEARAtgriež nedēļas numuru norādītajam datumam.
GADSAtgriež gadu no norādītā datuma.
YEARWEEKAtgriež attiecīgā datuma gada un nedēļas numuru.

Dažādas funkcijas

Dažādas funkcijas
VārdsApraksts
BINAtgriež norādīto skaitli binārā veidā.
BINĀRSAtgriež norādīto vērtību kā bināru virkni.
CASTPārvērtiet vienu veidu citā.
KOALESCENo vērtību saraksta atgrieziet pirmo vērtību, kas nav nulles vērtība.
CONNECTION_IDPašreizējam savienojumam atgrieziet unikālo savienojuma ID.
CONVKonvertējiet doto skaitli no vienas ciparu bāzes sistēmas uz citu.
KONVERTĒKonvertējiet doto vērtību dotajā datu tipā vai rakstzīmju komplektā.
PAŠREIZĒJAIS LIETOTĀJSAtgrieziet lietotāju un resursdatora vārdu, kas tika izmantots autentifikācijai ar serveri.
DATU BĀZEIegūstiet pašreizējās datu bāzes nosaukumu.
GRUPĒTRezultātu grupēšanai izmanto kopā ar summētajām funkcijām (COUNT, MAX, MIN, SUM, AVG).

Piemērs: Norāda lietotāju skaitu ar aktīviem pasūtījumiem.

SELECT COUNT (user_id), active_orders
NO lietotājiem
GROUP BY aktīvie pasūtījumi;
KAS IRTo izmanto WHERE vietā ar apkopotām funkcijām.

Piemērs: Norāda to lietotāju skaitu, kuriem ir aktīvi pasūtījumi, bet iekļauj tikai tos lietotājus, kuriem ir vairāk nekā 3 aktīvi pasūtījumi.

SELECT COUNT (user_id), active_orders
NO lietotājiem
GROUP BY aktīvie pasūtījumi
IR SKAITIS (user_id)> 3;
JAJa nosacījums ir patiess, atgrieziet vērtību, pretējā gadījumā atgrieziet citu vērtību.
IFNULLJa dotā izteiksme ir vienāda ar nulli, atgrieziet doto vērtību.
ISNULLJa izteiksme ir nulle, atgrieziet 1, pretējā gadījumā atgrieziet 0.
LAST_INSERT_IDPar pēdējo tabulā pievienoto vai atjaunināto rindu atgrieziet automātiskā pieauguma ID.
NULLIFSalīdzina 2 dotos izteicienus. Ja tie ir vienādi, tiek atgriezta NULL, pretējā gadījumā tiek atgriezta pirmā izteiksme.
SESSION_USERAtgriezt pašreizējo lietotāju un resursdatorus.
SYSTEM_USERTas pats, kas SESSION_USER.
LIETOTĀJSTas pats, kas SESSION_USER.
VERSIJAAtgriež pašreizējo MySQL versiju, kas nodrošina datu bāzi.

Aizstājējzīmes

SQL aizstājējzīmes ir īpašas rakstzīmes, kas tiek izmantotas ar LIKE un NE LIKE atslēgvārdiem, kas ļauj daudz efektīvāk meklēt datus ar sarežģītiem modeļiem.

Aizstājējzīmes
VārdsApraksts
%Vienāds ar nulli vai vairāk rakstzīmēm.

1. piemērs: Atrast visus lietotājus, kuru uzvārdi beidzas ar “dēls”.

SELECT * FROM lietotājiem
KUR uzvārds LIKE '% dēls';

2. piemērs: Atrodiet visus lietotājus, kas dzīvo pilsētās ar modeli “che”

SELECT * FROM lietotājiem
KUR pilsēta PATĪK '% che%';
_Vienāda ar jebkuru rakstzīmi.

Piemērs: Atrodiet visus lietotājus, kas dzīvo pilsētās, sākot ar jebkuru 3 burtiem, kam seko “chester”.

SELECT * FROM lietotājiem
KUR pilsēta PATĪK '___chester';
[charlist]Vienāds ar jebkuru rakstzīmi sarakstā.

1. piemērs: Atrodiet visus lietotājus, kuru vārdi sākas ar J, H vai M.

SELECT * FROM lietotājiem
KUR pirmais vārds LIKE '[jhm]%';

2. piemērs: Atrodiet visus lietotājus, kuru vārdi sākas ar burtiem starp A - L.

SELECT * FROM lietotājiem
KUR pirmais vārds LIKE '[a-l]%';

3. piemērs: Atrodiet visus lietotājus, kuru vārdi beidzas ar burtiem starp n.

SELECT * FROM lietotājiem
KUR pirmais vārds patīk “% [! N-s]”;

Taustiņi

Relāciju datu bāzēs pastāv primāro un svešo atslēgu jēdziens. SQL tabulās tie ir iekļauti kā ierobežojumi, ja tabulā var būt galvenā atslēga, sveša atslēga vai abas.

Primārā atslēga

Primārā atslēga ļauj unikāli identificēt katru tabulas ierakstu. Katrā tabulā var būt tikai viena galvenā atslēga, un šo ierobežojumu var piešķirt jebkurai atsevišķai vai kolonnu kombinācijai. Tomēr tas nozīmē, ka katrai vērtībai šajā (-s) kolonnā (-ās) jābūt unikālai.

Parasti tabulā galvenā atslēga ir ID kolonna, un parasti tā tiek savienota pārī ar atslēgvārdu AUTO_INCREMENT. Tas nozīmē, ka vērtība automātiski palielinās, kad tiek izveidoti jauni ieraksti.

1. piemērs (MySQL)

Izveidojiet jaunu tabulu un iestatiet primāro atslēgu uz kolonnu ID.

CREATE TABLE lietotāji (
id int NOT NULL AUTO_INCREMENT,
pirmais vārds varchar (255),
uzvārds varchar (255) NOT NULL,
adrese varchar (255),
e-pasts varchar (255),
Primārā atslēga (id)
);

2. piemērs (MySQL)

Mainiet esošo tabulu un iestatiet primāro atslēgu uz kolonnas first_name.

ALTER TABLE lietotāji
PIEVIENOT PRIMĀRĀM ATSLĒGĀM (pirmais vārds)

Sveša atslēga

Ārzemju atslēgu var lietot vienā kolonnā vai vairākās, un to izmanto, lai sasaistītu 2 tabulas relāciju datu bāzē.

Kā redzams diagrammā zemāk, tabulu, kurā ir sveša atslēga, sauc par bērna atslēgu, savukārt tabulu, kurā ir atsauces atslēga vai kandidāta atslēga, sauc par vecāku tabulu.

MySQL atslēgas

Tas būtībā nozīmē, ka kolonnu dati tiek dalīti starp 2 tabulām, jo ​​sveša atslēga arī novērš nederīgu datu ievietošanu, kas arī nav vecāku tabulā..

1. piemērs (MySQL)

Izveidojiet jaunu tabulu un pārvērsiet visas kolonnas, kas norāda ID citās tabulās, par svešām atslēgām.

CREATE TABLE pasūtījumi (
id int NAV NULL,
user_id int,
produkts_id int,
Primārā atslēga (id),
ĀRĒJĀS atslēgas (user_id) ATSAUCES lietotājiem (ID),
ĀRĒJĀS ATSLĒGAS (product_id) ATSAUCES produkti (ID)
);

2. piemērs (MySQL)

Mainiet esošo tabulu un izveidojiet svešu atslēgu.

ALTER TABLE pasūtījumi
PAPILDINĀT ĀRĒJĀS ATSLĒGAS (user_id) ATSAUCES lietotājiem (id);

Indeksi

Indeksi ir atribūti, kurus var piešķirt kolonnām, kuras bieži tiek meklētas, lai datu iegūšana būtu ātrāka un efektīvāka..

Tas nenozīmē, ka katra kolonna tomēr ir jāpārveido par indeksu, jo kolonnas ar indeksu atjaunināšana prasa vairāk laika nekā kolonna bez. Tas ir tāpēc, ka, atjaunojot indeksētās kolonnas, ir jāatjaunina arī pats indekss.

Indeksi
VārdsApraksts
Izveidot indeksuLietotāju tabulas pirmā vārda un uzvārda kolonnās izveido indeksu “idx_test”. Šajā gadījumā ir atļautas dublējamas vērtības.
CREATE INDEX idx_test
ON lietotājiem (vārds, uzvārds);
Izveidot unikālu indeksuTas pats, kas minēts iepriekš, bet nav dublējošu vērtību.

CREATE UNIQUE INDEX idx_test
ON lietotājiem (vārds, uzvārds);
Pilienu indekssNoņem indeksu.

ALTER TABLE lietotāji
DROP INDEX idx_test;

Pievienojas

SQL sistēmā JOIN klauzula tiek izmantota, lai atgrieztu rezultātu kopu, kas apvieno datus no vairākām tabulām, pamatojoties uz kopēju kolonnu, kas ir attēlota abās tabulās.

Jums ir pieejami vairāki dažādi savienojumi:-

  • Iekšējā pievienošanās (noklusējuma): Atgriež visus ierakstus, kuriem ir atbilstošas ​​vērtības abās tabulās.
  • Kreisais pievienoties: Atgriež visus ierakstus no pirmās tabulas, kā arī visus atbilstošos ierakstus no otrās tabulas.
  • Tiesības pievienoties: Atgriež visus ierakstus no otrās tabulas, kā arī visus atbilstošos ierakstus no pirmās tabulas.
  • Pilnīga pievienošanās: Atgriež visus ierakstus no abām tabulām, kad ir sakritība.

Izplatīts veids, kā vizualizēt, kā pievienojas darbam, ir šāds:

MySQL pievienojas

Šajā piemērā iekšējais savienojums tiks izmantots, lai izveidotu jaunu vienojošu skatu, apvienojot pasūtījumu tabulu un pēc tam 3 dažādas tabulas

Mēs aizstājam lietotāja_id un produkta_id ar vārda un uzvārda kolonnām lietotājam, kurš veica pasūtījumu, kā arī ar iegādātā vienuma nosaukumu.

MySQL piemēra tabula

IZVĒLĒTIES pasūtījumus.id, lietotāji.first_nosaukums, lietotāji.uzvārds, produkti.nosaukums ir kā “produkta nosaukums”
NO pasūtījumiem
INNER JOIN lietotāji vietnē Communities.ider_id = lietotāji.id
IEKŠĒJĀS APVIENOŠANĀS produkti on orders.product_id = products.id;

Tiks atgriezta rezultātu kopa, kas izskatās šādi:

MySQL piemēra tabula

Skats

Skats būtībā ir SQL rezultātu kopa, kas tiek saglabāta datu bāzē ar etiķeti, lai jūs varētu atgriezties pie tā vēlāk, bez atkārtota vaicājuma. Tie ir īpaši noderīgi, ja jums ir dārgs SQL vaicājums, kas var būt vajadzīgs vairākas reizes, tāpēc tā vietā, lai palaistu to atkal un atkal, lai ģenerētu to pašu rezultātu kopu, varat to izdarīt tikai vienu reizi un saglabāt kā skatu..

Skatu izveidošana

Lai izveidotu skatu, varat rīkoties šādi:

CREATE VIEW prioritāro lietotāju AS
SELECT * FROM lietotājiem
KUR valsts = 'Apvienotā Karaliste';

Tad nākotnē, ja jums vajadzēs piekļūt saglabātajam rezultātu kopumam, varat rīkoties šādi:

SELECT * FROM [prioritātes_lietotāji];

Skatu aizstāšana

Izmantojot komandu CREATE OR REPLACE, skatu var atjaunināt.

Izveidot vai aizstāt skatu [prioritātes_lietotāji] AS
SELECT * FROM lietotājiem
KUR valsts = 'Apvienotā Karaliste' VAI valsts = 'ASV';

Skatu dzēšana

Lai izdzēstu skatu, vienkārši izmantojiet komandu DROP VIEW.

DROP VIEW prioritātes_lietotāji;

Secinājums

Lielākā daļa mūsdienu tīmekļa vietņu kaut kādā veidā izmanto relāciju datu bāzes. Tas padara SQL par vērtīgu valodu, kas jāzina, jo tas ļauj jums izveidot sarežģītākas, funkcionālākas vietnes un sistēmas.

Pārliecinieties, vai šī lapa ir pievienota grāmatzīmēm, tāpēc nākotnē, ja strādājat ar SQL un nevarat precīzi atcerēties konkrētu operatoru, kā uzrakstīt noteiktu vaicājumu vai ja jums ir tikai mulsinājums par to, kā pievienošanās darbojas, tad jums būs krāpšanās lapa uz rokas, kas ir gatava, vēlas un spējīga palīdzēt.

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