"Capcane" de comenzi DML Actualizați MySQL
Fiecare programator care a trebuit să lucreze cu baze de date cu care se confruntă operatorii DML (per. cu engleza. -
conținut
Acești operatori își indică în mod logic scopul - selectarea înregistrărilor, introducerea de noi valori, actualizarea datelor existente, completă sau conform condițiilor specificate, ștergerea informațiilor din baza de date. Predarea materialelor teoretice descrie în detaliu principiul de lucru al fiecărei echipe și sintaxa lor, dar nu se menționează dificultățile care pot apărea în practică în timpul utilizării. Acest material va fi dedicat examinării unora dintre ele.
Pe scurt despre operatorii DML (Insert)
Înainte de a continua, este necesar să reamintim din nou în detaliu scopul fiecărei funcții. Vom fi mai interesați de doi operatori: InserareșiActualizare, deoarece din acestea principalele dificultăți apar atunci când se prelucrează cantități mari de date.
Începeți cu comanda Inserare, și apoi treci ușor la Actualizare. MySQL Sistemul, ca orice alt DBMS modern, utilizează operația Inserare pentru a adăuga intrări noi în tabele existente baze de date. Sintaxa acestei operațiuni este foarte simplă și simplă. Acesta conține o enumerare a câmpurilor în care vor fi introduse valorile, destinația - numele tabelului - și lista de intrări direct. La fiecare executarea comenzii Inserare Baza de date va fi actualizată cu valori noi.
Actualizați operatorul
În practică, totuși, apar situații care, pentru un set de date, trebuie actualizate una sau mai multe valori de atribute. De exemplu, putem menționa situația în care întreprinderea a suferit o reformă cu redenumirea ulterioară a principalelor departamente. În acest caz, este necesar să se facă schimbări pentru fiecare departament. Dacă se modifică numai numele, atunci problema este rezolvată foarte repede. Dar dacă se modifică codificarea fiecărei componente a întregii producții, care, de regulă, servește drept cheie primară, aceasta implică, la rândul său, schimbări în informație și pentru fiecare angajat.
Pentru a rezolva problema în cauză, poate fi aplicată Operatorul DML - Actualizare. MySQL-server, care operează cu un număr mare de înregistrări, cu ajutorul unui operator de actualizare, execută interogarea necesară și rezolvă problema. Dar, uneori, în timpul actualizării, nu sunt dificil de înțeles și dificil de explicat. Este vorba despre complexitatea actualizării înregistrărilor care vor fi discutate mai târziu.
Despre ce se spune puțin în teoria illu-
Comanda Actualizare, după cum sa menționat mai sus, este utilizată pentru a actualiza înregistrările existente în tabel. Dar, în practică, clienții care accesează serverele de baze de date nu sunt întotdeauna cunoscuți, există un anumit set de date în tabele sau nu. Verificarea preliminară a disponibilității datelor în baza de date pentru actualizările ulterioare duce la costuri de timp și la utilizarea risipă a capacităților serverului.
Pentru a preveni acest lucru, DBMS are un design special MySQL - Introduceți * Actualizare, în care inserarea sau actualizarea poate fi efectuată independent una de cealaltă. Adică, atunci când există o intrare pentru o anumită condiție în tabel, va apărea o actualizare. Dacă datele despre condiția în cauză nu sunt găsite, serverul MySQL va putea să efectueze solicitarea de adăugare de date.
Actualizați datele dacă există duplicate
O componentă importantă a acestui lucru Inserare-interogare în sistemul de gestionare a bazelor de date MySQL - "Despre actualizarea cheii duplicate" console. Sintaxa completă a interogării este după cum urmează: "introduceți în valori test_table (employer_id, name) (1, `Abramov`) la actualizarea duplicat cheie last_modified = NOW () -“.
O astfel de solicitare poate fi utilizată pentru a înregistra acțiunile angajaților, de exemplu, determinarea timpului de trecere al unei întreprinderi trecute, cu calculul ulterior al perioadei de rupere și identificarea întârzierilor. Pentru a nu introduce mai multe înregistrări în tabel, este suficient ca fiecare angajat să țină înregistrări cu o actualizare permanentă. Este designul verificării duplicatului care vă permite să faceți acest lucru.
De fapt, despre problemele helip-
Având în vedere exemplul de mai sus de înregistrare a acțiunilor angajaților la punctul de control, utilizarea autogenerării (auto_creștere), care sunt de obicei folosite pentru a umple valorile cheilor primare (primar_cheie). Când utilizați comanda Actualizare MySQL în construcția cu Inserareauto_creștere, câmpurile sunt în continuă creștere.
În mod similar, totul se întâmplă atunci când se utilizează designul de înlocuire, în cazul detectării duplicatelor. Valoarea "Autoincrementală" crește chiar și atunci când nu este necesară. Din acest motiv, există probleme cu valori lipsă sau depășire a intervalului, ceea ce duce ulterior la perturbarea performanței sistemelor de gestionare a bazelor de date.
Cea mai mare probabilitate de apariție a unei probleme
Problema ar trebui luată în considerare web-dezvoltatori, deoarece acestea sunt cele mai frecvente în sistemele multi-utilizator (site-uri internet, portaluri etc.), când se efectuează un număr mare de proceduri în sistem Inserareși Actualizați MySQL.
PHP-apelurile către baza de date sunt foarte des efectuate. Prin urmare, realizarea valorii maxime pe câmpuri definite ca auto_increment, apare rapid, iar atunci când se analizează dificultățile întâmpinate, este imposibil să se stabilească motivele imediat.
Prin urmare, dezvoltatorii sunt sfătuiți să abordeze cu atenție utilizarea structurii pe cheia duplicat în echipă actualizare mysql. selectați - interogările la accesarea serverului de baze de date vor funcționa fără erori, dar adăugarea de noi înregistrări în baza de date este plină de situații neplăcute, ceea ce duce ulterior la probleme serioase. Ca alternativă, este recomandat ca câmpurile autoincremente să verifice inițial disponibilitatea înregistrărilor pentru ele și apoi să le actualizeze.
- MySQL este ceea ce și unde se aplică?
- Crearea unei baze de date MySQL face parte din orice site
- MySQL - ce este? Eroare MySQL
- MySQL selectați selectați: operatorul de eșantionare
- Folosind MySQL: inserați în
- MySQL - cererea în cerere. MySQL: exemple de interogări. Întrebări interogate MySQL
- MySQL - Comenzi pentru Windows Console
- Comenzi de interogare SQL
- MySQL JOIN: o descriere, un exemplu de utilizare a comenzii și recomandări
- Crearea pas cu pas a unui tabel SQL
- Șterge instrucțiunea Șterge MySQL
- Practica de utilizare a funcției MySQL count
- Ștergerea duplicatelor MySQL
- Cum se creează o bază de date mysql
- Cum se utilizează în MySQL: timestamp și datetime
- Accesați rezultatele probelor prin intermediul matricei de preluare MySQL
- Gruparea înregistrărilor MySQL: grup de
- Selectați înregistrări unice în interogarea MySQL: selectați distinct
- Administrarea MySQL: cum să creați un utilizator și să-i stabiliți drepturile
- Replicarea MySQL. Excursie scurtă
- Tipuri de date de bază Mysql