Maswali katika mysql kutoka kwa swala la php mysqli. Kutuma maswali ya hifadhidata katika PHP. Mpango wa swala la SQL katika kipengele cha Maswali

Tulijifunza jinsi ya kuunganisha kwenye seva ya MySQL, chagua hifadhidata ya kufanya kazi nayo, tulijifunza kazi ya PHP ya kutuma maswali kwa seva ya MySQL, tulijifunza maswali mawili rahisi (kuunda na kufuta meza), na kujifunza jinsi ya kufunga muunganisho.

Sasa tutazama zaidi katika maswali ya MySQL. Basi tuanze!

Kuunda meza - CREATE TABLE

Sasa tuna hifadhidata tupu, hakuna meza ndani yake. Kwa hivyo kwanza tutaunda meza. Tayari tunajua jinsi ya kufanya hivyo kutoka sehemu ya kwanza.

Hapa kuna nambari ya maandishi ambayo itaunda sahani tunayohitaji:

$link = mysqli_connect("localhost", "root", "", "tester"); ikiwa (!$link) die("Kosa"); $query = "UNDA watumiaji wa TABLE(ingia VARCHAR(20), nenosiri VARCHAR(20))"; ikiwa (mysqli_query($link, $query)) echo "Jedwali limeundwa."; mwingine echo "Jedwali halijaundwa: ".mysqli_error(); mysqli_close($link);

Jedwali letu lina nyanja mbili tu: kuingia na nenosiri. Kwa sasa hatuhitaji zaidi, tusifanye mchakato kuwa mgumu.

Kwa hiyo, meza imeundwa.

Kuongeza safu (rekodi) kwenye jedwali - INSERT

Unaweza kuongeza safu mlalo mpya kwenye jedwali kwa kutumia amri ya kuingiza SQL. Hapa kuna mfano:

$link = mysqli_connect("localhost", "root", "", "tester"); ikiwa (!$link) die("Kosa"); $query = "WEKA NDANI ya watumiaji (ingia, nenosiri) VALUE ("zeus", "pass123")"; ikiwa (mysqli_query($link, $query)) echo "Mtumiaji ameongezwa."; lingine echo "Mtumiaji hajaongezwa:" . mysqli_error(); mysqli_close($link);

Hoja ya SQL ina amri ya INSERT INTO, watumiaji wa jina la hifadhidata, kisha majina ya sehemu kwenye mabano, kisha neno VALUE, likifuatiwa na maadili ya kuongezwa kwenye mabano. Maadili yameambatanishwa katika alama za nukuu.

Syntax ya ombi inaonekana kama hii:

INGIZA NDANI ya jina_la_jedwali (safu wima1, safu wima2) THAMANI ("x1", "x2")

Nukuu katika mabano ya pili inahitajika.

Badala ya maadili kunaweza kuwa na vigezo. Hapa kuna mfano:

$link = mysqli_connect("localhost", "root", "", "tester"); ikiwa (!$link) die("Kosa"); $ ingia = "zeus"; $ neno la siri = "pass123"; $query = "WEKA NDANI ya watumiaji (ingia, nenosiri) VALUE ("$login", "$password")"; ikiwa (mysqli_query($link, $query)) echo "Mtumiaji ameongezwa."; lingine echo "Mtumiaji hajaongezwa:" . mysqli_error(); mysqli_close($link);

Bila shaka, mfano huu hauna maana. Huenda ikawa muhimu kwa wanaoanza kusikia kwamba hivi ndivyo kumbukumbu na manenosiri ambayo watumiaji hutoa wakati wa usajili yanarekodiwa kwenye hifadhidata. Data hii imehifadhiwa katika vigezo na kisha, baada ya uthibitishaji, imeandikwa kwenye hifadhidata.

Kuna njia ya haraka ya kuingiza safu mlalo nyingi na taarifa moja ya INSERT:

WEKA NDANI ya watumiaji (ingia, nenosiri) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

Kama unaweza kuona, data iliyoorodheshwa imetenganishwa tu na koma.

Kwa hiyo, kwa kutumia amri ya INSERT, tulijifunza jinsi ya kuongeza rekodi kwenye meza. Endelea.

Tazama Jedwali: CHAGUA Amri

Sasa tuna meza ya watumiaji ambayo ina safu. Hati iliyotangulia inaweza kuendeshwa mara kadhaa, na kila wakati itaongeza safu kwenye jedwali. Sasa labda hatujui ni safu ngapi kwenye jedwali. Na ninataka kujua tumeandika nini ndani yake.

Ili kurejesha data kutoka kwa jedwali, tumia amri ya SELECT SQL. Ishara ya * ina maana kwamba tunaomba data zote, kisha baada ya neno FROM tunaandika jina la meza ambayo tunataka kupata data.

Wacha tuulize data yote kutoka kwa jedwali la watumiaji:

$link = mysqli_connect("localhost", "root", "", "tester"); ikiwa (!$link) die("Kosa"); $query = "CHAGUA * KUTOKA KWA watumiaji"; $matokeo = mysqli_query($link, $query); ikiwa (!$result) echo "Hitilafu imetokea: " . mysqli_error(); mwingine echo "Data iliyopokelewa"; mysqli_close($link);

Kazi ya mysqli_query() ilirejesha kitambulisho cha matokeo ya hoja kwetu - tunaiweka katika kigezo na baadaye tutafanya kazi nayo kwa kutumia vitendaji vingine vya PHP.

Idadi ya rekodi katika ombi

Wacha tubaini ni mistari mingapi kwenye hoja yetu? Niliendesha script kwa kuongeza rekodi kwenye meza, sikumbuki mara ngapi na sasa sijui ni safu ngapi kwenye meza yangu.

Kuamua idadi ya safu katika matokeo ya swali, tumia chaguo la kukokotoa la mysqli_num_rows(). Chaguo hili la kukokotoa limepitishwa kitambulisho cha matokeo ya hoja, na hurejesha idadi ya rekodi.

$link = mysqli_connect("localhost", "root", "", "tester"); ikiwa (!$link) die("Kosa"); $query = "CHAGUA * KUTOKA KWA watumiaji"; $matokeo = mysqli_query($link, $query); ikiwa (!$result) echo "Hitilafu imetokea: " . mysqli_error(); mwingine echo "Data iliyopokelewa"; $count = mysqli_num_rows(matokeo ya $); echo "Jumla ya safu katika jedwali: $count."; mysqli_close($link);

