SQL (pronunțat Seequel) înseamnă Structured Query Language. Este un puternic tastat, static (tipurile sunt verificate înainte de runtime) interogând limbajul care a apărut pentru prima dată în 1974 (woah, 46 de ani!), dar nu a fost lansat inițial până în 1986.

S-ar putea să vă gândiți singur că un astfel de instrument „vechi” are cele mai bune zile în spate, dar ați fi departe de a fi corect. În 2019, prin Grila Scale Sondaj DeveloperWeek, SQL a fost utilizat de 60,5% dintre respondenți, în timp ce NoSQL a fost utilizat de doar 39,5% dintre respondenți.

Pentru a fi clar, categoria SQL a fost împărțită în mai multe subcategorii care au inclus MySQL, PostgreSQL, SQL Server, și așa mai departe, în timp ce categoria NoSQL a fost împărțită în subcategorii care conțineau MongoDB, Cassandra, etc.

Chiar și în 2017, potrivit Stack Overflow Developer’s Survey, al doilea limbaj cel mai popular folosit a fost SQL (chiar în spatele JavaScript), 50% din cei 64.000 de respondenți spunând că folosesc în continuare SQL într-o anumită formă.

Popularitatea sa se datorează, cel puțin parțial, simplității limbajului, faptului că a fost construit având în vedere datele relaționale și pentru că sa dovedit a fi de încredere pentru căutarea, alăturarea și filtrarea datelor.

Este suficient să spunem că SQL nu este doar viu și plin de viață, ci prosperă în rândul comunității de dezvoltare de astăzi.

Acum să vedem de ce!

Piesele distractive

SQL Server este aroma preferată a SQL pe care o folosesc în activitățile mele de zi cu zi la locul de muncă, astfel încât exemplele de mai jos se vor conforma standardelor respective.

Un lucru pe care îl găsesc foarte mult este actualizarea mai multor înregistrări dintr-un tabel. Acum aș putea face o singură înregistrare la un moment dat, dar SQL ne oferă posibilitatea de a actualiza mai multe înregistrări (mii după mii, dacă este necesar) simultan prin intermediul UPDATE afirmație.

UPDATE declarația poate fi utilizată pentru a actualiza o singură coloană, un set mai mare de înregistrări (prin utilizarea condițiilor) și / sau întregul tabel dintr-o bază de date. Condiția (condițiile) poate fi o booleană, o verificare de șiruri sau o secvență matematică care se rezolvă la o valoare booleană (mai mare decât, mai mică decât etc.).

Deși poate varia ușor de la aromă la aromă, sintaxa generală este următoarea:

UPDATE table-name
SET column-name = value[, column-name=value]
[WHERE condition]

Parantezele ( [] ) de mai sus denotă adăugiri opționale la interogare.

*** Este foarte important să rețineți că fără un WHERE condiție, TOATE înregistrările din tabel vor fi actualizate imediat ce executați interogarea. ***

Exemple de interogări

Ca set de date al nostru, voi folosi acest tabel numit Bilete_de lucru:

SalesOrderNumWorkTicketNumCod de clientClient_ContactCost unitarFacturatParentLineKeyCantitate_ComandatCantitate_Expediat
000613560009311250sales@wayneindustries.com0,00Fals07977712.00
000613570009321251contact@starkindustries.com0,00Fals085695196,50
000613580009331252animation@acmetoons.com0,00Fals08556917.50

Interogare simplă fără condiții

Iată o interogare de actualizare foarte simplă care va schimba toate fișierele UnitCost câmpuri la numărul 131.6152:

UPDATE Work_Tickets
SET UnitCost = 131.6152

Rețineți că nu există WHERE , astfel încât fiecare linie din tabel va fi actualizată, iar setul nostru de date va arăta astfel:

SalesOrderNumWorkTicketNumCod de clientClient_ContactCost unitarFacturatParentLineKeyCantitate_ComandatCantitate_Expediat
000613560009311250sales@wayneindustires.com131,6152Fals07977712.00
000613570009321251contact@starkindustries.com131,6152Fals085695196,50
000613580009331252animation@acmetoons.com131,6152Fals08556917.50

Interogări simple cu condiție (condiții)

Iată o interogare simplă cu o declarație de condiție:

UPDATE Work_Tickets
SET Billed = true
WHERE UnitCost 0.00

Această interogare va actualiza fișierul Billed câmp să fie Adevărat pe fiecare linie care se potrivește cu starea UnitCost care nu este egal cu 0. După ce ne executăm interogarea, setul de date va arăta astfel:

SalesOrderNumWorkTicketNumCod de clientClient_ContactCost unitarFacturatParentLineKeyCantitate_ComandatCantitate_Expediat
000613560009311250sales@wayneindustires.com131,6152Adevărat07977712.00
000613570009321251contact@starkindustries.com131,6152Adevărat085695196,50
000613580009331252animation@acmetoons.com131,6152Adevărat08556917.50

Mai jos este o interogare în care modificăm ParentLineKey la coardă 000134 unde SalesOrderNum si WorkTicketNum ambele se potrivesc cu șirurile date.

UPDATE Work_Tickets
SET ParentLineKey = 000134
WHERE SalesOrderNum = 00061358 and WorkTicketNumber = 000933

