Msingi wa maswali ya sql. SQL CHAGUA na maswali ya uteuzi wa data

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

() THAMANI ( )

Sintaksia ya 2:

> Ingiza NDANI

THAMANI ( )

* Wapi meza- jina la meza ambayo tunaingiza data; mashamba- kuorodhesha mashamba yaliyotenganishwa na koma;maadili- maadili ya kuorodhesha yaliyotenganishwa na koma.
* chaguo la kwanza litakuwezesha kuingiza sehemu zilizoorodheshwa pekee - zilizosalia zitapokea maadili chaguo-msingi. Chaguo la pili litahitaji kuingizwa kwa nyanja zote.

Mifano ya kutumia kuingiza

1. Kuingiza safu mlalo nyingi kwa hoja moja:

> WEKA NDANI ya miji ("jina", "nchi") MAADILI ("Moscow", "Urusi"), ("Paris", "Ufaransa"), ("Funafuti" , "Tuvalu");

* katika mfano huu tutaongeza rekodi 3 katika swali moja la SQL.

2. Kuingiza kutoka kwa jedwali lingine (kunakili safu mlalo, INGIZA + CHAGUA):

* toa rekodi zote kutoka kwa jedwali miji, ambao majina yao huanza na "M" na kuyaingiza kwenye meza miji-mpya.

Sasisha (UPDATE)

Sintaksia:

* Wapi meza- jina la meza; shamba- uwanja ambao tutabadilisha thamani; thamani- maana mpya; masharti— hali (bila hiyo, kufanya sasisho ni hatari - unaweza kuchukua nafasi ya data yote kwenye jedwali zima).

Sasisha kwa kutumia uingizwaji (REPLACE):

UPDATE

WEKA = KUBADILISHA ( , "<что меняем>", "<на что>");

UPDATE miji SET jina = REPLACE(jina, "Maskva", "Moscow");

Ikiwa tunataka kuicheza salama, tunaweza kwanza kuangalia matokeo ya uingizwaji kwa kutumia SELECT:

Futa (FUTA)

Sintaksia:

* Wapi meza- jina la meza; masharti— hali (kama ilivyo kwa UPDATE, kutumia DELETE bila hali ni hatari - DBMS haitauliza uthibitisho, lakini itafuta data zote tu).

Kuunda meza

Sintaksia:

> TENGENEZA JEDWALI

( , )

> TUNZA JEDWALI KAMA HAIPO `haki_za_watumiaji` (
`id` int(10) haijatiwa saini NOT NULL,
`user_id` int(10) haijatiwa saini NOT NULL,
`haki` int(10) haijatiwa saini SIYO BATILI
) INJINI=InnoDB DEFAULT CHARSET=utf8;

* Wapi meza- jina la jedwali (katika mfano haki_za_watumiaji); shamba1, shamba2- jina la uwanja (kwa mfano, sehemu 3 zimeundwa - kitambulisho, kitambulisho_cha_mtumiaji, haki); chaguzi1, chaguzi2- vigezo vya shamba (katika mfano int(10) haijatiwa saini NOT NULL); chaguzi za meza- vigezo vya jumla vya jedwali (katika mfano ENGINE=InnoDB CHARSET DEFAULT=utf8).

Kutumia maombi katika PHP

Kuunganisha kwenye hifadhidata:

mysql_connect("localhost", "ingia", "nenosiri") au kufa("Hitilafu ya kuunganisha MySQL");
mysql_select_db("db_name");
mysql_query("SET MAJINA "utf8"");

* ambapo unganisho hufanywa kwa hifadhidata kwenye seva ya ndani ( mwenyeji); hati za uunganisho - Ingia Na nenosiri(kwa mtiririko huo, kuingia na nenosiri); kutumika kama msingi db_jina; usimbaji umetumika UTF-8.

Unaweza pia kuunda muunganisho unaoendelea:

mysql_pconnect("localhost", "ingia", "nenosiri") au kufa("Hitilafu ya kuunganisha MySQL");

