Lugha ya programu ya SQL. "Mtumiaji" ni nini? Vikwazo vingine - UNIQUE, DEFAULT, CHECK

Katika sura hii...

  • SQL ni nini
  • Dhana potofu za SQL
  • Angalia viwango tofauti SQL
  • Kupata kujua amri za kawaida Na maneno yaliyohifadhiwa 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, mamilioni ya waandaaji wa programu karibu (na unaweza kuwa mmoja wao) wamezoea kutatua shida kwa utaratibu, kwa hivyo miaka iliyopita Kulikuwa na shinikizo nyingi kuongeza uwezo wa kiutaratibu kwa SQL. Kwa hiyo, sasa imejumuishwa toleo jipya Vipimo vya SQL, SQL:2003, kuna zana za lugha za kitaratibu kama vile vizuizi vya BEGIN, 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 ungependa kuchagua safu mlalo zote kutoka humo zinazolingana na wafanyakazi 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 MFANYAKAZI 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. Katika maombi ya Maisha ya kila siku kawaida angalau baadhi ya miundo hii inahitajika, hivyo SQL ni kweli lugha ndogo data. Hata na nyongeza zilizoonekana katika SQL pamoja na kiwango cha SQL: 1999 na upanuzi wa ziada imeongezwa katika SQL:2003, bado unahitaji kutumia mojawapo ya yafuatayo kwa kushirikiana na SQL kuunda programu kamili. lugha za programu, kama vile S.

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. Ngumu Swali la SQL, ambayo bado 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.

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, yasiwe na nafasi, na Alama maalum uakifishaji. Maneno muhimu hayawezi kutumika kama majina.

52. SQL (Lugha ya Maswali Iliyoundwa) - Lugha Iliyoundwa Maombi-Hii lugha sanifu maombi ya kufanya kazi na hifadhidata za uhusiano data.

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, kukumbusha 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 wanaingia Amri za SQL maingiliano kupata data na kuionyesha kwenye skrini, na pia 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 mtandao wa ndani na seva ya hifadhidata inayohifadhi data iliyoshirikiwa, nk.

55. Uwezo wa lugha Lugha ya SQL, ambayo inatii viwango vya hivi punde vya SQL:2003, SQL:1999, ni lugha tajiri sana na nzuri. 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 kupata jedwali la uhusiano ndani Lugha ya SQL unahitaji kuandika (taja) amri. CHAGUA (chagua)neno kuu inaiambia DBMS ni hatua gani itafanya amri hii. Maombi ya amri huanza 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 - kupanga rekodi zilizoonyeshwa (Asc - kupanda, Kushuka - kushuka. Ikiwa aina ya kupanga haijabainishwa, basi upangaji hutokea 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 iingizwe ndani 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).. Ili kutumika mara kwa mara kazi za jumla Ifuatayo inaweza kujumuishwa:

· COUNT- idadi ya maadili kwenye safu ya meza;

· SUM- jumla ya maadili kwenye safu;

· AVG- maana ya hesabu ya maadili kwenye safu;

· MAXthamani ya juu katika safu;

· MINthamani 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. Inafahamisha 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.

Tafsiri: Alexandr Pyramidin

Makala haya yanakuletea muundo wa lugha ya SQL, pamoja na baadhi ya dhana za jumla kama vile aina za sehemu za data zinaweza kuwa na baadhi ya utata uliopo katika SQL. Sio lazima kukumbuka kila undani uliotajwa katika nakala hii. Huu ni muhtasari mfupi tu; maelezo mengi yametolewa ili uweze kuyarejelea baadaye unapoifahamu lugha.

SQL inafanyaje kazi?

SQL ni lugha iliyoundwa mahsusi kwa hifadhidata za uhusiano (RDBs). Inafanya kazi nyingi ambazo ungelazimika kufanya ikiwa unatumia lugha ya kusudi la jumla kama C. Ili kuunda RDB katika C, itabidi uanze kutoka mwanzo. Unaweza kufafanua kitu kinachoitwa jedwali ambacho kinaweza kukua na kuwa na idadi yoyote ya safu, na kisha kuunda taratibu za ziada za kuingiza na kurejesha maadili.

