[Powered by Google Translate] [SQL] [Christopher BARTHOLOMEW] [HARVARD UNIVERSITY] [KJO ËSHTË CS50] [CS50 TV] Pra, programuesit përdorin bazat e të dhënave, si një mjet për të ruajtur dhe të organizojë të dhënat tona të vazhdueshme brenda tavolina. Kjo do të thotë se të dhënat e juaj është ruajtur në jo-paqëndrueshme medians të tilla si një hard drive, dhe madje edhe kur kompjuteri është jashtë, të dhënat është ende i paprekur. Dhe, si programuesit, programet tona të shfrytëzojë të dhënave për skenarë të tilla si ruajtjen Informacioni përdoruesit nga format web, duke kërkuar deri inventarit, ose përditësimin e informacionit në lidhje me atë që faqet të shfaqin. Por si nuk kemi në fakt ndërveprojnë me database tonë, apo çfarë ne përdorim për të lexuar, dyqan, fshini, dhe përditësimin e të dhënave tona në kuadër të këtyre tabelave bazës së të dhënave? Well, përgjigja është që ne përdorim një lloj të veçantë të gjuhës bazës së të dhënave e cila bashkëvepron direkt me tavolina bazës së të dhënave tona. Është emri është strukturuar Query Language, [Strukturuar Query Language] apo atë që unë i referohen si SQL. Tani, [Se-Quel], apo SQL, nuk është një gjuhë programimi, por në vend të kësaj, ajo është një gjuhë që ofron një sërë standarde e komandave për të tërhequr dhe të manipuluar të dhënat nga një shumëllojshmëri e sistemeve të menaxhimit të bazës së të dhënave. Për qëllimin e CS50, ne do të shkojnë mbi katër komandat themelore: zgjedhur, insert, update, dhe fshini. Për më tepër, ne do të shfrytëzojë një ndërfaqe web bazës së të dhënave të quajtur phpMyAdmin, cilat instaluar në aplikim për të shkruar deklaratat tona SQL. Pra, për të ndihmuar ju kujtohet këto komanda, Unë kam sjellë disa cupcakes në një dollap rrobash për të ndihmuar me skenare tona. Thonë se ju keni një bazë të dhënash Cupcake-së, ku keni ruajtur të gjitha informatat në lidhje me cupcakes tuaj. Tani, bazat e të dhënave mund të përmbajnë tabela shumë dhe tabelat vetë mund të përmbajnë kolona të shumta. Brenda database Cupcake sonë, ne kemi një tabelë të quajtur cupcake_cupboard. Kjo tabelë do të përdoret për të ruajtur të gjitha informatat në lidhje me cupcakes që janë, mirë, në bufe tuaj. Shtyllat që janë brenda tryezën tuaj përfaqësojnë atributet e një kek i vockël. Për shembull, kolona e cupcake_cupboard janë Tortë ID, CakeType, CakeColor, dhe CakeIsNice. Kjo boolean-typed kolonë është përdorur për të përcaktuar nëse tortë është e bukur apo jo e bukur. Ne jemi duke shkuar për të filluar me shkrim një deklaratë të zgjedhur. Deklaratat zgjidhni janë përdorur për të rifitoj të dhënat e bazës së të dhënave një tabelë të veçantë. Në këtë skenar, ne duam të dimë gjithçka cupcakes për të gjitha që ekzistojnë në dollap tonë. Sintaksa për të bërë këtë është "Select" yll hapësirë, ose *, hapësirë ​​nga hapësira tryezë tonë, cila është cupcake_cupboard. Le të shkojnë përpara dhe ekzekutuar atë. Siç mund të shohim, këto janë të gjitha cupcakes në bufe tonë. Është e rëndësishme të theksohet se *, ose Asterisk, është një karakter të egër kartë që nënkupton mbledhjen e të gjitha shtyllat e disa tryezë. Normalisht, ne mund të hyni në një kolonë të veçantë ose kolona duke zëvendësuar * me emrin kolonën aktuale. Nëse duam kolona të shumta, por jo të gjitha, ne mund të arrijmë këtë duke shkruar emrat e kollonave delimiting çdo kolonë nga një presje. Për shembull, le të vetëm të rifitoj CakeId dhe CakeType në tabelën cupcake_cupboard. Sintaksa për të bërë këtë është: SELECT hapësirë ​​CakeID presje Hapësira CakeType nga cupcake_cupboard tonë, tryezë. Le të shkojnë përpara dhe të ekzekutuar këtë. Dhe këtu, ne tani vetëm dy kolona ne specifikuara për çdo kek i vockël në dollap tonë. Ne gjithashtu mund të përmirësojmë rezultatet tona query duke specifikuar "Ku" klauzolë vetëm pas emrin tryezë. Për shembull, nuk duket të jetë një kek i vockël në bufe tonë që është, edhe nuk është, kështu nice looking. Le të kuptoj se të gjithë cupcakes në bufe tonë që janë, edhe jo aq e bukur në kërkim duke përdorur "Ku" klauzolë. Sintaksa për të bërë këtë është: SELECT * NGA cupcake_cupboard hapësirë ​​kozmike Hapësira ku hapësira kolonën tonë të kushtëzuar, në këtë rast CakeIsNice =, dhe vlera boolean e rreme. Është e rëndësishme të theksohet se në qoftë se ju jeni duke përdorur vargjet, ju duhet të mbyllni atë në thonjëza të vetme. Kjo është e vërtetë për të gjitha vargjet në SQL, ose, në bazën e të dhënave SQL drejtim, variant karaktere njohur si VARCHAR tipi. Në këtë rast, ne jemi duke përdorur Vërtetë ose False, e cila është një vlerë Boolean dhe jo një string. Le të shkojnë përpara dhe të ekzekutuar këtë komandë. Ja dhe ja, ajo është e vërtetë se ne kemi 1 çokollatë jo aq e bukur kek i vockël në dollap tonë. Tjetra, ne jemi duke shkuar për të shkruar një deklaratë insert. Deklaratat insert janë përdorur për të futur apo shtuar rreshtave shtesë të të dhënave në tryezën tuaj bazës së të dhënave. Revisiting skenarin tonë, le të supozojmë që ne kemi bërë vetëm një kek i vockël i ri fringo. Që ne jemi shumë të organizuar ngrënësit Cupcake, ne do të kemi për të futur këtë kek i vockël ri në tabelën tonë cupcake_cupboard. Sintaksa për të bërë këtë është kjo: Vendos hapësirë ​​në hapësirë ​​tryezë tonë, , cupcake_cupboard hapësirë ​​( dhe këtu ne të përcaktojë emrat kolona, ​​kufizuar nga një presje, CakeType CakeColor presje presje CakeIsNice) hapësirë. Pas kësaj, kemi shkruar hapësirë ​​Vlerat fjalën (dhe këtu kemi hyrë në vlera për çdo kolonë, përkatësisht, edhe kufizuar me presje. Quote vetme, sepse ata janë të gjitha vlerat VARCHAR ne do të rrethojnë ato në thonjëza të vetme, Presje Brown Light 'presje' gjalpë badiava 'Vërtetë. Tani, është e rëndësishme për t'i dhënë çdo rresht një numër unik për të identifikuar veten. Autoincrementing një kolonë siguron këtë si  "Nuk ka dy kartat e identitetit të njëjta mund të ekzistojnë ndonjëherë në këtë tabelë." Le të shkojnë përpara dhe ekzekutuar. Nuk shkojmë, të gjitha të organizuar. Tjetër deklaratë SQL që ne do të shkruaj një deklaratë update. Deklarata azhornimi mund të përdoret për të ndryshuar të dhënat në një kolonë për çdo rresht ekzistues në tryezën tuaj bazës së të dhënave. Më herët në skenarin tonë, duke përdorur një deklaratë të zgjedhur, ne kemi identifikuar një kek i vockël brenda tryezën cupcake_cupboard sonë vlera CakeIsNice cilit ishte e rreme. Le të supozojmë se ndërsa gjalpë badiava tona kek i vockël ishte në furrë, kemi bërë kek i vockël tonë jo-aq-e bukur very nice. Duke qenë kështu organizuar jashtëzakonisht, ne duam Cupcake tonë për të pasqyruar këtë vlerë në tabelën tonë cupcake_cupboard. Prandaj, le të rinovuar kek i vockël çokollatë tonë në bazën e të dhënave për të pasqyruar këtë. Sintaksa është: hapësira UPDATE tabela tonë, cupcake_cupboard, SET hapësirë kolona që ne dëshirojmë të ndryshojmë, CakeIsNice =. Atëherë këtu ne vend të ri hapësirën tonë vlerën e vërtetë. Tani, sepse ne nuk duam të rinovuar të gjitha rreshtave me këtë vlerë, ne duam që të sigurojë një "ku" klauzolë që do të na imët në radhën e saktë që ne duam të modifikuar. Në këtë rast, ne e dimë se nuk është vetëm një kek i vockël që ka një vlerë CakeIsNice të rreme. Për më tepër, ne gjithashtu do të sigurojë se ne jemi përditësimin rresht correct duke përdorur "dhe" klauzolë. Ne përdorim "dhe" klauzolë për të përsosin më tej query tonë. Në këtë rast, sepse ne e dimë se është kek i vockël çokollatë, ne do të përdorni këtë kolonë CakeType. KU hapësirë ​​kushtëzuar tonë hapësira kolona hapësirë ​​CakeIsNice = False, dhe hapësirë ​​CakeType = 'CHOCOLATE'. Pra, duke e vënë atë të gjithë së bashku, kjo deklaratë freskimin e thotë të gjeni të gjitha cupcakes në bufe tonë kek i vockël, dhe në qoftë se ka një kek i vockël e të cilit kolonë CakeIsNice përmban vlerën False dhe CakeType përmban çokollatë vlerë, ne duam të rinovuar vlera specifike rreshtave CakeIsNice të vërtetë. Pra, le të shkojnë përpara dhe të ekzekutuar deklaratën. Dhe tani, ne jemi të organizuar. E gjithë kjo të flasim për cupcakes ka bërë më pak të uritur. Unë mendoj se unë duhet të ndihmojë veten për një të tillë. Por në qoftë se unë në fakt ha këtë kek i vockël, unë duhet të paktën të hiqni ekzistencën e saj  nga tabela tonë cupcake_cupboard. Për ta bërë këtë, ne do të përdorim "Delete" deklaratë. "Delete" deklarata mund të përdoret për të hequr të gjitha ose disa rreshtave nga tabela. Në qoftë se ju dëshironi të hiqni një rresht të veçantë nga tabela, atëherë ju duhet të sigurojë një "ku" klauzolë, duke specifikuar një kolonë që duhet të jetë unike për rresht që ju dëshironi të hiqni. Kjo është sintaksa: DELETE NGA hapësirë ​​hapësirë ​​tonë, tavolinë cupcake_cupboard, hapësira. Tani, në këtë pikë, sa herë që ju jeni deri tani në deklaratën tuaj fshini ju doni të jenë shumë të kujdesshëm. Për shembull, në qoftë se unë dua të drejtuar këtë pyetje siç është pa ofruar disa "ku" klauzolë Unë do të humbasin të gjitha të dhënat në këtë tabelë cupcake_cupboard, por për shkak se unë tashmë e di se letërnjoftimet e mia tortë janë unike, unë do të përdorin Red Velvet cake ID për klauzolën time "ku". KU hapësirë ​​kolona jonë, CakeID = 1. Për shkak se kjo është një vlerë e plotë nuk ka nevojë që të rrethojnë atë në thonjëza të vetme. Pra, le të ekzekutuar deklaratën. E pra, tani që ne kemi fshihen ekzistencën e këtij kek i vockël nga tabela tonë cupcake_cupboard, ne kemi vetëm një gjë të majtë: Bëni atë të zhduket. Unë jam Christopher Bartolomeu. Kjo është CS50.