[Powered by Google Translate] [SQL] [Christopher Bartholomew] [Harvard University] [ITO AY CS50] [CS50 TV] Kaya, ang mga programmer gamitin na database bilang isang tool upang mag-imbak at ayusin ang aming mga paulit-ulit na data sa loob ng talahanayan. Nangangahulugan ito na ang iyong data ay naka-imbak sa mga di-madaling matuyo medians tulad ng isang hard drive, at kahit na ang computer ay off, ang data ay buo pa rin. At, bilang programmer, ang aming mga programa gamitin database para sa mga sitwasyon tulad ng pag-iimbak impormasyon ng user mula sa mga web form, hinahanap imbentaryo, o ina-update ang impormasyon tungkol sa kung ano ang mga site ipakita. Ngunit kung paano namin talaga makipag-ugnayan sa aming database, o ano ang gagawin naming gamitin upang basahin, mag-imbak, tanggalin, at i-update ang aming data sa loob ng mga talahanayan ng database? Well, ang sagot ay na ginagamit namin ang isang espesyal na uri ng database wika kung saan nakikipag-ugnayan nang direkta sa aming mga talahanayan sa database. Pangalan ng Structured Query sa Wika, [Structured Query sa Wika] o kung ano ang sumangguni ko sa bilang SQL. Ngayon, [Se-QueL], o SQL, ay hindi isang programming language, ngunit sa halip, ang isang wika na nagbibigay ng isang standard na hanay ng mga utos upang mabawi at manipulahin ang mga data mula sa isang iba't-ibang ng mga system ng pamamahala ng database. Para sa layunin ng CS50, ipagpapatuloy namin sa paglipas ng apat na pangunahing utos: piliin, ipasok, i-update, at tanggalin. Bukod dito, makikita namin ayusin ang isang database web interface na tinatawag na phpMyAdmin, kung saan naka-install sa ang appliance upang isulat ang aming mga SQL na pahayag. Kaya, upang makatulong sa iyo na tandaan ang mga utos, Ko na nagdala ng ilang mga cupcake sa isang paminggalan upang makatulong sa aming mga sitwasyon. Sabihin nating mayroon kang database ng cupcake, kung saan iimbak mo ang lahat ng impormasyon tungkol sa iyong cupcake. Ngayon, ang mga database ay maaaring maglaman ng maraming mga talahanayan at ng mga talahanayan ang kanilang mga sarili ay maaaring maglaman ng maraming mga haligi. Inside database ng aming cupcake, mayroon kaming isang talahanayan na tinatawag cupcake_cupboard. Ang table na ito ay ginagamit upang mag-imbak ang lahat ng impormasyon tungkol sa cupcake na, mahusay, sa iyong aparador. Ang mga hanay na ay sa loob ng iyong talahanayan ay kumakatawan sa mga katangian ng isang cupcake. Halimbawa, ang mga haligi sa cupcake_cupboard Cake ng ID, CakeType, CakeColor, at CakeIsNice. Ang boolean-type na haligi ay ginamit upang matukoy kung maganda o hindi maganda ang ang cake. Kami ay pagpunta sa magsimula sa pagsusulat ng mga piling pahayag. Piliin ang mga pahayag ay ginamit upang makuha ang mga data ng isang partikular na database talahanayan. Sa sitwasyong ito, gusto naming malaman ang lahat tungkol sa lahat ng mga cupcake na umiiral sa aming aparador. Ang syntax upang gawin ito ay espasyo "Piliin ang" star, o *, espasyo mula sa kalawakan ng aming mga talahanayan, na cupcake_cupboard. Natin sige at isakatuparan na. Tulad ng maaari naming makita, ito ay ang lahat ng mga cupcake sa aming aparador. Mahalaga na tandaan na ang *, o asterisk, isang ligaw na card na character na Nagpapahiwatig ang pagtitipon ng lahat ng mga hanay ng ilang mga talahanayan. Karaniwan, maaari naming ma-access ang isang partikular na hanay o haligi sa pamamagitan ng pagpapalit ng * na ang aktwal na pangalan ng haligi. Kung gusto namin ang maramihang mga hanay, ngunit hindi lahat, maaari naming makamit ito sa pamamagitan ng pagsusulat ang mga pangalan ng haligi delimiting bawat haligi sa pamamagitan ng isang kuwit. Halimbawa, sabihin lamang makuha ang CakeId at CakeType sa talahanayan cupcake_cupboard. Ang syntax upang gawin ito ay: Piliin ang espasyo ng kuwit CakeID CakeType espasyo mula sa aming mga talahanayan, cupcake_cupboard. Natin sige at isakatuparan ito. At dito, kami na lamang ngayon ang dalawang haligi na namin tinukoy para sa bawat cupcake sa aming aparador. Maaari din namin pinuhin ang aming mga query resulta sa pamamagitan ng pagtukoy ang "Saan" sugnay lamang pagkatapos ng pangalan ng talahanayan. Halimbawa, may lumilitaw na isang cupcake sa aming paminggalan iyon ay, well, hindi Nice hinahanap. Natin malaman ang lahat ng mga cupcake sa aming aparador na, well, hindi Nice hinahanap gamit ang "Saan" sugnay. Ang syntax upang gawin ito ay: Piliin espasyo espasyo * MULA SA espasyo cupcake_cupboard espasyo SAAN espasyo ang aming kondisyon hanay, sa kasong ito CakeIsNice =, at ang boolean na halaga ng Maling. Ito ay mahalaga na tandaan na kung ikaw ay gumagamit ng mga string, kailangan mong ilakip ito sa mga single quote. Ito ay totoo para sa lahat ng mga string sa SQL, o, sa SQL database ng mga tuntunin, variant character kilala bilang Varchar datatype. Sa kasong ito, kami ay gamit True o Maling, na kung saan ay isang boolean na halaga at hindi isang string. Natin sige at execute ang command na ito. Lo at Narito, ang kaso na mayroon kaming 1 tsokolate hindi Nice cupcake sa aming aparador. Susunod, kami ay pagpunta sa sumulat ng insert statement. Ipasok pahayag ay ginagamit upang ipasok o magdagdag karagdagang mga hilera ng data sa iyong talahanayan ng database. Revisiting aming sitwasyon, sabihin ipinapalagay na lang gumawa kami ng isang bagong tatak ng cupcake. Dahil napaka namin ay isinaayos mga eaters cupcake, kami ay pagpunta sa may upang ipasok ang bagong cupcake sa aming mga talahanayan ng cupcake_cupboard. Ang syntax upang gawin ito ay ito: Ipasok ang espasyo sa espasyo ng aming mga talahanayan, cupcake_cupboard, espasyo (, at dito namin tukuyin ang mga pangalan ng haligi, delimited ng kuwit, Ang CakeType kuwit CakeColor kuwit CakeIsNice) space. Pagsunod sa, isulat namin ang salitang halaga ng espasyo (at dito ipasok namin ang halaga para sa bawat haligi ayon sa pagkakasunud-sunod, din delimited sa pamamagitan ng isang kuwit. Single quote, dahil ang mga ito ang lahat ng mga Varchar halaga makikita palibutan namin ang mga ito sa single quote, Matingkad na kayumanggi 'comma' peanut butter 'kuwit True. Ngayon, ito ay mahalaga upang bigyan ang bawat hilera sa isang natatanging numero upang makilala ang sarili nito. Autoincrementing isang haligi ay nagbibigay ito bilang  "Walang dalawang sa parehong ID ay maaaring kailanman umiiral sa talahanayan na ito." Natin sige at execute. Doon kami, lahat ng organisadong. Ang susunod na statement sa SQL na namin magsulat ng isang update statement. Ang update pahayag ay maaaring gamitin upang baguhin ang data sa loob ng isang haligi para sa anumang umiiral na hanay sa iyong talahanayan ng database. Mas maaga sa aming sitwasyon, gamit ang isang piliin ang pahayag, nakilala namin ang isang cupcake sa loob ng talahanayan ng aming cupcake_cupboard na CakeIsNice halaga ay Maling. Ipagpalagay nating na habang ang aming peanut butter cupcake sa oven, ginawa namin ang aming hindi-kaya-magaling cupcake napakabuti. Na kaya iba isinaayos, nais namin na ang aming cupcake upang ipakita ang halaga sa aming mga talahanayan ng cupcake_cupboard. Samakatuwid, sabihin i-update ang aming tsokolate cupcake sa database upang ipakita ang. Syntax ay: i-update ang espasyo ng aming table, cupcake_cupboard, space Itakda ang espasyo ang haligi na nais naming baguhin, CakeIsNice =. Pagkatapos namin dito ilagay ang aming bagong halaga True espasyo. Ngayon, dahil hindi namin nais na i-update ang lahat ng mga hilera na may halaga na ito, gusto naming magbigay ng "Saan" sugnay na ituro sa amin sa ang eksaktong hilera na gusto naming baguhin. Sa kasong ito, alam namin na mayroon lamang isang cupcake na may ng CakeIsNice halaga ng Maling. Bukod dito, kami din masiguro na kami ay nag-a-update ng ang tamang hilera sa pamamagitan ng gamit ang "At" sugnay. Ginagamit namin ang "At" sugnay upang pinuhin ang aming query pa. Sa kasong ito, dahil alam namin na ang cupcake ang tsokolate, gagamitin namin ito CakeType haligi. SAAN na espasyo aming kondisyon haligi CakeIsNice espasyo espasyo = Maling, at espasyo CakeType = 'tsokolate.' Kaya, paglalagay ng mga ito sa lahat ng sama-sama, sabi ng pahayag ang update na ito mahanap ang lahat ng mga cupcake sa aming cupcake aparador, at kung may isang cupcake na ang haligi na naglalaman ng CakeIsNice ang halaga Maling at CakeType naglalaman ang halaga ng tsokolate, gusto naming i-update ang tiyak na mga hilera sa halaga ng CakeIsNice sa True. Kaya, sabihin sige at isagawa ang statement. At ngayon, kami ay nakaayos. Ang lahat ng ito talk ng cupcake ako ng isang bit gutom. Tingin ko dapat ko ng tulong sa aking sarili sa isa. Ngunit kung ako aktwal kumain ito cupcake, dapat ko ng hindi bababa sa ring alisin ang nito pagkakaroon  mula sa aming mga talahanayan ng cupcake_cupboard. Upang gawin ito, gagamitin namin ang "Tanggalin" na statement. Ang "Tanggalin" na statement ay maaaring gamitin upang alisin ang lahat o ilang mga hilera mula sa talahanayan. Kung nais mong alisin ang ilang mga tukoy na hanay mula sa talahanayan, at pagkatapos dapat kang magbigay ng "Saan" sugnay, kaya tumutukoy ng isang haligi na dapat na natatangi sa hilera na nais mong alisin. Ito ang syntax: ALISIN puwang MULA espasyo aming table, cupcake_cupboard, space. Ngayon, sa puntong ito, sa tuwing ikaw ay ito malayo sa iyong tanggalin pahayag Gusto mong maging maingat. Halimbawa, kung gusto kong patakbuhin ang query na hindi pagbibigay ng ilang "Saan" sugnay Gusto ko mawala ang lahat ng mga data sa table na ito ng cupcake_cupboard, ngunit dahil alam ko na na ang aking mga cake ID ay natatanging, makikita ko bang gamitin ang Red ID ng velvet cake para sa aking sugnay na "Saan". SAAN espasyo ang aming hanay, CakeID = 1. Dahil ito ay isang integer value ay hindi na kailangang palibutan ito ng single quote. Kaya, sabihin magsagawa ng pahayag. Well, ngayon na kami wiped ang pagkakaroon ng cupcake na ito mula sa aming mga talahanayan ng cupcake_cupboard, lamang namin ay may isang bagay kaliwa: Gawin itong mawala. Ako Christopher Bartholomew. Ito ay CS50.