[Powered by Google Translate] [SQL] [CHRISTOPHER Bartolomeu] [Universitatea Harvard] [Acesta este CS50] [CS50 TV] Deci, programatorii folosesc baze de date ca un instrument pentru a stoca și organiza datele noastre persistente în tabele. Acest lucru înseamnă că datele sunt stocate pe non-volatile, cum ar fi mediane un hard-disk, și chiar și atunci când calculatorul este oprit, datele sunt încă intacte. Și, ca programatori, programele noastre de a utiliza baze de date pentru scenarii, cum ar fi stocarea informațiilor de utilizator de la formularele de pe web, uita în sus inventar, sau actualizarea informațiilor despre ceea ce site-uri de afișare. Dar cum putem interactiona efectiv cu baza noastră de date, sau ceea ce ne folosesc pentru a citi, stoca, șterge, și să actualizeze datele noastre în aceste tabele de bază de date? Ei bine, răspunsul este că noi folosim un tip special de limbaj de baze de date care interacționează direct cu tabele de baza noastră de date. Numele lui este structurată Query Language, [Structured Query Language] sau ce mă refer în continuare SQL. Acum, [Se-Quel], sau SQL, nu este un limbaj de programare, dar în schimb, este un limbaj care oferă un set standard de comenzi pentru a prelua și a manipula datele dintr-o varietate de sisteme de management de baze de date. În scopul de a CS50, vom trece peste patru comenzi de bază: selectați, insera, actualiza și șterge. În plus, vom utiliza o interfata web de baze de date numit phpMyAdmin, care a instalat pe aparat pentru a scrie declarațiile noastre SQL. Deci, pentru a ajuta să vă amintiți aceste comenzi, Am adus niște prăjiturele într-un dulap pentru a ajuta cu scenarii noastre. Să presupunem că aveți o prajitura baza de date a lui, în cazul în care se stochează toate informațiile despre prajiturele ta. Acum, baze de date pot conține multe tabele și tabelele în sine poate conține mai multe coloane. În interiorul bazei de date cupcake noastre, avem un tabel numit cupcake_cupboard. Acest tabel va fi utilizat pentru a stoca toate informațiile despre prajiturele care sunt, de asemenea, în dulap. Coloanele care sunt în interiorul tabelului reprezintă atributele o prajitura. De exemplu, coloanele cupcake_cupboard sunt ID-ul de tort, CakeType, CakeColor, și CakeIsNice. Această coloană Boolean-tastat este folosit pentru a determina dacă este tort frumos sau nu frumos. Vom începe cu scrierea o declarație de selectare. Selectați declarații sunt utilizate pentru a regăsi date dintr-un tabel de bază de date special. În acest scenariu, vrem să știm totul despre toate cupcakes că există în dulap nostru. Sintaxa de a face acest lucru este "Select" stea spațiu, sau *, spațiu de spațiu de masa noastră, care este cupcake_cupboard. Să mergem mai departe și să execute. După cum putem vedea, toate acestea sunt prăjiturile în dulap nostru. Este important să rețineți că *, sau asterisc, este un personaj wild card denotă faptul că adunarea tuturor coloanelor unor tabel. În mod normal, putem accesa o anumită coloană sau coloanele prin înlocuirea * cu numele de coloană real. Dacă vrem mai multe coloane, dar nu toate, putem realiza acest lucru scriind numele coloanelor care delimitează fiecare coloană printr-o virgulă. De exemplu, să preluați numai CakeId și CakeType în tabelul cupcake_cupboard. Sintaxa de a face acest lucru este: SELECT spațiu virgulă CakeID Spațiul CakeType din tabelul nostru, cupcake_cupboard. Să mergem mai departe și să execute acest lucru. Și aici, acum avem doar două coloane am specificat pentru fiecare cupcake în dulap nostru. Noi, de asemenea, să redefiniți rezultatele noastre de interogare prin specificarea "În cazul în care" clauza imediat după numele tabelului. De exemplu, se pare că există o prăjitură în dulap nostru care este, ei bine, nu, atât de frumos cautati. Să dau seama tot prajiturele în dulap, care sunt, ei bine, nu, atât de frumos în căutarea folosind "În cazul în care" clauza. Sintaxa de a face acest lucru este: SELECT * spatiu spatiu spatiu DIN cupcake_cupboard spațiu în care spațiul nostru coloana condiționată, în acest caz CakeIsNice =, și valoarea booleană Fals. Este important să rețineți că, dacă sunt utilizați șiruri, trebuie să-l includeți în ghilimele simple. Acest lucru este valabil pentru toate siruri de caractere în SQL, sau, în termeni de baze de date SQL, varianta de caractere cunoscut sub numele de tip de date VARCHAR. În acest caz, vom folosi Adevarat sau Fals, care este o valoare boolean, și nu un șir. Să mergem mai departe și să executați această comandă. Lo și iată, acesta este cazul în care avem o ciocolată Nu atât de frumos prăjitură în dulap nostru. În continuare, vom scrie o declarație de inserare. Situațiile Inserare sunt folosite pentru a insera sau adăuga rânduri suplimentare de date în tabel baza de date. Revizitarea scenariul nostru, să presupunem că am făcut doar o prăjitură de brand nou. Din moment ce sunt organizate foarte mancatorii de cupcake, vom avea de a insera acest Cupcake nouă în tabelul nostru cupcake_cupboard. Sintaxa de a face acest lucru este aceasta: Introduceți spațiu în spațiu masa noastră, cupcake_cupboard, spațiu (, și aici vom specifica numele coloanelor, delimitată de o virgulă, CakeType virgulă CakeColor virgula CakeIsNice) spațiu. După aceasta, vom scrie cuvântul spațiul VALORI (și aici intrăm valoare pentru fiecare coloană, respectiv, de asemenea, delimitate prin virgulă. Citat unică, deoarece acestea sunt toate valorile VARCHAR le vom înconjoară în ghilimele simple, "Virgulă" unt de arahide de culoare brun deschis "virgulă Adevarat. Acum, este important pentru a da fiecare rând un număr unic pentru a se identifica. Autoincrementing o coloană prevede acest lucru ca  "Nu există două ID-urile de aceleași poate exista vreodată în acest tabel." Să mergem mai departe și să execute. Acolo vom merge, toate organizate. Următoare instrucțiune SQL care vom scrie este o declarație de actualizare. Declarația de actualizare poate fi folosit pentru a modifica datele în cadrul unei coloane pentru orice rând existent în tabelul de baza de date. Mai devreme, în scenariul nostru, folosind o instrucțiune SELECT, am identificat o prajitura în termen de masa cupcake_cupboard noastre a cărui valoare a fost de CakeIsNice Fals. Să presupunem că în timp ce prăjitură nostru unt de arahide a fost în cuptor, ne-am facut prajitura noastră nu-așa-frumos foarte frumos. Fiind atât de excepțional organizat, vrem prăjitură, pentru a reflecta această valoare în tabelul nostru cupcake_cupboard. De aceea, haideți să actualizeze prăjitură de ciocolată noastre în baza de date pentru a reflecta acest lucru. Sintaxa este: spațiul UPDATE masa noastră, cupcake_cupboard, SET spatiu spatiu coloana pe care dorim să se schimbe, CakeIsNice =. Atunci aici ne punem spațiul nostru noua valoare Adevărat. Acum, pentru că nu vrem să actualizeze toate rândurile cu această valoare, dorim sa oferim o "În cazul în care" clauza care ne va indica la rândul exactă pe care ne-o dorim pentru a modifica. În acest caz, știm că există doar o singură Cupcake care are o valoare de CakeIsNice Fals. În plus, ne vom asigura, de asemenea, ca suntem actualizarea rândul corectă prin utilizarea "Și" clauză. Noi folosim "Și" clauză pentru a rafina interogare nostru mai departe. În acest caz, pentru că știm că cupcake este ciocolata, vom folosi această coloană CakeType. UNDE spațiul nostru condiționată coloana spațiu spațiu CakeIsNice = Fals, și spațiu CakeType = 'CHOCOLATE. " Deci, pune totul impreuna, această declarație actualizare spune găsi toate prăjiturile în dulap nostru Cupcake, și dacă există o prăjitură a cărei coloană CakeIsNice conține valoarea Fals și CakeType conține CIOCOLATA valoarea, vrem să actualizeze valoarea specifică rânduri CakeIsNice la True. Deci, hai să mergem mai departe și să execute declarația. Și acum, suntem organizat. Toate acestea vorbesc de prajiturele a făcut-mi un pic foame. Cred că ar trebui să mă ajute la unul. Dar dacă am mânca de fapt această prăjitură, ar trebui să elimine, de asemenea, cel puțin existența acestuia  de la masa noastră cupcake_cupboard. Pentru a face acest lucru, vom folosi "Delete" declarație. "Delete", declarația poate fi utilizat pentru a elimina toate sau unele rândurile din tabel. Dacă doriți să eliminați unele anumit rând din tabel, atunci trebuie să furnizeze o "În cazul în care" clauză, specificând astfel o coloană care ar trebui să fie unic la rândul pe care doriți să le eliminați. Aceasta este sintaxa: DELETE FROM spațiul spațiul nostru de masă, cupcake_cupboard, spațiu. Acum, în acest moment, ori de câte ori sunt atât de departe în declarația dumneavoastră de ștergere vrei să fii foarte atent. De exemplu, dacă vreau să rulați acest interogare cum este, fără a oferi niște "În cazul în care" clauza de Mi-ar pierde toate datele din acest tabel cupcake_cupboard, dar pentru că eu deja știu că ID-uri mele tort sunt unice, voi folosi Red Velvet tort ID-ul pentru a-mi "În cazul în care" clauză. UNDE spațiul nostru coloană, CakeID = 1. Deoarece aceasta este o valoare întreagă nu este nevoie să-l înconjoare în ghilimele simple. Deci, haideți să execute declarația. Ei bine, acum că am șters existența acestui Cupcake de la masa cupcake_cupboard nostru, avem doar un singur lucru stânga: Face să dispară. Sunt Christopher Bartolomeu. Acest lucru este CS50.