Ikiwa ungetaka kupata kamba maalum, utahitaji kufuata utaratibu wa hatua kwa hatua kama ufuatao:

  • Fikiria safu ya meza.
  • Angalia ili kuona kama mfuatano huu ni mojawapo ya mifuatano unayohitaji.
  • Ikiwa ni hivyo, ihifadhi mahali fulani hadi jedwali lote limeangaliwa.
  • Angalia ikiwa kuna safu zingine kwenye jedwali.
  • Ikiwa zipo, rudi kwenye hatua ya 1.
  • Ikiwa hakuna safu zaidi, chapisha maadili yote yaliyohifadhiwa katika hatua ya 3.

(Bila shaka, hii si seti halisi ya amri za C, ni mantiki tu ya hatua ambazo zingejumuishwa katika programu halisi.) SQL itakufanyia haya yote. Amri katika SQL zinaweza kufanya kazi kwenye vikundi vyote vya majedwali kama chombo kimoja na zinaweza kuchakata kiasi chochote cha habari iliyotolewa au inayotolewa kutoka kwao kama kitengo kimoja.

ANSI hufanya nini?

Kama tulivyosema katika Utangulizi, kiwango cha SQL kinafafanuliwa kwa kutumia msimbo wa ANSI (Taasisi ya Viwango ya Kitaifa ya Marekani). SQL haikuvumbuliwa na ANSI. Huu kimsingi ni uvumbuzi wa IBM. Lakini kampuni zingine ziliruka SQL mara moja. Angalau kampuni moja (Oracle) imeshinda haki ya kuuza bidhaa za SQL kutoka IBM.

Baada ya idadi ya programu zinazoshindana za SQL kuonekana kwenye soko, ANSI ilifafanua kiwango ambacho zinapaswa kuzingatiwa. (Kufafanua viwango hivyo ni kazi ya ANSI.) Walakini, baada ya hii, shida kadhaa zilionekana. Ziliibuka kama matokeo ya viwango vya ANSI, kwa namna ya vizuizi kadhaa. Kwa kuwa ANSI haifafanui kila wakati kile ambacho ni muhimu zaidi, programu hujaribu kuendana na kiwango cha ANSI bila kuiruhusu kuziweka kikomo sana. Hii, kwa upande wake, husababisha kutofautiana kwa nasibu. Programu za hifadhidata kwa kawaida huongeza vipengele vya ziada kwa ANSI SQL na mara nyingi hulegeza vikwazo vingi. Kwa hiyo, lahaja za kawaida za ANSI pia zitazingatiwa. Ingawa kwa hakika hatuwezi kuangazia kila ubaguzi au tofauti, mawazo mazuri huwa yanakubaliwa na kutumiwa katika programu mbalimbali, hata kama hayajafafanuliwa na kiwango cha ANSI. ANSI ni aina ya kiwango cha chini kabisa, na unaweza kufanya zaidi ya inavyoruhusu, ingawa ni lazima ufuate miongozo yake unapofanya kazi inazobainisha.

SQL inayoingiliana na iliyoorodheshwa

Kuna SQL mbili: Interactive na Nested. Kwa sehemu kubwa, fomu zote mbili zinafanya kazi sawa, lakini hutumiwa tofauti. Interactive SQL hutumiwa kuendesha moja kwa moja kwenye hifadhidata ili kutoa pato kwa matumizi ya mteja. Katika SQL hii - unapoingiza amri, itatekelezwa mara moja, na unaweza kuona mara moja matokeo (ikiwa ipo).

Nested SQL inajumuisha amri za SQL zilizowekwa ndani ya programu ambazo kwa kawaida huandikwa katika lugha nyingine (kama vile COBOL au PASCAL). Hii inafanya programu hizo kuwa na nguvu zaidi na ufanisi.

Hata hivyo, kuruhusu lugha hizi huja na muundo wa SQL na mtindo wa usimamizi wa data ambao unahitaji viendelezi shirikishi vya SQL. Kupitisha amri za SQL kwenye SQL iliyoorodheshwa "kumepitishwa" kwa vigeu au vigezo vilivyotumiwa na programu ambamo viliwekwa.