Ikiwa tunahitaji kujua idadi ya rekodi kwenye meza, basi njia iliyo hapo juu haifai zaidi. Hapa tuligundua idadi ya rekodi zilizopatikana kwenye swali, lakini idadi ya rekodi kwenye jedwali hutafutwa tofauti.

Idadi ya rekodi katika jedwali CHAGUA COUNT(*)

Ili kujua idadi ya rekodi kwenye jedwali, unaweza kutumia amri CHAGUA COUNT(*) FROM table_name.

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); $query = "CHAGUA * KUTOKA KWA watumiaji"; $matokeo = mysqli_query($link, $query); ikiwa (!$result) echo "Hitilafu imetokea: " . mysqli_error(); mwingine echo "Data iliyopokelewa."; $count = mysqli_fetch_row($matokeo); echo "Jumla ya safu katika jedwali: $count."; mysqli_close($link);

Tafadhali kumbuka kuwa hapa tulitumia kazi mpya ya PHP mysqli_fetch_row() kuleta data. Chaguo hili la kukokotoa hurejesha safu ya matokeo ya hoja katika mfumo wa safu rahisi; kwa upande wetu, kuna sehemu moja kwenye safu na ina faharisi 0.

Kuangalia matokeo ya swali katika kitanzi

Baada ya kutekeleza swali la SQL kwa amri ya SELECT na kupata kitambulisho cha matokeo ya hoja, PHP huunda kielekezi cha ndani kwenye rekodi ya matokeo. Kielekezi hiki husogea kiotomatiki hadi rekodi inayofuata baada ya kufikia rekodi ya sasa. Utaratibu huu hufanya iwe rahisi sana kupitia seti ya matokeo ya swali CHAGUA.

PHP ina vitendaji kadhaa ambavyo unaweza kupata safu inayojumuisha sehemu zake kwa kila safu ya hoja inayotokana. Kwa mfano, hebu tuchukue kazi ya mysqli_fetch_row(). Chaguo hili la kukokotoa linapitishwa kitambulisho cha ombi na kurejesha safu. Kwa hivyo, kwa kitanzi, matokeo yote ya swala yanatazamwa, na wakati mwisho wa matokeo ya swala umefikiwa, kazi itarudi false .

Kwa hivyo, tunauliza data zote kutoka kwa jedwali la watumiaji (CHAGUA *KUTOKA kwa watumiaji).


"; wakati ($row = mysqli_fetch_row($result)) ( echo "Ingia: $row. Password: $row.
"; ) mysqli_close($link);

Kazi ya mysqli_fetch_row() inarudisha safu rahisi. Katika kila iteration ya kitanzi, tutapokea safu na safu kutoka kwa meza, mashamba ambayo tunaweza kufikia kwa kutaja index ya nambari.

Vile vile vinaweza kufanywa kwa kutumia mysql_fetch_assoc() kazi, inarudisha safu ya ushirika.

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji"); ikiwa (!$result) echo "Hitilafu imetokea: " . mysqli_error(); mwingine echo "Data imepokelewa.
"; wakati ($row = mysqli_fetch_assoc($result)) ( echo "Ingia: $row. Password: $row.
"; ) mysqli_close($link);

Pia kuna kazi mysqli_fetch_array() - inarudisha aina yoyote ya safu, na mysqli_fetch_object() - inarudisha kitu.

CHAGUA DISTINCT swala - thamani za uga za kipekee

Wacha tuunde meza mpya:

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); // futa jedwali lililopo mysqli_query($link, "DROP TABLE watumiaji"); // unda jedwali jipya $query = "CREATE TABLE watumiaji(jina VARCHAR(20), jina la ukoo VARCHAR(20), umri TINYINT HAJAJISINI)"; ikiwa (mysqli_query($link, $query)) echo "Jedwali limeundwa.
"; else echo "Jedwali halijaundwa: " . mysqli_error(); // kazi ya kuongeza rekodi kwenye kitendakazi cha jedwali add_new_line($link, $query) ( if (!mysqli_query($link, $query)) echo "Mtumiaji sio added : " . mysqli_error(); ) // ongeza rekodi add_new_line($link, "INGIZA watumiaji (jina, jina la ukoo, umri) VALUE ("Max", "Jayson", "33"); add_new_line($link , "WEKA NDANI ya watumiaji (jina, jina la ukoo, umri) VALUE ("Bob", "Freeman", "26")); add_new_line($link, "INGIZA watumiaji (jina, jina, umri) VALUE ("Sara" , "Lopes", "65")); add_new_line($link, "INGIZA watumiaji (jina, jina, umri) VALUE ("Serg", "Pupin", "29")); add_new_line($link, " WEKA NDANI ya watumiaji (jina, jina, umri) VALUE ("Serg", "Borman", "43")); add_new_line($link, "INGIZA watumiaji (jina, jina, umri) VALUE ("Upeo", " Lopes", "21")); // onyesha yaliyomo kwenye jedwali katika kivinjari $result = mysqli_query($link, "SELECT * FROM users"); ikiwa (!$result) itatoa mwangwi "Hitilafu imetokea: " . mysqli_error(); mwingine echo "Data imepokelewa.
"; huku ($row = mysqli_fetch_assoc($result)) ( echo "Jina la kwanza: $row. Jina la mwisho: $row. Umri: $row.
"; ) mysqli_close($link);

Kwa hivyo, tunayo jedwali mpya, ngumu zaidi na rekodi za kipekee. Sasa hebu tuone ni majina mangapi tunayo kwenye hifadhidata.

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); $result = mysqli_query($link, "CHAGUA DISTINCT jina KUTOKA kwa watumiaji"); echo "Jumla ya majina:" . mysqli_num_rows(matokeo ya $)."
"; echo "Orodha ya majina:
"; wakati ($name = mysqli_fetch_row($matokeo)) ( echo "$name
"; ) mysqli_close($link);

Hoja ya SQL "CHAGUA DISTINCT jina KUTOKA kwa watumiaji" ilileta matokeo yenye majina yote ya kipekee kwenye jedwali letu. Kila jina la kipekee katika safu mlalo mpya ya matokeo ya hoja.

Kupanga matokeo - ORDER BY

Kwa kuongeza amri ya ORDER BY kwa swali la SQL, tunapanga matokeo ya hoja kwa mpangilio wa kupanda (nambari na herufi kwa mpangilio wa alfabeti). Huu hapa ni mfano ambao unaweza kulinganisha swala la kawaida na lililopangwa kulingana na umri (uga wa umri).



"; ) mwangwi "Panga kwa umri:
"; $result = mysqli_query($link, "CHAGUA *KUTOKA KWA watumiaji UTANGULIZI KWA umri"); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line. Umri: $ mstari.
"; ) mysqli_close($link);