* hata hivyo, kuna uwezekano wa kufikia kikomo cha juu kinachoruhusiwa cha upangishaji. Njia hii inapaswa kutumika kwenye seva zetu wenyewe, ambapo sisi wenyewe tunaweza kudhibiti hali hiyo.

Muunganisho kamili:

* katika PHP inafanywa kiotomatiki, isipokuwa kwa miunganisho inayoendelea (mysql_pconnect).

Hoja kwa MySQL (Mariadb) katika PHP inafanywa kwa kazi ya mysql_query(), na urejeshaji wa data kutoka kwa hoja hufanywa kwa mysql_fetch_array():

$result = mysql_query("CHAGUA * KUTOKA KWA watumiaji");
wakati ($mass = mysql_fetch_array($matokeo)) (
echo $mass . "
";
}

* katika mfano huu swali lilifanywa kwa meza watumiaji. Matokeo ya swala yanawekwa katika hali tofauti Matokeo ya $. Ifuatayo, kitanzi kinatumika wakati, kila marudio ambayo hurejesha safu ya data na kuiweka katika tofauti Misa ya $- katika kila marudio tunafanya kazi na safu mlalo moja ya hifadhidata.

Kazi ya mysql_fetch_array() iliyotumiwa inarudisha safu ya ushirika, ambayo ni rahisi kufanya kazi nayo, lakini pia kuna mbadala - mysql_fetch_row(), ambayo inarudisha safu ya nambari ya kawaida.

Kinga

Ikiwa unahitaji kujumuisha herufi maalum kwenye safu ya hoja, kwa mfano, %, lazima utumie kutoroka kwa kutumia herufi ya backslash - \

Kwa mfano:

* ukiendesha swali kama hilo bila kutoroka, ishara ya % itafasiriwa kama idadi yoyote ya herufi baada ya 100.

Ni hayo tu. Ikiwa unahitaji usaidizi wa kukamilisha ombi, tafadhali nitumie barua pepe


Maudhui ya makala
1. Maswali rahisi zaidi ya MySQL
2. Maswali rahisi CHAGUA
3. Hoja rahisi za Ingiza (ingizo jipya).
4. Maswali rahisi ya KUSASISHA (batilisha, ongeza).
5. Maswali rahisi ya KUFUTA (futa rekodi).
6. Maswali rahisi ya DROP (futa jedwali).
7. Maswali tata ya MySQL
8. Maswali ya MySQL na vigezo vya PHP

1. Maswali rahisi zaidi ya SQL

1. Huonyesha orodha ya hifadhidata ZOTE.

SHOW hifadhidata;
2. Huorodhesha majedwali YOTE katika Hifadhidata ya jina_la msingi.

ONYESHA jedwali katika jina_la_msingi;

2. Maswali rahisi CHAGUA kwenye hifadhidata ya MySQL

CHAGUA- swali linalochagua data iliyopo kutoka kwa hifadhidata. Unaweza kutaja vigezo maalum vya uteuzi kwa uteuzi. Kwa mfano, kiini cha ombi katika Kirusi kinasikika kama hii: CHAGUA vile na vile safu kutoka kwa vile na vile meza AMBAPO parameter ya vile na vile safu ni sawa na thamani.

1. Huchagua data ZOTE kwenye jedwali la tbl_name.

CHAGUA * KUTOKA tbl_name;
2. Huonyesha idadi ya rekodi kwenye jedwali la tbl_name.

CHAGUA hesabu(*) KUTOKA tbl_name;
3. Huchagua (CHAGUA) kutoka (KUTOKA) jedwali la tbl_name kikomo (LIMIT) rekodi 3, kuanzia 2.

CHAGUA * KUTOKA tbl_name LIMIT 2,3;
4. Huchagua (CHAGUA) rekodi ZOTE (*) kutoka (KUTOKA) jedwali tbl_name na kuzipanga (ORDER BY) kwa uga wa kitambulisho kwa mpangilio.

CHAGUA * KUTOKA tbl_name ORDER BY id;
5. Huteua (CHAGUA) rekodi ZOTE kutoka (KUTOKA) jedwali la tbl_name na kuzipanga (ORDER BY) kwa uga wa kitambulisho kwa mpangilio wa REVERSE.