Katika kitabu hiki, tutawasilisha SQL kwa njia ya maingiliano. Hii itatupa uwezo wa kujadili amri na matendo yao bila kuwa na wasiwasi kuhusu jinsi yanavyounganishwa na lugha nyingine. Interactive SQL ndio fomu muhimu zaidi kwa wasio waandaaji programu. Kila kitu unachojifunza kuhusu SQL shirikishi kwa ujumla hutumika kwa fomu iliyoorodheshwa. Mabadiliko yanayohitajika ili kutumia fomu iliyoorodheshwa yatashughulikiwa katika sura ya mwisho ya kitabu hiki.

Vifungu vidogo vya SQL

Aina zote mbili zinazoingiliana na zilizoorodheshwa za SQL zina sehemu au vifungu vingi. Kwa kuwa huenda utapata istilahi hii unaposoma SQL, tutatoa ufafanuzi. Kwa bahati mbaya, maneno haya hayatumiki kote katika utekelezaji wote. Zimebainishwa na ANSI na ni muhimu katika kiwango cha dhana, lakini programu nyingi za SQL hazifanyi kazi kivyake, kwa hivyo kimsingi huwa kategoria za utendaji wa amri za SQL.

  • DDL (Lugha ya Ufafanuzi wa Data) - inayoitwa Lugha ya Maelezo ya Schema katika ANSI - inajumuisha amri zinazounda vitu (meza, indexes, maoni, na kadhalika) katika hifadhidata.
  • DML (Lugha ya Udhibiti wa Data) ni seti ya amri zinazoamua ni maadili gani yanawakilishwa katika jedwali wakati wowote.
  • DCD (Lugha ya Kudhibiti Data) inajumuisha zana zinazoamua ikiwa itaruhusu mtumiaji kutekeleza vitendo fulani au la. Wao ni sehemu ya ANSI DDL.

Usisahau majina haya. Hizi si lugha tofauti, lakini sehemu za amri za SQL zilizowekwa kulingana na kazi zao.

Aina Mbalimbali za Data

Sio aina zote za maadili zinazoweza kupatikana katika sehemu za jedwali zinazofanana kimantiki. Tofauti iliyo wazi zaidi ni kati ya nambari na maandishi. Huwezi kuweka nambari kwa mpangilio wa alfabeti au kutoa jina moja kutoka kwa lingine.

Kwa kuwa mifumo ya DDB inategemea uhusiano kati ya vipande vya habari, aina tofauti za data lazima zitofautishwe kutoka kwa kila mmoja ili michakato inayofaa na ulinganisho uweze kufanywa kote. Katika SQL, hii inafanywa kwa kugawa kila sehemu aina ya data inayoonyesha aina ya thamani ambayo sehemu inaweza kuwa nayo. Thamani zote katika sehemu hii lazima ziwe za aina moja. Katika jedwali la Wateja, kwa mfano, cname na jiji zina mistari ya maandishi ya kutathminiwa, na snum na cnum ni nambari. Kwa sababu hii, huwezi kuingiza Thamani ya Juu au Thamani Hakuna katika sehemu ya ukadiriaji, ambayo ni aina ya data ya nambari. Kizuizi hiki ni kizuri kwa sababu kinaweka muundo fulani kwenye data yako. Mara nyingi utakuwa ukilinganisha baadhi au thamani zote katika sehemu fulani, kwa hivyo unaweza kutaka tu kutekeleza kitendo kwenye safu mlalo fulani badala ya zote. Hungeweza kufanya hivi ikiwa thamani za sehemu zilikuwa za aina ya data iliyochanganywa.

Kwa bahati mbaya, kufafanua aina hizi za data ni eneo kuu ambapo programu nyingi za hifadhidata za kibiashara na kiwango rasmi cha SQL hazikubaliani kila wakati. Kiwango cha ANSI SQL kinatambua maandishi na nambari pekee, wakati programu nyingi za kibiashara hutumia aina zingine maalum. Kama vile DATA na TIME, kwa kweli, ni karibu aina za kawaida (ingawa umbizo lao hutofautiana). Vifurushi vingine pia vinaauni aina kama vile PESA na BINARY. (PESA ni mfumo maalum wa "fedha" unaotumiwa na kompyuta.)