Unaweza kubadilisha uga wa umri katika ORDER BY amri na uga wa jina na uone matokeo.

Ili kupanga matokeo kwa mpangilio wa nyuma, tumia amri ya ORDER BY DESC.

Hali inayolingana - WAPI

Kwa kuongeza amri ya WHERE kwenye swala la SQL, tutauliza rekodi hizo tu zinazokidhi masharti. Kwa mfano, hebu tuombe watu walio chini ya umri wa miaka 30.

Ili kufanya hivyo, tunatumia swali la SQL "CHAGUA * KUTOKA kwa watumiaji WHERE umri

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); mwangwi "Watu walio chini ya miaka 30:
"; $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji WAPI umri<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
"; ) mysqli_close($link);

Tunaweza pia kupanga matokeo mara moja katika mpangilio wa umri:
" CHAGUA * KUTOKA KWA watumiaji WAPI umri<30 ORDER BY age ".

Tukiuliza " CHAGUA jina FROM watumiaji WHERE umri<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

Tunaweza kuuliza thamani za sehemu mbili: " CHAGUA jina, umri FROM watumiaji WHERE umri

Sasa hebu tuombe watumiaji wote wenye jina "Max".

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); echo "Upeo wote:
"; $result = mysqli_query($link, "CHAGUA * KUTOKA kwa watumiaji WHERE name="Max""); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line. Umri: $line.
"; ) mysqli_close($link);

Na mfano mwingine wa swala - itachagua majina tu kutoka kwa meza ya watumiaji, kila kitu isipokuwa Max.

CHAGUA jina KUTOKA kwa watumiaji WAPI jina!="Max"

Hiyo yote ni kwa swali la WHERE.

Kuzuia maingizo - LIMIT

Kwa kuongeza amri LIMIT kwa hoja ya SQL, tutapunguza ukubwa wa matokeo.

Hoja inayorudisha maingizo matatu ya kwanza ni: " CHAGUA *KUTOKA kwa watumiaji LIMIT 3 ". Wacha tuone jinsi inavyofanya kazi:

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); echo "Yaliyomo kwenye jedwali:
"; $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji"); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line. Umri: $line.
";) mwangwi"

Ingizo tatu za kwanza:
"; $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji LIMIT 3"); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line. Umri: $line .
";) mwangwi"

Ingizo tatu za pili:
"; $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji LIMIT 3, 3"); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line. Umri: mstari wa $.
"; ) mysqli_close($link);

Pia hapa tulitumia swali: "CHAGUA * KUTOKA KWA watumiaji LIMIT 3, 3". Tatu ya pili inaonyesha kukabiliana katika matokeo ya hoja.

Mchoro wa mechi - LIKE

Lugha ya SQL inasaidia violezo rahisi. Ili kufanya hivyo, tumia amri ya LIKE na ueleze muundo kwa kutumia alama ya%.

Hapa kuna swali la mfano ambalo litarudisha rekodi zote zilizo na majina yanayoanza na herufi S.

CHAGUA *KUTOKA KWA watumiaji AMBAPO jina KAMA "S%"

Ninajaribu ombi:

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); echo "Yaliyomo kwenye jedwali:
"; $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji"); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line. Umri: $line.
";) mwangwi"

Majina yanayoanza na S:
"; $result = mysqli_query($link, "CHAGUA *KUTOKA KWA watumiaji WAPI jina KAMA "S%""); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line Umri : $line.
"; ) mysqli_close($link);

Hapa kuna swali la mfano ambalo litarudisha rekodi zote zilizo na majina ya mwisho na herufi s.

CHAGUA *KUTOKA KWA watumiaji AMBAPO jina KAMA "%s"

Masharti yamefikiwa - IN

Hoja hii kwa kutumia amri ya IN itarudisha tu safu mlalo zinazolingana na hali hiyo.

Kwa mfano, tunapendezwa na watu wenye umri wa miaka 21, 26 na 33.

CHAGUA * KUTOKA KWA watumiaji AMBAPO umri KATIKA (21,26,33)

Ninajaribu ombi:

$link = mysqli_connect("localhost", "mzizi", ""); ikiwa (!$link) die("Kosa"); mysqli_select_db("tester"); echo "Yaliyomo kwenye jedwali:
"; $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji"); huku ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho: $line. Umri: $line.
";) mwangwi"

Watu walio na umri unaohitajika (21, 26, 33):
"; $result = mysqli_query($link, "CHAGUA * KUTOKA KWA watumiaji WAPI umri (21, 26, 33)"); wakati ($line = mysqli_fetch_row($matokeo)) ( echo "Jina la kwanza: $line. Jina la mwisho : mstari wa $. Umri: $line.
"; ) mysqli_close($link);

Thamani ya juu na ya chini zaidi katika safu wima

Huchagua thamani ya juu zaidi ya umri katika jedwali la watumiaji.

CHAGUA upeo(umri) KUTOKA kwa watumiaji

Hoja ifuatayo huchagua data kutoka kwa jedwali la watumiaji kwa kutumia sehemu za jina na umri, ambapo umri huchukua thamani ya chini zaidi.

CHAGUA jina, dakika(umri) KUTOKA kwa watumiaji

Inasasisha rekodi - UPDATE

Wacha tuweke umri wa Max Lopes hadi miaka 15. Hii inafanywa na swali la MySQL:

SASISHA watumiaji WEKA umri="15" WHERE name="Max" NA surname="Lopes"

Tafadhali kumbuka amri mpya NA (na inamaanisha "na" kwa Kiingereza) katika swali. Ikiwa hatutaja jina la mwisho, basi umri wa miaka 15 utawekwa kwa Maxes zote kwenye jedwali.

Unaweza kusasisha sehemu mbili au zaidi katika safu mlalo moja kwa hoja moja. Hii inafanywa kama ifuatavyo:

SASISHA watumiaji WEKA umri = "18", jina la ukoo = "Coocker" WHERE id = "3"

Jedwali letu halina sehemu ya kitambulisho, kwa hivyo hoja hii haitaifanyia kazi. Lakini hakika tutajifunza uwanja huu ulio na nambari za laini za kipekee.

Futa ingizo - DELETE

Hoja ya hifadhidata ya MySQL ili kufuta rekodi:

FUTA KUTOKA KWA watumiaji WAPI id = "10"

Tena, jedwali letu halina uga wa kitambulisho. Lakini tunaweza kuondoa kutoka kwa watu wote chini ya umri wa miaka 18.

FUTA KUTOKA KWA watumiaji WAPI umri< "18"

