Aina za dataSQL(Jinsi katikaUk, kama katika kiwango)
Aina za kamba
Aina za data za nambari
Sarafu, Tabia, Aina za data za binary
Aina ya Boolean. Uhamisho
Mifano ya maswali rahisi ya SQL
Maswali rahisi zaidi CHAGUA
Taarifa ya SQL SELECT ndiyo taarifa muhimu zaidi na inayotumiwa sana. Imeundwa kupata habari kutoka kwa meza za hifadhidata. Sintaksia iliyorahisishwa ya kauli SELECT ni kama ifuatavyo.
CHAGUA [ ZOTE | DISTINCT ] select_item_commalist
KUTOKA kwa mkomisti_wa_marejeleo
[WHERE masharti_masharti]
[ GROUP BY column_name_commalist ]
[ KUWA na maelezo_ya_masharti]
[ AGIZA KWA order_item_commalist ]
Mabano ya mraba yanaonyesha vipengele ambavyo huenda visiwepo katika ombi.
Neno kuu la SELECT huambia hifadhidata kwamba taarifa hii ni ombi la kupata habari.
Baada ya neno SELECT, ikitenganishwa na koma, majina ya uwanja (orodha ya sifa) ambayo yaliyomo yao yameombwa yameorodheshwa.
Neno kuu linalohitajika katika kifungu cha hoja cha CHAGUA ni neno KUTOKA. Neno kuu la FROM linafuatwa na orodha iliyotenganishwa kwa koma ya majina ya jedwali ambapo taarifa hutolewa tena.
Kwa mfano, chagua kichwa, maelezo kutoka kwa filamu
Swali lolote la SQL lazima limalizike na alama ";" (semicolon). Matokeo ya swali hili yatakuwa jedwali ...
Mpangilio wa safu wima katika jedwali hili unalingana na mpangilio wa sehemu zilizoainishwa kwenye hoja
Ikiwa unahitaji kuonyesha maadili ya safu wima zote za jedwali, unaweza kutumia alama ya "*" (asteriski) badala ya kuorodhesha majina yao.
CHAGUA * KUTOKA filamu;
Katika kesi hii, matokeo ya swala yatakuwa meza nzima ya filamu.
Hebu kwa mara nyingine tena tuelekeze mawazo yako kwa ukweli kwamba majedwali yaliyopatikana kutokana na swali la SQL hayafikii kikamilifu ufafanuzi wa uhusiano wa uhusiano. Hasa, zinaweza kuwa na nakala (safu) zilizo na maadili ya sifa zinazofanana.
Kwa mfano, swali "orodha ya majina ya waigizaji" inaweza kuandikwa kama ifuatavyo.
chagua first_name kutoka kwa mwigizaji;
Matokeo yake yatakuwa meza, meza ina safu zinazofanana. Ili kuwatenga nakala za rekodi kwenye matokeo ya hoja CHAGUA, tumia neno kuu la DISTINCT.
Ikiwa hoja ya SELECT itapata sehemu nyingi, DISTINCT huondoa safu mlalo nakala ambazo thamani za sehemu zote zilizochaguliwa zinafanana.
Swali la awali linaweza kuandikwa kama ifuatavyo.
chagua first_name tofauti kutoka kwa mwigizaji;
Kama matokeo, tunapata jedwali ambalo safu mbili za safu hazijumuishwa.
Neno kuu ZOTE hufanya kinyume cha DISTINCT, kumaanisha kuwa safu mlalo rudufu zimejumuishwa kwenye matokeo. Hali iliyobainishwa na neno muhimu YOTE ndiyo chaguo-msingi, kwa hivyo haitumiki kwa madhumuni haya katika maswali halisi.
Kutumia kifungu cha WHERE katika taarifa SELECT hukuruhusu kubainisha usemi wa hali (kihusishi) ambacho hutathmini kuwa kweli au sivyo kwa thamani za sehemu ya safu mlalo ya jedwali inayorejelewa na taarifa ya SELECT. Kifungu cha WHERE huamua ni safu zipi za majedwali maalum zinapaswa kuchaguliwa. Jedwali linalotokana na swali linajumuisha safu mlalo zile tu ambazo hali (kihusishi) iliyobainishwa katika kifungu cha WHERE hutathmini kuwa kweli.
Mfano: Andika swali ambalo linatoa majina ya mwisho ya waigizaji wote kwa jina PENELOPE
chagua jina la mwisho kutoka kwa mwigizaji
ambapo first_name="PENELOPE";
Masharti yaliyoainishwa katika kifungu cha WAPI yanaweza kutumia shughuli za ulinganishi zinazofafanuliwa na waendeshaji = (sawa), > (kubwa kuliko),< (меньше), >= (kubwa kuliko au sawa na),<- (меньше или равно), <>(sio sawa), pamoja na waendeshaji kimantiki NA, AU, na SIO.
Kwa mfano, ombi la kupata majina na maelezo ya filamu fupi (fupi kuliko dakika 60), ukodishaji ambao unagharimu chini ya $3, utaonekana kama hii:
chagua kichwa, maelezo kutoka kwa filamu
urefu wa wapi< 60 and rental_rate < 3
Matokeo ya swali hili yanaonekana kama:
kukodisha - kukodisha
hesabu - hesabu, hifadhi
duka - hisa, duka
Taarifa ya SQL SELECT imekusudiwa kwa maswali ya kuchagua data kutoka kwa hifadhidata. Inaweza kutumika ama bila masharti (kuchagua safu mlalo zote katika safu wima zote au safu mlalo zote katika safu wima fulani) au kwa hali nyingi (kuchagua safu mahususi) ambazo zimebainishwa katika kifungu cha WAPI. Wacha tufahamiane na zana za SQL ambazo zinaweza kutumika kuweka masharti haya ya kuchagua data, na pia tujifunze jinsi ya kutumia taarifa ya SELECT katika subqueries.
CHAGUA ili kuchagua safu wima za jedwali
Hoja iliyo na kauli SELECT ili kuchagua safu wima zote za jedwali ina syntax ifuatayo:
CHAGUA * KUTOKA TABLE_NAME
Hiyo ni, kuchagua nguzo zote za meza, unahitaji kuweka nyota baada ya neno SELECT.
Mfano 1. Kuna hifadhidata ya kampuni - Kampuni. Ina Jedwali Org (Muundo wa Kampuni) na Wafanyakazi (Wafanyikazi). Unahitaji kuchagua safu wima zote kutoka kwa jedwali. Hoja inayolingana ya kuchagua safu wima zote kutoka kwa jedwali la Org ni kama ifuatavyo.
CHAGUA * KUTOKA ORG
Hoja hii itarudisha yafuatayo (ili kupanua picha, bonyeza-kushoto juu yake):
Hoja ya kuchagua safu wima zote kutoka kwa jedwali la Wafanyakazi inaonekana kama hii:
CHAGUA * KUTOKA KWA WAFANYAKAZI
Swali hili litarudisha yafuatayo:
Ili kuchagua safu wima mahususi za jedwali, badala ya nyota, tunahitaji kuorodhesha majina ya safu wima zote zinazohitaji kuchaguliwa, zikitenganishwa na koma:
CHAGUA SELECTABLE_COLUMNS KUTOKA TABLE_NAME
Mfano 2. Tuseme unataka kuchagua safu wima za Depnumb na Deptname kutoka kwa jedwali la Org, ambalo lina data juu ya nambari za idara za kampuni na majina yao, mtawalia. Swali la kupata sampuli kama hii litakuwa kama ifuatavyo:
CHAGUA DEPNUMB, DEPTNAME KUTOKA ORG
Na kutoka kwa Jedwali la Wafanyikazi unahitaji kuchagua nguzo DEPT, NAME, JOB, ambayo kwa mtiririko huo ina data kuhusu idadi ya idara ambayo mfanyakazi anafanya kazi, jina lake na msimamo wake:
CHAGUA na ORDER BY - kupanga (kuagiza) safu
Hoja za SQL SELECT zimejadiliwa hadi sasa zimerejesha safu mlalo ambazo zinaweza kuwa katika mpangilio wowote. Hata hivyo, mara nyingi unahitaji kupanga safu kwa mpangilio wa nambari, alfabeti na vigezo vingine. Hii inafanywa kwa kutumia neno kuu la ORDER BY. Maombi kama haya yana syntax ifuatayo:
Mfano 15. Wacha hitaji liwe kuchagua kutoka kwa jedwali la wafanyikazi wanaofanya kazi katika idara nambari 84 na kupanga (kuagiza) rekodi kwa idadi ya miaka iliyofanya kazi kwa mpangilio wa kupanda:
Neno ASC linaonyesha kuwa mpangilio wa kupanga unapanda. Neno hili ni la hiari kwa sababu mpangilio wa mpangilio wa kupanda ndio chaguomsingi. Matokeo ya ombi:
Mfano 16. Wacha hitaji liwe kuchagua data sawa na katika mfano uliopita, lakini panga (panga) rekodi kwa idadi ya miaka iliyofanya kazi kwa mpangilio wa kushuka.
Sintaksia:
* Wapi mashamba1- sehemu za uteuzi zilizotenganishwa na koma, unaweza pia kutaja sehemu zote na *; meza- jina la jedwali ambalo tunatoa data; masharti- masharti ya sampuli; mashamba2- uwanja au sehemu zilizotenganishwa na koma ambazo zitapangwa; hesabu- idadi ya mistari ya kupakia.
* Hoja katika mabano ya mraba haihitajiki ili kurejesha data.
Mifano rahisi ya kutumia chagua
1. Sampuli za data za kawaida:
> CHAGUA * KUTOKA KWA watumiaji
2. Sampuli za data kwa kuunganisha majedwali mawili (JIUNGE):
CHAGUA u.jina, r.* KUTOKA kwa watumiaji UNAUNGANA na users_rights r KWA r.user_id=u.id
* katika mfano huu, data ni sampuli na jedwali zilizounganishwa watumiaji Na haki_za_watumiaji. Wanaunganishwa na mashamba kitambulisho_cha_mtumiaji(katika jedwali la haki za watumiaji) na kitambulisho(watumiaji). Sehemu ya jina inarejeshwa kutoka kwa jedwali la kwanza na nyanja zote kutoka kwa pili.
3. Kuchukua sampuli kwa muda na/au vipindi vya tarehe
a) mahali pa kuanzia na muda fulani hujulikana:
* data ya saa ya mwisho itachaguliwa (uwanja tarehe).
b) tarehe ya kuanza na tarehe ya mwisho inajulikana:
25.10.2017 Na 25.11.2017 .
c) tarehe za kuanza na mwisho + wakati zinajulikana:
* chagua data kati ya 03/25/2018 Saa 0 dakika 15 Na 04/25/2018 Saa 15 dakika 33 na sekunde 9.
d) kutoa data kwa mwezi na mwaka fulani:
* toa data mahali kwenye uwanja tarehe kuna maadili ya Aprili 2018 ya mwaka.
4. Sampuli ya maadili ya juu zaidi, ya chini na ya wastani:
> CHAGUA upeo(eneo), min(eneo), wastani(eneo) KUTOKA nchini
* max- thamani ya juu; min- Ndogo; wastani- wastani.
5. Kutumia Urefu wa Kamba:
* swali hili linapaswa kuonyesha watumiaji wote ambao majina yao yana vibambo 5.
Mifano ya maswali ambayo ni changamano zaidi au ambayo hayatumiki sana
1. Kuunganishwa na kupanga data iliyochaguliwa katika safu mlalo moja (GROUP_CONCAT):
* kutoka kwa meza watumiaji data ya shamba inarejeshwa kitambulisho, zote zimewekwa kwenye mstari mmoja, maadili yanatenganishwa koma.
2. Kupanga data katika sehemu mbili au zaidi:
> CHAGUA *KUTOKA KWA watumiaji KUNDI KWA CONCAT(kichwa, "::", kuzaliwa)
* kwa muhtasari, katika mfano huu tutapakia data kutoka kwa jedwali la watumiaji na kuipanga kulingana na sehemu kichwa Na kuzaliwa. Kabla ya kuweka kikundi, tunachanganya mashamba kwenye mstari mmoja na delimiter :: .
3. Kuunganisha matokeo kutoka kwa majedwali mawili (MUUNGANO):
> (CHAGUA kitambulisho, fio, anwani, "Watumiaji" kama aina ya FROM watumiaji)
MUUNGANO
(CHAGUA kitambulisho, fio, anwani, "Wateja" kama aina ya KUTOKA kwa wateja)
* katika mfano huu, data ni sampuli kutoka kwa majedwali watumiaji Na wateja.
4. Sampuli ya thamani za wastani zilizopangwa kwa kila saa:
CHAGUA wastani(joto), DATE_FORMAT(sasisho la wakati, "%Y-%m-%d %H") kama saa_tarehe TOKA kwenye kumbukumbu GROUP BY DATE_FORMAT(sasisho la wakati, "%Y-%m-%d %H")
*hapa tunatoa thamani ya wastani ya sehemu joto kutoka kwa meza kumbukumbu na kundi kwa shamba sasisho la wakati(na mgawanyiko wa wakati kwa kila saa).
INGIZA
Sintaksia ya 1:
> Ingiza NDANI