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!
Conţinut
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:
SalesOrderNum | WorkTicketNum | Cod de client | Client_Contact | Cost unitar | Facturat | ParentLineKey | Cantitate_Comandat | Cantitate_Expediat |
00061356 | 000931 | 1250 | sales@wayneindustries.com | 0,00 | Fals | 079777 | 12.0 | 0 |
00061357 | 000932 | 1251 | contact@starkindustries.com | 0,00 | Fals | 085695 | 196,5 | 0 |
00061358 | 000933 | 1252 | animation@acmetoons.com | 0,00 | Fals | 085569 | 17.5 | 0 |
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:
SalesOrderNum | WorkTicketNum | Cod de client | Client_Contact | Cost unitar | Facturat | ParentLineKey | Cantitate_Comandat | Cantitate_Expediat |
00061356 | 000931 | 1250 | sales@wayneindustires.com | 131,6152 | Fals | 079777 | 12.0 | 0 |
00061357 | 000932 | 1251 | contact@starkindustries.com | 131,6152 | Fals | 085695 | 196,5 | 0 |
00061358 | 000933 | 1252 | animation@acmetoons.com | 131,6152 | Fals | 085569 | 17.5 | 0 |
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:
SalesOrderNum | WorkTicketNum | Cod de client | Client_Contact | Cost unitar | Facturat | ParentLineKey | Cantitate_Comandat | Cantitate_Expediat |
00061356 | 000931 | 1250 | sales@wayneindustires.com | 131,6152 | Adevărat | 079777 | 12.0 | 0 |
00061357 | 000932 | 1251 | contact@starkindustries.com | 131,6152 | Adevărat | 085695 | 196,5 | 0 |
00061358 | 000933 | 1252 | animation@acmetoons.com | 131,6152 | Adevărat | 085569 | 17.5 | 0 |
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:
SalesOrderNum | WorkTicketNum | Cod de client | Client_Contact | Cost unitar | Facturat | ParentLineKey | Cantitate_Comandat | Cantitate_Expediat |
00061356 | 000931 | 1250 | sales@wayneindustires.com | 131,6152 | Adevărat | 079777 | 12.0 | 0 |
00061357 | 000932 | 1251 | contact@starkindustries.com | 131,6152 | Adevărat | 085695 | 196,5 | 0 |
00061358 | 000933 | 1252 | animation@acmetoons.com | 131,6152 | Adevărat | 000134 | 17.5 | 0 |
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:
SalesOrderNum | WorkTicketNum | Cod de client | Client_Contact | Cost unitar | Facturat | ParentLineKey | Cantitate_Comandat | Cantitate_Expediat |
00061356 | 000931 | 1250 | sales@wayneindustires.com | 131,6152 | Adevărat | 079777 | 12.0 | 0 |
00061357 | 000932 | 1251 | contact@starkindustries.com | 131,6152 | Adevărat | 085695 | 196,5 | 0 |
00061358 | 000933 | 1252 | animation@acmetoons.com | 129,8511 | Adevărat | 000134 | 72 | 72 |
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:
SalesOrderNum | WorkTicketNum | Cod de client | Client_Contact | Cost unitar | Facturat | ParentLineKey | Cantitate_Comandat | Cantitate_Expediat |
00061356 | 000931 | 1250 | sales@wayneindustires.com | 131,6152 | Adevărat | 079777 | 12.0 | 0 |
00061357 | 000932 | 1251 | contact@starkindustries.com | 131,6152 | Adevărat | 085695 | 196,5 | 0 |
00061358 | 000933 | 1252 | animation@acmetoons.com | 129,8511 | Adevărat | 000134 | 72 | 72 |
si Tabelul Customer_Info:
Nume | Industrie | Cod | Abordare | Oraș | Reducere | Număr de telefon | |
Wayne Enterprises | Apărare, armament, aerospațial, tehnic | NUL | 1631 Calea Întunericului | Gotham | 19,75 | 5556614000 | sales@wayneindustires.com |
Stark Industries | Apărare, armament, protecție | 1251 | 5641 Iron Dr | Nedezvăluit | 19,73 | 9993126156 | contact@starkindustries.com |
Acme Corp | Comedie, râs, animație | 1252 | 24569 Zâmbitor St. | Toon Town | 17.53 | 3216549877 | animation@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:
Nume | Industrie | Cod | Abordare | Oraș | Reducere | Număr de telefon | |
Wayne Enterprises | Apărare, armament, aerospațial, tehnic | 1250 | 1631 Dark Knight Way | Gotham | 19,75 | 5556614000 | sales@wayneindustires.com |
Stark Industries | Apărare, armament, protecție | 1251 | 5641 Dr | Nedezvăluit | 19,73 | 9993126156 | contact@starkindustries.com |
Acme Corp | Comedie, râsete, animație | 1252 | 24569 Zâmbitor St. | Toon Town | 17.53 | 3216549877 | animation@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!
#Instrucțiune #actualizare #SQL #Exemple #interogări #pentru #actualizarea #valorilor #tabelelor
Instrucțiune de actualizare SQL – Exemple de interogări pentru actualizarea valorilor tabelelor