Futa jedwali - DROP TABLE

Hoja ya hifadhidata ya MySQL ambayo hufuta jedwali zima la watumiaji:

DrOP TABLE watumiaji

Futa safu - ALTER TABLE ... DROP ...

Wakati mwingine unaweza kuhitaji kuondoa safu kwenye jedwali, kwa mfano, tuondoe safu ya umri kutoka kwa watumiaji:

WATUMIAJI WA Alter TABLE PUNGUZA umri

Hoja hii ya MySQL ilifuta safu wima kabisa na kabisa.

Ongeza safu - ALTER TABLE ... ONGEZA ...

Wakati mwingine unaweza kuhitaji kuongeza safu kwenye jedwali lililopo, wacha kwa mfano tuongeze safu ya umri kwenye jedwali la watumiaji:

Watumiaji wa ALTER TABLE ONGEZA umri TINYINT AMBAO HAWAJASAINIWA

Kubadilisha jina la safu wima - ALTER TABLE ... BADILISHA ...

Wakati mwingine unaweza kuhitaji kubadili jina la safu, kwa mfano, kubadilisha safu ya umri kuwa vozrast. Tunafanya hivi:

WATUMIAJI WA ALTER TABLE KUBADILI umri wa TINYINT HAJAJISAINI

Hoja hii ya MySQL ilibadilisha umri wa safu kuwa vozrast na aina ya data TINYINT UNSIGNED.

Kubadilisha jedwali jina - JITAHIDI TABLE ... KWA ...

Wakati mwingine unaweza kuhitaji kubadili jina la meza:

TENA TABLE watumiaji KWA watu

Kuondoa hifadhidata - DROP DATABASE

Hoja hii inaweza kufuta hifadhidata inayoitwa tester:

ONDOA kijaribu cha DATABASE

Kuunda hifadhidata - CREATE DATABASE

Hoja hii inaunda hifadhidata inayoitwa tester:

UNDA kijaribu cha DATABASE

Ombi hili linanifanyia kazi huko Denver, lakini kwa kukaribisha linaweza lisifanye kazi ikiwa mtumiaji wa hifadhidata hana haki ya kufuta.

Matokeo

Kwa hivyo, katika sehemu hii tulifahamiana na maswali kwa MySQL. Maswali mengi tuliyochunguza mara nyingi hayatufaidii katika mchakato wa kazi, lakini tunahitaji kuyajua, kwani hakika yatakuja kusaidia katika mchakato wa kuunda hati.

Baadhi ya maombi kawaida hufanywa tu kutoka kwa phpMyAdmin (kuunda na kufuta hifadhidata kwa mfano).

Unapofanya kazi kwenye tovuti, kwa kawaida unahitaji kuongeza rekodi kwenye jedwali, kuhariri rekodi au kufuta rekodi kutoka kwa jedwali.

Hatua inayofuata ni kujifunza kuhusu aina za data za MySQL.

Katika makala hii tutajifunza tuma maswali ya hifadhidata kupitia PHP. Makala hii ni muhimu sana, na lazima uelewe. Hata hivyo, nitawahakikishia - nyenzo ni rahisi sana, kwa hiyo haipaswi kuwa na matatizo.

Kabla ya kuendelea na mada ya kifungu hicho, nakuonya mapema kwamba sitachambua kwa undani Lugha ya SQL. Taarifa zote muhimu zimepangwa katika kitengo kilichowekwa, lakini hapa sisi tu kufanya kazi na MySQL kupitia PHP.

Sasa hebu tuendelee kutuma maswali ya hifadhidata katika PHP:


}
$mysqli->query("WEKA NDANI YA meza yangu (jina, barua pepe) VALUES ("Jina Langu", " [barua pepe imelindwa]")");
$mysqli->funga();
?>

Katika mfano huu, tuliunganisha kwenye hifadhidata, tukaangalia mafanikio ya uunganisho, na kutuma ombi kwa kutumia njia swala(), na kisha kufunga muunganisho. Kama unaweza kuona, kila kitu ni rahisi sana. Kutuma yoyote Maswali ya SQL Njia moja tu inatosha - swala(), kwa hivyo katika kesi hii kila kitu ni rahisi sana.

Sasa hebu tufanye kazi ngumu kidogo. Wacha tuangalie maswali ambayo yanarudi matokeo_seti- matokeo. Ombi maarufu zaidi linarudi matokeo_seti ni uteuzi wa data kutoka kwa jedwali. Katika mfano ufuatao, tutafanya sampuli ya data na kisha kuonyesha matokeo:

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
ikiwa (mysqli_connect_errno()) (
echo "Muunganisho umeshindwa: ".mysqli_connect_error();
}
$result_set = $mysqli->
wakati ($safu = $result_set->fetch_assoc()) (
print_r(safu ya $);
mwangwi"
";
}
$matokeo_weka->funga();
$mysqli->funga();
?>

Kwanza, wacha nielezee kidogo ni nini. matokeo_seti. Matokeo_yamewekwa- hii ni meza na matokeo. Jedwali hili lina seti ya rekodi (safu za jedwali). Na ili kuonyesha rekodi zote, unahitaji kurudia juu ya kila safu ya jedwali na kuionyesha. Na sasa nitaelezea kwa mfano: baada ya kutuma ombi, tunazalisha matokeo_seti. Kisha tunapeana kutofautisha kwa kitanzi safu thamani ya mstari unaofuata, yaani, safu moja-dimensional ambayo njia inarudi fetch_assoc(). Wakati mistari yote imekamilika, njia fetch_assoc() itarudi uongo, na kitanzi kitatoka. Ndani ya kitanzi wakati tunatoa tu safu kwa kutumia kazi ya utatuzi print_r(), ingawa inaweza kuamuliwa kwa kutumia kwa kila, lakini sasa hii sio lazima.

Wacha tufanye muhtasari wa jinsi ya kufanya kazi nayo matokeo_seti:

  1. Pata matokeo_seti kwa kutuma ombi sambamba kwa hifadhidata.
  2. Katika kitanzi, kwa kila marudio, toa safu inayofuata (rekodi) kutoka matokeo_seti kwa kutumia mbinu fetch_assoc() baadhi ya kutofautiana safu. Kisha unaweza kufanya kazi na utaftaji huu kama safu ya ushirika ya mwelekeo mmoja, ambayo funguo ni majina ya sehemu za jedwali, na maadili yanalingana na rekodi ya sasa.
  3. Hakikisha kufunga matokeo_seti njia funga () kuondoa rasilimali.