CHAGUA * KUTOKA tbl_name ORDER BY id DESC;
6. Inachagua ( CHAGUA) rekodi ZOTE (*) kutoka ( KUTOKA) meza watumiaji na kuzipanga ( AGIZA KWA) uwanjani kitambulisho kwa mpangilio wa kupanda, kikomo ( KIKOMO) maingizo 5 ya kwanza.

CHAGUA *KUTOKA KWA watumiaji AGIZA KWA id LIMIT 5;
7. Huchagua rekodi zote kutoka kwa jedwali watumiaji, shamba liko wapi jina inalingana na thamani Gena.

CHAGUA * KUTOKA KWA watumiaji WAPI fname="Gena";
8. Huchagua rekodi zote kutoka kwa jedwali watumiaji, ambapo thamani ya shamba jina kuanza na Ge.

CHAGUA * KUTOKA KWA watumiaji AMBAPO fname KAMA "Ge%";
9. Huchagua rekodi zote kutoka kwa jedwali watumiaji, Wapi jina inaisha na na, na kupanga rekodi kwa mpangilio wa kupanda wa thamani kitambulisho.

CHAGUA * KUTOKA KWA watumiaji AMBAPO fname KAMA "%na" AGIZA KWA id;
10. Huchagua data zote kutoka kwa safuwima jina, jina l kutoka kwa meza watumiaji.

CHAGUA fname, lname KUTOKA kwa watumiaji;

11. Hebu tuseme una nchi katika jedwali lako la data ya mtumiaji. Kwa hivyo, ikiwa unataka kuonyesha TU orodha ya maadili yanayotokea (ili, kwa mfano, Urusi haionyeshwa mara 20, lakini mara moja tu), basi tunatumia DISTINCT. Italeta Urusi, Ukraine, Belarus kutoka kwa wingi wa maadili ya kurudia. Kwa hivyo, kutoka kwa meza watumiaji wasemaji nchi Thamani ZOTE ZA KIPEKEE zitatolewa

CHAGUA nchi DISTINCT KUTOKA kwa watumiaji;
12. Huchagua data ZOTE za safu mlalo kutoka kwa jedwali watumiaji Wapi umri ina maadili 18, 19 na 21.

CHAGUA * KUTOKA KWA watumiaji WAPI umri KATIKA (18,19,21);
13. Huchagua thamani MAXIMUM umri katika meza watumiaji. Hiyo ni, ikiwa una thamani kubwa zaidi kwenye meza yako umri(kutoka umri wa Kiingereza) ni 55, basi matokeo ya swali yatakuwa 55.

CHAGUA upeo(umri) KUTOKA kwa watumiaji;
14. Chagua data kutoka kwa jedwali watumiaji kwa mashamba jina Na umri WAPI umri inachukua thamani ndogo zaidi.

CHAGUA jina, min(umri) KUTOKA kwa watumiaji;
15. Chagua data kutoka kwa jedwali watumiaji uwanjani jina WAPI kitambulisho SI SAWA NA 2.

CHAGUA jina KUTOKA kwa watumiaji WHERE id!="2";

3. Maswali rahisi ya Ingiza (ingizo jipya).

INGIZA- swala linalokuruhusu AWALI kuingiza rekodi kwenye hifadhidata. Hiyo ni, inaunda rekodi MPYA (mstari) kwenye hifadhidata.

1. Hufanya ingizo jipya kwenye jedwali watumiaji, shambani jina inaingiza Sergey, na kwenye shamba umri ingiza 25. Kwa hivyo, safu mpya iliyo na maadili haya huongezwa kwenye jedwali. Ikiwa kuna safu wima zaidi, basi zilizobaki zitabaki tupu au na maadili chaguo-msingi.

Ingiza NDANI ya watumiaji (jina, umri) THAMANI ("Sergey", "25");

4. Maswali rahisi ya USASISHAJI kwa hifadhidata ya MySQL

