Muundo wa amri ya SQL. Mafunzo haya yanahusu nini? Je, ni taratibu gani zinaweza kufanywa kwa kutumia lugha hii?

Programu za mteja

Itifaki ya TFTP

TFTP- Sawa Itifaki ya FTP, lakini juu Itifaki ya UDP(yaani itifaki bila uwasilishaji wa uhakika). Inaweza kutumika kwenye mtandao wa ndani ambapo kasi ya maambukizi ni muhimu zaidi. Katika mazoezi ni mara chache kutumika.

FTP- programu imezinduliwa kutoka kwa mstari wa amri.

Kamanda wa Windows- inaweza kufanya kazi kama mteja wa FTP. Inakuruhusu kufanya kazi na saraka za mbali kwa njia sawa na za ndani.

NetVampire - Kiteja maalum cha FTP kinachokuruhusu kupakua faili kubwa na kupakua kupitia chaneli mbaya.

SQL (Lugha ya Maswali Iliyoundwa) ni lugha ya uulizaji iliyoundwa kwa hifadhidata za uhusiano. Katika lugha hii, unaweza kuunda misemo (maswali) ambayo hurejesha data inayohitajika, kurekebisha, kuunda majedwali na kubadilisha miundo yao, kuamua haki za kufikia data, na mengi zaidi.

Hoja hutekelezwa na mfumo wa usimamizi wa hifadhidata (DBMS). Ikiwa wewe si mtaalamu wa ukuzaji na usimamizi wa hifadhidata, basi unaweza kuwa mtumiaji wa hifadhidata ambaye hutazama na/au kubadilisha data katika majedwali yaliyopo. Mara nyingi, shughuli hizi na zingine za hifadhidata hufanywa kwa kutumia programu maalum ambazo humpa mtumiaji kiolesura cha mtumiaji. Kawaida maombi yameandikwa katika lugha maalum za programu (C, Pascal, Visual Msingi nk) na mara nyingi huundwa kwa kutumia mazingira jumuishi ya maendeleo, kwa mfano, Delphi, C ++ Builder, nk. Hata hivyo, upatikanaji wa hifadhidata unaweza kupatikana bila wao - kwa kutumia SQL pekee. Inapaswa pia kuzingatiwa kuwa programu maalum kawaida hutumia vipande vya msimbo wa SQL wakati wa kufikia hifadhidata.

Kwa hivyo SQL inatumika sana lugha sanifu kufanya kazi na hifadhidata za uhusiano. Sintaksia ya lugha hii ni rahisi kiasi kwamba inaweza kutumika na watumiaji wa kawaida, sio watengeneza programu tu. Siku hizi, mtumiaji wa kawaida wa kompyuta lazima awe na angalau mhariri wa maandishi(k.m. Microsoft Word) na lahajedwali (k.m. Microsoft Excel) Ni vizuri ikiwa pia anajua jinsi ya kutumia hifadhidata. Kuna DBMS nyingi tofauti, na tiba ya ulimwengu wote Kuna njia moja tu ya kufanya kazi na hifadhidata - SQL. Ujuzi wa SQL, angalau misingi yake, na uwezo wa kuitumia kutafuta na kuchambua data ni sehemu ya msingi ya ujuzi wa kompyuta, hata kwa watumiaji wa kawaida.

Maendeleo ya kwanza ya mifumo ya usimamizi wa hifadhidata ya uhusiano (DBMS ya uhusiano) ilifanywa huko IBM mapema miaka ya 1970. Wakati huo huo, lugha ya data iliundwa kufanya kazi katika mifumo hii. Toleo la majaribio la lugha hii liliitwa SEQUEL - kutoka kwa Kiingereza. Lugha ya MASWALI ya Kiingereza Iliyoundwa Lugha ya Kiingereza maombi). Hata hivyo toleo rasmi iliitwa kwa kifupi - SQL (Lugha ya Maswali Iliyoundwa). Kwa usahihi zaidi, SQL ni lugha ndogo ya data, kwani DBMS ina zana zingine za lugha.

Mnamo 1981, IBM ilitoa DBMS SQL/DS inayohusiana. Kwa wakati huu, Uhusiano Software Inc. (leo ni Oracle Corporation) tayari imetoa DBMS yake ya uhusiano. Bidhaa hizi mara moja zikawa kiwango cha mifumo ya usimamizi wa hifadhidata. Bidhaa hizi pia zilijumuisha SQL, ambayo ikawa kiwango halisi cha lugha ndogo za data. Watengenezaji wa DBMS zingine wametoa matoleo yao ya SQL. Walijumuisha zaidi ya uwezo wa msingi wa bidhaa za IBM. Ili kupata faida fulani kwa DBMS "yao", watengenezaji walianzisha viendelezi vya SQL. Wakati huo huo, kazi ilianza kuunda kiwango cha SQL kinachojulikana kwa ujumla.

Mnamo 1986, Taasisi ya Kitaifa ya Viwango ya Amerika (ANSI) ilitoa kiwango rasmi cha SQL-86, ambacho kilisasishwa mnamo 1989 na kuitwa SQL-89. Mnamo 1992, kiwango hiki kiliitwa SQL-92 (ISO/IEC 9075:1992). Toleo la hivi punde la kiwango cha SQL ni SQL:2003 (ISO/IEC 9075X:2003).

Utekelezaji wowote wa SQL katika DBMS maalum ni tofauti kwa kiasi fulani na kiwango ambacho mtengenezaji anatangaza kufuata. Kwa hivyo, DBMS nyingi (kwa mfano, Microsoft Access 2003, PostgreSQL 7.3) haziungi mkono kikamilifu SQL-92, lakini tu kwa kiwango fulani cha kufuata. Kwa kuongeza, pia wanaunga mkono vipengele ambavyo havijumuishwa katika kiwango. Hata hivyo, watengenezaji wa DBMS hujitahidi kuhakikisha kwamba matoleo mapya ya bidhaa zao yanatii kwa karibu iwezekanavyo na kiwango cha SQL.

Tahadhari. Mafunzo haya yanafafanua vipengele vya SQL2003, si vyote vinavyotumika na DBMS zilizopo. Kabla ya kuziweka katika vitendo, unapaswa kuhakikisha kuwa zitafanya kazi katika DBMS yako. Unaweza kujifunza kuhusu hili kutoka kwa nyaraka za kiufundi. Vipengele vingi vilivyoelezewa vinalingana au zaidi matoleo ya awali SQL, haswa SQL-92 inayotumika sana.

SQL iliundwa kama lugha rahisi ya kuuliza kwa hifadhidata ya uhusiano, karibu na lugha ya asili (kwa usahihi zaidi, hadi Kiingereza). Ilifikiriwa kuwa ukaribu wa lugha ya asili ungefanya SQL kuwa zana inayopatikana kwa matumizi mengi watumiaji wa kawaida hifadhidata, na sio watengenezaji programu tu. Hapo awali, SQL haikuwa na miundo yoyote ya udhibiti iliyopatikana katika lugha za kawaida za programu. Maombi, ambayo syntax yake ni rahisi sana, yaliingizwa moja kwa moja kutoka kwa koni moja baada ya nyingine na kutekelezwa kwa mlolongo sawa. Hata hivyo, SQL haijawahi kuwa chombo cha wafanyakazi wa benki, wauzaji wa tiketi za ndege na treni, wachumi, na wafanyakazi wengine. makampuni mbalimbali kwa kutumia taarifa zilizohifadhiwa kwenye hifadhidata. Kwa ajili yao SQL rahisi iligeuka kuwa ngumu sana na isiyofaa, licha ya ukaribu wake na lugha ya asili ya maswali.