Kama umeona, mbinu fetch_assoc() daima hurejesha rekodi inayofuata. Hiyo ni, kwanza ya 1, kisha ya 2, kisha ya 3 na kadhalika. Ikiwa una uzoefu mzuri wa programu, basi utadhani mara moja kwamba hii hutokea shukrani kwa pointer ya ndani, ambayo wewe, bila shaka, unaweza kusonga. Inatumika wapi? Kwa mfano, hii inaweza kutumika wakati unahitaji kufanya kazi nayo matokeo_seti Sivyo 1 , A 2 na mara zaidi. Ili kuzuia kutoa ombi sawa tena, unaweza kuhamisha pointer hadi mwanzo. Na kisha unaweza kuanza nguvu ya brute tena matokeo_seti kwa kutumia fetch_assoc() mbinu.

Kuna njia ya kubadilisha msimamo wa pointer data_seek(), ambayo huchukua nambari kamili kutoka 0 kabla" idadi ya kumbukumbu - 1", ipasavyo, pointer imewekwa kwenye kiingilio kinacholingana na parameta:

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
ikiwa (mysqli_connect_errno()) (
echo "Muunganisho umeshindwa: ".mysqli_connect_error();
}
$result_set = $mysqli->swali("CHAGUA * KUTOKA kwenye mytable");
$result_set->nambari_safu;
wakati ($safu = $result_set->fetch_assoc()) (
print_r(safu ya $);
mwangwi"
";
}
$result_set->data_seek(0);
wakati ($safu = $result_set->fetch_assoc()) (
print_r(safu ya $);
mwangwi"
";
}
$matokeo_weka->funga();
$mysqli->funga();
?>

Katika mfano huu tuna pato idadi ya rekodi katika result_set kutumia mali nambari_safu. Pia tulifahamiana na mbinu hiyo data_seek(). Hiyo ni, tulisisitiza juu ya matokeo yote, kisha tukarudisha pointer kwa 0 rekodi na kupitia matokeo tena.

Katika makala hii, tulirudia kuunganisha kwenye hifadhidata na kufunga uunganisho. Na pia kugundua jinsi ya kuuliza hifadhidata kupitia PHP. Umejifunza, jinsi ya kupata result_set na jinsi ya kufanya kazi nayo. Haya ndiyo yote unayohitaji kujua ili kufanikiwa kufanya kazi na MySQL katika PHP.

Kumbuka: Muundo wa juu Swala la Nguvu inayotolewa katika Excel 2016 kama kikundi cha amri Pakua na ubadilishe. Taarifa katika makala hii inatumika kwa Hoja ya Nguvu na kikundi kipya. Kwa habari zaidi, angalia kipengele cha Pakua na Badilisha katika Excel 2016.

Katika Uendeshaji wa Swala la Nguvu Ongeza huunda hoja mpya iliyo na safu mlalo zote kutoka kwa hoja ya kwanza, na kisha safumlalo zote kutoka kwa hoja ya pili.

Kumbuka Usalama: Viwango vya faragha kuzuia kuunganishwa kwa data kwa bahati mbaya kutoka kwa vyanzo vingi, ambavyo vinaweza kuwa vya kibinafsi au vya shirika. Wakati wa kutumia baadhi ya maswali, mtumiaji anaweza kutuma data bila kukusudia kutoka chanzo cha data cha faragha hadi chanzo kingine cha data. Washambuliaji wanaweza kutumia fursa hii. Power Query huchanganua kila chanzo cha data na kubainisha kiwango chake cha unyeti: umma, shirika na faragha. Kwa maelezo zaidi kuhusu viwango vya faragha, angalia Viwango vya Faragha.

Kufanya Kuongeza

Unaweza kufanya operesheni ya kuongeza ya aina mbili: nyongeza ya kati au inline append. Kutumia nyongeza ya kati Kwa kila operesheni ya kuongeza, swali jipya linaundwa. Katika inline append unaongeza data kwa hoja iliyopo hadi ufikie matokeo ya mwisho. Matokeo yake ni hatua mpya mwishoni mwa ombi la sasa.

Nyongeza ya Mstari

Nyongeza ya kati


Angalia pia:

Kumbuka: Mhariri wa hoja inaonekana tu wakati wa kupakia, kuhariri, au kuunda ombi jipya kwa kutumia Swala la Nguvu. Video inaonyesha dirisha mhariri wa swala inayoonekana baada ya kuhariri swali kwenye kitabu cha kazi cha Excel. Kutazama mhariri wa swala bila kupakia au kurekebisha swali lililopo kwenye kitabu cha kazi, katika sehemu hiyo Inapokea data ya nje kwenye kichupo cha Ribbon Swala la Nguvu chagua Kutoka kwa vyanzo vingine > Ombi tupu. Video inaonyesha moja ya njia za kuonyesha mhariri wa swala.

Nadhani kila mtu amesikia juu ya sheria ya Pareto. Katika uwanja wowote, 20% ya juhudi hutoa 80% ya matokeo. Kwa mfano, unavaa 20% ya WARDROBE yako 80% ya wakati, 20% ya wateja wako huleta 80% ya mapato yako. Ni sawa katika Laha za Google: kujua 20% ya kazi zilizopo, unaweza kutatua 80% ya shida zote zinazowezekana.

Ninaona Hoja kuwa mojawapo ya vipengele muhimu vya Majedwali ya Google. Lakini Usaidizi wa Google unaielezea kwa juu juu sana, na nguvu kamili ya kazi hii haijafichuliwa. Baada ya uchunguzi wa karibu, inakuwa wazi kuwa ina uwezo wa kuchukua nafasi ya kazi nyingi zilizopo.

Ili kufanya kazi na QUERY, utahitaji maarifa ya kimsingi ya SQL. Kwa wale ambao hawajui, msiwe na wasiwasi, kipengele cha QUERY kinatumia vipengele vya msingi vya SQL.

sintaksia ya QUERY

QUERY(data; ombi; [vichwa])
  • data- hii ni safu ya seli ambazo zitatumika kama hifadhidata ya hoja ya SQL;
  • ombi- Nakala ya swali la SQL;
  • vichwa ni hoja ya hiari ambayo unaweza kubainisha ni safu ngapi za safu mlalo za kwanza zilizo na vichwa.

Ili kuongeza mtazamo wa maelezo zaidi, ninapendekeza kufungua na kunakili Laha ifuatayo ya Google

Kuna laha nyingi kwenye doksi ambayo umeunda nakala yake. Laha ya DB ndiyo hifadhidata ambayo tutafikia kwa kutumia kitendakazi cha QUERY. Karatasi za Ngazi zina mifano ambayo tutaangalia katika makala hii. Kwa kila ngazi mpya mfano utakuwa mgumu zaidi.