UPDATE- swali ambalo hukuruhusu KUHIFADHI maadili ya uga au KUONGEZA kitu kwenye safu mlalo iliyopo tayari kwenye hifadhidata. Kwa mfano, kuna mstari uliofanywa tayari, lakini parameter ya umri inahitaji kuandikwa tena ndani yake, kwa kuwa imebadilika kwa muda.

1. Katika meza watumiaji umri inakuwa 18.

SASISHA watumiaji WEKA umri = "18" WHERE id = "3";
2. Kila kitu ni sawa na katika ombi la kwanza, inaonyesha tu syntax ya ombi, ambapo sehemu mbili au zaidi zimeandikwa.
Katika meza watumiaji WHERE kitambulisho ni sawa na thamani ya sehemu 3 umri anatimiza miaka 18 na nchi Urusi.

SASISHA watumiaji WEKA umri = "18", nchi = "Urusi" WHERE id = "3";

5. Rahisi KUFUTA (kufuta rekodi) maswali kwenye hifadhidata ya MySQL

FUTA- swali linalofuta safu kutoka kwa jedwali.

1. Huondoa safu kutoka kwa meza watumiaji WAPI kitambulisho sawa na 10.

FUTA KUTOKA KWA watumiaji WAPI id = "10";

6. Rahisi DROP (futa jedwali) maswali kwa hifadhidata ya MySQL

DONDOSHA- swali ambalo linafuta meza.

1. Inafuta meza nzima tbl_jina.

DROP TABLE tbl_name;

7. Maswali tata kwa hifadhidata ya MySQL

Maswali ya kuvutia ambayo yanaweza kuwa muhimu hata kwa watumiaji wenye uzoefu

CHAGUA kitambulisho, jina, nchi KUTOKA kwa watumiaji, wasimamizi WAPI TO_DAYS(SASA()) - TO_DAYS(registration_tarehe)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Hoja hii changamano SELECTS safu wima kitambulisho, jina, nchi KATIKA MAJEDWALI watumiaji, wasimamizi WAPI tarehe_ya_kusajili(tarehe) sio mzee 14 siku I uanzishaji SI SAWA 0 , Panga kwa tarehe_ya_kusajili kwa mpangilio wa nyuma (mpya kwanza).

SASISHA watumiaji WEKA umri = "18+" WAPI umri = (CHAGUA umri KUTOKA kwa watumiaji WHERE mwanaume = "mwanaume");
Hapo juu ni mfano wa kinachojulikana ombi ndani ya ombi katika SQL. Sasisha umri kati ya watumiaji hadi 18+, ambapo jinsia ni wanaume. Sipendekezi chaguzi kama hizo za ombi. Kutoka kwa uzoefu wa kibinafsi nitasema kuwa ni bora kuunda kadhaa tofauti - zitashughulikiwa haraka.

8. Maswali ya hifadhidata ya MySQL na PHP

Katika maswali ya MySQL kwenye ukurasa wa PHP, unaweza kuingiza vigeu kama viwango vya kulinganisha, nk. Mifano michache

1. Huchagua rekodi zote kutoka kwa jedwali watumiaji, shamba liko wapi jina inalingana na thamani ya kutofautisha $jina.

CHAGUA * KUTOKA KWA watumiaji WAPI fname="$name";
2. Katika meza watumiaji WHERE kitambulisho ni sawa na thamani ya sehemu 3 umri mabadiliko kwa thamani ya tofauti ya $age.

SASISHA watumiaji WEKA umri = "$age" WHERE id = "3";

Makini! Ikiwa una nia ya mfano mwingine wowote, basi andika swali katika maoni!

kura 1

Karibu kwenye tovuti yangu ya blogu. Leo tutazungumza juu ya maswali ya sql kwa Kompyuta. Wasimamizi wengine wa wavuti wanaweza kuwa na swali. Kwa nini ujifunze sql? Je, haiwezekani kupita?

Inageuka kuwa hii haitoshi kuunda mradi wa kitaalamu wa mtandao. Sql inatumika kufanya kazi na hifadhidata na kuunda programu za WordPress. Wacha tuangalie jinsi ya kutumia maswali kwa undani zaidi.