Kiutendaji, hifadhidata kawaida hufanyiwa kazi kupitia programu zilizoandikwa na watayarishaji programu katika lugha za kitaratibu, kwa mfano, C, Visual Basic, Pascal, Java, n.k. Maombi mara nyingi huundwa katika mazingira maalum ya maendeleo ya kuona, kama vile Delphi, Microsoft Access, Visual. dBase, nk nk. Wakati huo huo, msanidi programu kivitendo haifai kuandika nambari za programu, kwani mfumo wa maendeleo unamfanyia. Hata hivyo, kufanya kazi na msimbo wa programu inageuka kuwa ndogo. Programu hizi zina kiolesura cha picha ambacho hakilazimishi mtumiaji kuingiza ombi moja kwa moja Lugha ya SQL. Programu hufanya hivi badala yake. Hata hivyo, programu inaweza kutumia au isitumie SQL kufikia hifadhidata. SQL sio pekee, ingawa ni sana dawa ya ufanisi kupokea, kuongeza na kubadilisha data, na ikiwa inawezekana kuitumia katika programu, basi hii inapaswa kufanyika.

Hifadhidata za uhusiano zinaweza na kuwepo bila ya programu zinazotoa kiolesura cha mtumiaji. Ikiwa kwa sababu fulani hakuna interface kama hiyo, basi hifadhidata inaweza kupatikana kwa kutumia kwa kutumia SQL, kwa kutumia kiweko au programu fulani ambayo unaweza kuunganisha kwa hifadhidata, ingiza na kutuma swali la SQL (kwa mfano, Borland SQL Explorer).

Lugha ya SQL inachukuliwa kuwa lugha ya kuelezea (maelezo), tofauti na lugha ambazo programu zimeandikwa. Hii inamaanisha kuwa misemo ya SQL inaelezea kile kinachohitajika kufanywa, sio jinsi gani.

Kwa mfano, ili kuchagua habari juu ya majina na nafasi za wafanyikazi wa idara 102 kutoka kwa meza ya wafanyikazi, endesha swali lifuatalo:

CHAGUA Jina la Mwisho, Nafasi KUTOKA KWA Wafanyakazi AMBAPO Idara=102;

Katika Kirusi usemi huu inaonekana kama hii:

CHAGUA Jina la mwisho, msimamo KUTOKA Wafanyakazi IMETOLEWA HILO Idara = 102;

Ili kubadilisha thamani " Ivanov "juu ya" Petrov "safu Jina la ukoo , endesha tu swali lifuatalo:

UPDATE Wafanyakazi WEKA Jina la mwisho = "Petrov" WAPI Jina la mwisho = "Ivanov";

Kwa Kirusi usemi huu unaonekana kama hii:

UPDATE Wafanyakazi IMEsakinishwa Jina la ukoo SAWA " Petrov "WAPI Jina la mwisho = "Ivanov" ;

Huna haja ya kuelezea kwa undani vitendo ambavyo DBMS lazima ifanye ili kuchagua data iliyoainishwa katika swali kutoka kwa jedwali. Unaelezea tu kile unachotaka kupokea. Kama matokeo ya kutekeleza hoja, DBMS hurejesha jedwali lililo na data uliyoomba. Ikiwa hakuna data katika hifadhidata inayolingana na hoja, jedwali tupu litarejeshwa.

Walakini, matoleo ya hivi majuzi ya SQL yanaunga mkono taarifa za udhibiti wa hesabu asilia kwa lugha za udhibiti wa utaratibu (tawi la masharti na taarifa za kitanzi). Kwa hivyo, SQL sasa sio lugha ya kutangaza.

Mbali na kurejesha, kuongeza, kurekebisha, na kufuta data kutoka kwa majedwali, SQL inakuwezesha kufanya vitendo vyote muhimu ili kuunda, kurekebisha na kulinda hifadhidata. Uwezo huu wote unasambazwa kati ya vipengele vitatu vya SQL:

· DML (Lugha ya Udhibiti wa Data - lugha ya upotoshaji wa data ) imekusudiwa kusaidia hifadhidata: uteuzi ( CHAGUA ), nyongeza ( INGIZA ), mabadiliko ( UPDATE ) na kufuta ( FUTA ) data kutoka kwa meza. Waendeshaji hawa (amri) wanaweza kuwa na maneno, ikiwa ni pamoja na yale yaliyohesabiwa, pamoja na maswali madogo - maswali yaliyomo ndani ya hoja nyingine. Kwa ujumla, usemi wa hoja unaweza kuwa mgumu sana hivi kwamba huwezi kusema mara moja kile hufanya. Hata hivyo, swali tata linaweza kugawanywa kiakili katika sehemu ambazo ni rahisi kuchanganua. Vile vile, maswali changamano huundwa kutoka kwa maneno ambayo ni rahisi kuelewa (subqueries).

· DDL (Lugha ya Ufafanuzi wa Data - lugha ya ufafanuzi wa data ) imeundwa kuunda, kurekebisha na kufuta majedwali na hifadhidata nzima. Mifano ya kauli zilizojumuishwa katika DDL ni TENGENEZA JEDWALI (tengeneza Jedwali)," TENGENEZA TAZAMA (tengeneza mtazamo), TUNZA SHEMA (tengeneza mchoro), MEZA BADILISHA (kubadilisha meza), DONDOSHA (Futa), nk.

· DCL (Lugha ya Kudhibiti Data - lugha ya usimamizi wa data ) imeundwa kulinda hifadhidata kutoka kwa aina mbalimbali za uharibifu. DBMS hutoa ulinzi wa data kiotomatiki. Walakini, katika hali zingine hatua za ziada zinazotolewa na DCL zinapaswa kuzingatiwa.

Lugha SQL

Kwa hivyo tuko ndani muhtasari wa jumla nilifahamiana na dhana za kimsingi za nadharia ya hifadhidata, iliyosakinishwa na kusanidiwa Kazi ya MySQL. Sasa ni wakati wa kujifunza jinsi ya kuendesha data iliyohifadhiwa kwenye hifadhidata. Kwa hili tunahitaji SQL - Lugha ya swali iliyopangwa. Lugha hii hufanya iwezekane kuunda, kuhariri na kufuta habari iliyohifadhiwa kwenye hifadhidata, kuunda hifadhidata mpya na mengi zaidi. SQL ni kiwango cha ANSI (Taasisi ya Viwango ya Kitaifa ya Marekani) na ISO (Shirika la Kimataifa la Kuweka Viwango).

Historia kidogo

Kiwango cha kwanza cha lugha ya kimataifa SQL ilipitishwa mwaka 1989 na mara nyingi huitwa SQL/89 . Miongoni mwa ubaya wa kiwango hiki, kinachojulikana zaidi ni kwamba kiliweka mali nyingi muhimu kama inavyofafanuliwa. Hii ilisababisha tofauti nyingi katika utekelezaji wa lugha na watengenezaji tofauti. Aidha, malalamiko yametolewa kuhusu kukosekana kwa marejeo ya vipengele vya vitendo lugha, kama vile ujumuishaji wake katika lugha ya programu ya C.