Taarifa zote katika kompyuta hupitishwa kwa nambari za binary na kisha kubadilishwa kuwa mifumo mingine ili tuweze kuzitumia na kuzielewa kwa urahisi.

ANSI inafafanua aina kadhaa za nambari, tofauti kati ya ambayo ni ya hila kabisa na wakati mwingine kuchanganyikiwa. Aina za data za ANSI zinazoruhusiwa zimeorodheshwa katika Kiambatisho B. Utata wa aina za nambari za ANSI unaweza kuhusishwa, angalau kwa kiasi, na jitihada za kufanya SQL iliyoorodheshwa ilingane na idadi ya lugha nyingine. Aina mbili za nambari za ANSI, INTEGER na DECIMAL (zinazoweza kufupishwa kama INT na DEC, mtawalia), zitatosha kwa madhumuni yetu, na pia kwa madhumuni ya matumizi mengi ya vitendo ya biashara. Kwa kawaida, aina INTEGER inaweza kuwakilishwa kama DECIMAL NUMBER, ambayo haina tarakimu zozote upande wa kulia wa uhakika wa desimali.

Aina ya maandishi ni CHAR (au CHAR), ikirejelea mfuatano wa maandishi. Sehemu ya CHAR ina urefu uliobainishwa na idadi ya juu zaidi ya herufi zinazoweza kuingizwa kwenye sehemu hiyo. Utekelezaji mwingi pia una aina isiyo ya kawaida inayoitwa VARCHAR, ambayo ni mfuatano wa maandishi na inaweza kuwa ya urefu wowote hadi upeo uliobainishwa wa utekelezaji (kwa kawaida vibambo 254). Thamani za CHARACTER na VARCHAR zimejumuishwa katika nukuu moja kama "maandishi". Tofauti kati ya CHAR na VARCHAR ni kwamba CHAR lazima ihifadhi kumbukumbu ya kutosha kwa urefu wa juu zaidi wa mfuatano, huku VARCHAR ikitenga kumbukumbu inavyohitajika.

Aina za herufi zinajumuisha herufi zote zinazoweza kuchapishwa, ikijumuisha nambari. Walakini, nambari 1 sio sawa na ishara "1". Herufi "1" ni kipande cha maandishi kilichochapishwa tu, ambacho hakijafafanuliwa na mfumo kama thamani ya nambari 1. Kwa mfano, 1 + 1 = 2, lakini "1" + "1" si sawa na "2". Thamani za herufi huhifadhiwa kwenye kompyuta kama maadili ya jozi, lakini huonyeshwa kwa mtumiaji kama maandishi yaliyochapishwa.

Ugeuzaji unafanywa katika umbizo lililobainishwa na mfumo unaotumia. Umbizo hili la ubadilishaji litakuwa mojawapo ya aina mbili za kawaida (ikiwezekana na viendelezi) vinavyotumiwa katika mifumo ya kompyuta: Msimbo wa ASCII (unaotumika katika kompyuta zote za kibinafsi na ndogo) na EBCDIC (Msimbo wa Kubadilishana Taarifa za Desimali Iliyoongezwa) (hutumika katika kompyuta kubwa). Utendaji fulani, kama vile thamani za sehemu za alfabeti, zitabadilika na umbizo.

Ni lazima tufuate soko, si ANSI, katika matumizi ya aina ya DATE. (Kwenye mfumo ambao hautambui aina ya DATE, bila shaka unaweza kutangaza tarehe kama sehemu ya herufi au nambari, lakini hii itafanya shughuli nyingi kuwa za nguvu kazi zaidi.)

Unapaswa kukagua hati zako za kifurushi cha programu ambacho utakuwa ukitumia ili kujua ni aina gani za data zinazotumia.

SQL. Kutopatana.