Ni nini

Sql ni lugha ya kuuliza iliyopangwa. Imeundwa ili kubainisha aina ya data, kutoa ufikiaji wake na kuchakata taarifa katika muda mfupi. Inaelezea vipengele au baadhi ya matokeo ambayo ungependa kuona kwenye mradi wa mtandao.

Ili kuiweka kwa urahisi, lugha hii ya programu inakuwezesha kuongeza, kubadilisha, kutafuta na kuonyesha habari katika hifadhidata. Umaarufu wa mysql ni kutokana na ukweli kwamba hutumiwa kuunda miradi yenye nguvu ya mtandao ambayo inategemea hifadhidata. Kwa hiyo, ili kuendeleza blogu inayofanya kazi, unahitaji kujifunza lugha hii.

Inaweza kufanya nini

Lugha ya sql hukuruhusu:

  • kuunda meza;
  • mabadiliko ya kupokea na kuhifadhi data mbalimbali;
  • kuchanganya habari katika vitalu;
  • kulinda data;
  • unda maombi katika ufikiaji.

Muhimu! Mara tu unapoelewa sql, unaweza kuandika maombi ya WordPress ya ugumu wowote.

Muundo gani

Hifadhidata ina majedwali ambayo yanaweza kuwasilishwa kama faili ya Excel.

Ina jina, safu wima na safu iliyo na habari fulani. Unaweza kuunda meza kama hizo kwa kutumia maswali ya sql.

Unachohitaji kujua


Mambo Muhimu ya Kujifunza Sql

Kama ilivyoonyeshwa hapo juu, maswali hutumiwa kuchakata na kuingiza habari mpya kwenye hifadhidata inayojumuisha majedwali. Kila mstari ni kiingilio tofauti. Kwa hivyo, wacha tuunde hifadhidata. Ili kufanya hivyo, andika amri:

Unda hifadhidata 'bazaname'

Tunaandika jina la hifadhidata kwa Kilatini katika nukuu. Jaribu kuja na jina wazi kwa hilo. Usiunde hifadhidata kama vile "111", "www" na kadhalika.

Baada ya kuunda hifadhidata, sasisha:

WEKA MAJINA 'utf-8'

Hii ni muhimu ili yaliyomo kwenye tovuti kuonyeshwa kwa usahihi.

Sasa hebu tutengeneze meza:

TUNZA JEDWALI 'bazaname' . 'meza' (

id INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,

logi VARCHAR(10),

kupita VARCHAR(10),

tarehe DATE

Katika mstari wa pili tuliandika sifa tatu. Wacha tuone wanamaanisha nini:

  • Sifa ya NOT NULL inamaanisha kuwa kisanduku hakitakuwa tupu (uga unahitajika);
  • Thamani ya AUTO_INCREMENT ni ukamilishaji kiotomatiki;
  • UFUNGUO WA MSINGI - ufunguo wa msingi.

Jinsi ya kuongeza habari

Ili kujaza mashamba ya meza iliyoundwa na maadili, taarifa ya INSERT inatumiwa. Tunaandika mistari ifuatayo ya nambari:

INGIA NDANI YA 'meza'

(ingia, kupita, tarehe) THAMANI

('Vasa', '87654321', '2017-06-21 18:38:44');

Katika mabano tunaonyesha majina ya nguzo, na katika ijayo - maadili.

Muhimu! Dumisha uwiano katika majina ya safu wima na thamani.

Jinsi ya kusasisha habari

Ili kufanya hivyo, tumia amri ya UPDATE. Hebu tuone jinsi ya kubadilisha nenosiri kwa mtumiaji maalum. Tunaandika mistari ifuatayo ya nambari:

SASISHA 'meza' SET pass = '12345678' WHERE id = '1'

Sasa badilisha nenosiri '12345678'. Mabadiliko hutokea kwenye mstari wenye “id”=1. Ikiwa hutaandika amri ya WHERE, mistari yote itabadilika, sio maalum.

Ninapendekeza ununue kitabu " SQL kwa dummies " Kwa msaada wake, unaweza kufanya kazi kitaaluma na database hatua kwa hatua. Taarifa zote zimeundwa kulingana na kanuni kutoka rahisi hadi ngumu, na zitatambulika vizuri.

Jinsi ya kufuta kiingilio

Ikiwa uliandika kitu kibaya, rekebisha kwa kutumia amri ya DELETE. Inafanya kazi sawa na UPDATE. Tunaandika nambari ifuatayo:

FUTA KUTOKA 'meza' WAPI id = '1'

Maelezo ya sampuli

Ili kupata maadili kutoka kwa hifadhidata, tumia SELECT amri. Tunaandika nambari ifuatayo:

CHAGUA * KUTOKA 'meza' WHERE id = '1'

Katika mfano huu, tunachagua mashamba yote yanayopatikana kwenye meza. Hii hutokea ikiwa unaingiza nyota "*" katika amri. Ikiwa unahitaji kuchagua thamani ya sampuli, andika hivi:

CHAGUA logi , pita KUTOKA jedwali WHERE id = '1'

Ikumbukwe kwamba uwezo wa kufanya kazi na hifadhidata hautatosha. Ili kuunda mradi wa kitaalamu wa Mtandao, itabidi ujifunze jinsi ya kuongeza data kutoka kwa hifadhidata hadi kurasa. Ili kufanya hivyo, jijulishe na lugha ya programu ya wavuti ya PHP. Itakusaidia kwa hili kozi nzuri na Mikhail Rusakov .


Kufuta meza

Hutokea kwa kutumia ombi la DROP. Ili kufanya hivyo, tutaandika mistari ifuatayo:

Jedwali la DROP TABLE;

Inaonyesha rekodi kutoka kwa jedwali kulingana na hali maalum

Zingatia nambari hii:

CHAGUA kitambulisho, countri, jiji KUTOKA jedwali WAPI watu>150000000

Itaonyesha rekodi za nchi zenye wakazi zaidi ya milioni mia moja na hamsini.

Muungano

Inawezekana kuunganisha majedwali kadhaa kwa kutumia Jiunge. Tazama jinsi inavyofanya kazi kwa undani zaidi katika video hii:

PHP na MySQL

Kwa mara nyingine tena nataka kusisitiza kwamba maombi wakati wa kuunda mradi wa mtandao ni kawaida. Ili kuzitumia katika hati za PHP, fuata algorithm ifuatayo:

  • Unganisha kwenye hifadhidata kwa kutumia mysql_connect() amri;
  • Kutumia mysql_select_db() tunachagua hifadhidata inayotaka;
  • Tunachakata ombi kwa kutumia mysql_fetch_array();
  • Funga unganisho na mysql_close() amri.

Muhimu! Kufanya kazi na hifadhidata sio ngumu. Jambo kuu ni kuandika ombi kwa usahihi.

Wasimamizi wa wavuti wanaoanza watafikiria juu yake. Unapaswa kusoma nini juu ya mada hii? Ningependa kupendekeza kitabu cha Martin Graber " SQL kwa wanadamu tu " Imeandikwa kwa namna ambayo wanaoanza wataelewa kila kitu. Itumie kama kitabu cha kumbukumbu.

Lakini hii ni nadharia. Je, hii inafanyaje kazi kwa vitendo? Kwa kweli, mradi wa mtandao sio lazima uundwe tu, bali pia uletwe kwenye TOP ya Google na Yandex. Kozi ya video itakusaidia kwa hili " Uundaji na ukuzaji wa wavuti ».


Maagizo ya video

Bado una maswali? Tazama video mtandaoni kwa maelezo zaidi.

Hitimisho

Kwa hivyo, kufikiria jinsi ya kuandika maswali ya sql sio ngumu kama inavyoonekana, lakini msimamizi yeyote wa wavuti anahitaji kufanya hivi. Kozi za video zilizoelezwa hapo juu zitasaidia na hili. Jisajili kwa kikundi changu cha VKontakte kuwa wa kwanza kujua habari mpya ya kuvutia inapotokea.