Inayofuata Kiwango cha Lugha cha Kimataifa SQL ilipitishwa mwishoni mwa 1992 na kujulikana kama SQL/92 . Ilibadilika kuwa sahihi zaidi na kamili kuliko SQL/89 , ingawa haikuwa bila mapungufu yake. Hivi sasa, mifumo mingi hutekeleza kiwango hiki karibu kabisa. Walakini, kama unavyojua, maendeleo hayawezi kusimamishwa, na mnamo 1999 kiwango kipya kilionekana SQL :1999, pia inajulikana kama SQL3. SQL3 ina sifa ya "kulenga kitu" SQL ” na ndio msingi wa mifumo kadhaa ya usimamizi wa hifadhidata inayohusiana na kitu (kwa mfano, Oracle's ORACLE8, Informix's Universal Server, na DB2 Universal Database ya IBM). Kiwango hiki sio tu muunganisho SQL-92 na teknolojia ya kitu. Ina idadi ya upanuzi kwa jadi SQL , na hati yenyewe imeundwa kwa njia ya kufikia zaidi kazi yenye ufanisi katika uwanja wa viwango katika siku zijazo.

Ikiwa tunazungumza juu ya MySQL, basi inalingana na kiwango cha kuingia SQL92, ina viendelezi kadhaa vya kiwango hiki na inajitahidi msaada kamili Kiwango cha ANSI SQL99, lakini bila kuathiri kasi ya msimbo na ubora.

Kisha, kuzungumza juu ya misingi ya lugha SQL , tutazingatia utekelezaji wake katika MySQL DBMS.

Waendeshaji lugha za kimsingi SQL

Kazi za DBMS yoyote ni pamoja na:

  1. kuunda, kufuta, kubadilisha hifadhidata (DB);
  2. kuongeza, kubadilisha, kufuta, kugawa haki za mtumiaji;
  3. kuingia, kufuta na kubadilisha data katika hifadhidata (meza na rekodi);
  4. kuchota data kutoka kwa hifadhidata.

Wasimamizi wa DBMS pekee au watumiaji waliobahatika ndio wanaoweza kufikia vipengele viwili vya kwanza. Hebu tuangalie jinsi matatizo mawili ya mwisho yanatatuliwa (kwa kweli, kuna matatizo saba).

Kabla ya kufanya chochote na data, unahitaji kuunda meza ambazo data hii itahifadhiwa, jifunze jinsi ya kubadilisha muundo wa meza hizi na kuzifuta ikiwa ni lazima. Kwa kusudi hili katika lugha SQL wapo waendeshaji TENGENEZA JEDWALI, MEZA BADILISHA Na DONDOSHA TABLE.

TENGENEZA taarifa ya JEDWALI

mysql>CREATE TABLE Persons (id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(50), last_name VARCHAR(100), death_date INT, maelezo TEXT, picha INT, uraia CHAR(50) DEFAULT "Urusi"); Mfano 10.1. Kuunda meza ya Watu

Kwa kutumia amri ya MySql-specific SHOW, unaweza kutazama hifadhidata zilizopo, majedwali katika hifadhidata, na sehemu katika jedwali.

Onyesha hifadhidata zote:

mysql> SHOW hifadhidata;

Fanya hifadhidata ya kitabu iwe ya sasa na uonyeshe majedwali yote ndani yake:

mysql>tumia kitabu; mysql>onyesha meza;

Onyesha safu wima zote kwenye jedwali la Watu:

mysql> onyesha safu wima kutoka kwa Watu;

dondosha taarifa ya TABLE

Opereta DONDOSHA TABLE hufuta jedwali moja au zaidi. Data zote za jedwali na ufafanuzi huondolewa, kwa hivyo tumia tahadhari unapotumia amri hii.

Sintaksia:

DROP TABLE jedwali_jina [, jedwali_jina,...]

Katika MySQL 3.22 na baadaye, unaweza kutumia IF EXISTS maneno ili kuongeza hitilafu ikiwa majedwali maalum hayapo.

Chaguo za RESTRICT na CASCADE hurahisisha kuhamisha programu kutoka kwa DBMS zingine. KATIKA wakati huu hawahusiki.

mysql> DONDOSHA TABLE IKIWA IKO Watu, Artifacts, test; Mfano 10.2. Kwa kutumia taarifa ya DROP TABLE

TAARIFA YA JEDWALI BADILISHA

Opereta MEZA BADILISHA hutoa uwezo wa kubadilisha muundo wa meza iliyopo. Kwa mfano, unaweza kuongeza au kuondoa safu wima, kuunda au kuharibu faharasa, au kubadilisha safu wima au jedwali lenyewe. Unaweza pia kubadilisha maoni ya jedwali na aina yake.

Sintaksia:

ALTER TABLE jedwali_jina alter_specification [, alter_specification ...]

Unaweza kufanya mabadiliko yafuatayo kwenye jedwali (yote yamerekodiwa katika alter_specification ):

  • kuongeza uwanja:

    ONGEZA ufafanuzi_wa_safu

    ADD (ufafanuzi_wa_safu, ufafanuzi_wa_safu,...)

  • kuongeza faharisi:

    ONGEZA INDEX [index_name] (safu_jina,...) au ONGEZA UFUNGUO WA MSINGI (safu_jina,...) au ONGEZA UNIQUE [index_name] (safu_jina,...) au ONGEZA FULLTEXT [index_name] (safu_jina,...)

  • mabadiliko ya uwanja:

    ALTER column_name (WEKA CHAGUO CHAGUO halisi | ONDOA CHAGUO-MSINGI) au BADILISHA ufafanuzi_wa_safu_wima_ya_zamani au rekebisha_ufafanuzi_wa_safu

  • kufuta uwanja, faharisi, ufunguo:

    DROP safu_name DROP PRIMARY KEY DROP INDEX index_name

  • Jedwali la kubadilisha jina:

    TENA JINA_la_meza_mpya

  • kupanga upya sehemu za meza:

    AGIZA KWA uwanja

    chaguzi_za_meza

Ikiwa operator MEZA BADILISHA inatumika kubadilisha ufafanuzi wa aina ya safu, lakini DESCRIBE jedwali_jina inaonyesha kuwa safu haijabadilika, basi labda MySQL inapuuza marekebisho haya kwa moja ya sababu zilizoelezwa katika sehemu maalum ya nyaraka. Kwa mfano, ukijaribu kubadilisha safu wima ya VARCHAR hadi CHAR, MySQL itaendelea kutumia VARCHAR ikiwa jedwali linalohusika lina safu wima zingine za urefu tofauti.

Opereta MEZA BADILISHA wakati wa kukimbia, huunda nakala ya muda ya jedwali asili. Mabadiliko yanayotakiwa yanafanywa kwenye nakala, kisha meza ya awali inafutwa na meza mpya inaitwa jina. Hii inafanywa ili meza mpya Masasisho yote isipokuwa yaliyoshindwa yalipokelewa kiotomatiki. Wakati wa kukimbia MEZA BADILISHA jedwali asili linaweza kusomeka na wateja wengine. Shughuli za kusasisha na kuandika kwenye jedwali hili zimesimamishwa hadi jedwali jipya liwe tayari. Ikumbukwe kwamba unapotumia chaguo lingine lolote la ALTER TABLE isipokuwa RENAME, MySQL itaunda jedwali la muda kila wakati, hata kama data haihitaji kunakiliwa kabisa (kwa mfano, jina la safu wima linapobadilika).

