[Powered by Google Translate] [SQL] [CHRISTOPHER Bartolomej] [Sveučilištu Harvard] [OVO JE CS50] [CS50 TV] Dakle, programeri koriste baze podataka kao alat za pohranu i organizirati naši uporni podataka unutar tablice. To znači da se vaši podaci pohranjeni na non-volatile medijani kao što su tvrdi disk, pa čak i kada je računalo isključeno, podaci se još uvijek netaknut. I, kao programera, naši programi koriste baze podataka za scenarije kao što su spremanje Korisnik informacija s web obrascima, gleda gore inventara, ili ažuriranje informacije o tome što stranice prikazati. No, kako smo zapravo u interakciji s naše baze podataka, ili ono što mi koristiti za čitanje, spremanje, brisanje, i ažurirati naše podatke u tim tablicama baze podataka? Pa, odgovor je da ćemo koristiti poseban tip baze jeziku koja komunicira izravno s našim tablicama baze podataka. To ime je strukturirani upitni jezik, [Structured Query Language] ili ono što mislim da kao SQL. Sada, [Se-Quel], ili SQL, nije programski jezik, ali umjesto toga, to je jezik koji pruža standardni set naredbi dohvaćanje i manipulirati podacima iz različitih baza podataka sustava upravljanja. Za potrebe CS50, mi ćemo ići preko četiri osnovne naredbe: odaberite, umetanje, ažuriranje i brisanje. Nadalje, mi ćemo koristiti sučelje baze podataka pod nazivom phpMyAdmin web, koji instalirani na uređaju za pisanje naše SQL izjave. Dakle, kako bi vam pomoći da zapamtite ove naredbe, Donio sam neke kolače u ormar kako bi se pomoglo s našim scenarijima. Recimo da imate cupcake je baza podataka, gdje ćete pohraniti sve informacije o vašem cupcakes. Sada, baze podataka može sadržavati mnogo stolova i stolovi sami mogu sadržavati mnoge stupce. Unutar našeg Cupcake baze podataka, imamo tablicu pod nazivom cupcake_cupboard. Ovaj stol će se koristiti za pohranu sve informacije o cupcakes koji su, dobro, u svom ormaru. Stupovi koji su unutar vašeg tablici predstavljaju atribute cupcake. Na primjer, cupcake_cupboard je stupci Torta ID, CakeType, CakeColor i CakeIsNice. Ovo boolean-upisali stupac se koristi kako bi se utvrdilo je li kolač je lijepo ili nije lijepo. Mi ćemo početi s pisanjem odaberite izjavu. Odaberite izvještaji služe za dohvaćanje podataka o određenoj tablici baze podataka. U ovom scenariju, želimo znati sve o svim cupcakes koji postoje u našem ormaru. Sintaksa za to je "Select" prostor zvijezda, ili *, prostor iz svemira naš stol, što je cupcake_cupboard. Idemo naprijed i izvršiti to. Kao što možemo vidjeti, to su sve cupcakes u našem ormaru. Važno je napomenuti da se *, ili zvjezdicu, je džoker znakova koji označava okupljanje svih stupaca neke tablice. Normalno, možemo pristupiti određeni stupac ili stupce zamjenom * sa stvarnim ime stupca. Ako želimo više stupaca, ali ne i sve, možemo postići prema pisanju nazive stupaca razgraničavanja svaki stupac zarezom. Na primjer, neka je samo dohvatiti CakeId i CakeType u cupcake_cupboard tablici. Sintaksa za to je: SELECT prostor CakeID zarezom CakeType prostor od našeg stola, cupcake_cupboard. Idemo naprijed i izvršiti to. I ovdje, sada imaju samo dvije kolone smo naveli za svaki cupcake u našem ormaru. Mi također može poboljšati naše rezultate upita određivanjem "Gdje" klauzulu neposredno nakon naziva tablice. Na primjer, čini se da cupcake u našem ormaru da je, dobro, ne tako lijepo izgleda. Ajmo shvatiti sve kolače u našem ormariću koji su, dobro, ne tako lijepo izgleda pomoću "Gdje" klauzulu. Sintaksa za to je: SELECT * prostor prostor iz svemira cupcake_cupboard Prostor gdje je prostor naše uvjetno stupac, u ovom slučaju CakeIsNice =, i boolean vrijednost False. Važno je napomenuti da ako koristite žice, morate stavite ga u jednostrukim navodnicima. To vrijedi za sve žice u SQL, ili, u SQL bazi podataka smislu, varijanta znakova poznat kao varchar datatype. U ovom slučaju, mi smo pomoću True ili False, što je boolean vrijednost, a ne niz. Idemo naprijed i izvršiti ovu naredbu. Evo i gle, to je slučaj da imamo jednog čokoladu Ne tako lijepo cupcake u našem ormaru. Dalje, idemo napisati umetanje izjavu. Umetni izvještaji se koriste za umetanje ili dodati dodatni redovi podataka u bazu podataka tablice. Preispitivanje naš scenarij, pretpostavimo da smo upravo napravili novi cupcake. Budući da smo vrlo organizirana Cupcake eaters, mi smo idući u morati umetnuti ovaj novi cupcake u našoj cupcake_cupboard tablici. Sintaksa za to je ovo: Umetnite prostor u svemir naš stol, cupcake_cupboard, prostor (, i ovdje smo naveli kolumne imena, omeđena zarez, CakeType zarez CakeColor zarez CakeIsNice) prostor. Nakon toga, pišemo prostor riječi vrijednosti (i ovdje ulazimo vrijednost za svaki stupac, odnosno, također omeđena zarez. Jedan citat, jer su svi VARCHAR vrijednosti ćemo ih okružuju u jednostruke navodnike, Maslac od kikirikija 'Zarez' svjetlo smeđe 'zarez Istina. Sada, važno je da svaki redak jedinstveni broj za identifikaciju sebe. Autoincrementing stupac daje ovo kao  "Ne postoje dvije iste ID ikad može postojati u ovoj tablici." Idemo naprijed i izvršiti. Tu idemo, sve organizirano. Sljedeći SQL da ćemo upisati ažuriranje podataka. Ažuriranje podataka se može koristiti za modificiranje podataka u stupcu za bilo koji postojeći red u svojoj bazi podataka tablice. Ranije u našem scenariju, koristite odaberite izjavu, identificirali smo cupcake unutar našeg cupcake_cupboard stolu čija je vrijednost bila CakeIsNice Netočno. Pretpostavimo da je, dok je naša kikiriki maslac cupcake je u pećnici, smo napravili naš ne-tako-lijepa cupcake jako lijepo. Budući da je tako iznimno organizirana, želimo naš cupcake bi odražavala ovu vrijednost u našoj cupcake_cupboard tablici. Stoga, neka je ažurirati naš čokolade cupcake u bazi podataka, da bi odražavala to. Sintaksa je: UPDATE prostor naš stol, cupcake_cupboard, prostor SET prostor stupac koji želimo promijeniti, CakeIsNice =. Onda ovdje stavimo našu novu vrijednost True prostor. Sada, jer ne želimo da ažuriraju sve retke s tom vrijednosti, želimo pružiti "gdje" klauzulu koja će nas uoče za točan red da želimo mijenjati. U ovom slučaju, znamo da postoji samo jedan cupcake koji ima CakeIsNice vrijednost False. Nadalje, također ćemo osigurati da se mi ažuriranja ispravan red pomoću "i" klauzulu. Mi koristimo "i" klauzulu poboljšati naš upit dalje. U ovom slučaju, jer znamo da je čokolada cupcake, ćemo koristiti ovaj CakeType kolumnu. GDJE prostor naša uvjetna stupac prostor CakeIsNice prostor = False, i prostor CakeType = 'ČOKOLADA'. Dakle, stavljajući ga svi zajedno, ovo ažuriranje podataka kaže pronaći sve kolače u našem cupcake ormariću, i ako postoji cupcake čiji stupac CakeIsNice sadrži vrijednost False i CakeType sadrži vrijednost čokolade, želimo ažurirati određenu redaka CakeIsNice vrijednost True. Dakle, idemo naprijed i izvršiti izjavu. I sada, mi smo organizirali. Sve to govori o cupcakes je napravio mene malo gladan. Mislim da bi trebao pomoći sebi na jedan. Ali, ako sam zapravo jesti ovu cupcake, ja bi trebao barem također ukloniti svoje postojanje  iz naše cupcake_cupboard tablici. Da biste to učinili, mi ćemo koristiti "Delete" izjavu. "Delete" izjava se može koristiti za uklanjanje svih ili nekih redaka iz tablice. Ako želite ukloniti neke specifične redak iz tablice, onda morate dati "gdje" klauzulu, čime se određuje stupac koji bi trebao biti jedinstven u nizu koji želite ukloniti. Ovo je sintaksa: DELETE prostor iz svemira naš stol, cupcake_cupboard, prostor. Sada, u ovom trenutku, kad god su ovako daleko u svom priopćenju za brisanje Želite li biti vrlo oprezni. Na primjer, ako želim pokrenuti ovaj upit što je bez pružanja neke "gdje" klauzulu Ja bih izgubiti sve podatke u ovoj tablici cupcake_cupboard, ali zato ja već znam da mi torta iskaznice su jedinstveni, ja ću koristiti Red Velvet torta ID za moje "gdje" klauzulu. GDJE prostor naš stup, CakeID = 1. Budući da je ovo cjelobrojna vrijednost nema potrebe da ga okružuju u jednostrukim navodnicima. Dakle, neka je izvršiti izjavu. Pa, sad kad smo izbrisala postojanje ovog cupcake iz naše cupcake_cupboard tablici, imamo samo jednu stvar lijevo: Učinite to nestati. Ja sam Christopher Bartula. Ovo je CS50.