Deci, 085569 din ParentLineKey câmpul va fi înlocuit cu 000134 iar setul nostru de date acum arată astfel:

SalesOrderNumWorkTicketNumCod de clientClient_ContactCost unitarFacturatParentLineKeyCantitate_ComandatCantitate_Expediat
000613560009311250sales@wayneindustires.com131,6152Adevărat07977712.00
000613570009321251contact@starkindustries.com131,6152Adevărat085695196,50
000613580009331252animation@acmetoons.com131,6152Adevărat00013417.50

Actualizarea câmpurilor multiple

Să presupunem că aveți un set de date mult mai mare decât cel pe care îl folosim în prezent și că aveți mai multe câmpuri de actualizat.

Ar fi plictisitor și amețitor să le actualizezi cu diferite declarații de actualizare. Din fericire pentru noi este de asemenea posibil să actualizăm mai multe câmpuri simultan cu o declarație de actualizare, atâta timp cât separăm numele coloanelor cu o virgulă:

UPDATE Work_Tickets
SET UnitCost = 129.8511, Qty_Ordered = 72, Qty_Shipped = 72
WHERE SalesOrderNum = 00061358

Și iată rezultatul cu câmpurile actualizate după rularea interogării:

SalesOrderNumWorkTicketNumCod de clientClient_ContactCost unitarFacturatParentLineKeyCantitate_ComandatCantitate_Expediat
000613560009311250sales@wayneindustires.com131,6152Adevărat07977712.00
000613570009321251contact@starkindustries.com131,6152Adevărat085695196,50
000613580009331252animation@acmetoons.com129,8511Adevărat0001347272

Utilizarea Actualizării într-o subconsultare

Exemplele de mai sus sunt perfecte dacă lucrați cu o singură sursă de date. Cu toate acestea, majoritatea datelor dvs. nu vor fi stocate într-un singur tabel. Aici se folosește ACTUALIZAȚI cu mai multe surse de date este util.

Sintaxa pentru actualizarea unei coloane / tabel se modifică puțin dacă dorim să aducem date dintr-un alt tabel:

UPDATE table-name
SET column-name = (SELECT column name(s)
FROM table2-name
WHERE condition(s))

[WHERE condition]

Iată cele două tabele pe care le vom folosi pentru această interogare – Tabelul Work_Tickets:

SalesOrderNumWorkTicketNumCod de clientClient_ContactCost unitarFacturatParentLineKeyCantitate_ComandatCantitate_Expediat
000613560009311250sales@wayneindustires.com131,6152Adevărat07977712.00
000613570009321251contact@starkindustries.com131,6152Adevărat085695196,50
000613580009331252animation@acmetoons.com129,8511Adevărat0001347272

si Tabelul Customer_Info:

NumeIndustrieCodAbordareOrașReducereNumăr de telefonE-mail
Wayne EnterprisesApărare, armament, aerospațial, tehnicNUL1631 Calea ÎntunericuluiGotham19,755556614000sales@wayneindustires.com
Stark IndustriesApărare, armament, protecție12515641 Iron DrNedezvăluit19,739993126156contact@starkindustries.com
Acme CorpComedie, râs, animație125224569 Zâmbitor St.Toon Town17.533216549877animation@acmetoons.com

UPDATE declarație cu a subinterogare arata asa:

UPDATE Customer_Info
SET Code = (SELECT Customer_Code
FROM Work_Tickets
WHERE Work_Tickets.Customer_Contact = Customer_Info.Email)
FROM Work_Tickets
WHERE Code IS NULL

Acest exemplu va actualiza fișierul Cod câmp pe Informații_client tabel în care adresa de e-mail se potrivește din ambele tabele. Și asta este ceea ce noi Informații_client masa arată acum:

NumeIndustrieCodAbordareOrașReducereNumăr de telefonE-mail
Wayne EnterprisesApărare, armament, aerospațial, tehnic12501631 Dark Knight WayGotham19,755556614000sales@wayneindustires.com
Stark IndustriesApărare, armament, protecție12515641 DrNedezvăluit19,739993126156contact@starkindustries.com
Acme CorpComedie, râsete, animație125224569 Zâmbitor St.Toon Town17.533216549877animation@acmetoons.com

Înfășurându-se

Sper că acest articol v-a fost de ajutor pentru a înțelege modul în care ACTUALIZAȚI declarația funcționează în SQL.

Acum sunteți gata să scrieți propriul dvs. SQL ACTUALIZAȚI declarații ca un campion! După ce o veți face, mi-ar plăcea să mi le împărtășiți pe rețelele sociale!

Nu uitați să-l verificați pe al meu blog unde postez frecvent articole despre dezvoltarea web.

În timp ce sunteți acolo, de ce nu vă înscrieți la newsletter-ul meu? Puteți face acest lucru în partea dreaptă sus a paginii principale a blogului. Îmi place să trimit din când în când articole interesante (ale mele și altele), resurse și instrumente pentru dezvoltatori.

Dacă aveți întrebări despre acest articol sau, în general, DM-urile mele sunt deschise – veniți să salutați Stare de nervozitate sau oricare dintre celelalte conturi de pe rețelele mele sociale pe care le puteți găsi sub buletinul informativ înscrieți-vă pe pagina principală a blogului meu sau pe profilul meu aici la fCC 🙂

Ai o zi minunată și o codificare fericită, prietene!