Mpango wa swala la SQL katika kipengele cha Maswali

Swali lolote la SQL lina vizuizi tofauti, ambavyo mara nyingi huitwa kashfa. SQL ya chaguo za kukokotoa za Hoji hutumia sintaksia ya lugha ya hoja ya API ya Google Visualization, ambayo inaauni vifungu vifuatavyo:

  • chagua- kuorodhesha mashamba ambayo yatarejeshwa na ombi;
  • wapi- ina orodha ya masharti ambayo safu ya data iliyochakatwa na ombi itachujwa;
  • kundi kwa- ina orodha ya sehemu ambazo unataka kuweka matokeo;
  • egemeo- husaidia kuunda vichupo mtambuka kwa kutumia thamani ya safuwima moja kama majina ya safu wima za jedwali la mwisho;
  • kuagiza kwa- ni wajibu wa kupanga matokeo;
  • kikomo- kwa sehemu hii ya swala unaweza kuweka kikomo kwa idadi ya safu zilizorejeshwa na swala;
  • kukabiliana- kwa kutumia kashfa hii, unaweza kuweka idadi ya mistari ya kwanza ambayo hauitaji kusindika na swala;
  • lebo- kashfa hii inawajibika kwa jina la mashamba yaliyorejeshwa na ombi;
  • umbizo- kuwajibika kwa muundo wa data ya pato;
  • chaguzi - inafanya uwezekano wa kuweka vigezo vya ziada vya pato la data.

Jambo Ulimwenguni kwa kipengele cha Hoja (Chagua).

Twende kwenye karatasi ya Level_1 na tuangalie fomula katika kisanduku A1.

Hoja(DB!A1:L1143;"chagua * kikomo 100")

Sehemu ya formula " DB!A1:L1143" inawajibika kwa hifadhidata ambayo tutafanya sampuli. Sehemu ya pili" chagua * kikomo 100"ina maandishi ya ombi lenyewe. Alama ya "*" katika kesi hii inamaanisha kurudisha sehemu zote zilizomo kwenye hifadhidata. Kwa kutumia " kikomo 100»Tunaweka kikomo cha matokeo hadi laini 100. Huu ni mfano wa ombi rahisi zaidi. Tulichagua safu 100 za kwanza kutoka kwa hifadhidata. Hii ni aina ya "Hujambo ulimwengu" kwa kipengele cha Hoji.

Tunatumia vichungi na kupanga (Wapi, Agiza kulingana)

Nenda kwenye laha Level_2. Hebu tuchague baadhi tu ya sehemu tunazohitaji na tuweke masharti ya kuchuja na kupanga. Kwa mfano, tunatumia data kwa kampeni za Campaign_1 na Campaign_2 pekee katika kipindi cha tarehe 22-25 Oktoba 2015. Wacha tuzipange kwa mpangilio wa kushuka kwa idadi ya vikao. Ili kuchuja na kupanga, unahitaji kuongeza maelezo ya kashfa kwenye maandishi ya ombi Wapi Na Agizo. Ili kuonyesha mfano ulioelezwa hapo juu kwenye jedwali linalotokana, tunahitaji sehemu za Kampeni, Tarehe na Vikao. Hao ndio wanaohitaji kuorodheshwa katika kashfa Chagua.

Sehemu za hifadhidata zinapatikana kupitia majina ya safu wima za laha ya kazi ambayo hifadhidata iko.

Kwa upande wetu, data iliyo kwenye laha ya DB na ufikiaji wa sehemu fulani imeandikwa kama jina la safu wima. Kwa hivyo, sehemu zinazohitajika ziko katika safu wima zifuatazo:

  • shamba Tarehe- safu A;
  • shamba Kampeni- safu B;
  • shamba Vikao- safu ya G.

Ipasavyo, sehemu ya ombi inayowajibika kwa orodha ya matokeo ya data kama matokeo itaonekana kama hii:

Chagua A, B, G

Inayofuata katika ombi ni kashfa Wapi. Wakati wa kuandika ombi, kashfa lazima iwekwe kwa mpangilio ambao ulielezewa katika sehemu ya kwanza ya kifungu hiki. Baada ya tangazo Wapi tunahitaji kuorodhesha hali ya kuchuja. Katika hali hii, tunachuja data kwa jina la kampeni (Kampeni) na tarehe (Tarehe). Tunatumia hali kadhaa za kuchuja. Maandishi ya swali lazima yawe na opereta wa kimantiki AU au NA kati ya masharti yote. Kuchuja kwa tarehe ni tofauti kidogo na kuchuja kwa nambari na nambari za maandishi; inahitaji matumizi ya opereta wa Tarehe. Sehemu ya ombi inayohusika na kuchuja data itaonekana kama hii:

WAPI (A >= tarehe"2015-10-22" NA A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")

Kwa kutumia mabano, tuligawanya uchujaji wa data katika sehemu mbili za kimantiki: vichujio vya kwanza kulingana na tarehe, vichujio vya pili kwa jina la kampeni. Katika hatua hii, fomula inayoelezea data ya kuchaguliwa na hali ya kuchuja data inaonekana kama hii:

Hoja(DB!A1:L1143;" Chagua A, B, G WAPI (A >= tarehe"2015-10-22" NA A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")")

Unaweza kunakili na kuibandika, kwa mfano, kwenye laha mpya ya hati iliyotumiwa kama mfano katika chapisho hili, na upate matokeo yafuatayo:

Kwa kuongeza waendeshaji wa kawaida wa kimantiki (=,<, >) block WHERE inasaidia waendeshaji wa ziada wa kuchuja:

  • ina- hukagua yaliyomo katika herufi fulani kwenye mfuatano. Kwa mfano, AMBAPO A ina 'John' itarejesha kwenye kichujio thamani zote kutoka safu A iliyo na John, kwa mfano, John Adams, Long John Silver;
  • huanza na- huchuja maadili kwa kiambishi awali, ambayo ni, hundi wahusika mwanzoni mwa mstari. Kwa mfano, huanza na 'en' itarudisha maadili ya uhandisi na Kiingereza;
  • inaisha na- huchuja maadili mwishoni mwa kamba. Kwa mfano, mstari 'mwana ng'ombe ’ itarejeshwa na “miisho na ‘mvulana’” au “inaishia na ‘y’”;
  • mechi- inalingana na usemi wa kawaida. Kwa mfano: ambapo mechi ‘.*ia ' itarudisha maadili ya India na Nigeria.
  • kama - Toleo lililorahisishwa la misemo ya kawaida, hukagua kama mfuatano unalingana na usemi fulani kwa kutumia vibambo vya kadi-mwitu. Hivi sasa, kama vile vibambo viwili vya kadi-mwitu: "%" inamaanisha nambari yoyote ya herufi zozote kwenye mfuatano, na "_" inamaanisha herufi yoyote. Kwa mfano, "ambapo jina kama 'fre%'" litalingana na mistari 'bure ’, 'fred ', na 'freddy ’.

Hoja tayari imechuja data kwa kipindi fulani na kuacha tu kampeni tunazohitaji. Kilichobaki ni kupanga matokeo kwa mpangilio wa kushuka kulingana na idadi ya vipindi. Kupanga katika maswali haya hufanywa kwa jadi kwa SQL kwa kutumia kashfa Agiza kwa. Syntax ni rahisi sana: unahitaji tu kuorodhesha sehemu ambazo unataka kupanga matokeo, na pia taja mpangilio wa kupanga. Agizo chaguo-msingi ni asc, yaani, kupanda. Ukibainisha kigezo cha desc baada ya jina la uwanja, hoja itarudisha matokeo katika mpangilio wa kushuka wa wale waliotajwa kwenye kashfa. Agiza kwa mashamba.

Kwa upande wetu, mstari katika maandishi ya ombi utawajibika kwa kuchuja:

Agiza na G desc

Ipasavyo, matokeo ya mwisho ya fomula kwenye karatasi Level_2, ambayo husuluhisha shida tunayohitaji, inaonekana kama hii:

Hoja(DB!A1:L1143;" CHAGUA A, B, G WAPI (A >= tarehe"2015-10-22" NA A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2") ORDER BY G DESC")

Sasa unaweza kutumia sintaksia rahisi ya SQL na kitendakazi cha QUERY kuchuja na kupanga data.

".
Labda wavulana kutoka ofisi ya Moscow hawana wakati, kwa hivyo ifuatayo itakuwa tafsiri ya bure ya Marejeleo ya Lugha ya Swali (Toleo la 0.7).
API ya Google Visualization. Lugha ya Maswali (Toleo la 0.7)
Lugha ya hoja ya API ya Google Visualization hukuruhusu kudhibiti data kupitia hoja hadi chanzo cha data.

Kwa kawaida, taswira inahitaji data kuwasilishwa kwa namna fulani mahususi. Kwa mfano, chati ya pai inahitaji safu wima mbili: lebo ya maandishi na thamani ya nambari. Chanzo cha data kinaweza kisilingane na muundo huu. Inaweza kuwa na safu wima zaidi, au mpangilio wao utakuwa tofauti na kile kinachohitajika kwa chati.
Lugha ya kuuliza huturuhusu kupanga data kwa njia ambayo tunahitaji kufikia matokeo.
Sintaksia ya lugha ya hoja ni sawa na SQL. Wale walio na ujuzi wa kutumia SQL wataweza kujua haraka lugha ya swali. Sehemu ya sintaksia inabainisha tofauti za lugha hizi.
Kumbuka kuwa si lazima kila wakati kutumia lugha ya maswali kwa taswira. Inahitaji msingi ili kuitumia. Kwa yaliyomo.

Kutumia Lugha ya Maswali

Unaweza kuongeza kamba ya hoja kwenye chanzo cha data kwa njia mbili: kutoka kwa msimbo wa JavaScript au kama kigezo hadi kiungo cha chanzo cha data. Ikiwa kiungo chako hakina vigezo vya hoja, basi kwa chaguo-msingi seti nzima ya data inarejeshwa. Unaweza kubadilisha seti hii kwa kurekebisha hoja kwenye chanzo chenyewe cha data.

Ikiwa unatumia kipengele cha QUERY katika Majedwali ya Google, basi unaweza kuruka pointi zifuatazo na kuendelea hadi sehemu inayofuata.

Kuweka ombi kutoka kwa JavaScript

Ili kuweka kamba ya hoja kutoka kwa msimbo wa JavaScript, unahitaji kupiga njia setQuery darasa google.visualization.Query .
var query = new google.visualization.Query(DATA_SOURCE_URL);
query.setQuery("chagua idara, jumla (mshahara) kikundi kwa idara");
query.send(handleQueryResponse);

Mfuatano wa hoja kwenye chanzo cha data unaweza kuongezwa kwa kutumia kigezo tq. Kwa njia hii, inawezekana kutumia taswira ambazo ziliandikwa na wasanidi programu wengine kwa kurekebisha tu seti yako ya data.
Mfuatano wa hoja lazima usimbawe ipasavyo kama kigezo cha URL. Unaweza kutumia kazi ya JavaScript encodeURIComponent kwa usimbuaji au uifanye kwa mikono kwa kutumia zana mwishoni mwa sehemu.
Mfano
Hebu tuangalie swali la mfano la Jedwali la Google (Kumbuka kwamba vitambulishi vya safu wima huwa ni herufi. Majina ya safu wima yanapochapishwa si vitambulishi. Ni vitambulishi vya safu wima ambavyo lazima vitumike katika hoja)
Baada ya kuweka msimbo, ombi litaonekana kama hii:
chagua%20A%2C%20sum(B)%20group%20by%20A
Wacha tufikirie kuwa anwani ya Jedwali la Takwimu ni kama ifuatavyo.
http://spreadsheets.google.com/a/google.com/tq?key=ABCDE
Hebu tuongeze kigezo cha ombi &tq=YOUR_QUERY_STRING kwa kiungo cha Jedwali na upate kamba ya swala iliyotengenezwa tayari
http://spreadsheets.google.com/a/google.com/tq?key=ABCDE&tq=select%A%2C%20sum(B)%20group%20by%20A

Sintaksia ya lugha

Kagua

Lugha ya hoja yangu ni sawa na SQL. Hata hivyo, kuna baadhi ya vipengele ambavyo vinapaswa kuzingatiwa.
Jedwali la data
Hati hii inatanguliza dhana ya "Jedwali la Data" kurejelea matokeo ya hoja. Jedwali lina safu na safu. Kila safu ina sifa zifuatazo:
  • Kitambulisho (au kitambulisho cha safu wima). Inatumika kurejelea safu wima za Jedwali. Tafadhali kumbuka kuwa unahitaji tu kurejelea safu kwa kitambulisho chake. Hila: Jaribu kutotumia nafasi katika vitambulishi, hii inaweza kusababisha matatizo katika kuhariri ombi. Zaidi ya hayo, vitambulishi vyote vilivyo na nafasi lazima viambatanishwe katika nukuu za nyuma.
  • Lebo. Huu ndio mfuatano ambao kwa kawaida huonyeshwa kwa watumiaji wa mwisho. Kwa mfano, hadithi katika chati ya pai au kichwa katika chati ya jedwali. Haitumiki kwa chaguo la kukokotoa la QUERY() katika Majedwali ya Google.
  • Aina za data. Aina zifuatazo za data zinatumika: kamba, nambari, boolean, tarehe, tarehe, saa ya siku. Thamani zote katika safu zitakuwa za aina ya data ya safu wima hiyo au batili. Aina hizi za data zinafanana sana na aina za JavaScript, lakini hazifanani. Yamefafanuliwa katika sehemu ya Literals.
  • Uumbizaji violezo. Majedwali ya data yanaweza kutumia muundo wa uumbizaji wa safu wima zote au baadhi. Haya yameelezwa katika sehemu ya Uumbizaji.
Jedwali la data ambalo linatumika katika mifano yote
Mifano katika hati hii hutumia jedwali lenye data na aina za safu zifuatazo:
jina
kamba
idara
kamba
chakula cha mchanaMuda
wakati wa siku

Mshahara
nambari

hireDate
tarehe
umri
nambari
ni Senior
boolean
cheoStartTime
tarehe
Yohana Eng 12:00:00 2005-03-19 35 kweli 2007-12-02 15:56:00
Dave Eng 12:00:00 2006-04-19 27 uongo null
Sally Eng 13:00:00 2005-10-10 30 uongo null
Ben Mauzo 12:00:00 2002-10-10 32 kweli 2005-03-09 12:30:00
Dana Mauzo 12:00:00 2004-09-08 25 uongo null
Mike Masoko 13:00:00 2005-01-10 24 kweli 2007-12-30 14:40:00

Waendeshaji lugha

Lugha ya swala ina kauli zifuatazo za neno moja au mbili. Waendeshaji lazima wafuate kila mmoja kwa mpangilio unaoonyeshwa kwenye jedwali:
Opereta Matumizi
chagua Huchagua safu wima zipi zitarejeshwa na kwa mpangilio gani. Ikiwa opereta ataachwa, safu wima zote za jedwali zitarejeshwa.
Hurejesha safu mlalo za jedwali zinazolingana na hali pekee. Ikiwa opereta ataachwa, safu mlalo zote kwenye jedwali zitarejeshwa.
kundi kwa Vikundi vya maadili kwa safu.
egemeo Hubadilisha thamani za kipekee katika safu wima kuwa safu wima mpya, sawa na jedwali la egemeo.
kuagiza kwa Hupanga safu mlalo kulingana na thamani.
kikomo Huweka kikomo kwenye safu mlalo zitakazorejeshwa.
kukabiliana Huruka idadi maalum ya safu mlalo kutoka kwa pato.
lebo Huweka vichwa vya safu wima.
umbizo Hubadilisha thamani katika safu wima maalum kulingana na muundo wa muundo.
chaguzi Inaweka chaguzi za ziada.
kutoka Kutoka kwa opereta haitumiki.
Chagua
Taarifa iliyochaguliwa inabainisha safu wima zipi zinapaswa kurejeshwa na kwa mpangilio gani. Ikiwa opereta haijabainishwa, au chagua * imebainishwa, safu wima zote za jedwali zitarejeshwa kwa mpangilio wake wa asili. Safu wima zinaweza kurejelewa kupitia vitambulisho, lakini si kupitia lebo. Vitambulishi katika Majedwali ya Google ni majina ya safu wima ya herufi moja au mbili (A, B, C, ..., AC, ..., DC, ...).
Vigezo vya waendeshaji vinaweza kuwa vitambulishi vya safu wima, vitendakazi vya jumla, vitendakazi vya scalar, au viendeshaji hesabu.
Mifano:
chagua *
chagua idara, mshahara
chagua kiwango cha juu (mshahara)
barua pepetarehe):