Mfano 10.3. Hebu tuongeze sehemu kwenye jedwali la Watu iliyoundwa ili kurekodi mwaka wa kuzaliwa wa mtu:

mysql> ALTER TABLE People ONGEZA bday INTEGER BAADA ya jina_la mwisho; Mfano 10.3. Kuongeza sehemu kwenye jedwali la Watu ili kurekodi mwaka wa kuzaliwa wa mtu

Kwa hiyo, tumejifunza jinsi ya kufanya kazi na meza: kuunda, kufuta na kurekebisha. Sasa hebu tuone jinsi ya kufanya sawa na data iliyohifadhiwa kwenye meza hizi.

CHAGUA kauli

Opereta CHAGUA hutumika kupata safu mlalo zilizochaguliwa kutoka kwa jedwali moja au zaidi. Hiyo ni, kwa msaada wake tunabainisha safu au misemo ambayo inahitaji kurejeshwa (chagua_maneno), jedwali (marejeleo_ya_meza), ambayo uteuzi unapaswa kufanywa, na, ikiwezekana, hali (wapi_ufafanuzi), ambayo data katika hizi. safu lazima zilingane na, na mpangilio, ambao data hii inahitaji kutolewa.

Aidha, operator CHAGUA inaweza kutumika kupata safu mlalo zilizokokotolewa bila kurejelea jedwali lolote. Kwa mfano, kuhesabu ni nini 2*2 ni sawa, unaandika tu

mysql> CHAGUA 2*2;

Muundo wa opereta uliorahisishwa CHAGUA inaweza kuwakilishwa kama ifuatavyo:

Mabano ya mraba yanamaanisha kuwa opereta iliyomo ni ya hiari; upau wima | ina maana ya kuhesabu chaguzi zinazowezekana. Baada ya AGIZA KWA neno kuu, onyesha jina la safu wima, nambari (idadi kamili isiyo na saini) au fomula na njia ya kuagiza (kupanda - ASC, au kushuka - DESC). Upangaji chaguomsingi unapanda.

Tunapoandika "*" katika select_expression, hii inamaanisha kuchagua safu wima zote. Kando na “*”, vitendaji kama vile max , min na wastani vinaweza kutumika katika select_expressions.

Mfano 10.4. Chagua kutoka kwa jedwali la Watu data zote ambazo uga wa first_name una thamani yake "Alexander":

Chagua jina na maelezo (kichwa, maelezo) ya nambari ya vizalia vya programu 10:

INGIZA taarifa

Opereta INGIZA huingiza safu mlalo mpya kwenye jedwali lililopo. Opereta ana fomu kadhaa. Jedwali_name parameta katika aina hizi zote hubainisha jedwali ambalo safu mlalo zinapaswa kuandikwa. Safu ambazo thamani zake zimewekwa zimebainishwa katika orodha ya majina ya safu wima (safu_jina) au katika sehemu ya SET.

Sintaksia:

    INGIZA_jina_la_jedwali [(jina_la_safu,...)] THAMANI (maneno,...),(...),...

    Fomu hii ya amri INGIZA huingiza safu mlalo kulingana na maadili halisi yaliyoainishwa katika amri. Safu zimeorodheshwa kwenye mabano baada ya jina la jedwali, na thamani zake zimeorodheshwa baada ya neno kuu la VALUES.

    Kwa mfano:

    mysql> WEKA NDANI ya Watu (jina_la_mwisho, siku) MAADILI ("Ivanov", "1934");

    itaingiza safu mlalo kwenye jedwali la Watu ambamo thamani za jina la mwisho ( last_name ) na tarehe ya kuzaliwa ( bday ) zitawekwa mtawalia kama "Ivanov" na "1934".

    WEKA jedwali_jina [(safu_jina,...)] CHAGUA ...

    Fomu hii ya amri INGIZA huingiza safu mlalo zilizochaguliwa kutoka kwa jedwali au jedwali lingine.

    Kwa mfano:

    itaingiza kwenye jedwali la Artifacts katika uwanja wa "mwandishi" thamani ya kitambulisho kilichochaguliwa kutoka kwa Jedwali la Watu chini ya hali ya kwamba jina la mwisho la mtu huyo ni Ivanov.

    INGIZA_jina_la_jedwali SET column_name=expression, column_name=expression, ...

    Kwa mfano:

    mysql> WEKA KWENYE Watu SET last_name="Petrov", first_name="Ivan";

    Amri hii itaingiza thamani "Petrov" kwenye jedwali la Watu katika uwanja wa jina la mwisho, na kamba "Ivan" kwenye uwanja wa jina la kwanza.

Fomu INGIZA...MAADILI iliyo na orodha ya maadili mengi inasaidia katika MySQL 3.22.5 na baadaye. Sintaksia ya Usemi safu_jina=maneno inayoungwa mkono katika toleo la MySQL 3.22.10 na baadaye.

Mikataba ifuatayo inatumika.

  • Ikiwa hakuna orodha ya safu wima iliyoainishwa INGIZA...MAADILI au INGIZA...CHAGUA, basi thamani za safuwima zote lazima zifafanuliwe katika orodha ya VALUES() au kama matokeo ya CHAGUA. Ikiwa mpangilio wa safu kwenye jedwali haujulikani, unaweza kutumia DESCRIBE jedwali_jina.
  • Safu wima yoyote ambayo haijapewa thamani kwa njia dhahiri itawekwa kuwa thamani yake chaguomsingi. Kwa mfano, ikiwa orodha ya safu wima haijabainisha safu wima zote kwenye jedwali fulani, basi safu wima ambazo hazijatajwa zimewekwa kwa maadili yao chaguomsingi.
  • usemi unaweza kurejelea safu wima yoyote ambayo ilijumuishwa hapo awali kwenye orodha ya maadili. Kwa mfano, unaweza kutaja yafuatayo:

    mysql> WEKA NDANI ya meza_name (col1,col2) THAMANI(15,col1*2);

    Lakini huwezi kutaja:

    mysql> WEKA NDANI ya meza_name (col1,col2) THAMANI(col2*2,15);

Bado hatujajadili vigezo vitatu vya hiari ambavyo vipo katika aina zote tatu za amri: LOW_PRIORITY, DELAYED, na IGNORE.

Vigezo LOW_PRIORITY na DELAYED hutumika wakati wa kufanya kazi na jedwali idadi kubwa watumiaji. Zinahitaji kwamba utendakazi fulani upewe kipaumbele kuliko utendakazi wa watumiaji wengine. Ikiwa neno kuu LOW_PRIORITY limebainishwa, basi utekelezaji wa amri hii INGIZA itachelewa hadi wateja wengine wamalize kusoma jedwali hili. Katika kesi hiyo, mteja lazima kusubiri mpaka amri ya kuingiza imekamilika, ambayo inaweza kuchukua muda mkubwa ikiwa meza inatumiwa sana. Kinyume chake, amri INGIZA KUCHELEWA inaruhusu kwa mteja huyu endelea operesheni mara moja, bila kujali watumiaji wengine.