Unaweza kuelewa kutoka kwa mjadala uliopita kwamba kuna tofauti tofauti kati ya bidhaa za ulimwengu wa SQL. SQL iliibuka kutoka kwa ulimwengu wa hifadhidata ya kibiashara kama zana na baadaye ilitengenezwa kuwa kiwango cha ANSI. Kwa bahati mbaya, ANSI huwa haiamui ni nini kinachofaa zaidi, kwa hivyo programu hujaribu kuendana na kiwango cha ANSI bila kuruhusu iwawekee vikwazo sana. ANSI ni aina ya kiwango cha chini - unaweza kufanya zaidi ya inaruhusu, lakini lazima uweze kupata matokeo sawa wakati wa kufanya kazi sawa.

"MTUMIAJI" NI NINI?

SQL kawaida hukaa kwenye mifumo ya kompyuta ambayo ina watumiaji zaidi ya mmoja na kwa hivyo inahitaji kutofautisha kati yao (familia yako ya Kompyuta inaweza kuwa na idadi yoyote ya watumiaji, lakini kwa kawaida haina njia ya kutofautisha mtumiaji mmoja na mwingine).

Kwa kawaida, katika mfumo kama huo, kila mtumiaji ana aina fulani ya msimbo wa uthibitishaji wa haki unaomtambulisha (istilahi inatofautiana). Mwanzoni mwa kipindi na kompyuta, mtumiaji huingia (kujiandikisha), akiiambia kompyuta ni nani mtumiaji kwa kujitambulisha kwa kutumia kitambulisho maalum. Idadi yoyote ya watu wanaotumia kitambulisho cha ufikiaji ni watumiaji binafsi; na vile vile, mtu mmoja anaweza kuwakilisha idadi kubwa ya watumiaji (kwa nyakati tofauti) kwa kutumia vitambulisho tofauti vya ufikiaji vya SQL. Vitendo katika mazingira mengi ya SQL vimechorwa kwa Kitambulisho mahususi cha Ufikiaji ambacho kinalingana kabisa na mtumiaji mahususi. Jedwali au kitu kingine kinamilikiwa na mtumiaji ambaye ana udhibiti kamili juu yake. Mtumiaji anaweza kuwa na au asiwe na fursa ya kufanya kitendo kwenye kitu. Kwa madhumuni yetu, tutakubali kwamba mtumiaji yeyote ana haki zinazohitajika kufanya kitendo chochote hadi tutakaporejea mahususi kwa majadiliano ya haki katika Sura ya 22. Thamani maalum USER inaweza kutumika kama hoja katika amri. Inaonyesha kitambulisho kinachopatikana cha mtumiaji anayetoa amri.

Mikataba na istilahi

Maneno muhimu ni maneno ambayo yana maana maalum katika SQL. Wanaweza kuwa amri, lakini si maandishi au majina ya kitu. Tutaangazia maneno muhimu kwa kuyaandika katika HERUFI KUBWA. Lazima uwe mwangalifu usichanganye maneno muhimu na maneno.

SQL ina maneno fulani maalum ambayo hutumiwa kuielezea. Miongoni mwao ni maneno kama "swali", "kifungu" na "kitabiri", ambayo ni muhimu zaidi katika maelezo na uelewa wa lugha, lakini haimaanishi chochote huru kwa SQL.

Amri au taarifa ni maagizo ambayo unaweza kupata hifadhidata ya SQL.

Amri huundwa na sehemu moja au zaidi tofauti za kimantiki zinazoitwa vifungu.

Sentensi huanza na neno kuu na inajumuisha maneno na hoja. Kwa mfano, vifungu unavyoweza kukutana nazo ni "KUTOKA kwa Wauzaji" na "WHERE city = "London"". Hoja hukamilisha au kubadilisha maana ya sentensi. Katika mifano iliyo hapo juu, Wauzaji ndio hoja na FROM ni neno kuu la kifungu cha FROM. Vile vile, "city = "London"" ni hoja kwa kifungu cha WHERE.

Vitu ni miundo ya hifadhidata ambayo hupewa majina na kuhifadhiwa kwenye kumbukumbu. Hii inajumuisha majedwali ya msingi, mionekano na faharasa.