Tunapata matokeo:
chakula cha mchanaMuda jina
12:00:00 Yohana
12:00:00 Dave
13:00:00 Sally
12:00:00 Ben
12:00:00 Dana
13:00:00 Mike
Taarifa ambapo taarifa inatumika kurudisha safu mlalo zinazokidhi masharti pekee.
Waendeshaji wa kulinganisha rahisi hutumiwa kuelezea hali<=, <, >, >=, =, !=, <>. Waendeshaji wote wawili !=,<>maana si sawa. Kamba hulinganishwa na thamani yake ya leksikografia. Kumbuka, usawa unaangaliwa kupitia = opereta, na sio kupitia == kama katika lugha nyingi. Ulinganisho na null unafanywa kupitia ni null na sio null . Unapotumia QUERY() katika Majedwali ya Google, kwa kawaida sehemu ya kamba huwa na thamani tupu "" badala ya null .
Unaweza kuchanganya hali nyingi kwa kutumia waendeshaji wenye mantiki na, au, sivyo. Mabano hutumiwa kufafanua kipaumbele wazi.

Taarifa ambapo pia hutumia waendeshaji ziada kufanya ulinganisho changamano zaidi wa kamba. Waendeshaji hawa huchukua hoja mbili ambazo lazima ziwe tungo, hoja yoyote isiyo ya mfuatano (tarehe, nambari) itabadilishwa kuwa mfuatano kabla ya kulinganisha. Ulinganisho ni nyeti kwa ukubwa (ili kulainisha kipengele hiki, tumia vitendakazi vya scalar juu(), chini()).
ina - inalingana na kamba ndogo. Usemi utarudi kuwa kweli ikiwa sehemu ya mfuatano inalingana kabisa na hoja iliyotolewa - kamba ndogo. Kwa mfano, ambapo jina lina "John" itarudi "John", "John Adams", "Long John Silver" lakini sivyo "John Adams".

Mifano:
chagua *
chagua idara, mshahara
chagua kiwango cha juu (mshahara)
Mfano ufuatao unaonyesha matumizi ya marejeleo ya vitambulisho na nafasi ( barua pepe) na kwa vitambulishi vinavyolingana na majina ya maneno yaliyohifadhiwa ( tarehe):
chagua `anwani ya barua pepe`, jina, `tarehe`
Wacha tutumie swali lifuatalo kwenye jedwali la mfano:
Tunapata matokeo:
chakula cha mchanaMuda jina
12:00:00 Yohana
12:00:00 Dave
13:00:00 Sally
12:00:00 Ben
12:00:00 Dana
13:00:00 Mike