Ikiwa kwenye timu INGIZA Ikiwa neno kuu la IGNORE limebainishwa, basi safu mlalo zote ambazo zina funguo rudufu MSINGI au KIPEKEE katika jedwali hili itapuuzwa na haitaingizwa kwenye meza. Ikiwa hutabainisha IGNORE , operesheni ya kuingiza huacha wakati inapokutana na safu mlalo ambayo ina thamani ya nakala ya ufunguo uliopo.

UPDATE taarifa

Sintaksia:

Opereta UPDATE Inasasisha maadili ya safu wima zilizopo kulingana na maadili yaliyoingizwa. Taarifa ya SET inabainisha ni safu wima zipi zinafaa kurekebishwa na ni thamani gani zinazopaswa kuwekwa ndani yake. Kifungu cha WHERE, ikiwa kipo, kinabainisha safu mlalo ambazo zimesasishwa. Vinginevyo, safu mlalo zote zinasasishwa. Ikiwa usemi wa ORDER BY umebainishwa, safu mlalo zitasasishwa kwa mpangilio uliobainishwa ndani yake.

Ikiwa neno kuu LOW_PRIORITY limebainishwa, basi utekelezaji wa amri hii UPDATE imechelewa hadi wateja wengine wamalize kusoma jedwali hili.

Ikiwa neno kuu la IGNORE limebainishwa, amri ya kusasisha haitaacha hata kama kosa la ufunguo rudufu litatokea. Safu mlalo zinazosababisha migogoro hazitasasishwa.

Ikiwa usemi unaobainisha thamani mpya ya safu hutumia jina la sehemu hiyo, basi amri UPDATE hutumia thamani ya sasa ya safu wima hii. Kwa mfano, amri ifuatayo huweka safu wima ya kifo_date kwa thamani kubwa kuliko thamani yake ya sasa:

mysql> USASISHA Watu WEKA death_date=death_date+1;

Katika toleo la 3.23 la MySQL, unaweza kutumia kigezo LIMIT # ili kuhakikisha kuwa ni idadi maalum tu ya safu mlalo ambayo imerekebishwa.

Kwa mfano, operesheni kama hiyo itachukua nafasi katika safu ya kwanza ya meza yetu ya maonyesho jina la kichwa kwa mstari "Tube kompyuta":

mysql> SASISHA Viunzi vya Kubaki SET title="Tube kompyuta" Limit 1;!}

FUTA taarifa

Opereta FUTA huondoa safu mlalo kutoka kwa jedwali_name linalokidhi masharti yaliyobainishwa ambapo_ufafanuzi na kurudisha idadi ya rekodi zilizoondolewa.

Ikiwa operator FUTA inaendeshwa bila ufafanuzi wa WHERE, safu mlalo zote hufutwa.

Sintaksia:

Kwa mfano, amri ifuatayo itaondoa kutoka kwa Jedwali la Watu

Katika sura hii...

  • SQL ni nini
  • Dhana potofu za SQL
  • Angalia viwango tofauti SQL
  • Utangulizi wa amri za kawaida na zilizohifadhiwa kwa maneno ya SQL
  • Inawakilisha nambari, alama, tarehe, nyakati na aina zingine za data
  • Maadili na vikwazo visivyojulikana
  • Kutumia SQL katika mfumo wa mteja/seva
  • SQL kwenye wavuti

SQL ni lugha inayonyumbulika inayoweza kutumiwa na wengi njia tofauti. Ni chombo cha kawaida kinachotumiwa kuwasiliana na hifadhidata ya uhusiano. Katika sura hii, nitaelezea SQL ni nini na sio nini, haswa jinsi SQL ni tofauti nayo lugha za kompyuta aina nyingine. Kisha utafahamu amri na aina za data ambazo SQL ya kawaida inasaidia. Aidha, nitaeleza dhana za msingi kama vile maadili yasiyobainishwa Na vikwazo. Hatimaye, muhtasari utatolewa wa jinsi SQL inavyolingana na mazingira ya mteja/seva, pamoja na Mtandao na intraneti za mashirika.

SQL ni nini na sio nini

Jambo la kwanza kuelewa kuhusu SQL ni kwamba sio a kiutaratibu kama FORTRAN, Basic, C, COBOL, Pascal na Java. Ili kutatua tatizo kwa kutumia mojawapo ya lugha hizi za utaratibu, unapaswa kuandika utaratibu ambao hufanya shughuli maalum moja baada ya nyingine hadi kazi imekamilika. Utaratibu unaweza kuwa mlolongo wa mstari au kuwa na matawi, lakini kwa hali zote mpangaji anabainisha mpangilio wa utekelezaji.

Kwa maneno mengine, SQL ni yasiyo ya kiutaratibu ulimi. Ili kuitumia kutatua shida, mwambie SQL, Nini hasa unaihitaji kana kwamba unazungumza na jini kutoka kwenye taa ya Aladdin. Na wakati huo huo hakuna haja ya kusema, vipi kupata unachotaka. Mfumo wa usimamizi wa hifadhidata (DBMS) utaamua jinsi bora ya kutimiza ombi lako.

Sawa. Nilisema tu kwamba SQL sio lugha ya kitaratibu. Kwa asili, hii ni kweli. Walakini, na mamilioni ya waandaaji wa programu karibu (na unaweza kuwa mmoja wao) wanaotumiwa kutatua shida kwa utaratibu, kumekuwa na shinikizo nyingi katika miaka ya hivi karibuni kuongeza uwezo wa kiutaratibu kwa SQL. Kwa hivyo, toleo jipya la vipimo vya SQL, SQL:2003, sasa linajumuisha vipengele vya lugha ya kitaratibu kama vile BEGIN vitalu, kauli zenye masharti IF, kazi na taratibu. Kwa zana hizi mpya, programu zinaweza kuhifadhiwa kwenye seva ili ziweze kutumiwa tena na watumiaji wengi.

Ili kuonyesha nilichomaanisha niliposema "uambie mfumo kile unachohitaji," tuseme una jedwali la MFANYAKAZI lenye data ya mfanyakazi na unataka kuchagua safu mlalo zote kutoka humo zinazolingana na wafanyikazi wote "wakubwa". Wafanyikazi "Wakubwa" wanaweza kufafanuliwa kama mtu yeyote zaidi ya miaka 40 au anayepata zaidi ya $60,000 kwa mwaka. Uchaguzi unaohitaji unaweza kufanywa kwa kutumia swali lifuatalo:

CHAGUA * KUTOKA KWA MFANYAKAZI AMBAPO UMRI > 40 AU MSHAHARA > 60000;

Taarifa hii huchagua kutoka kwa jedwali la MWAJIRIWA safumlalo zote ambazo thamani ya safu wima ya UMRI (umri) ni kubwa kuliko 40 au thamani ya safu wima ya MSHAHARA (mshahara) ni kubwa kuliko 60000. SQL yenyewe inajua jinsi ya kuchagua maelezo. Injini ya hifadhidata hukagua hifadhidata na kujiamulia jinsi hoja inapaswa kutekelezwa. Unachohitajika kufanya ni kuonyesha data unayohitaji.

Kumbuka:
Swali ni swali unalouliza hifadhidata. Ikiwa data yake yoyote inalingana na masharti ya ombi lako, basi SQL itaipitisha kwako
.