Ili kukuonyesha jinsi timu zinavyoundwa, tutafanya hivi kwa mifano. Kuna, hata hivyo, njia rasmi zaidi ya kuelezea amri zinazotumia miiko sanifu. Tutatumia katika sura za baadaye kama urahisi wa kuelewa mikusanyiko hii endapo utakutana nayo katika hati zingine za SQL.

Mabano ya mraba () yataonyesha sehemu ambazo haziwezi kutumika, na duaradufu (...) zinaonyesha kuwa kila kitu kilichotangulia kinaweza kurudiwa idadi yoyote ya nyakati. Maneno katika mabano ya pembe () ni istilahi maalum zinazoelezea ni nini. Tumerahisisha sana istilahi za kawaida za SQL bila kuifanya iwe vigumu kuelewa.

Muhtasari

Tuliangazia kwa ufupi mambo ya msingi katika sura hii. Lakini nia yetu ilikuwa kufunika haraka misingi ya SQL ili uweze kufunika wigo mzima wa habari.

Sasa unajua mambo machache kuhusu SQL: muundo wake ni nini, jinsi inavyotumiwa, jinsi inavyowakilisha data na jinsi inavyofafanuliwa (na baadhi ya kutofautiana ambayo huja nayo), baadhi ya kanuni na maneno yanayotumiwa kuzielezea. Hii yote ni habari nyingi sana kwa sura moja; Hatutarajii kukumbuka maelezo haya yote, lakini unaweza kurejelea baadaye ikiwa unahitaji.

Leo, kozi za SQL "kwa dummies" zinazidi kuwa maarufu. Hii inaweza kuelezewa kwa urahisi sana, kwa sababu katika ulimwengu wa kisasa unaweza kupata huduma zinazoitwa "nguvu" za wavuti. Wanatofautishwa na ganda linaloweza kunyumbulika kwa haki na ni msingi wa waandaaji programu wote wanaoanza ambao wanaamua kuweka wakfu tovuti, kwanza kabisa kujiandikisha katika kozi za SQL "kwa dummies".

Kwa nini ujifunze lugha hii?

Kwanza kabisa, SQL inafundishwa ili kuunda zaidi aina mbalimbali za maombi kwa mojawapo ya injini maarufu za blogu leo ​​- WordPress. Baada ya kukamilisha masomo machache rahisi, utaweza kuunda maswali ya utata wowote, ambayo inathibitisha tu unyenyekevu wa lugha hii.

SQL ni nini?

Au lugha ya uulizaji iliyoundwa, iliundwa kwa kusudi moja: kuamua, kutoa ufikiaji na kuchakata kwa muda mfupi sana. Ikiwa unajua maana ya SQL, basi utaelewa kuwa seva hii imeainishwa kama lugha inayoitwa "isiyo ya kitaratibu". Hiyo ni, uwezo wake unajumuisha tu maelezo ya vipengele au matokeo yoyote ambayo ungependa kuona katika siku zijazo kwenye tovuti. Lakini ni lini haionyeshi ni matokeo gani hasa yatapatikana. Kila ombi jipya katika lugha hii ni kama "muundo mkuu" wa ziada. Ni kwa mpangilio ambao yameingizwa kwenye hifadhidata ambapo maswali yatatekelezwa.

Je, ni taratibu gani zinaweza kufanywa kwa kutumia lugha hii?

Licha ya unyenyekevu wake, hifadhidata ya SQL hukuruhusu kuunda maswali anuwai. Kwa hivyo unaweza kufanya nini ikiwa utajifunza lugha hii muhimu ya programu?

  • kuunda aina mbalimbali za meza;
  • kupokea, kuhifadhi na kurekebisha data iliyopokelewa;
  • badilisha miundo ya meza kwa hiari yako;
  • changanya habari iliyopokelewa katika vitalu moja;
  • kuhesabu data iliyopokelewa;
  • kuhakikisha ulinzi kamili wa habari.

Ni amri gani zinazojulikana zaidi katika lugha hii?

