Lugha ya uulizaji iliyopangwa ya SQL inategemea calculus ya uhusiano yenye maandishi tofauti. Lugha ya SQL imeundwa kufanya shughuli kwenye majedwali, kuunda, kufuta, kubadilisha muundo, na data ya meza, kuchagua, kubadilisha, kuongeza na kufuta, pamoja na baadhi ya shughuli zinazohusiana. SQL ni lugha isiyo ya kiutaratibu na haina taarifa za udhibiti wa kupanga taratibu, ingizo, matokeo, n.k.
Shiriki kazi yako kwenye mitandao ya kijamii
Ikiwa kazi hii haikufaa, chini ya ukurasa kuna orodha ya kazi zinazofanana. Unaweza pia kutumia kitufe cha kutafuta
Lugha ya swali iliyopangwa SQL: historia, viwango,
Waendeshaji lugha za kimsingi.
Lugha ya uulizaji iliyopangwa ya SQL inategemea calculus ya uhusiano yenye maandishi tofauti. Lugha ina viwango kadhaa. Lugha ya SQL imeundwa kufanya shughuli kwenye meza (kuunda, kufuta, kubadilisha muundo) na kwenye data ya meza (kuchagua, kurekebisha, kuongeza na kufuta), pamoja na baadhi ya shughuli zinazohusiana. SQL ni lugha isiyo ya kiutaratibu na haina taarifa za udhibiti, shirika ndogo, ingizo-pato, n.k. Katika suala hili, SQL haitumiki kwa uhuru; kawaida huingizwa katika mazingira ya lugha ya programu ya DBMS iliyojengwa (kwa mfano, FoxPro DBMS Visual FoxPro, ObjectPAL DBMS Paradox, Visual Basic for Applications Access DBMS).
Katika DBMS za kisasa zilizo na kiolesura shirikishi, unaweza kuunda hoja kwa kutumia zana zingine, kama vile QBE. Hata hivyo, matumizi ya SQL mara nyingi yanaweza kuboresha ufanisi wa usindikaji wa data katika hifadhidata. Kwa mfano, unapotayarisha swali katika mazingira ya Ufikiaji, unaweza kuhama kutoka kwa dirisha la Muundaji wa Hoji (kuunda sampuli ya swali katika lugha ya QBE) hadi kwenye dirisha lenye taarifa sawa ya SQL. Katika baadhi ya matukio, kuandaa swali jipya kwa kuhariri lililopo ni rahisi kufanya kwa kubadilisha taarifa ya SQL. Muundo wa taarifa za SQL unaweza kutofautiana kidogo katika DBMS tofauti. Lugha ya SQL haina kazi za lugha kamili ya maendeleo, lakini inalenga upatikanaji wa data, kwa hiyo imejumuishwa katika zana za maendeleo ya programu. Katika kesi hii inaitwa SQL iliyoingia. Kiwango cha lugha ya SQL kinaungwa mkono na utekelezaji wa kisasa wa lugha zifuatazo za programu: PL/1, Ada, C, COBOL, Fortran, MUMPS na Pascal.
Katika mifumo maalum ya ukuzaji wa programu ya aina ya seva ya mteja, mazingira ya programu, kwa kuongezea, kawaida huongezewa na zana za mawasiliano (kuanzisha na kukata unganisho na seva za hifadhidata, kugundua na kusindika makosa yanayotokea kwenye mtandao, n.k.), zana za kukuza. violesura vya mtumiaji, zana za kubuni na utatuzi Kuna njia mbili kuu za kutumia SQL iliyopachikwa: tuli na yenye nguvu. Unapotumia lugha ya kitabia (SQL tuli), maandishi ya programu huwa na simu kwa vitendaji vya lugha ya SQL, ambazo zimejumuishwa kwa uthabiti kwenye moduli inayoweza kutekelezwa baada ya kukusanywa.
Mabadiliko katika vitendaji vinavyoitwa yanaweza kuwa katika kiwango cha vigezo vya simu za kibinafsi kwa kutumia vigezo vya lugha ya programu. Wakati wa kutumia lugha dynamically (dynamic SQL), ni kudhani kuwa wito kwa kazi SQL ni kujengwa dynamically na tafsiri ya simu hizi, kwa mfano, kupata data kutoka database kijijini, wakati wa utekelezaji wa programu. Njia inayobadilika hutumiwa katika hali ambapo programu haijui aina ya simu ya SQL mapema na inaundwa kwa mazungumzo na mtumiaji. Kusudi kuu la lugha ya SQL (pamoja na lugha zingine za kufanya kazi na hifadhidata) ni kuandaa na kutekeleza maswali. Kurejesha data kutoka kwa jedwali moja au zaidi kunaweza kusababisha seti ya rekodi inayoitwa mtazamo. Mtazamo kimsingi ni jedwali ambalo hutolewa kama matokeo ya swali. Tunaweza kusema kuwa ni aina ya swala iliyohifadhiwa. Unaweza kuunda maoni mengi kwa kutumia majedwali sawa. Mtazamo wenyewe unaelezewa kwa kubainisha kitambulisho cha kutazama na ombi ambalo lazima lifanywe ili kuipata.
Kwa urahisi wa kufanya kazi na maoni, dhana ya mshale ilianzishwa katika lugha ya SQL. Mshale ni aina ya kielekezi kinachotumiwa kupitia seti za rekodi wakati wa kuzichakata. Maelezo na matumizi ya mshale katika SQL ni kama ifuatavyo. Katika sehemu ya maelezo ya programu, kielekezi cha aina tofauti (CURSOR) kinahusishwa na taarifa ya SQL (kawaida taarifa ya SELECT). Katika sehemu ya utekelezaji ya programu, mshale unafunguliwa (OPEN<имя курсора>), kusonga mshale kupitia rekodi (FETCH<имя курсора>...), ikifuatiwa na uchakataji ufaao, na hatimaye kufunga kishale (CLOSE<имя курсора>).
Waendeshaji lugha za kimsingi
Hebu tueleze sehemu ndogo ya lugha ya SQL, kulingana na utekelezaji wake katika kiolesura cha kawaida cha ODBC (Open Database Connectivity) kutoka kwa Microsoft. Waendeshaji lugha wa SQL wanaweza kugawanywa katika vijilugha vidogo viwili: Lugha ya Ufafanuzi wa Data (DDL) na Lugha ya Udhibiti wa Data (DML). Waendeshaji wakuu wa lugha za SQL wamewasilishwa kwenye jedwali.
Wacha tuchunguze muundo na uwezo wa kimsingi wa waendeshaji muhimu zaidi, isipokuwa waendeshaji maalum waliowekwa alama kwenye jedwali na ishara "*". Tutaacha utendakazi na vipengele vya sintaksia visivyo muhimu (kwa mfano, sheria iliyopitishwa katika mifumo mingi ya programu kuweka ";" mwishoni mwa opereta).
1. Opereta kuunda mezaina umbizo:
TENGENEZA JEDWALI<имя таблицы>
(<имя столбца> <тип данных>
[,<имя столбца> <тип данных> ]...)
Operesheni zinazohitajika za opereta ni jina la jedwali linaloundwa na jina la angalau safu wima moja (uga) inayoonyesha aina ya data iliyohifadhiwa katika safu wima hii.
Wakati wa kuunda meza, sheria zingine za ziada za kudhibiti maadili yaliyowekwa ndani yao zinaweza kubainishwa kwa uwanja wa mtu binafsi. Muundo wa NOT NULL hutumikia kusudi hili kwa usahihi na, kwa safu wima ya jedwali, inamaanisha kuwa thamani lazima ifafanuliwe katika safu wima hiyo.
Taarifa za SQL
Tazama |
Jina |
Kusudi |
TENGENEZA JEDWALI DONDOSHA TABLE MEZA BADILISHA TUNZA INDEX DONDOSHA INDEX TENGENEZA TAZAMA ONDOA TAZAMA KUBWA* KUBATISHA* |
kuunda meza kufuta meza kubadilisha muundo wa meza uundaji wa index kufuta index kuunda mtazamo kufuta mwonekano kupeana mapendeleo kuondolewa kwa marupurupu |
|
CHAGUA HABARI INGIZA FUTA |
rekodi za sampuli kubadilisha rekodi kuingiza rekodi mpya kufuta maingizo |
Kwa ujumla, DBMS tofauti zinaweza kutumia aina tofauti za data. Kiolesura cha ODBC kinaauni aina zake za data za kawaida, kwa mfano, zile za herufi (SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR), n.k. Unapofanya kazi na hifadhidata ya DBMS fulani kupitia kiolesura cha ODBC, aina za data za kawaida zinazoungwa mkono na kiolesura hubadilishwa kiotomatiki. katika aina za data chanzo na kinyume chake. Ikiwa ni lazima, ubadilishanaji wa data kati ya programu na chanzo cha data unaweza kufanywa bila ubadilishaji katika umbizo la data la ndani la chanzo.
Mfano 1 . Kuunda meza.
Tuseme unataka kuunda jedwali la bidhaa zinazoelezea bidhaa ambazo zina nyanja zifuatazo: aina ya bidhaa, kitambulisho cha comp_id cha kampuni ya utengenezaji, jina la bidhaa na bei ya bidhaa. Taarifa ya ufafanuzi wa jedwali inaweza kuonekana kama hii:
UTENGENEZA bidhaa za TABLE (aina SQL_CHAR(8) SIO NULL,
comp_id SQL_CHAR(10) NOT NULL, jina SQL_VARCHAR(20),
bei SQL_DECIMAL(8,2)).
2. Opereta mabadiliko ya muundo wa mezaina umbizo:
MEZA BADILISHA<имя таблицы>
((ONGEZA, BADILISHA, ONDOA)<имя столбца> [<тип данных>]
[,(ONGEZA, REKEBISHA, ONDOA)<имя столбца> [<тип данных>]]...)
Kubadilisha muundo wa jedwali kunaweza kujumuisha kuongeza (ADD), kubadilisha (MODIFY) au kuondoa (DROP) safu wima moja au zaidi za jedwali. Kanuni za kuandika taarifa ya TABLE Alternative ni sawa na taarifa ya CREATE TABLE. Wakati wa kufuta safu, onyesha<тип данных>hakuna haja.
3. Opereta kufuta mezaina umbizo:
DONDOSHA TABLE<имя таблицы>
Opereta inakuwezesha kufuta meza iliyopo. Kwa mfano, ili kufuta meza yenye jina la vitu, inatosha kuandika taarifa kama: vitu vya DROP TABLE.
4. Opereta kuunda indexina umbizo:
TUNZA INDEX< имя индекса >
WASHA< имя таблицы >
(<имя столбца>[ASC | DESC]
[,<имя столбца>[ASC | DESC]...)
Opereta hukuruhusu kuunda faharisi kwenye safu wima moja au zaidi za jedwali fulani ili kuharakisha utekelezaji wa hoja na shughuli za utaftaji kwenye jedwali. Unaweza kuunda faharasa nyingi kwenye jedwali moja. Kwa kubainisha chaguo la hiari la UNIQUE, unaweza kuhakikisha kwamba thamani katika safu wima zote zilizobainishwa katika taarifa ni za kipekee. Kimsingi, kuunda faharisi kwa kutumia sifa ya UNIQUE inamaanisha kufafanua ufunguo kwenye jedwali lililoundwa hapo awali. Unapounda faharasa, unaweza kuweka thamani katika safu wima ili kupangwa kiotomatiki kwa mpangilio wa kupanda ASC (chaguo-msingi), au mpangilio wa kushuka wa DESC. Unaweza kuweka mpangilio tofauti wa safu wima tofauti.
5. Opereta kufuta indexina umbizo:
DONDOSHA INDEX<имя индекса>
Opereta huyu hukuruhusu kufuta faharisi iliyoundwa hapo awali na jina linalolingana. Kwa hivyo, kwa mfano, kuharibu faharisi kuu_indx kwenye jedwali la emp, inatosha kuandika taarifa ya DROP INDEX main_indx.
6. Opereta kuunda mtazamoina umbizo:
TENGENEZA TAZAMA<имя представления>
[(<имя столбца> [,<имя столбца> ]...)]
AS<оператор SELECT>
Opereta hii inakuwezesha kuunda mtazamo. Ikiwa majina ya safu wima hayajabainishwa katika mwonekano, majina ya safu wima kutoka kwa hoja iliyofafanuliwa na taarifa inayolingana ya CHAGUA yatatumika.
7. Futa operator uwakilishi una muundo ufuatao:
ONDOA TAZAMA<имя представления>
Opereta hukuruhusu kufuta mwonekano ulioundwa hapo awali. Kumbuka kwamba unapofuta mtazamo, meza zinazoshiriki katika swali hazifutwa. Kuondoa uwakilishi wa gerg hufanywa na opereta wa fomu: DROP VIEW repr.
8. Opereta wa uteuzi wa rekodi ina umbizo:
CHAGUA
< список данных >
KUTOKA<список таблиц>
... ]
...]
Hii ndiyo taarifa muhimu zaidi ya taarifa zote za SQL. Utendaji wake ni mkubwa sana. Wacha tuangalie zile kuu. Taarifa ya SELECT hukuruhusu kuchagua na kufanya mahesabu kwenye data kutoka kwa jedwali moja au zaidi. Matokeo ya taarifa ni jedwali la majibu, ambalo linaweza kuwa na au lisiwe na safu mlalo (DISTINCT) nakala. Kwa chaguo-msingi, safu mlalo zote, ikijumuisha nakala rudufu, zimejumuishwa kwenye jedwali la majibu. Uteuzi wa data unahusisha rekodi kutoka kwa jedwali moja au zaidi zilizoorodheshwa katika orodha ya operesheni ya FROM. Orodha ya data inaweza kuwa na majina ya safu wima zinazoshiriki katika hoja, pamoja na maneno juu ya safu wima. Katika hali rahisi, misemo inaweza kuwa na majina ya safuwima, alama za hesabu (+, , *, /), viunga, na mabano. Ikiwa usemi umeandikwa katika orodha ya data, basi pamoja na uteuzi wa data, mahesabu yanafanywa, matokeo ambayo huanguka kwenye safu mpya (iliyoundwa) ya meza ya majibu. Unapotumia majina ya safu wima ya jedwali kadhaa kwenye orodha za data, muundo wa fomu hutumiwa kuonyesha kuwa safu ni ya jedwali fulani:<имя таблицы>.<имя столбца>.
Operesheni ya WAPI inabainisha masharti ambayo ni lazima yatimizwe na rekodi kwenye jedwali linalotokana. Kujieleza<условие выборки>ni Boolean. Vipengele vyake vinaweza kuwa majina ya safu, shughuli za kulinganisha, shughuli za hesabu, viunganishi vya kimantiki (NA, AU, SIO), mabano, kazi maalum LIKE, NULL, IN, nk. Operesheni ya GROUP BY hukuruhusu kuchagua vikundi katika seti inayotokana ya rekodi.
9. Opereta rekodi mabadilikoina umbizo:
UPDATE<имя таблицы>
WEKA<имя столбца> = {<выражение>, NULL )
[, SET<имя столбца> = {<выражение>, NULL)... ]
Utekelezaji wa taarifa ya UPDATE inajumuisha kubadilisha maadili katika safu wima za jedwali zilizoainishwa na operesheni ya SET kwa rekodi hizo ambazo zinakidhi hali iliyoainishwa na operesheni ya WHERE. Thamani mpya za sehemu katika rekodi zinaweza kuwa tupu (NULL) au kuhesabiwa kulingana na usemi wa hesabu. Sheria za kuandika maneno ya hesabu na mantiki ni sawa na sheria zinazofanana za taarifa ya SELECT.
10. Opereta kuingiza rekodi mpyaina aina mbili za muundo:
INGIA NDANI<имя таблицы>
[(<список столбцов>)]
THAMANI (<список значений>)
INGIA NDANI<имя таблицы>
[(<список столбцов>)]
<предложение SELECT>
Katika umbizo la kwanza, taarifa ya INSERT inatumika kuingiza rekodi mpya zilizo na maadili maalum kwenye safuwima. Mpangilio wa kuorodhesha majina ya safu wima lazima ulingane na mpangilio wa thamani zilizoorodheshwa katika orodha ya operesheni ya VALUES. Kama<список столбцов>imeachwa, kisha ndani<списке значений>Thamani zote lazima ziorodheshwe kwa mpangilio wa safu wima za muundo wa jedwali.Katika umbizo la pili, taarifa ya INSERT imekusudiwa kuingiajedwali fulani la safu mlalo mpya zilizochaguliwa kutoka kwa jedwali linginekwa kutumia kifungu cha CHAGUA.
UKURASA WA 1
Kazi zingine zinazofanana ambazo zinaweza kukuvutia.vshm> |
|||
16. | Jifunze misingi ya lugha ya swali iliyopangwa T-SQL | 34.15 KB | |
Ili kufikia lengo hili, ni muhimu kutatua kazi zifuatazo: kuunda maswali ya uteuzi kutoka kwa meza kadhaa katika lugha ya SQL kwa kutumia vigezo maalum vya uteuzi; unda swali la uteuzi katika SQL iliyo na kazi za jumla za tuli; tengeneza swali ambalo linachanganya matokeo ya hoja mbili au zaidi katika seti moja ya matokeo kwa kutumia amri ya UNION. Kama matokeo ya kukamilisha kazi, wanafunzi wanapaswa kujua: kategoria za amri za SQL; amri za msingi za SQL zinazotumiwa kujenga hoja; kanuni za kuunda maswali ya SQL ... | |||
6030. | LUGHA IKIWA NI JAMBO LINALOENDELEA. MAMBO YA NJE NA YA NDANI YA MAENDELEO YA LUGHA | KB 17.38 | |
Tatizo la asili ya lugha linahusisha maswali mawili. Swali la kwanza linahusiana na tatizo la asili ya lugha kwa ujumla, jinsi lugha ya binadamu ilivyokua, jinsi mtu alivyojifunza kuzungumza lugha ya pili yenye asili ya kila lugha. Hakuna ushahidi wa kipindi hiki kilichohifadhiwa, kwa hivyo, wakati wa kusoma asili ya lugha kwa ujumla, wanaisimu wanapaswa kufanya kazi sio tu na ukweli wa lugha bali pia na data kutoka kwa sayansi zinazohusiana. Kuvutiwa na shida ya asili ya lugha kulitokea muda mrefu uliopita. | |||
10870. | Viunganisho vya kitabia vya kozi "Lugha ya Kitaalam ya Kirusi". Mabadiliko na utofautishaji wa lugha ya kitaalam ya Kirusi | KB 10.57 | |
Mabadiliko na tofauti ya lugha ya kitaaluma ya Kirusi 1. Mabadiliko na tofauti ya lugha ya kitaaluma ya Kirusi. Kanuni za kisintaksia zimedhamiriwa na muundo wa lugha na, kama kanuni zingine za orthoepic, lexical na morphological, hupitia mabadiliko katika mchakato wa ukuzaji wa lugha. Wakati wa kusimamia syntax ya lugha isiyo ya asili, kuna shida kadhaa zinazotokea wakati wa kuchagua aina za udhibiti na kuratibu ujenzi wa sentensi, kwa kutumia vihusishi, kuchagua kihusishi sahihi, na kadhalika. | |||
6929. | Historia ya lugha ya Delphi | KB 13.01 | |
Delphi ni mji wa Kigiriki ambapo eneo la Delphic liliishi. Delphi ni muunganiko wa teknolojia kadhaa muhimu: Kikusanyaji cha utendaji wa juu kwa msimbo wa mashine Kielelezo chenye mwelekeo wa kitu cha vipengele Visual na hivyo basi ujenzi wa kasi ya juu wa utumaji programu kutoka kwa prototypes za programu Zana zinazoweza kupanuka za kuunda hifadhidata Mkusanyaji hadi msimbo wa mashine Mkusanyaji uliojengwa ndani ya Delphi hutoa utendaji wa juu muhimu kwa ajili ya maombi ya ujenzi katika usanifu ... | |||
10869. | Dhana za "lugha ya kitaalam", "lugha ya utaalam", utofautishaji wao. Lugha ya kitaalam ya Kirusi: asili yake, kazi, wigo wa kufanya kazi (kwa kuzingatia maalum ya utaalam) | KB 9.5 | |
Utofautishaji wa lugha. Kila taaluma ya kiuchumi, pamoja na lugha ya kawaida kwa wanauchumi wote, pia ina lugha yake maalum na maalum. Wataalamu wanawasiliana kwa lugha hizi za kitaalam kwa mdomo na kwa maandishi; lugha hizi za kitaalam hufundishwa kwa wanafunzi; lugha kama hizo za kitaalam zinaelezea mifumo ya maarifa na ustadi katika kumbukumbu ya kisayansi ya kielimu na fasihi zingine. Katika mfumo wa lugha ya kiuchumi, kuna matatizo ya kawaida kwa lugha zote za kitaaluma. | |||
1335. | Miundo ya msingi ya kuunda maneno katika Kiingereza cha kisasa cha Marekani | KB 117.01 | |
Tofauti kuu kati ya Kiingereza cha Amerika na Uingereza. Shida ya kuamua hali ya ulimwengu ya Kiingereza cha Amerika. Kiingereza cha Amerika katika ulimwengu wa kisasa. Vipengele vya Lexical vya Kiingereza cha Amerika. | |||
1936. | HISTORIA, MUUNDO NA DHANA ZA MSINGI ZA IKOLOJIA | KB 495.77 | |
Neno "ikolojia" limeundwa kutoka kwa mizizi ya Kigiriki "oikos" - nyumbani, mazingira ya karibu ya mtu na "nembo" - sayansi. Kwa hiyo, kwa maana halisi, ikolojia ni sayansi ya viumbe, ikiwa ni pamoja na wanadamu, wanaozingatiwa ndani ya mipaka ya nyumba zao, kwa uangalifu maalum unaolipwa kwa asili ya mahusiano kati ya viumbe na mazingira yao. | |||
17746. | Pedagogy ya sanaa nzuri: historia na mwenendo kuu wa maendeleo | KB 25.96 | |
Kazi ya mtihani ni kuzingatia dhana ya ubunifu wa kisanii wa watoto, kutambua utafiti wa walimu bora na wanasaikolojia na historia ya malezi ya ubunifu wa kisanii wa watoto. Udhihirisho wa ubunifu wa kisanii unaweza kuwa kazi za kibinafsi - zilizofanywa kwa kujitegemea au chini ya mwongozo wa mtu mzima, michoro, modeli, sanaa ya mdomo na maandishi, nyimbo, maigizo, densi, pamoja na kuimba kwaya, maonyesho ya maonyesho, sanaa na ufundi, kuchonga, ukumbi wa michezo ya vikaragosi, filamu zilizochorwa na za uongo, na... | |||
6285. | Kauli za kudhibiti | KB 103.51 | |
Waendeshaji wa Kitanzi Waendeshaji wa kitanzi hutumiwa kupanga hesabu zinazorudiwa. Ili kuandaa kitanzi, unahitaji variable inayoitwa kitanzi parameter au variable kudhibiti kitanzi. Mzunguko wowote una: mipangilio ya awali au kizuizi cha uanzishaji wa parameta ya mzunguko; miili ya kitanzi, yaani, taarifa hizo ambazo zinatekelezwa mara kadhaa; kizuizi cha marekebisho ya parameta ya mzunguko; kuangalia hali ya kutoka kwa kitanzi, ambacho kinaweza kuwekwa mbele ya kitanzi, kisha wanazungumza juu ya kitanzi kilicho na sharti au baada ya mwili ... | |||
2784. | Taarifa za masharti na uteuzi | 16 KB | |
Opereta wa hali Ikiwa. Kwa hiyo, unaweza tayari kuandika waendeshaji kazi wafuatao: Koren:=Sqrtxy; Moduli:=bsxy. Ili kutekeleza kuruka kwa masharti kama hiyo katika lugha ya Pascal, waendeshaji wa If na Else hutumiwa, pamoja na mwendeshaji wa kuruka bila masharti wa Goto. Hebu tuangalie kauli ya If. |
Taarifa za msingi za SQL. Sintaksia na mifano ya kutumia kauli CHAGUA.
Msingi wa lugha ya SQL imeundwa na waendeshaji, kwa masharti kugawanywa katika vikundi kadhaa kulingana na kazi wanazofanya.
Vikundi vifuatavyo vya waendeshaji vinaweza kutofautishwa (sio waendeshaji wote wa SQL walioorodheshwa):
Taarifa za DDL (Lugha ya Ufafanuzi wa Data) - taarifa za kufafanua vitu vya hifadhidata
· UNDA SCHEMA - tengeneza schema ya hifadhidata
· DROP SHEMA - futa schema ya hifadhidata
· UNDA TABLE - tengeneza jedwali
ALTER TABLE - kubadilisha jedwali
· DROP TABLE - futa jedwali
UNDA DOMAIN - unda kikoa
ALTER DOMAIN - badilisha kikoa
· DROP DOMAIN - futa kikoa
· UNDA MCHUNGAJI - tengeneza mlolongo
· DROP COLLATION - futa mlolongo
· UNDA TAZAMA - tengeneza mwonekano
· DROP VIEW - futa mwonekano
Waendeshaji wa DML (Lugha ya Udhibiti wa Data) - waendeshaji wa udanganyifu wa data
· CHAGUA - chagua safu mlalo kutoka kwa majedwali
· WEKA - ongeza safu kwenye jedwali
· UPDATE - badilisha safu mlalo kwenye jedwali
· FUTA - futa safu mlalo kwenye jedwali
JITOKEZE - fanya mabadiliko yaliyofanywa
· RUDISHA - rudisha nyuma mabadiliko yaliyofanywa
Waendeshaji wa ulinzi na usimamizi wa data
· TENGENEZA UHAKIKI - weka kizuizi
· DROP ASSERTION - ondoa kizuizi
· RUZUKU - toa mapendeleo kwa mtumiaji au maombi ya kudhibiti vitu
BATIlisha - batilisha upendeleo wa mtumiaji au programu
Wakati huo huo, kuna makundi ya waendeshaji kwa ajili ya kuweka vigezo vya kikao, kupata taarifa kuhusu hifadhidata, waendeshaji tuli wa SQL, na waendeshaji wa SQL wenye nguvu.
Muhimu zaidi kwa mtumiaji ni taarifa za upotoshaji wa data (DML).
Mifano ya kutumia waendeshaji ghiliba wa data
INSERT - kuingiza safu kwenye jedwali
Mfano 1. Kuingiza safu moja kwenye jedwali:
THAMANI(4, "Ivanov");
UPDATE - kusasisha safu katika jedwali
Mfano 3. Kusasisha safu mlalo nyingi kwenye jedwali:
WEKA PNAME = "Pushnikov"
WAPI P.PNUM = 1;
FUTA - kufuta safu katika jedwali
Mfano 4. Kufuta safu mlalo nyingi kwenye jedwali:
WAPI P.PNUM = 1;
Mifano ya kutumia kauli CHAGUA
Taarifa ya SELECT ndiyo taarifa muhimu zaidi ya mtumiaji na changamano zaidi ya SQL. Imeundwa kurejesha data kutoka kwa majedwali, ᴛ.ᴇ. kwa kweli, hutekeleza moja ya madhumuni ya msingi ya hifadhidata - kutoa taarifa kwa mtumiaji.
Taarifa ya SELECT inatekelezwa kila mara kwenye baadhi ya majedwali ambayo ni sehemu ya hifadhidata.
Maoni. Kwa kweli, katika hifadhidata hakuna meza tu zilizohifadhiwa kwa kudumu, lakini pia meza za muda na kinachojulikana kama maoni. Mionekano ni maneno CHAGUA yaliyohifadhiwa kwenye hifadhidata. Kutoka kwa mtazamo wa mtumiaji, mtazamo ni meza ambayo haijahifadhiwa kabisa kwenye hifadhidata, lakini "inaonekana" inapopatikana. Kwa mtazamo wa taarifa ya SELECT, majedwali na majedwali ya muda yanaonekana sawa kabisa. Kwa kweli, wakati mfumo unatoa taarifa SELECT, tofauti kati ya jedwali zilizohifadhiwa na maoni huzingatiwa, lakini tofauti hizi. siri kutoka kwa mtumiaji.
Matokeo ya kauli SELECT daima ni jedwali. Hata hivyo, kulingana na matokeo ya matendo yake, taarifa ya SELECT ni sawa na waendeshaji wa algebra ya uhusiano. Opereta yeyote wa aljebra lazima aonyeshwe kwa kauli ya KUCHAGUA yenye maneno yanayofaa. Utata wa taarifa ya SELECT imedhamiriwa na ukweli kwamba ina uwezo wote wa algebra ya uhusiano, pamoja na uwezo wa ziada ambao haupo katika algebra ya uhusiano.
CHAGUA Agizo la Utekelezaji wa Taarifa
Ili kuelewa jinsi matokeo ya kutekeleza kauli SELECT hupatikana, fikiria mchoro wa dhana ya utekelezaji wake. Mpango huu ni dhana tu, kwa sababu imehakikishiwa kuwa matokeo yatakuwa sawa na ikiwa yametekelezwa hatua kwa hatua kulingana na mpango huu. Kwa kweli, matokeo halisi yanapatikana kwa algorithms ya kisasa zaidi ambayo DBMS fulani "inamiliki".
Hatua ya 1: Utekelezaji wa Taarifa Moja CHAGUA
Ikiwa opereta ana maneno muhimu UNION, ILA na INTERSECT, hoja imegawanywa katika maswali kadhaa huru, ambayo kila moja inatekelezwa kando:
Hatua ya 1 (KUTOKA). Bidhaa ya Cartesian ya moja kwa moja ya majedwali yote yaliyoainishwa katika sehemu ya lazima ya FROM inakokotolewa. Kama matokeo ya hatua ya 1, tunapata jedwali A.
Hatua ya 2 (WAPI). Iwapo taarifa ya SELECT ina kifungu cha WHERE, basi jedwali A, lililopatikana katika hatua ya 1, linachanganuliwa. Katika kesi hii, kwa kila safu kutoka kwa jedwali A, usemi wa masharti uliotolewa katika kifungu cha WHERE huhesabiwa. Safu mlalo ambazo usemi wa masharti hurejesha TRUE pekee ndizo zimejumuishwa kwenye matokeo. Ikiwa sehemu ya WHERE imeachwa, basi endelea mara moja hadi hatua ya 3. Ikiwa subqueries zilizowekwa kwenye kiota zinahusishwa katika usemi wa masharti, basi zinahesabiwa kwa mujibu wa mpango huu wa dhana. Kama matokeo ya hatua ya 2, tunapata jedwali B.
Hatua ya 3 (KUNDI KWA). Ikiwa taarifa ya SELECT ina sehemu ya KUNDI KWA , basi safu za jedwali B zilizopatikana katika hatua ya pili zinawekwa kulingana na orodha ya vikundi iliyotolewa katika sehemu ya GROUP BY. Ikiwa sehemu ya GROUP BY imeachwa, basi endelea mara moja hadi hatua ya 4. Kama matokeo ya hatua ya 3, tunapata jedwali C.
Hatua ya 4 (KUWA). Iwapo taarifa ya SELECT ina sehemu ya HAVING, basi makundi ambayo hayaridhishi usemi wa masharti uliotolewa katika sehemu ya HAVING hayajajumuishwa. Ikiwa sehemu ya HAVING imeachwa, basi endelea mara moja hadi hatua ya 5. Kama matokeo ya hatua ya 4, tunapata jedwali D.
Hatua ya 5 (CHAGUA). Kila kikundi kilichopatikana katika hatua ya 4 hutoa safu mlalo moja ya matokeo kama ifuatavyo. Vielezi vyote vya kadiri vilivyobainishwa katika sehemu ya SELECT vinatathminiwa. Kulingana na sheria za kutumia GROUP BY kifungu, vielezi kama hivyo vya scalar lazima vifanane kwa safu mlalo zote ndani ya kila kikundi. Kwa kila kikundi, maadili ya kazi za jumla zilizopewa katika sehemu ya SELECT huhesabiwa. Ikiwa hakuna GROUP BY sehemu, lakini kuna kazi za jumla katika sehemu ya SELECT, basi inachukuliwa kuwa kuna kundi moja tu. Ikiwa hakuna sehemu ya GROUP BY wala utendakazi wa jumla, basi inachukuliwa kuwa kuna vikundi vingi kama vile kuna safu mlalo zilizochaguliwa kwa wakati huu. Kama matokeo ya hatua ya 5, tunapata jedwali E, lililo na safu wima nyingi kama idadi ya vipengee vilivyoorodheshwa katika sehemu ya SELECT na safu mlalo nyingi kama idadi ya vikundi vilivyochaguliwa.
Hatua ya 2. Kufanya shughuli za MUUNGANO, ISIPOKUWA, INTERSECT
Ikiwa taarifa ya SELECT ilikuwa na maneno muhimu UNION, EXCEPT na INTERSECT, basi majedwali yaliyopatikana kutokana na hatua ya 1 yanaunganishwa, yamepunguzwa au yamevuka.
Hatua ya 3. Kuagiza matokeo
Ikiwa taarifa ya SELECT ina sehemu ya ORDER BY, basi safu za meza zilizopatikana katika hatua za awali zimeagizwa kwa mujibu wa orodha ya kuagiza iliyotolewa katika sehemu ya ORDER BY.
Taarifa za msingi za SQL. Sintaksia na mifano ya kutumia kauli CHAGUA. - dhana na aina. Uainishaji na vipengele vya kategoria "Waendeshaji Msingi wa SQL. Sintaksia na mifano ya kutumia opereta CHAGUA." 2017, 2018.
Na juu ya data ya meza.
Lugha ya SQL inaitwa iliyojengwa ndani, kwa sababu Ina kazi za lugha kamili ya maendeleo, na inalenga upatikanaji wa data, kwa sababu hiyo ni sehemu ya zana za maendeleo ya maombi. Viwango vya lugha vya SQL vinasaidia lugha za programu Pascal, Fortran, COBOL, C, nk.
Ipo Mbinu 2 za Kutumia SQL Iliyopachikwa:
- tuli matumizi ya lugha ( SQL tuli) - Nakala ya programu ina simu kwa kazi za SQL, ambazo zimejumuishwa kwenye moduli inayoweza kutekelezwa baada ya mkusanyiko.
- yenye nguvu matumizi ya lugha ( SQL yenye nguvu) - ujenzi wa nguvu wa simu za kazi za SQL na tafsiri yao. Kwa mfano, unaweza kufikia data kutoka kwa hifadhidata ya mbali wakati wa utekelezaji wa programu.
Lugha ya SQL (kama lugha zingine za kufanya kazi na hifadhidata) imeundwa kwa ajili ya kuandaa na kutekeleza maswali. Kama matokeo ya kutekeleza swala la data kutoka kwa jedwali moja au zaidi, seti ya rekodi hupatikana, inayoitwa. uwasilishaji.
Ufafanuzi 1
Utendaji ni jedwali linaloundwa kama matokeo ya kutekeleza swala.
Waendeshaji Lugha ya Maswali ya Msingi ya SQL
Waendeshaji lugha za SQL wamegawanywa kwa kawaida 2 lugha ndogo:
- Lugha ya Ufafanuzi wa Data DDL;
- Lugha ya upotoshaji wa data DML.
Katika jedwali, zimewekwa alama * waendeshaji maalum lugha.
Wacha tuangalie taarifa muhimu zaidi za SQL.
Taarifa ya kuunda jedwali:
Jina la jedwali linaloundwa na jina la angalau safu wima moja (uwanja) inahitajika uendeshaji. Kwa jina la safu, lazima ueleze aina ya data ambayo itahifadhiwa ndani yake.
Kwa uwanja wa kibinafsi, unaweza kutaja sheria za ziada za kudhibiti maadili ambayo yameingizwa ndani yao. Kwa mfano, SIYO BATILI inaonyesha kuwa sehemu haiwezi kuwa tupu na lazima ijazwe na thamani.
Mfano 1
Ili kuunda meza vitabu katalogi ya vitabu, ambayo ina sehemu:
aina- aina ya kitabu,
jina- kichwa cha kitabu,
bei- bei ya kitabu
taarifa inaweza kuonekana kama hii:
Opereta ya kubadilisha muundo wa meza:
Wakati wa kubadilisha muundo wa meza, unaweza kuongeza ( ONGEZA), mabadiliko ( BADILISHA) au kufuta ( DONDOSHA) safu wima moja au zaidi za jedwali. Sheria za kurekodi opereta huyu ni sawa na kwa mwendeshaji TENGENEZA JEDWALI. Ili kufuta safu huhitaji kutaja.
Mfano 2
Ili kuongeza kwenye meza vitabu mashamba nambari, ambayo idadi ya vitabu itahifadhiwa, unaweza kuandika operator:
Opereta wa kudondosha jedwali:
Mfano 3
Kwa mfano, kuacha jedwali lililopo linaloitwa vitabu inatosha kutumia opereta:
Opereta wa kuunda index:
Opereta huunda faharasa kwenye safu wima moja au zaidi za jedwali fulani, ambalo linaweza kuharakisha shughuli za kuuliza na kutafuta. Faharasa nyingi zinaweza kuundwa kwa jedwali moja.
Chaguo la hiari KIPEKEE ina jukumu la kuhakikisha kwamba thamani katika safu wima zote ambazo zimebainishwa katika taarifa ni za kipekee.
A.S.C. huweka maadili katika safu ili kupangwa kiotomatiki kwa mpangilio wa kupanda (chaguo-msingi), na DESC- kwa utaratibu wa kushuka.
Opereta ya kushuka kwa index:
Angalia opereta wa uundaji:
Unapounda mwonekano, sio lazima ubainishe majina ya safu wima. Kisha majina ya safu kutoka kwa swala, ambayo yanaelezwa na operator sambamba, yatatumika CHAGUA.
Angalia opereta wa uondoaji:
Rekodi opereta wa uteuzi:
Opereta CHAGUA hufanya sampuli na hesabu kwenye data kutoka kwa jedwali moja au zaidi. Matokeo ya kutekeleza opereta ni jedwali la majibu ambalo lina ( YOTE) au haina ( DISTINCT) mistari inayorudiwa.
Operesheni KUTOKA ina orodha ya majedwali ambayo rekodi huchukuliwa kwa uteuzi wa data.
Opereta wa urekebishaji wa rekodi:
Thamani mpya za uwanja katika rekodi zinaweza zisiwe na maadili ( NULL) au kukokotolewa kulingana na usemi wa hesabu.
Opereta kwa kuingiza rekodi mpya:
Katika rekodi ya kwanza ya waendeshaji INGIZA Rekodi mpya huingizwa na maadili maalum kwenye safuwima.
Katika rekodi ya pili ya operator INGIZA safu mpya zimeingizwa, zimechaguliwa kutoka kwa jedwali lingine kupitia kifungu CHAGUA.
Opereta ya kufuta rekodi:
Kama matokeo ya kutekeleza opereta, safu mlalo zinazokidhi hali iliyoainishwa na operesheni ya hiari hufutwa kutoka kwa jedwali maalum. WAPI. Ikiwa operand WAPI haijabainishwa, rekodi zote za jedwali zinafutwa.
Swali la 1. SQL na historia yake. 1
Swali la 2. Maelezo ya taarifa za msingi za SQL.. 1
Kazi za hesabu. 4
Kazi za usindikaji wa kamba. 5
Kazi maalum. 6
Kazi za kuchakata tarehe... 7
Kutumia utendakazi wa jumla katika hoja. 7
Swali la 1. SQL na historia yake
Njia pekee ya mawasiliano kati ya wasimamizi wa hifadhidata, wabunifu, wasanidi programu na watumiaji walio na hifadhidata ya uhusiano ni lugha ya uulizaji iliyopangwa ya SQL (Lugha ya Maswali Iliyoundwa). SQL ni lugha iliyoangaziwa kamili ya kudhibiti data katika hifadhidata za uhusiano. Kwa sasa, ni kiolesura cha kawaida kinachokubalika kwa hifadhidata za uhusiano kama vile Oracle, Informix, Sybase, DB/2, Seva ya MS SQL na zingine kadhaa (viwango vya ANSI na ISO). SQL ni lugha isiyo ya kiutaratibu ambayo imeundwa kuchakata seti zinazojumuisha safu mlalo na safu wima za majedwali ya hifadhidata ya uhusiano. Ingawa kuna viendelezi vyake vinavyoruhusu usindikaji wa kiutaratibu. Wabuni wa hifadhidata hutumia SQL kuunda vitu vyote halisi vya hifadhidata ya uhusiano.
Misingi ya kinadharia ya SQL iliwekwa katika nakala maarufu ya Codd, ambayo iliweka msingi wa ukuzaji wa nadharia ya hifadhidata za uhusiano. Utekelezaji wa kwanza wa vitendo ulifanyika katika maabara za utafiti za IBM Chamberlin D.D. na Royce R.F. Matumizi ya viwandani ya SQL yalitekelezwa kwanza katika Ingres DBMS. Mojawapo ya DBMS za kwanza za uhusiano wa kiviwanda ni Oracle. Kimsingi, DBMS ya uhusiano ni programu inayosimamia utendakazi wa hifadhidata ya uhusiano.
Kiwango cha kwanza cha kimataifa cha lugha ya SQL kilipitishwa mnamo 1989 (SQL-89). Mwishoni mwa 1992, kiwango kipya cha kimataifa, SQL-92, kilipitishwa. Hivi sasa, wazalishaji wengi wa uhusiano wa DBMS wanaitumia kama msingi. Walakini, kazi ya kusawazisha lugha ya SQL haijakamilika na rasimu ya kiwango cha SQL-99 tayari imetengenezwa, ambayo inaleta dhana ya kitu katika lugha na kuiruhusu kurejelewa katika taarifa za SQL: Katika toleo asili la SQL. hakukuwa na amri za udhibiti wa mtiririko wa data, zilionekana katika ISO/IEC 9075-5: 1996 Supplementary Part SQL iliyopitishwa hivi majuzi.
Kila DBMS maalum ina utekelezaji wake wa SQL, ambayo kwa ujumla inasaidia kiwango fulani, lakini ina sifa zake. Utekelezaji huu huitwa lahaja. Kwa hivyo, kiwango cha 1SO/IEC 9075-5 hutoa vitu vinavyoitwa moduli zinazoendelea zilizohifadhiwa au moduli za PSM (Moduli Zilizohifadhiwa Zinazoendelea). Katika Oracle DBMS, kiendelezi cha PL/SQL ni analogi ya kiendelezi cha kawaida kilicho hapo juu."
Swali la 2. Maelezo ya taarifa za msingi za SQL
SQL ina seti ya maagizo ya kudhibiti data katika hifadhidata ya uhusiano, ambayo hukuruhusu kuunda vitu vya hifadhidata vya uhusiano, kurekebisha data kwenye jedwali (ingiza, futa, sahihisha), badilisha schema za uhusiano wa hifadhidata, fanya mahesabu kwenye data, fanya chaguo kutoka kwa hifadhidata, kudumisha usalama na uadilifu wa data.
Seti nzima ya amri za SQL zinaweza kugawanywa katika vikundi vifuatavyo:
· amri za ufafanuzi wa data (DDL - Lugha ya Ufafanuzi wa Data);
· amri za upotoshaji wa data (DML - Lugha ya Udanganyifu wa Data);
· amri za sampuli za data (DQL - Lugha ya Maswali ya Data);
· amri za usimamizi wa shughuli;
· amri za usimamizi wa data.
Inapotekelezwa, kila amri ya SQL inapitia awamu nne za usindikaji:
· awamu ya uchanganuzi, ambayo inajumuisha kuangalia sintaksia ya amri, kuangalia majina ya majedwali na safu wima kwenye hifadhidata, na kuandaa data ya ingizo kwa ajili ya kiboreshaji;
· awamu ya uboreshaji, ambayo inajumuisha kubadilisha majina halisi ya majedwali na safu za hifadhidata kwenye mwonekano, kubainisha chaguo zinazowezekana za kutekeleza amri, kubainisha gharama ya kutekeleza kila chaguo, na kuchagua chaguo bora zaidi kulingana na takwimu za ndani;
· awamu ya kuzalisha msimbo inayoweza kutekelezwa, ambayo inajumuisha ujenzi wa msimbo wa amri unaoweza kutekelezeka;
· awamu ya utekelezaji wa amri, ambayo inahusisha kutekeleza msimbo wa amri.
Kwa sasa kiboreshaji ni sehemu muhimu ya utekelezaji wowote wa SQL wa viwanda. Kiboreshaji hufanya kazi kwa kukusanya takwimu kuhusu amri inazozitekeleza na kufanya mabadiliko sawa ya aljebra kwenye uhusiano wa hifadhidata. Takwimu hizi zimehifadhiwa katika saraka ya hifadhidata ya mfumo. Katalogi ya mfumo ni kamusi ya data kwa kila hifadhidata na ina taarifa kuhusu majedwali, maoni, faharasa, safu wima, watumiaji na haki zao za ufikiaji. Kila hifadhidata ina katalogi yake ya mfumo, ambayo inawakilisha mkusanyiko wa majedwali ya hifadhidata yaliyofafanuliwa awali.
Jedwali 8.1 lina orodha ya amri za SQL kulingana na kiwango kinachokubalika, isipokuwa baadhi ya amri ambazo kwa kweli hazitumiki katika lahaja.
Jedwali 8.1. Orodha ya kawaida ya amri za SQL
Timu | Maelezo |
Amri za kufafanua data ya kitu | |
MEZA BADILISHA | Hubadilisha maelezo ya jedwali (schema ya uhusiano) |
UNDA TUKIO | Huunda tukio la kipima muda katika hifadhidata |
TUNZA INDEX | Huunda faharasa kwenye jedwali |
UTENGENEZA MFUATANO | Huunda mlolongo |
TENGENEZA JEDWALI | Inafafanua meza |
TENGENEZA MEZA | Itaunda nafasi ya meza |
TENGENEZA TRIGGER | Inaunda kichochezi kwenye hifadhidata |
TENGENEZA TAZAMA | Inafafanua mwonekano kwenye jedwali |
DONDOSHA INDEX | Huondoa faharasa kutoka kwa hifadhidata |
SHUSHA MTANDAO | Hufuta mlolongo |
DONDOSHA TABLE | Huondoa jedwali kutoka kwa hifadhidata |
DONDOSHA MEZA | Inafuta nafasi ya meza |
ONDOA TAZAMA | Hufuta mwonekano |
Amri za Udhibiti wa Data | |
FUTA | Huondoa safu mlalo moja au zaidi kutoka kwa jedwali la hifadhidata |
INGIZA | Huingiza safu mlalo moja au zaidi kwenye jedwali la hifadhidata |
UPDATE | Inasasisha thamani za safu wima katika jedwali la hifadhidata |
Amri za Urejeshaji Data | |
CHAGUA | Hutekeleza hoja ili kupata data kutoka kwa majedwali na mionekano |
MUUNGANO | Inachanganya matokeo ya amri mbili au zaidi CHAGUA katika uteuzi mmoja |
Amri za Udhibiti wa Shughuli | |
JITOE | Hukamilisha muamala na kusasisha hali ya sasa ya hifadhidata |
RUSHWA | Humaliza muamala na kurejesha hali ya sasa ya hifadhidata wakati wa shughuli ya mwisho iliyokamilishwa na kituo cha ukaguzi. |
SAVEPOINT | Huweka kituo cha ukaguzi ndani ya shughuli ya malipo |
Amri za Usimamizi wa Data | |
Alter Database | Hurekebisha vikundi vya hifadhi au kumbukumbu za miamala |
ALTER DBAREA | Hubadilisha ukubwa wa maeneo ya hifadhi ya hifadhidata |
BADILISHA NENOSIRI | Hubadilisha nenosiri ili kufikia hifadhidata |
ALTER STOGROUP | Inabadilisha muundo wa maeneo ya kuhifadhi katika kikundi cha kuhifadhi |
ANGALIA HABARI | Hukagua uadilifu wa hifadhidata |
ANGALIA INDEX | Hukagua uadilifu wa faharasa |
ANGALIA JEDWALI | Hukagua jedwali na uadilifu wa faharasa |
TENGENEZA HABARI | Inaunda hifadhidata kimwili |
TUNZA DBAREA | Inaunda eneo la hifadhi ya hifadhidata |
TUNZA STORI | Inaunda kikundi cha kuhifadhi |
TENGENEZA SINONOMI | Huunda kisawe cha jedwali au mwonekano |
FUTA DATABASE | Hufanya hifadhidata isiweze kufikiwa na watumiaji wa mtandao |
ONDOA DATABASE | Hufuta hifadhidata kimwili |
DONDOSHA DBAREA | Hufuta kimwili eneo la hifadhi ya hifadhidata |
ONDOA KIKUNDI | Hufuta kikundi cha hifadhi |
RUZUKU | Inafafanua haki za mtumiaji na udhibiti wa ufikiaji kwenye hifadhidata |
SAFISHA DATABASE | Hufanya hifadhidata ipatikane kwa watumiaji wa mtandao |
FUNGA HABARI | Hufunga hifadhidata inayotumika kwa sasa |
KUBATISHA | Hubatilisha haki za mtumiaji na vikwazo vya ufikiaji wa hifadhidata |
WEKA STOGROUP CHAGUO CHAGUO | Inafafanua kikundi cha hifadhi chaguo-msingi |
FUNGUA HABARI | Hutoa hifadhidata inayotumika kwa sasa |
USASISHA TAKWIMU | Inasasisha takwimu za hifadhidata |
Amri zingine | |
TOA MAONI KWENYE | Huweka maoni kuhusu maelezo ya vipengee vya hifadhidata katika katalogi ya mfumo |
TENGENEZA USAWA | Inafafanua majina mbadala ya majedwali ya hifadhidata na mionekano katika katalogi ya mfumo |
ACHILIA USAWA | Huondoa majina mbadala ya majedwali ya hifadhidata na kutazamwa kutoka kwa orodha ya mfumo |
LABEL | Hubadilisha lebo za maelezo ya mfumo |
ROWCOUNT | Huhesabu idadi ya safu mlalo katika jedwali la hifadhidata |
Seti ya amri za SQL zilizoorodheshwa kwenye jedwali haijakamilika. Orodha hii imetolewa ili kukupa wazo la kile SQL inaweza kufanya kwa ujumla. Kwa orodha kamili ya amri, tafadhali rejelea mwongozo unaofaa kwa DBMS yako mahususi. Ikumbukwe kwamba SQL ndiyo njia pekee ya mawasiliano kwa makundi yote ya watumiaji walio na hifadhidata za uhusiano.
Kazi za hesabu
SQL inasaidia seti kamili ya shughuli za hesabu na kazi za hisabati kwa ajili ya kuunda usemi wa hesabu juu ya safu wima za hifadhidata (+, -, *, /, ABS, LN, SQRT, nk.).
Orodha ya kazi kuu za hisabati zilizojengwa imetolewa hapa chini katika Jedwali 8.2.
Kazi ya hisabati | Maelezo |
ABS(X) | Hurejesha thamani kamili ya nambari X |
ACOS(X) | Hurejesha arc kosine ya nambari X |
ASIN(X) | Hurejesha arcsine ya nambari X |
ATAN(X) | Hurejesha arctangent ya X |
COS(X) | Hurejesha kosini ya nambari X |
EXP(X) | Hurejesha kipeo cha nambari X |
ISHARA(X) | Hurejesha -] ikiwa X< 0, 0, если X = 0, + 1, если X > 0 |
LN(X) | Hurejesha logariti asilia ya nambari X |
MOD(X,Y) | Hurejesha salio wakati X imegawanywa na Y |
CEIL(X) | Hurejesha nambari ndogo kabisa kubwa kuliko au sawa na X |
MZUNGUKO(X,n) | Huzungusha nambari X hadi nambari na mahali n baada ya nukta ya desimali |
DHAMBI(X) | Hurejesha sine ya X |
SQRT(X) | Hurejesha mzizi wa mraba wa nambari X |
TAN(X) | Hurejesha tanjiti ya X |
Sakafu(X) | Hurejesha nambari kamili chini ya au sawa na X |
LOG(a,X) | Hurejesha logariti ya nambari X hadi msingi A |
SINH(X) | Hurejesha sine hyperbolic ya X |
COSH(X) | Hurejesha kosini piambano ya nambari X |
TANH(X) | Hurejesha tanjenti piambano ya X |
TRANC(X.n) | Hupunguza nambari X hadi nambari iliyo na sehemu n desimali |
NGUVU(A,X) | Hurejesha thamani ya A iliyoinuliwa kwa nguvu ya X |
Seti ya vitendaji vilivyojumuishwa inaweza kutofautiana kulingana na toleo la DBMS kutoka kwa mtengenezaji mmoja na pia katika DBMS kutoka kwa watengenezaji tofauti. . Kwa mfano, katika SQLBase DBMS, Century Inc. Kuna chaguo za kukokotoa @ATAN2(X,Y), ambacho hurejesha arctangent ya Y/X, lakini hakuna chaguo za kukokotoa SIGN(X).
Maneno ya hesabu yanahitajika ili kupata data ambayo haijahifadhiwa moja kwa moja kwenye safu wima za jedwali la hifadhidata, lakini ambazo maadili yake yanahitajika na mtumiaji. Wacha tuseme unahitaji orodha ya wafanyikazi inayoonyesha malipo ambayo kila mfanyakazi alipokea, pamoja na bonasi na adhabu.
CHAGUA ENAME, SAL, COMM. FINE, SAL + COMM - FINE
Usemi wa hesabu SAL + COMM - FINE ni towe kama safu wima mpya katika jedwali la matokeo, ambalo linakokotolewa kama tokeo la hoja. Nguzo kama hizo pia huitwa inayotokana (mahesabu) sifa au mashamba.
Kazi za usindikaji wa kamba
SQL hukupa anuwai ya vitendakazi vya kuchezea data ya mfuatano (uunganishaji wa kamba, CHR, LENGTH, INSTR na zingine). Orodha ya kazi kuu za usindikaji wa data ya kamba imetolewa katika Jedwali 8.3.
Jedwali 8.3. Kazi za SQL za Usindikaji wa Kamba
Kazi | Maelezo |
CHR(N) | Hurejesha herufi ya msimbo wa ASCII ya msimbo wa decimal N |
ASCII(S) | Hurejesha nambari ya decimal ya ASCII ya herufi ya kwanza ya mfuatano |
INSTR(S2,SI,pos|,N|) | Hurejesha nafasi ya mfuatano wa SI katika mfuatano wa S2 mkubwa kuliko au sawa na pos. N - idadi ya matukio |
UREFU (S) | Hurejesha urefu wa mfuatano |
CHINI(V) | Hubadilisha herufi zote kwenye mfuatano na herufi kubwa |
INITCAP(S) | Huweka herufi ya kwanza ya kila neno katika mfuatano hadi herufi kubwa na herufi zilizobaki za kila neno kuwa herufi kubwa. |
SUBSTR(S,pos,[,len|) | Huteua mfuatano mdogo wa urefu wa kumi katika mfuatano wa S, kuanzia kwenye nafasi pos |
JUU(S) | Hubadili herufi kubwa katika mfuatano hadi herufi kubwa |
LPAD(S,N |,A|) | Hurejesha mfuatano wa S ulioshonwa na A hadi usiozidi herufi N. Kibambo chaguo-msingi cha padding ni nafasi. |
RPAD(S,N |,A]) | Hurejesha mfuatano wa S, uliowekwa pamoja na A upande wa kulia hadi upeo wa herufi N. Herufi chaguo-msingi ni nafasi. |
LTRIM(S,|,Sll) | Hurejesha mfuatano uliokatwa kushoto S. Herufi huondolewa mradi tu herufi itakayoondolewa iko kwenye mfuatano - mchoro SI (chaguo-msingi ni nafasi) |
RTRIM(S,|,SI |) | Hurejesha mfuatano uliokatwa kulia S. Herufi huondolewa mradi tu herufi itakayoondolewa iko kwenye mfuatano - mchoro S1 (chaguo-msingi ni nafasi) |
TAFSIRI,(SI,S2) | Hurejesha mfuatano S pamoja na matukio yote ya mfuatano wa SI na kubadilishwa na mfuatano S2. Ikiwa S.I.<>S2, basi herufi ambazo hazilingani hazijumuishwi kwenye mfuatano unaotokana |
IMEBADILISHWA(SI,|,S2|) | Hurejesha mfuatano wa S ambao matukio yote ya mfuatano mdogo wa SI hubadilishwa na kamba ndogo S2. Ikiwa S2 haijabainishwa, basi matukio yote ya mfuatano mdogo wa SI huondolewa kutoka kwa mfuatano unaosababisha S |
NVL(X,Y) | Ikiwa X ni NULL, basi inarudisha Y ama kamba, nambari, au tarehe, kulingana na aina asili ya Y. |
Majina ya vitendakazi sawa yanaweza kutofautiana katika DBMS tofauti. Kwa mfano, chaguo za kukokotoa za Oracle DBMS SUBSTR(S, pos, |, len|) katika DBMS ya SQLBase inaitwa @SUBSTRING(S, pos, Ien). DBMS ya SQLBase ina vitendaji ambavyo havipatikani katika Oracle DBMS (tazama jedwali hapa chini kwa orodha ya vitendaji kama hivyo).
Jedwali 8.4. Vitendaji vya kamba vya SQLBase DBMS ambavyo vinatofautiana na vitendaji vya kamba vya Oracle DBMS
Kazi | Maelezo |
@EXACT(SI,S2) | Hurejesha matokeo ya kulinganisha mifuatano miwili |
@KUSHOTO(S,lcn) | Hurejesha mfuatano mdogo wa kushoto wa lensi ya urefu |
@UREFU(S) | Hurejesha urefu wa mfuatano |
@MID(S, pos, len) | Hurejesha mfuatano mdogo wa urefu uliobainishwa, kuanzia kwenye nafasi pos |
@RUDIA(S,n) | Hurudia kamba S n mara |
@REPLACE(SI,pos,len,S2) | Badilisha nafasi za herufi za pos len kwenye kamba S2 na herufi kwenye mfuatano wa SI |
@kulia(S,len) | Hurejesha mfuatano mdogo wa kulia wa S wa urefu wa len |
@SCAN(S,pat) | Hurejesha mkao wa kupapasa kwa kamba ndogo katika mfuatano wa S |
@STRING(X, mizani) | Hurejesha uwakilishi wa kiishara wa nambari iliyo na kipimo kilichobainishwa |
@TRIM(V) | Huondoa nafasi kutoka kulia na kushoto kwa mfuatano |
@VALUE(S) | Hubadilisha uwakilishi wa kiishara wa nambari kuwa thamani ya nambari |
Unaweza kutumia kazi ya INITCAP ili kuhakikisha kwamba, wakati wa kurejesha orodha ya majina ya wafanyakazi, majina ya mwisho daima huanza na herufi kubwa na majina mengine yote yana herufi kubwa.
CHAGUA INITCAP(ENAME)
Sifa maalum
SQL hutoa seti ya kazi maalum za kubadilisha maadili ya safu. Orodha ya kazi hizo imetolewa katika Jedwali 8.5.
Jedwali 8.5. Sifa maalum
Katika jedwali la MFANYAKAZI, unaweza kuweka sifa ya kijinsia kwa kila mfanyakazi - ongeza safu wima ya SEX ya aina ya CHAR(l) (0 - kiume, 1 - mwanamke). Wacha tuseme kwamba unahitaji orodha ya wafanyikazi, ambayo inawahitaji kugawanywa na jinsia na kuonyeshwa kwa muundo wa nambari; basi unaweza kutoa amri ifuatayo:
CHAGUA ENAME, LNAME, AGE, " Sakafu:", TO_NUMBER(NGONO)
Kama mfano wa kutumia chaguo za kukokotoa za DECODE, tunawasilisha hoja inayokokotoa orodha ya wafanyakazi inayoonyesha msimamizi wao. Ikiwa meneja haijulikani, basi "hana" inaonyeshwa kwa default.
CHAGUA ENAME, DEC0DE(DEPN0, 10, " Dryagin", 20,"Zhilyaeva". 30,"
Korotkov", "hana")
Wacha tufikirie kuwa mkuu wa shirika ana thamani isiyofafanuliwa ya safu wima ya DEPNO na, kwa hivyo, chaguo-msingi iliyotolewa katika DECODE itamfanyia kazi. .
©2015-2019 tovuti
Haki zote ni za waandishi wao. Tovuti hii haidai uandishi, lakini hutoa matumizi bila malipo.
Tarehe ya kuundwa kwa ukurasa: 2016-08-07
Lugha ya Maswali ya Muundo (SQL) iliundwa kutokana na ukuzaji wa modeli ya data ya uhusiano na kwa sasa ndiyo lugha sanifu ya DBMS za uhusiano. Lugha ya SQL leo inasaidiwa na idadi kubwa ya DBMS ya aina mbalimbali.
Jina la lugha ya SQL kawaida hutamkwa "es-qu-el". Wakati mwingine jina la mnemonic "See-Quel" hutumiwa.
Lugha ya SQL humpa mtumiaji (kwa juhudi kidogo kwa upande wake) uwezo ufuatao:
Unda hifadhidata na meza na maelezo kamili ya muundo wao
Fanya shughuli za msingi za upotoshaji wa data: kuingiza, kubadilisha, kufuta data
Endesha maswali rahisi na magumu.
Lugha ya SQL imekamilika kimahusiano.
Muundo na syntax ya amri zake ni rahisi sana, na lugha yenyewe ni ya ulimwengu wote, i.e. sintaksia na muundo wa amri zake hazibadilika wakati wa kusonga kutoka DBMS moja hadi nyingine.
Lugha ya SQL ina sehemu kuu mbili:
DDL (Lugha ya Ufafanuzi wa Data) kwa ajili ya kufafanua miundo ya hifadhidata na kudhibiti ufikiaji wa data
Lugha ya DML (Lugha ya Udhibiti wa Data) iliyoundwa kwa ajili ya kurejesha na kusasisha data.
SQL ni lugha isiyo ya kitaratibu, ikimaanisha kwamba unapoitumia, lazima ueleze ni habari gani inapaswa kupatikana, sio jinsi inaweza kupatikana. Amri za SQL ni maneno ya kawaida ya Kiingereza (CHAGUA, INGIA, n.k.). Wacha tuangalie taarifa za SQL DML kwanza:
CHAGUA - kuchagua data kutoka kwa hifadhidata
INSERT - kuingiza data kwenye meza
UPDATE - kusasisha data kwenye jedwali
FUTA - kufuta data kutoka kwa jedwali
CHAGUA kauli
Opereta SELECT hufanya vitendo sawa na shughuli zifuatazo za aljebra za uhusiano: uteuzi, makadirio, na kujiunga.
Swala rahisi zaidi ya SQL kuitumia inaonekana kama hii:
CHAGUA col_name KUTOKA tbl
Nenomsingi lililochaguliwa linafuatwa na orodha iliyotenganishwa kwa koma ya safu wima ambazo data yake itarejeshwa na hoja. Neno kuu kutoka kwa neno kuu linabainisha kutoka kwa jedwali lipi (au mtazamo) data hutolewa.
Matokeo ya swali lililochaguliwa daima ni jedwali linaloitwa jedwali la matokeo. Zaidi ya hayo, matokeo ya hoja iliyotekelezwa kwa kutumia taarifa iliyochaguliwa inaweza kutumika kuunda jedwali mpya. Ikiwa matokeo ya maswali mawili kwenye jedwali tofauti yana muundo sawa, unaweza kuchanganya kwenye jedwali moja. Pia, jedwali lililopatikana kama matokeo ya swala linaweza kuwa somo la maswali zaidi.
Ili kuchagua safu wima zote na safu mlalo zote za jedwali, toa tu CHAGUA * KUTOKA tbl;
Fikiria jedwali la Bidhaa, ambalo lina habari ya bei kwa aina anuwai za bidhaa:
Omba matokeo
CHAGUA * KUTOKA kwa Bidhaa;
itakuwa meza nzima ya Bidhaa.
Unaweza kuchagua safu wima maalum za jedwali kwa kutumia hoja
CHAGUA col1, col2, ... , coln KUTOKA tbl;
Kwa hivyo, matokeo ya ombi
CHAGUA Aina, Bei KUTOKA kwa Bidhaa;
kutakuwa na meza
Orodha ya safu wima katika taarifa iliyochaguliwa pia hutumiwa ikiwa inahitajika kubadilisha mpangilio wa safu kwenye jedwali linalosababisha:
Ili kuchagua safu hizo za meza tu zinazokidhi vikwazo fulani, neno la msingi maalum ambalo hutumiwa, ikifuatiwa na hali ya mantiki. Ikiwa rekodi inakidhi hali hii, itajumuishwa katika matokeo. Vinginevyo, kiingilio kinatupwa.
Kwa mfano, kuchagua bidhaa hizo kutoka kwa jedwali la Bidhaa ambazo bei yake inakidhi masharti ya Bei<3200, можно осуществить, используя запрос
CHAGUA * KUTOKA kwa Bidhaa ambapo Bei<3200;
Matokeo yake:
Hali inaweza kuunganishwa na kuunganishwa kwa kutumia viendeshaji kimantiki NOT , AND, OR, XOR, kwa mfano: ambapo id_ Price>500 NA Bei.<3500. Допускается также использование выражений в условии: where Price>(1+1) na viunga vya kamba: ambapo jina = "vizito otomatiki".
Kutumia muundo wa KATI ya var1 NA var2 hukuruhusu kuangalia ikiwa maadili ya usemi wowote upo ndani ya masafa kutoka var1 hadi var2 (pamoja na maadili haya):
CHAGUA * KUTOKA KWA Bidhaa ambapo Bei KATI YA 3000 NA 3500;
Sawa na opereta SIO KATI, kuna mwendeshaji wa NOT IN.
Majina ya safu wima yaliyotajwa katika kifungu cha SELECT yanaweza kubadilishwa jina. Kwa hili, neno kuu la AS linatumiwa, ambalo, hata hivyo, linaweza kuachwa, kwa kuwa linaonyeshwa kwa uwazi. Kwa mfano, ombi
CHAGUA Aina ya muundo wa AS, Type_id AS nambari FROM Bidhaa ambapo Type_id =3
itarudi (majina mengine yanapaswa kuandikwa bila nukuu):
Opereta ya LIKE imeundwa kulinganisha kamba na muundo:
CHAGUA * KUTOKA tbl ambapo col_name KAMA "abc"
Hoja hii hurejesha tu rekodi zilizo na mfuatano wa thamani abc katika safu wima ya col_name.
Sampuli inaruhusiwa kutumia vibambo viwili vya kadi-mwitu: "_" na "%". Wa kwanza wao huchukua nafasi ya herufi moja ya kiholela kwenye kiolezo, na ya pili inachukua nafasi ya mlolongo wa herufi za kiholela. Kwa hivyo, "abc%" inalingana na mfuatano wowote unaoanza na abc, "abc_" inalingana na mfuatano wa herufi 4 unaoanza na abc, "%z" inalingana na mfuatano wowote unaoishia na z, na hatimaye, "%z%" - mfuatano wa herufi zilizo na z.
Unaweza kupata rekodi zote za jedwali la Bidhaa ambamo thamani ya Aina huanza na herufi "a" kama hii:
CHAGUA * KUTOKA KWA Bidhaa ambapo Andika KAMA "a%";
mizani ya lori |
Ikiwa mfuatano wa utafutaji una herufi ya kadi-mwitu, basi lazima ubainishe herufi ya kutoroka katika kifungu cha ESCAPE. Herufi hii ya udhibiti lazima itumike katika mchoro kabla ya herufi pori, ikionyesha kwamba herufi ya kadi-mwitu inapaswa kuzingatiwa kama mhusika wa kawaida. Kwa mfano, ikiwa ungetafuta thamani zote katika sehemu iliyo na herufi "_", basi muundo "%_%" ungesababisha rekodi zote kutoka kwa jedwali kurejeshwa. Katika kesi hii, template inapaswa kuandikwa kama ifuatavyo:
"%|_%" ESCAPE "|"
Kuangalia thamani ya kufuata kamba "20%" unaweza kutumia opereta ifuatayo:
KAMA "20#%" ESCAPE "#"
Opereta ya IS NULL hukuruhusu kuangalia kutokuwepo (kuwepo) kwa thamani NULL katika sehemu za jedwali. Kutumia waendeshaji ulinganishaji wa kawaida katika visa hivi kunaweza kutoa matokeo yasiyo sahihi kwa sababu kulinganisha na matokeo NULL katika UNKNOWN. Kwa hivyo, hali ya uteuzi inapaswa kuonekana kama hii:
ambapo col_name IS NULL, badala ya where col_name=NULL.
Tokeo la chaguo-msingi la uteuzi hurejesha rekodi kwa mpangilio sawa na ambazo zimehifadhiwa kwenye hifadhidata. Iwapo ungependa kupanga rekodi kwa mojawapo ya safu wima, lazima utumie kipengele cha ORDER BY, ikifuatiwa na jina la safu wima hiyo:
CHAGUA * KUTOKA tbl AGIZA KWA col_name;
Hoja hii itarejesha rekodi kwa mpangilio wa kupanda wa thamani ya sifa ya col_name.
Unaweza pia kupanga rekodi kwa safu wima nyingi. Ili kufanya hivyo, majina yao lazima yabainishwe baada ya ORDER BY kutenganishwa na koma:
CHAGUA * KUTOKA tbl AGIZA KWA col_name1, col_name2.
Rekodi zitapangwa kwa uga wa col_name1; ikiwa kuna rekodi kadhaa zilizo na thamani inayolingana katika safu wima ya col_name1, zitapangwa kwa uga wa col_name2.
Ikiwa ungependa kupanga rekodi kwa mpangilio wa nyuma (kwa mfano, kushuka kulingana na tarehe), lazima ubainishe ORDER BY col_name DESC.
Kwa upangaji wa moja kwa moja, kuna neno kuu la ASC, ambalo linakubaliwa kama dhamana ya chaguo-msingi.
Ikiwa matokeo ya sampuli yana mamia au maelfu ya rekodi, matokeo na usindikaji wao huchukua muda mwingi.
Kwa hiyo, habari mara nyingi hugawanywa katika kurasa na kuwasilishwa kwa mtumiaji kwa sehemu. Pagination hutumiwa kwa kutumia neno kuu la kikomo likifuatiwa na idadi ya maingizo ya kuonyesha. Hoja ifuatayo inarejesha rekodi 10 za kwanza huku ikipanga kwa wakati mmoja kwenye sehemu ya col_name1:
CHAGUA * KUTOKA tbl AGIZA KWA col_name1 DESC LIMIT 10
Ili kupata rekodi 10 zinazofuata, tumia neno kuu la kikomo na maadili mawili: ya kwanza inabainisha nafasi ambayo matokeo yanapaswa kuchapishwa, na ya pili inabainisha idadi ya rekodi za kurejesha:
CHAGUA * KUTOKA tbl AGIZA KWA col_name1 DESC LIMIT 10,10
Ili kupata rekodi 10 zinazofuata, lazima utumie LIMIT 20, 10 ujenzi.