Utekelezaji wa kisasa wa SQL hauna miundo mingi rahisi ya programu ambayo ni ya msingi kwa lugha zingine nyingi. Utumizi wa kila siku kwa kawaida huhitaji angalau baadhi ya miundo hii, kwa hivyo SQL ni kweli lugha ndogo data. Hata na nyongeza zilizoonekana katika SQL pamoja na kiwango cha SQL: 1999 na upanuzi wa ziada, iliyoongezwa katika SQL:2003, bado unahitaji kutumia mojawapo ya lugha za programu, kama vile C, pamoja na SQL ili kuunda programu kamili.

Unaweza kuchagua habari kutoka kwa hifadhidata kwa moja ya njia zifuatazo.

  • Kutumia swala la wakati mmoja, lisilopangwa kutoka kwa koni ya kompyuta, kuingiza amri ya SQL na kusoma matokeo ya utekelezaji wake kwenye skrini. Console ni maana ya neno la kimapokeo vifaa vya kompyuta, ambayo hufanya kazi ya kibodi na skrini inayotumiwa kwenye PC za kisasa. Hoja za Console ni muhimu unapohitaji jibu la haraka kwa ombi mahususi. Ili kukidhi hitaji la sasa, unaweza kuhitaji data kutoka kwa hifadhidata ambayo haijawahi kuhitajika hapo awali. Huenda usizihitaji tena, lakini unazihitaji sasa. Ingiza swali linalofaa la SQL kutoka kwa kibodi, na baada ya muda matokeo yataonekana kwenye skrini yako.
  • Kwa kutumia programu inayorejesha maelezo kutoka kwa hifadhidata na kisha kuunda ripoti kulingana na data hii, ama kuonyeshwa kwenye skrini au kuchapishwa. SQL pia inaweza kutumika kwa njia hii. Hoja changamano ya SQL ambayo inaweza kuwa muhimu katika siku zijazo inaweza kuwekwa moja kwa moja kwenye programu. Hii hukuruhusu kuitumia tena katika siku zijazo. Kwa hivyo, uundaji wa swala unatekelezwa mara moja. Sura ya 15 inashughulikia jinsi ya kuingiza msimbo wa SQL katika programu zilizoandikwa kwa lugha nyingine.

PHP na hifadhidata

Zana za Uhifadhi na Urejeshaji Bora kiasi kikubwa habari zimetoa mchango mkubwa katika maendeleo yenye mafanikio ya mtandao. Kwa kawaida hifadhidata hutumiwa kuhifadhi habari. Uendeshaji wa tovuti zinazojulikana kama Yahoo, Amazon na Ebay hutegemea kwa kiasi kikubwa utegemezi wa hifadhidata zinazohifadhi kiasi kikubwa cha habari. Bila shaka, usaidizi wa hifadhidata si kwa manufaa ya mashirika makubwa tu—watayarishaji programu wa wavuti wana utekelezwaji wa hifadhidata kadhaa wenye nguvu, unaosambazwa kwa gharama ya chini (au hata bila malipo).

Shirika sahihi hifadhidata hutoa uwezo wa kurejesha data haraka na rahisi zaidi. Inarahisisha sana utekelezaji wa zana za utafutaji na upangaji, na matatizo ya haki za ufikiaji wa habari hutatuliwa kwa kutumia vidhibiti vya upendeleo vinavyopatikana katika mifumo mingi ya usimamizi wa hifadhidata (DBMS). Kwa kuongezea, michakato ya urudufishaji na uhifadhi wa data imerahisishwa.