Ikiwa unaamua kuchukua SQL kwa kozi ya Dummies, basi utapokea maelezo ya kina kuhusu amri zinazotumiwa katika kuunda maswali kwa kutumia. Ya kawaida zaidi leo ni:

  1. DDL ni amri inayofafanua data. Inatumika kuunda, kurekebisha na kufuta anuwai ya vitu kwenye hifadhidata.
  2. DCL ni amri inayodhibiti data. Inatumika kuwapa watumiaji tofauti ufikiaji wa habari katika hifadhidata, na pia kutumia majedwali au maoni.
  3. TCL ni timu inayosimamia miamala mbalimbali. Kusudi lake kuu ni kuamua maendeleo ya shughuli.
  4. DML - inasimamia data iliyopokelewa. Kazi yake ni kuruhusu mtumiaji kuhamisha taarifa mbalimbali kutoka kwa hifadhidata au kuziingiza hapo.

Aina za marupurupu zilizopo katika seva hii

Haki hurejelea vitendo ambavyo mtumiaji fulani anaweza kufanya kwa mujibu wa hali yake. Kidogo zaidi, bila shaka, ni kuingia mara kwa mara. Bila shaka, marupurupu yanaweza kubadilika baada ya muda. Za zamani zitafutwa na mpya zitaongezwa. Leo, wale wote wanaochukua kozi za SQL Server "kwa dummies" wanajua kuwa kuna aina kadhaa za vitendo vinavyoruhusiwa:

  1. Aina ya kitu - mtumiaji anaruhusiwa kutekeleza amri yoyote tu kuhusiana na kitu maalum ambacho kiko kwenye hifadhidata. Wakati huo huo, marupurupu yanatofautiana kwa vitu tofauti. Pia wamefungwa sio tu kwa mtumiaji fulani, bali pia kwa meza. Ikiwa mtu, kwa kutumia uwezo wake, aliunda meza, basi anachukuliwa kuwa mmiliki wake. Kwa hiyo, ana haki ya kuwapa fursa mpya kwa watumiaji wengine kuhusiana na habari ndani yake.
  2. Aina ya mfumo ni ile inayoitwa hakimiliki ya data. Watumiaji ambao wamepokea marupurupu kama haya wanaweza kuunda vitu anuwai kwenye hifadhidata.

Historia ya SQL

Lugha hii iliundwa na Maabara ya Utafiti ya IBM mnamo 1970. Wakati huo, jina lake lilikuwa tofauti kidogo (SEQUEL), lakini baada ya miaka michache ya matumizi ilibadilishwa, kufupisha kidogo. Licha ya hili, hata leo wataalam wengi wa programu maarufu duniani bado hutamka jina kwa njia ya zamani. SQL iliundwa kwa lengo moja - kuvumbua lugha ambayo ingekuwa rahisi sana kwamba hata watumiaji wa kawaida wa Mtandao wangeweza kujifunza bila matatizo yoyote. Ukweli wa kuvutia ni kwamba wakati huo SQL haikuwa lugha hiyo pekee. Huko California, kikundi kingine cha wataalam kilitengeneza Ingres kama hiyo, lakini haikuenea kamwe. Kabla ya 1980, kulikuwa na tofauti kadhaa za SQL ambazo zilikuwa tofauti kidogo kutoka kwa kila mmoja. Ili kuzuia kuchanganyikiwa, toleo la kawaida liliundwa mwaka wa 1983, ambalo bado linajulikana leo. Kozi za SQL "kwa dummies" hukuruhusu kujifunza mengi zaidi juu ya huduma na kuisoma kikamilifu katika wiki chache.

Leo tutageuka kwenye mada ya kompyuta, hivyo makala hii itakuwa ya riba hasa, kwanza kabisa, kwa watengeneza programu. Sisi, msomaji mpendwa, tutazungumza juu ya lugha ya maswali yaliyopangwa, ambayo kwa Kiingereza imesimbwa kama SQL (Lugha ya Maswali Iliyoundwa). Kwa hiyo, tufike kwenye uhakika. Hivi sasa hebu tuzungumze juu ya SQL ni nini na inahitajika kwa nini.

Lugha ya Maswali Iliyoundwa ni lugha ya ulimwengu wote ya kuunda, kurekebisha, na kudhibiti habari ambayo ni sehemu ya hifadhidata za uhusiano. Hapo awali, SQL ilikuwa njia kuu ya kufanya kazi na data. Kwa kuitumia, mtumiaji anaweza kufanya vitendo vifuatavyo:

  • kuunda jedwali mpya katika hifadhidata (DB);
  • kuongeza rekodi mpya kwenye meza zilizopo;
  • rekodi za uhariri;
  • ufutaji kamili wa kumbukumbu;
  • kuchagua rekodi kutoka kwa meza tofauti kwa mujibu wa masharti maalum;
  • kubadilisha muonekano na miundo ya meza moja au zaidi.

Ilivyokua, SQL ilibadilika sana na ikaboreshwa na kazi mpya muhimu, kama matokeo ambayo ilianza kuonekana zaidi na zaidi kama lugha halisi ya programu. Leo, SQL ndiyo utaratibu pekee unaoweza kuunganisha programu ya programu na hifadhidata. Hiyo ndivyo SQL ilivyo.

SQL ina aina kadhaa za maswali. Inafaa kumbuka kuwa swala lolote la SQL linamaanisha ombi la data kutoka kwa hifadhidata inayohitajika, au ufikiaji wa hifadhidata na mabadiliko ya lazima ya data ndani yake. Katika suala hili, ni kawaida kutofautisha aina zifuatazo za maombi:

  • kuunda au kubadilisha vitu vipya au vilivyopo kwenye hifadhidata;
  • kupokea data;
  • kuongeza data mpya kwenye meza;
  • kufuta data;
  • upatikanaji wa mfumo wa usimamizi wa hifadhidata (DBMS).

Kidogo kuhusu faida na hasara za mfumo huu wa usindikaji wa data.

Faida za SQL

  • Kujitegemea kutoka kwa DBMS iliyopo katika mfumo uliopewa. Maandishi ya SQL ni ya ulimwengu kwa DBMS nyingi. Hata hivyo, sheria hii inatumika kwa kazi rahisi zinazohusiana na usindikaji data katika meza.
  • Uwepo wa viwango vya SQL husaidia "kuimarisha" lugha.
  • Kutangaza. Faida hii ni kwamba wakati wa kufanya kazi na data, programu huchagua tu habari ambayo inahitaji kubadilishwa au kurekebishwa. Jinsi hii itafanywa ni kuamua moja kwa moja katika ngazi ya programu ya DBMS yenyewe.

Hasara za SQL

  • SQL haifuati mfano wa data ya uhusiano. Katika suala hili, SQL inachukua nafasi ya lugha ya Mafunzo ya D, ambayo ina uhusiano wa kweli.
  • Ugumu wa SQL huamua kusudi lake. Lugha ni ngumu sana hivi kwamba ni programu tu anayeweza kuitumia. Ingawa awali ilibuniwa kama zana ya kudhibiti ambayo mtumiaji wastani angefanya nayo kazi.
  • Baadhi ya kutofautiana kwa viwango. Makampuni mengi yanayotengeneza DBMS huongeza vipengele vyao wenyewe kwa lahaja ya lugha ya SQL, ambayo huathiri kwa kiasi kikubwa umoja wa lugha.

Jambo la mwisho: SQL Server ni nini? Huu ni mfumo wa usimamizi wa hifadhidata ambao ulitengenezwa ndani ya kuta za kampuni maarufu ya Microsoft. Mfumo huu unafanya kazi kwa mafanikio na hifadhidata za kompyuta za kibinafsi za nyumbani na hifadhidata kubwa za biashara kubwa. Katika sehemu hii ya soko, Seva ya SQL ni zaidi ya ushindani.

Kweli, hebu tukumbuke MySQL kwa kifupi. Programu hii kwa kawaida hutumiwa kama seva inayopokea maombi kutoka kwa wateja wa karibu au wa mbali. MySQL pia inaweza kujumuishwa katika programu za kujitegemea. Ikumbukwe kwamba programu tumizi hii ni mojawapo ya mifumo inayoweza kunyumbulika zaidi ya usimamizi wa data, kwani inajumuisha aina nyingi tofauti za majedwali.