Sura inaanza na maelezo ya kina ya kurejesha na kusasisha data katika MySQL, pengine DBMS maarufu zaidi inayotumiwa katika PHP (http://www.mysql.com). Kwa kutumia MySQL kama mfano, tutaonyesha jinsi data katika hifadhidata inavyopakiwa na kusasishwa katika PHP; Tutaangalia zana za kimsingi za kutafuta na kupanga zinazotumika katika programu nyingi za wavuti. Kisha tutaendelea kwenye usaidizi wa PHP kwa ODBC (Muunganisho wa Open Data Base), kiolesura cha kawaida ambacho kinaweza kutumika muunganisho wa wakati mmoja na DBMS tofauti. Usaidizi wa ODBC katika PHP utaonyeshwa kwa kutumia mfano wa kuunganisha na kurejesha data kutoka kwa hifadhidata Data ya Microsoft Ufikiaji. Sura hii inahitimishwa na mradi unaotumia PHP na MySQL kuunda saraka ya daraja iliyo na habari kuhusu tovuti unazopenda. Wakati tovuti mpya zinajumuishwa kwenye orodha, mtumiaji huwapa moja ya kategoria za kawaida zinazofafanuliwa na msimamizi wa tovuti.

Kabla ya kujadili MySQL, nataka kusema maneno machache kuhusu SQL, lugha ya kawaida ya kufanya kazi na hifadhidata. Lugha ya SQL ndio msingi wa karibu DBMS zote zilizopo. Ili kuendelea na kuangalia mifano ya kufanya kazi na hifadhidata, unahitaji kuwa na angalau ufahamu wa jumla wa jinsi SQL inavyofanya kazi.

SQL kwa ujumla inaelezewa kama lugha ya kawaida inayotumiwa kuingiliana na hifadhidata za uhusiano (tazama hapa chini). Walakini, SQL sio lugha ya programu kama C, C++ au PHP. Badala yake, ni chombo cha kiolesura cha kufanya shughuli mbalimbali za hifadhidata, kumpa mtumiaji seti ya kawaida amri Uwezo wa SQL sio mdogo katika kurejesha data kutoka kwa hifadhidata. SQL inasaidia chaguzi mbalimbali za kuingiliana na hifadhidata, ikijumuisha:

  • ufafanuzi wa muundo wa data-- ufafanuzi wa miundo inayotumiwa wakati wa kuhifadhi data;
  • sampuli za data-- kupakia data kutoka kwa hifadhidata na kuiwasilisha katika muundo unaofaa kwa matokeo;
  • usindikaji wa data-- kuingiza, kusasisha na kufuta habari;
  • udhibiti wa ufikiaji-- uwezo wa kuruhusu/kukataza sampuli, kuingiza, kusasisha na kufuta data katika kiwango watumiaji binafsi;
  • udhibiti wa uadilifu wa data-- Uhifadhi wa muundo wa data katika tukio la matatizo kama vile masasisho sambamba au hitilafu za mfumo.

Tafadhali kumbuka: ndani Ufafanuzi wa SQL ilisemekana kuwa lugha hii imeundwa kufanya kazi nayo ya uhusiano hifadhidata. Katika DBMS za uhusiano, data hupangwa kama seti ya jedwali zilizounganishwa. Mahusiano kati ya majedwali yanatekelezwa kwa namna ya viungo kwa data kutoka kwa majedwali mengine. Jedwali inaweza kuzingatiwa kama safu ya pande mbili ambapo eneo la kila kipengele lina sifa ya safu mlalo na maadili mahususi. Mfano wa hifadhidata ya uhusiano unaonyeshwa kwenye Mtini. 11.1.

Mchele. 11.1.Mfano wa Hifadhidata ya Uhusiano

Kama inavyoonekana kutoka kwa Mtini. 11.1, kila jedwali lina safu (rekodi) na safu (mashamba). Kila uwanja umepewa jina la kipekee (ndani ya jedwali). Angalia uhusiano kati ya mteja na meza za maagizo, iliyoonyeshwa kwa mshale. Kitambulisho kifupi cha mteja kinajumuishwa katika maelezo ya agizo, ambayo huepuka uhifadhi mwingi wa jina la mteja na maelezo mengine. Kuna uhusiano mmoja zaidi katika hifadhidata iliyoonyeshwa - kati ya maagizo na meza za bidhaa. Muunganisho huu umeanzishwa kwa kutumia sehemu ya prod_id, ambayo huhifadhi kitambulisho cha bidhaa iliyoagizwa na mteja huyu (inayofafanuliwa na sehemu ya custjd). Kuwa na miunganisho hii hurahisisha kurejelea data kamili ya mteja na bidhaa kwa kutumia vitambulisho rahisi. Hifadhidata iliyopangwa ipasavyo inakuwa chombo chenye nguvu cha kupanga na kuhifadhi data kwa ufanisi bila uhitaji mdogo. Kumbuka hifadhidata hii, nitairejelea mara nyingi katika mifano zaidi.

Kwa hivyo shughuli za hifadhidata za uhusiano zinafanywaje? Ili kufanya hivyo, SQL ina seti maalum ya amri za jumla - kama vile SELECT, INSERT, UPDATE na DELETE. Kwa mfano, ikiwa unahitaji kupata anwani ya barua pepe ya mteja yenye ID 2001cu (ona Mchoro 11.1), unahitaji tu kutekeleza amri ifuatayo ya SQL:

CHAGUA cust_email KUTOKA kwa wateja WHERE custjd = "2001cu"

Kila kitu ni mantiki kabisa, sivyo? Kwa muhtasari, amri inaonekana kama hii:

CHAGUA jina_la_uga KUTOKA jedwali_name [ hali ya WHERE ]

Mabano ya mraba yanaonyesha kuwa sehemu ya mwisho ya amri ni ya hiari. Kwa mfano, ili kupata anwani za barua pepe za wateja wote kutoka kwa jedwali la wateja, endesha tu hoja ifuatayo:

CHAGUA cusst_email KUTOKA KWA wateja

Tuseme unataka kujumuisha bidhaa kwenye jedwali ingizo jipya. Amri rahisi zaidi kuingiza inaonekana kama hii:

WEKA kwenye bidhaa THAMANI ("1009pr", "Nyanya Nyekundu", "1.43");

Ikiwa utahitaji kufuta data hii baadaye, tumia amri ifuatayo:

FUTA KUTOKA KWA bidhaa AMBAPO prod_id = 1009r";

Kuna aina nyingi za amri za SQL, na maelezo kamili yao ni zaidi ya upeo wa kitabu hiki. Kitabu tofauti kinaweza kuandikwa kwa urahisi juu ya mada hii! Nimejaribu kuweka amri za SQL zinazotumiwa katika mifano rahisi lakini ya kweli ya kutosha. Kuna habari nyingi za mafunzo ya SQL na rasilimali kwenye Wavuti. Viungo vingine vimetolewa mwishoni mwa sehemu hii.

Andika amri za SQL kwa kutumia herufi herufi kubwa sio lazima. Walakini, napendelea nukuu hii kwa sababu inasaidia kutofautisha sehemu za ombi.

Kwa kuwa unasoma kitabu hiki, labda unashangaa jinsi ya kufanya kazi na hifadhidata kwenye Wavuti? Kama sheria, kwanza, kwa kutumia baadhi

au lugha ya kiolesura (PHP, Java au Perl), muunganisho kwenye hifadhidata huundwa, baada ya hapo programu hufikia hifadhidata kwa maswali kwa kutumia seti ya kawaida ya zana. Lugha ya kiolesura inaweza kuzingatiwa kama aina ya "gundi" inayounganisha hifadhidata kwenye Wavuti. Ninageukia lugha yangu ninayopenda ya mwisho - PHP.

Kila amri ya SQL huanza na neno kuu, kitenzi kinachoelezea kitendo ambacho amri hufanya, kama vile CREATE. Timu inaweza kuwa na sentensi moja au zaidi. Sentensi inaelezea data ambayo amri inafanya kazi nayo au ina maelezo ya kufafanua kuhusu kitendo ambacho amri inafanya. Kila kifungu kinaanza na neno kuu, kama vile WAPI.Baadhi ya vifungu katika amri vinahitajika, vingine sivyo. Baadhi ya sentensi zinaweza kuwa na maneno muhimu na misemo ya ziada. Sentensi nyingi zinajumuisha jedwali au majina ya uwanja. Majina lazima yawe kati ya herufi 1 hadi 18, yaanze na herufi, na yasiwe na nafasi au vibambo maalum vya uakifishaji. Maneno muhimu hayawezi kutumika kama majina.

52. SQL (Lugha ya Maswali Iliyoundwa) - Lugha ya Maswali Iliyoundwa ni lugha ya kawaida ya kuuliza kwa kufanya kazi na hifadhidata za uhusiano.

SQL haina waendeshaji wa jadi, kudhibiti utekelezaji wa programu, ina seti tu waendeshaji wa kawaida ufikiaji wa data iliyohifadhiwa kwenye hifadhidata.

SQL inaweza kutumika kupata hifadhidata kwa njia mbili: kazi ya maingiliano na katika programu za maombi.

Kwa kutumia Mtumiaji wa SQL labda ndani hali ya mwingiliano haraka kupata majibu kwa yoyote, ikiwa ni pamoja na maswali changamano, ambapo kutekeleza maswali haya katika lugha nyingine itakuwa muhimu kuendeleza mpango sambamba. Programu za maombi zilizoandikwa katika lugha fulani za programu hutumia SQL kama iliyojengwa ndani lugha ya kupata hifadhidata.

Kubainisha lugha ya SQL kwa ujumla, tunaweza kuangazia vipengele vifuatavyo:

muundo wa hali ya juu unaowakumbusha lugha ya Kiingereza;

· uhuru kutoka kwa DBMS maalum;

· uwepo wa viwango vinavyoendelea;

· uwezo wa kutekeleza maswali shirikishi ili kupata data na kurekebisha muundo wao;

· utoaji ufikiaji wa programu kwa hifadhidata;

· usaidizi wa usanifu wa mteja/seva;

· upanuzi na usaidizi wa teknolojia zinazolenga kitu;



· uwezo wa kufikia data kwenye mtandao.

Kazi kuu za lugha ya SQL:

SQL - lugha ya maingiliano ya swala. Watumiaji huingiza amri za SQL kwa maingiliano ili kupata data na kuionyesha kwenye skrini, na kufanya mabadiliko kwenye hifadhidata;

SQL - lugha ya programu ya hifadhidata. Ili kufikia hifadhidata, amri za SQL zinaingizwa kwenye programu za programu;

SQL - lugha ya usimamizi wa hifadhidata. Msimamizi wa hifadhidata anaweza kutumia SQL kufafanua muundo wa hifadhidata na kudhibiti ufikiaji wa data;

SQL - lugha ya maombi ya mteja/seva. Katika kutumika Programu za SQL hutumika kama njia ya kupanga mawasiliano kupitia mtandao wa ndani wenye seva ya hifadhidata ambamo data iliyoshirikiwa, n.k. huhifadhiwa.

55. Uwezo wa lugha Lugha ya SQL, ambayo inatii viwango vya hivi punde vya SQL:2003, SQL:1999, ni lugha tajiri sana na iliyo bora zaidi. Lugha ngumu, uwezekano wote ambao ni vigumu kutambua mara moja, kiasi kidogo kuelewa. Kwa hivyo, tunapaswa kuvunja lugha katika viwango. Katika moja ya uainishaji unaotolewa na kiwango cha SQL, lugha hii imegawanywa katika "msingi" (kuingia), "kati" (kati) na "kamili" ngazi. Kiwango cha msingi cha ina takriban amri arobaini ambazo zinaweza kuwekwa katika makundi kulingana na utendaji wao.

UNDA Maelezo ya JEDWALI (NOMZ INT, JINA KAMILI CHAR(15), YEAR INT, JINSIA CHAR(3))

Drop TABLE Maelezo

Maelezo ya JEDWALI Alternative (SAMPLE CHAR(10))

TUNZA TAZAMA Maendeleo ya Kielimu M1 KAMA CHAGUA *KUTOKA Utendaji wa Kielimu WAPI KIKUNDI= "M-1"

INGIA KATIKA MAADILI ya Taarifa (980101, "IVANOV I. I.", 1980, "MUME")

FUTA KUTOKA KWA Maelezo AMBAPO NOMZ=980201

SASISHA Taarifa WEKA Jina kamili = "KRAVTSOVA I. I." WAPI NOMZ=980201

CHAGUA * KUTOKA KWA Taarifa WAPI JINA KAMILI="SIDOROV S. S." AU JINA KAMILI = "PETROV P. P."

54. Aina za data na misemo Ili kufikia jedwali la uhusiano katika SQL, unahitaji kuandika (taja) amri. CHAGUA (chagua)neno kuu inaambia DBMS ni hatua gani amri hii itafanya. Amri za hoja huanza na neno kuu. Mbali na SELECT, haya yanaweza kuwa maneno UNDA- kuunda, INGIZA-ingiza, FUTA- kufuta, JITOE- kamili, nk.

KUTOKA - neno kuu kama SELECT ambalo linaonekana katika kila amri. Inafuatwa na nafasi na kisha jina la majedwali yanayotumika kama vyanzo vya habari. Majina ya majedwali na sehemu lazima yawe na herufi 1 hadi 18, yaanze na herufi na yasiwe na nafasi au herufi maalum.

WAPI neno kuu likifuatwa na kihusishi—sharti lililowekwa kwenye ingizo la jedwali ambalo ni lazima likidhi ili lijumuishwe katika uteuzi.

AGIZA KWA - upangaji wa rekodi zilizoonyeshwa (Asc - kupanda, Kushuka - kushuka. Ikiwa aina ya kupanga haijabainishwa, basi upangaji hufanyika kwa mpangilio wa kupanda).

CHAR(urefu) TABIA(urefu)Mifuatano ya urefu wa mara kwa mara

INTEGER INTNambari nzima

SMALLINTNambari ndogo

NUMERIC(usahihi, shahada) DECIMAL(usahihi, shahada DEC(usahihi, shahada)Nambari ya uhakika isiyobadilika

FLOAT (usahihi)Nambari ya sehemu inayoelea

Usahihi mara mbilinambari zilizo na kufuli inayoelea, usahihi wa juu

Maneno katika SQL hutumika kubainisha vigezo vya kuchagua data au kufanya shughuli kwenye maadili ambayo yanasomwa kutoka kwa hifadhidata. Maneno ni mlolongo maalum wa mashamba ya database, constants, kazi zilizounganishwa na waendeshaji.

Mara kwa mara hutumika kuonyesha thamani maalum za data. Fasta pointi constants, kwa mfano: 21 -375.18 62.3

Vigezo vya kuelea, kwa mfano: 1.5E7 -3.14E9 2.5E-6 0.783E24

Viunga vya kamba lazima iambatanishwe katika nukuu moja. Mifano ya vipengele vile: "Minsk" "New York" "Ivanov I. I."

Thamani haipo(NULL). SQL inasaidia kushughulikia data iliyokosekana kwa kutumia dhana ya thamani iliyokosekana.

DBMS nyingi zinazoelekezwa kwa SQL zinaunga mkono kinachojulikana kazi za jumla (jumla).. Kazi za jumla zinazotumiwa ni pamoja na zifuatazo:

· COUNT- idadi ya maadili kwenye safu ya meza;

· SUM- jumla ya maadili kwenye safu;

· AVG- maana ya hesabu ya maadili kwenye safu;

· MAX- thamani ya juu katika safu;

· MIN- thamani ya chini katika safu.

Maneno yafuatayo yanaweza kutumika: aina za waendeshaji:

· hesabu: + (nyongeza), - (kutoa), * (kuzidisha), / (mgawanyiko);

· uhusiano: = (sawa), > (zaidi),< (меньше), >= (kubwa kuliko au sawa na),<= (меньше или равно), <>(sio sawa);

· chemsha bongo: NA(mantiki "NA"), AU(mantiki "OR"), HAPANA(kukanusha kimantiki);

56. Amri za Kudhibiti Muamala hukuruhusu kuhakikisha uadilifu wa hifadhidata.

Shughuli ya SQL ni amri kadhaa zinazofuatana za SQL ambazo lazima zitekelezwe kama kitengo kimoja.

Katika lugha ya SQL, usindikaji wa shughuli unatekelezwa kwa kutumia amri mbili - JITOE Na RUSHWA. Wanasimamia mabadiliko yaliyofanywa na kikundi cha timu. Timu JITOE inaripoti kukamilika kwa muamala kwa mafanikio. Inaarifu DBMS kwamba shughuli imekamilika, amri zake zote zimekamilishwa kwa ufanisi, na hakuna kutofautiana kumetokea katika hifadhidata. Timu RUSHWA inaripoti kutofaulu kukamilika kwa shughuli hiyo. Inaarifu DBMS kwamba mtumiaji hataki kukamilisha muamala, na DBMS inapaswa kutupa mabadiliko yoyote yaliyofanywa kwenye hifadhidata kutokana na muamala. Katika hali hii, DBMS inarudisha hifadhidata katika hali iliyokuwa kabla ya shughuli kutekelezwa.

Timu JITOE Na RUSHWA hutumiwa kimsingi katika hali ya programu, ingawa zinaweza pia kutumika kwa maingiliano.

57. Kupata amri za udhibiti Hizi ni amri za kutekeleza majukumu ya usimamizi ambayo hukabidhi au kubatilisha haki (mapendeleo) ya kutumia meza za hifadhidata kwa njia fulani. Kila mtumiaji wa hifadhidata ana haki fulani kuhusiana na vitu vya hifadhidata.

Haki- hizi ni vitendo na kitu ambacho mtumiaji anaweza kufanya. Haki zinaweza kubadilika kwa wakati: za zamani zinaweza kughairiwa, mpya zinaweza kuongezwa. Haki zifuatazo zimetolewa:

Ingiza - haki ya kuongeza data kwenye jedwali;

UPDATE - haki ya kubadilisha data ya jedwali;

FUTA - haki ya kufuta data kutoka kwa meza;

· MAREJEO – haki ya kufafanua ufunguo msingi.

58 Kupachika lugha katika programu za programu.Ili kujengwa ndani Hizi ni amri zilizoundwa ili kutekeleza ufikiaji wa hifadhidata kutoka kwa programu za programu zilizoandikwa kwa lugha maalum ya programu.