សំណួរនៅក្នុង mysql ពី php mysqli query ។ ការផ្ញើសំណួរមូលដ្ឋានទិន្នន័យនៅក្នុង PHP ។ ផែនការសំណួរ SQL នៅក្នុងមុខងារសំណួរ

យើងបានរៀនពីរបៀបភ្ជាប់ទៅម៉ាស៊ីនមេ MySQL ជ្រើសរើសមូលដ្ឋានទិន្នន័យដើម្បីធ្វើការជាមួយ រៀនមុខងារ PHP នៃការផ្ញើសំណួរទៅម៉ាស៊ីនមេ MySQL រៀនសំណួរសាមញ្ញពីរ (បង្កើត និងលុបតារាង) និងរៀនពីរបៀបបិទការតភ្ជាប់។

ឥឡូវនេះ យើងនឹងស្វែងយល់កាន់តែជ្រៅទៅក្នុងសំណួរ MySQL ។ ដូច្នេះសូមចាប់ផ្តើម!

បង្កើតតារាង - បង្កើតតារាង

ឥឡូវនេះយើងមានមូលដ្ឋានទិន្នន័យទទេ ដោយគ្មានតារាង។ ដូច្នេះដំបូងយើងនឹងបង្កើតតារាង។ យើង​ដឹង​ពី​វិធី​ធ្វើ​នេះ​រួច​ហើយ​ពី​ផ្នែក​ដំបូង។

នេះជាកូដស្គ្រីបដែលនឹងបង្កើតសញ្ញាដែលយើងត្រូវការ៖

$link = mysqli_connect("localhost", "root", "", "tester"); ប្រសិនបើ (!$link) die("កំហុស"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; ប្រសិនបើ (mysqli_query($link, $query)) បន្ទរ "តារាងត្រូវបានបង្កើត។"; else បន្ទរ "Table not created: ".mysqli_error(); mysqli_close($link);

តារាងរបស់យើងមានតែវាលពីរប៉ុណ្ណោះ៖ ចូល និងពាក្យសម្ងាត់។ សម្រាប់ពេលនេះ យើងមិនត្រូវការទៀតទេ សូមកុំធ្វើឱ្យដំណើរការស្មុគស្មាញ។

ដូច្នេះតារាងត្រូវបានបង្កើតឡើង។

ការបន្ថែមជួរដេក (កំណត់ត្រា) ទៅតារាង - បញ្ចូល

អ្នកអាចបន្ថែមជួរថ្មីទៅតារាងដោយប្រើពាក្យបញ្ជាបញ្ចូល SQL ។ នេះជាឧទាហរណ៍៖

$link = mysqli_connect("localhost", "root", "", "tester"); ប្រសិនបើ (!$link) die("កំហុស"); $query = "បញ្ចូលទៅក្នុងអ្នកប្រើប្រាស់ (ចូល ពាក្យសម្ងាត់) VALUE ("zeus", "pass123")"; ប្រសិនបើ (mysqli_query($link, $query)) បន្ទរ "បន្ថែមអ្នកប្រើប្រាស់។"; else បន្ទរ "អ្នកប្រើប្រាស់មិនបានបន្ថែម៖" ។ mysqli_error(); mysqli_close($link);

សំណួរ SQL មានពាក្យបញ្ជា INSERT INTO អ្នកប្រើប្រាស់ឈ្មោះមូលដ្ឋានទិន្នន័យ បន្ទាប់មកឈ្មោះវាលក្នុងវង់ក្រចក បន្ទាប់មកពាក្យ VALUE អមដោយតម្លៃដែលត្រូវបន្ថែមក្នុងវង់ក្រចក។ តម្លៃត្រូវបានរុំព័ទ្ធក្នុងសញ្ញាសម្រង់។

វាក្យសម្ព័ន្ធសំណើមើលទៅដូចនេះ៖

បញ្ចូល​ក្នុង table_name (column1, column2) VALUE ("x1", "x2")

សម្រង់ក្នុងវង់ក្រចកទីពីរត្រូវបានទាមទារ។

ជំនួសឱ្យតម្លៃអាចមានអថេរ។ នេះជាឧទាហរណ៍៖

$link = mysqli_connect("localhost", "root", "", "tester"); ប្រសិនបើ (!$link) die("កំហុស"); $login = "zeus"; $password = "pass123"; $query = "បញ្ចូលទៅក្នុងអ្នកប្រើប្រាស់ (ចូល ពាក្យសម្ងាត់) VALUE ("$login", "$password")"; ប្រសិនបើ (mysqli_query($link, $query)) បន្ទរ "បន្ថែមអ្នកប្រើប្រាស់។"; else បន្ទរ "អ្នកប្រើប្រាស់មិនបានបន្ថែម៖" ។ mysqli_error(); mysqli_close($link);

ជាការពិតណាស់ឧទាហរណ៍នេះមានន័យតិចតួច។ វាអាចមានប្រយោជន៍សម្រាប់អ្នកចាប់ផ្តើមដំបូងក្នុងការស្តាប់ថា នេះជារបៀបដែលការចូល និងពាក្យសម្ងាត់ដែលអ្នកប្រើប្រាស់ផ្តល់ឱ្យក្នុងអំឡុងពេលចុះឈ្មោះត្រូវបានកត់ត្រានៅក្នុងមូលដ្ឋានទិន្នន័យ។ ទិន្នន័យនេះត្រូវបានរក្សាទុកក្នុងអថេរ ហើយបន្ទាប់មក បន្ទាប់ពីការផ្ទៀងផ្ទាត់ សរសេរទៅកាន់មូលដ្ឋានទិន្នន័យ

មានវិធីរហ័សក្នុងការបញ្ចូលជួរជាច្រើនជាមួយនឹងសេចក្តីថ្លែងការណ៍ INSERT មួយ៖

បញ្ចូលទៅក្នុងអ្នកប្រើប្រាស់ (ចូល ពាក្យសម្ងាត់) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

ដូចដែលអ្នកអាចឃើញទិន្នន័យដែលបានរាយបញ្ជីត្រូវបានបំបែកដោយសញ្ញាក្បៀស។

ដូច្នេះដោយប្រើពាក្យបញ្ជា INSERT យើងបានរៀនពីរបៀបបន្ថែមកំណត់ត្រាទៅតារាង។ តោះបន្តទៅមុខទៀត។

មើលតារាង៖ ពាក្យបញ្ជា SELECT

ឥឡូវនេះយើងមានតារាងអ្នកប្រើប្រាស់ដែលមានជួរ។ ស្គ្រីបពីមុនអាចដំណើរការបានច្រើនដង ហើយរាល់ពេលដែលវានឹងបន្ថែមជួរដេកទៅតារាង។ ឥឡូវ​នេះ យើង​ប្រហែល​ជា​មិន​ដឹង​ថា​យើង​មាន​ជួរ​ដេក​ប៉ុន្មាន​ក្នុង​តារាង។ ហើយខ្ញុំចង់ដឹងពីអ្វីដែលយើងបានសរសេរនៅក្នុងវា។

ដើម្បីទាញយកទិន្នន័យពីតារាង សូមប្រើពាក្យបញ្ជា SELECT SQL ។ សញ្ញា * មានន័យថាយើងកំពុងស្នើសុំទិន្នន័យទាំងអស់ បន្ទាប់មកបន្ទាប់ពីពាក្យ FROM យើងសរសេរឈ្មោះតារាងដែលយើងចង់ទទួលបានទិន្នន័យ។

តោះសួរទិន្នន័យទាំងអស់ពីតារាងអ្នកប្រើប្រាស់៖

$link = mysqli_connect("localhost", "root", "", "tester"); ប្រសិនបើ (!$link) die("កំហុស"); $query = "SELECT * FROM users"; $result = mysqli_query($link, $query); ប្រសិនបើ (!$result) បន្ទរ "មានកំហុសកើតឡើង៖" ។ mysqli_error(); ផ្សេងទៀតបន្ទរ "ទិន្នន័យបានទទួល"; mysqli_close($link);

អនុគមន៍ mysqli_query() បានប្រគល់អត្តសញ្ញាណលទ្ធផលសំណួរមកយើងវិញ - យើងដាក់វានៅក្នុងអថេរ ហើយក្រោយមកនឹងធ្វើការជាមួយវាដោយប្រើមុខងារ PHP ផ្សេងទៀត។

ចំនួនកំណត់ត្រាក្នុងការស្នើសុំ

ចូរកំណត់ថាតើមានប៉ុន្មានបន្ទាត់នៅក្នុងសំណួររបស់យើង? ខ្ញុំ​បាន​រត់​ស្គ្រីប​សម្រាប់​បន្ថែម​កំណត់​ត្រា​ទៅ​តារាង ខ្ញុំ​មិន​ចាំ​ថា​មាន​ប៉ុន្មាន​ដង​ទេ ហើយ​ឥឡូវ​នេះ​ខ្ញុំ​មិន​ដឹង​ថា​មាន​ប៉ុន្មាន​ជួរ​ក្នុង​តារាង​របស់​ខ្ញុំ​ទេ។

ដើម្បីកំណត់ចំនួនជួរដេកក្នុងលទ្ធផលនៃសំណួរ សូមប្រើមុខងារ mysqli_num_rows() ។ មុខងារនេះត្រូវបានឆ្លងកាត់ការកំណត់អត្តសញ្ញាណនៃលទ្ធផលសំណួរ ហើយវាត្រឡប់ចំនួនកំណត់ត្រា។

$link = mysqli_connect("localhost", "root", "", "tester"); ប្រសិនបើ (!$link) die("កំហុស"); $query = "SELECT * FROM users"; $result = mysqli_query($link, $query); ប្រសិនបើ (!$result) បន្ទរ "មានកំហុសកើតឡើង៖" ។ mysqli_error(); ផ្សេងទៀតបន្ទរ "ទិន្នន័យបានទទួល"; $count = mysqli_num_rows($លទ្ធផល); បន្ទរ "ជួរសរុបក្នុងតារាង៖ $count ។"; mysqli_close($link);

ប្រសិនបើយើងត្រូវស្វែងរកចំនួនកំណត់ត្រាក្នុងតារាងនោះ វិធីសាស្ត្រខាងលើមិនសមស្របបំផុតនោះទេ។ នៅទីនេះយើងបានរកឃើញចំនួនកំណត់ត្រាដែលបានរកឃើញនៅក្នុងសំណួរ ប៉ុន្តែចំនួនកំណត់ត្រានៅក្នុងតារាងត្រូវបានស្វែងរកខុសគ្នា។

ចំនួនកំណត់ត្រាក្នុងតារាង SELECT COUNT(*)

ដើម្បីស្វែងយល់ពីចំនួនកំណត់ត្រាក្នុងតារាង អ្នកអាចប្រើពាក្យបញ្ជា SELECT COUNT(*) FROM table_name ។

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); $query = "SELECT * FROM users"; $result = mysqli_query($link, $query); ប្រសិនបើ (!$result) បន្ទរ "មានកំហុសកើតឡើង៖" ។ mysqli_error(); else បន្ទរ "ទិន្នន័យបានទទួល។"; $count = mysqli_fetch_row($លទ្ធផល); បន្ទរ "ជួរសរុបក្នុងតារាង៖ $count ។"; mysqli_close($link);

សូមចំណាំថានៅទីនេះយើងបានប្រើមុខងារ PHP ថ្មី mysqli_fetch_row() ដើម្បីទៅយកទិន្នន័យ។ អនុគមន៍នេះត្រឡប់ជួរនៃលទ្ធផលសំណួរក្នុងទម្រង់ជាអារេសាមញ្ញ ក្នុងករណីរបស់យើងមានវាលមួយក្នុងជួរដេក ហើយវាមានលិបិក្រម 0 ។

ការមើលលទ្ធផលនៃសំណួរនៅក្នុងរង្វិលជុំមួយ។

បន្ទាប់ពីដំណើរការសំណួរ SQL ដោយប្រើពាក្យបញ្ជា SELECT និងទទួលបានលេខសម្គាល់លទ្ធផលសំណួរ PHP បង្កើតទ្រនិចខាងក្នុងនៅក្នុងសំណុំកំណត់ត្រាលទ្ធផល។ ទ្រនិចនេះផ្លាស់ទីដោយស្វ័យប្រវត្តិទៅកំណត់ត្រាបន្ទាប់បន្ទាប់ពីចូលប្រើកំណត់ត្រាបច្ចុប្បន្ន។ យន្តការនេះធ្វើឱ្យវាមានភាពងាយស្រួលក្នុងការរង្វិលជុំតាមរយៈសំណុំលទ្ធផលនៃសំណួរ SELECT ។

PHP មានមុខងារជាច្រើនដែលអ្នកអាចទទួលបានអារេដែលមានវាលរបស់វាសម្រាប់បន្ទាត់នីមួយៗនៃសំណួរលទ្ធផល។ ឧទាហរណ៍ ចូរយើងយកមុខងារ mysqli_fetch_row() ។ មុខងារនេះត្រូវបានឆ្លងផុតកម្មវិធីកំណត់អត្តសញ្ញាណសំណើ ហើយត្រឡប់អារេមួយ។ ដូច្នេះ នៅក្នុងរង្វិលជុំ លទ្ធផលសំណួរទាំងមូលត្រូវបានមើល ហើយនៅពេលដែលចុងបញ្ចប់នៃលទ្ធផលសំណួរត្រូវបានឈានដល់ មុខងារនឹងត្រឡប់មិនពិត។

ដូច្នេះ យើងស្នើសុំទិន្នន័យទាំងអស់ពីតារាងអ្នកប្រើប្រាស់ (SELECT * FROM users)។


"; while ($row = mysqli_fetch_row($result)) (បន្ទរ "ចូល៖ $row. ពាក្យសម្ងាត់៖ $row.
";) mysqli_close($link);

អនុគមន៍ mysqli_fetch_row() ត្រឡប់អារេសាមញ្ញ។ នៅ​ក្នុង​ការ​ធ្វើ​ឡើងវិញ​នីមួយៗ​នៃ​រង្វិលជុំ យើង​នឹង​ទទួល​បាន​អារេ​មួយ​ជួរ​ពី​តារាង ដែល​វាល​ដែល​យើង​អាច​ចូល​ប្រើ​បាន​ដោយ​បញ្ជាក់​លិបិក្រម​លេខ។

ដូចគ្នានេះដែរអាចត្រូវបានធ្វើដោយប្រើមុខងារ mysql_fetch_assoc() វាត្រឡប់អារេសមាគម។

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); $result = mysqli_query($link, "SELECT * FROM users"); ប្រសិនបើ (!$result) បន្ទរ "មានកំហុសកើតឡើង៖" ។ mysqli_error(); else បន្ទរ "ទិន្នន័យបានទទួល។
"; while ($row = mysqli_fetch_assoc($result)) (បន្ទរ "ចូល៖ $row. ពាក្យសម្ងាត់៖ $row.
";) mysqli_close($link);

មានមុខងារផងដែរ mysqli_fetch_array() - ត្រឡប់ប្រភេទអារេណាមួយ ហើយ mysqli_fetch_object() - ត្រឡប់វត្ថុមួយ។

SELECT DISTINCT query - តម្លៃវាលតែមួយគត់

តោះបង្កើតតារាងថ្មី៖

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); // លុបតារាងដែលមានស្រាប់ mysqli_query($link, "DROP TABLE users"); // បង្កើតតារាងថ្មី $query = "CREATE TABLE users(name VARCHAR(20), surname VARCHAR(20), age TINYINT UNSIGNED)"; if (mysqli_query($link, $query)) បន្ទរ "តារាងត្រូវបានបង្កើត។
"; else echo "Table not created: " . mysqli_error(); // មុខងារបន្ថែមកំណត់ត្រាទៅមុខងារតារាង add_new_line($link, $query) (ប្រសិនបើ (!mysqli_query($link, $query))) បន្ទរ "អ្នកប្រើប្រាស់មិន បានបន្ថែម : " . mysqli_error(); ) // បន្ថែមកំណត់ត្រា add_new_line($link, "INSERT INTO users (name, surname, age) VALUE ("Max", "Jayson", "33")"); add_new_line($link , "បញ្ចូលទៅក្នុងអ្នកប្រើប្រាស់ (ឈ្មោះ នាមត្រកូល អាយុ) VALUE ("Bob", "Freeman", "26")"); add_new_line($link, "INSERT INTO users (ឈ្មោះ នាមត្រកូល អាយុ) VALUE ("Sara" , "Lopes", "65")"); add_new_line($link, "INSERT INTO users (name, surname, age) VALUE ("Serg", "Pupin", "29")"); add_new_line($link, " បញ្ចូលទៅក្នុងអ្នកប្រើប្រាស់ (ឈ្មោះ នាមត្រកូល អាយុ) VALUE ("Serg", "Borman", "43")"); add_new_line($link, "INSERT INTO users (ឈ្មោះ នាមត្រកូល អាយុ) VALUE ("អតិបរមា", " Lopes", "21")"); // បង្ហាញមាតិកានៃតារាងក្នុងកម្មវិធីរុករក $result = mysqli_query($link, "SELECT * FROM users"); ប្រសិនបើ (!$result) បន្ទរ "មានកំហុសកើតឡើង៖ " . else echo " ទិន្នន័យបានទទួល។
"; while ($row = mysqli_fetch_assoc($result)) (បន្ទរ "ឈ្មោះដំបូង៖ $row. នាមត្រកូល: $row. អាយុ: $row.
";) mysqli_close($link);

ដូច្នេះ យើង​មាន​តារាង​ថ្មី​ដែល​ស្មុគស្មាញ​ជាង​មុន​ជាមួយ​នឹង​កំណត់ត្រា​ពិសេស។ ឥឡូវ​យើង​មើល​ថា​តើ​យើង​មាន​ឈ្មោះ​ប៉ុន្មាន​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ។

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); $result = mysqli_query($link, "SELECT DISTINCT name FROM users"); បន្ទរ "ឈ្មោះសរុប៖" ។ mysqli_num_rows($លទ្ធផល)។"
"; បន្ទរ" បញ្ជីឈ្មោះ៖
"; while ($name = mysqli_fetch_row($result)) (បន្ទរ "$name
";) mysqli_close($link);

សំណួរ SQL "SELECT DISTINCT name FROM users" បានផ្តល់លទ្ធផលជាមួយនឹងឈ្មោះតែមួយគត់នៅក្នុងតារាងរបស់យើង។ ឈ្មោះនីមួយៗនៅក្នុងជួរថ្មីនៃលទ្ធផលសំណួរ។

ការតម្រៀបលទ្ធផល - បញ្ជាទិញដោយ

ដោយបន្ថែមពាក្យបញ្ជា ORDER BY ទៅក្នុងសំណួរ SQL យើងតម្រៀបលទ្ធផលសំណួរតាមលំដាប់ឡើង (លេខ និងអក្សរតាមលំដាប់អក្ខរក្រម)។ នេះគឺជាឧទាហរណ៍មួយដែលអ្នកអាចប្រៀបធៀបសំណួរធម្មតា និងមួយតម្រៀបតាមអាយុ (វាលអាយុ)។



";) បន្ទរ "តម្រៀបតាមអាយុ៖
"; $result = mysqli_query($link, "SELECT * FROM users ORDER BY age"); while ($line = mysqli_fetch_row($result))) (echo "First name: $line. Last name: $line. Age: $ បន្ទាត់។
";) mysqli_close($link);

អ្នកអាចជំនួសវាលអាយុនៅក្នុងពាក្យបញ្ជា ORDER BY ជាមួយនឹងវាលឈ្មោះ និងមើលលទ្ធផល។

ដើម្បីតម្រៀបលទ្ធផលសំណួរតាមលំដាប់បញ្ច្រាស សូមប្រើពាក្យបញ្ជា ORDER BY age DESC ។

លក្ខខណ្ឌដែលត្រូវគ្នា - កន្លែងណា

ដោយបន្ថែមពាក្យបញ្ជា WHERE ទៅក្នុងសំណួរ SQL យើងនឹងសួរតែកំណត់ត្រាទាំងនោះដែលបំពេញលក្ខខណ្ឌប៉ុណ្ណោះ។ ជាឧទាហរណ៍ ចូរយើងធ្វើសំណើសម្រាប់មនុស្សដែលមានអាយុក្រោម 30 ឆ្នាំ។

ដើម្បីធ្វើដូចនេះយើងប្រើ SQL query "SELECT * FROM users WHERE age

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); បន្ទរ "មនុស្សក្រោម 30 ឆ្នាំ:
"; $result = mysqli_query($link, "SELECT * FROM users WHERE age<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
";) mysqli_close($link);

យើងក៏អាចតម្រៀបលទ្ធផលភ្លាមៗតាមលំដាប់អាយុកើនឡើងផងដែរ៖
" ជ្រើសរើស * ពីអ្នកប្រើប្រាស់ដែលអាយុ<30 ORDER BY age ".

ប្រសិនបើយើងធ្វើសំណួរ " ជ្រើសរើសឈ្មោះពីអ្នកប្រើប្រាស់ដែលអាយុ<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

យើង​អាច​សួរ​តម្លៃ​នៃ​វាល​ពីរ៖ " ឈ្មោះ SELECT អាយុ​ពី​អ្នក​ប្រើ WHERE អាយុ

ឥឡូវ​នេះ​យើង​ស្នើ​សុំ​អ្នក​ប្រើ​ទាំង​អស់​ដែល​មាន​ឈ្មោះ "Max"។

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); បន្ទរ "អតិបរមាទាំងអស់៖
"; $result = mysqli_query($link, "SELECT * FROM users WHERE name="Max") ខណៈពេលដែល ($line = mysqli_fetch_row($result)) (បន្ទរ "ឈ្មោះដំបូង៖ $line ។ នាមត្រកូល៖ $line ។ អាយុ៖ $line ។
";) mysqli_close($link);

និងឧទាហរណ៍មួយទៀតនៃសំណួរ - វានឹងជ្រើសរើសតែឈ្មោះពីតារាងអ្នកប្រើប្រាស់ អ្វីគ្រប់យ៉ាងលើកលែងតែ Max ។

ជ្រើសរើសឈ្មោះពីអ្នកប្រើប្រាស់ WHERE name!="Max"

នោះហើយជាទាំងអស់សម្រាប់សំណួរ WHERE ។

ដែនកំណត់ធាតុ - LIMIT

ដោយបន្ថែមពាក្យបញ្ជា LIMIT ទៅសំណួរ SQL យើងនឹងកំណត់ទំហំនៃលទ្ធផល។

សំណួរដែលត្រឡប់ធាតុបីដំបូងគឺ៖ " ជ្រើសរើស * ពីអ្នកប្រើប្រាស់ LIMIT 3 "។ តោះមើលរបៀបដែលវាដំណើរការ៖

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); បន្ទរ "មាតិកាតារាង៖
"; $result = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result))) (echo "First name: $line. Last name: $line. Age: $line.
";) បន្ទរ"

ធាតុបីដំបូង៖
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3"); while ($line = mysqli_fetch_row($result))) (echo "First name: $line. Last name: $line. Age: $line .
";) បន្ទរ"

ធាតុទីបីទីពីរ៖
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3, 3"); while ($line = mysqli_fetch_row($result))) (echo "First name: $line. Last name: $line. Age: $ បន្ទាត់។
";) mysqli_close($link);

នៅទីនេះផងដែរយើងបានប្រើសំណួរ: "ជ្រើសរើស * ពីអ្នកប្រើប្រាស់ LIMIT 3, 3" ។ បីដងទីពីរបង្ហាញពីអុហ្វសិតនៅក្នុងលទ្ធផលសំណួរ។

លំនាំផ្គូផ្គង - LIKE

ភាសា SQL គាំទ្រគំរូសាមញ្ញ។ ដើម្បីធ្វើដូចនេះប្រើពាក្យបញ្ជា LIKE ហើយបញ្ជាក់លំនាំដោយប្រើនិមិត្តសញ្ញា % ។

នេះគឺជាសំណួរឧទាហរណ៍ដែលនឹងត្រឡប់កំណត់ត្រាទាំងអស់ដែលមានឈ្មោះចាប់ផ្តើមដោយអក្សរ S ។

ជ្រើសរើស * ពីអ្នកប្រើប្រាស់ដែលឈ្មោះដូចជា "S%"

ខ្ញុំកំពុងសាកល្បងសំណើរ៖

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); បន្ទរ "មាតិកាតារាង៖
"; $result = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result))) (echo "First name: $line. Last name: $line. Age: $line.
";) បន្ទរ"

ឈ្មោះដែលចាប់ផ្តើមដោយ S:
"; $result = mysqli_query($link, "SELECT * FROM users WHERE name LIKE "S%"); while ($line = mysqli_fetch_row($result)) (echo "First name: $line. Last name: $line អាយុ៖ $line ។
";) mysqli_close($link);

នេះគឺជាសំណួរឧទាហរណ៍ដែលនឹងត្រឡប់កំណត់ត្រាទាំងអស់ដែលមាននាមត្រកូលដែលបញ្ចប់ដោយអក្សរ s ។

ជ្រើសរើស * ពីអ្នកប្រើប្រាស់ដែលឈ្មោះដូចជា "%s"

លក្ខខណ្ឌបានជួប - IN

សំណួរនេះដោយប្រើពាក្យបញ្ជា IN នឹងត្រឡប់តែជួរទាំងនោះដែលត្រូវនឹងលក្ខខណ្ឌយ៉ាងតឹងរ៉ឹង។

ជាឧទាហរណ៍ យើងចាប់អារម្មណ៍លើមនុស្សដែលមានអាយុ 21 ឆ្នាំ 26 និង 33 ឆ្នាំ។

ជ្រើសរើស * ពីអ្នកប្រើប្រាស់ដែលអាយុនៅក្នុង (21,26,33)

ខ្ញុំកំពុងសាកល្បងសំណើរ៖

$link = mysqli_connect("localhost", "root", ""); ប្រសិនបើ (!$link) die("កំហុស"); mysqli_select_db("អ្នកសាកល្បង"); បន្ទរ "មាតិកាតារាង៖
"; $result = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result))) (echo "First name: $line. Last name: $line. Age: $line.
";) បន្ទរ"

មនុស្សដែលមានអាយុដែលត្រូវការ (21, 26, 33):
"; $result = mysqli_query($link, "SELECT * FROM users WHERE age IN (21, 26, 33)"); while ($line = mysqli_fetch_row($result)) (echo "First name: $line. នាមត្រកូល : $ បន្ទាត់។
";) mysqli_close($link);

តម្លៃអតិបរមា និងអប្បបរមានៅក្នុងជួរឈរមួយ។

ជ្រើសរើសតម្លៃអាយុអតិបរមានៅក្នុងតារាងអ្នកប្រើប្រាស់។

SELECT អតិបរមា(អាយុ) ពីអ្នកប្រើប្រាស់

សំណួរខាងក្រោមជ្រើសរើសទិន្នន័យពីតារាងអ្នកប្រើប្រាស់ ដោយប្រើឈ្មោះ និងអាយុ ដែលអាយុយកតម្លៃអប្បបរមា។

SELECT ឈ្មោះ អប្បបរមា (អាយុ) ពីអ្នកប្រើប្រាស់

ធ្វើបច្ចុប្បន្នភាពកំណត់ត្រា - UPDATE

ចូរកំណត់អាយុ Max Lopes ដល់ 15 ឆ្នាំ។ នេះត្រូវបានធ្វើជាមួយសំណួរ MySQL៖

អាប់ដេតអ្នកប្រើប្រាស់ SET age="15" WHERE name="Max" AND surname="Lopes"

សូមចំណាំពាក្យបញ្ជា AND ថ្មី (និងមានន័យថា "និង" ជាភាសាអង់គ្លេស) នៅក្នុងសំណួរ។ ប្រសិនបើយើងមិនបញ្ជាក់នាមត្រកូលទេ នោះអាយុ 15 ឆ្នាំនឹងត្រូវបានកំណត់សម្រាប់ Maxes ទាំងអស់នៅក្នុងតារាង។

អ្នកអាចធ្វើបច្ចុប្បន្នភាពវាលពីរ ឬច្រើនក្នុងជួរមួយជាមួយនឹងសំណួរមួយ។ នេះត្រូវបានធ្វើដូចខាងក្រោម:

UPDATE users SET age = "18", នាមត្រកូល = "Coocker" WHERE id = "3"

តារាងរបស់យើងមិនមានវាលលេខសម្គាល់ទេ ដូច្នេះសំណួរនេះនឹងមិនដំណើរការលើវាទេ។ ប៉ុន្តែ​យើង​ច្បាស់​ជា​នឹង​រៀន​វាល​នេះ​ដែល​មាន​លេខ​បន្ទាត់​តែ​មួយ​គត់។

លុបធាតុ - លុប

សំណួរមូលដ្ឋានទិន្នន័យ MySQL ដើម្បីលុបកំណត់ត្រា៖

DELETE FROM users WHERE id = "10"

ជាថ្មីម្តងទៀត តារាងរបស់យើងមិនមានវាលលេខសម្គាល់ទេ។ ប៉ុន្តែ​យើង​អាច​យក​ចេញ​ពី​មនុស្ស​អាយុ​ក្រោម 18 ឆ្នាំ​ទាំងអស់។

លុបចេញពីអ្នកប្រើប្រាស់នៅកន្លែងណាដែលមានអាយុ< "18"

លុបតារាង - ទម្លាក់តារាង

សំណួរមូលដ្ឋានទិន្នន័យ MySQL ដែលលុបតារាងអ្នកប្រើប្រាស់ទាំងមូល៖

ទម្លាក់អ្នកប្រើប្រាស់តារាង

លុបជួរឈរ - ផ្លាស់ប្តូរតារាង ... ទម្លាក់ ...

ពេលខ្លះអ្នកប្រហែលជាត្រូវដកជួរឈរចេញពីតារាងមួយ ឧទាហរណ៍ ចូរយើងដកជួរឈរអាយុចេញពីអ្នកប្រើប្រាស់៖

ALTER TABLE អ្នកប្រើប្រាស់ទម្លាក់អាយុ

សំណួរ MySQL នេះបានលុបជួរឈរជាអចិន្ត្រៃយ៍ និងជាអចិន្ត្រៃយ៍។

បន្ថែមជួរឈរមួយ - តារាងផ្លាស់ប្តូរ ... បន្ថែម ...

ពេលខ្លះអ្នកប្រហែលជាត្រូវបន្ថែមជួរឈរទៅតារាងដែលមានស្រាប់ ឧទាហរណ៍ ចូរបន្ថែមជួរអាយុត្រឡប់ទៅតារាងអ្នកប្រើប្រាស់វិញ៖

អ្នកប្រើប្រាស់តារាង ALTER បន្ថែមអាយុ TINYINT មិនបានចុះហត្ថលេខា

ប្តូរឈ្មោះជួរឈរ - ផ្លាស់ប្តូរតារាង ... ផ្លាស់ប្តូរ ...

ពេលខ្លះអ្នកប្រហែលជាត្រូវប្តូរឈ្មោះជួរឈរមួយ ឧទាហរណ៍ ប្តូរឈ្មោះជួរឈរអាយុទៅជា vozrast ។ យើងធ្វើវាដូចនេះ៖

អ្នកប្រើប្រាស់តារាងផ្លាស់ប្តូរ ផ្លាស់ប្តូរអាយុ TINYINT មិនបានចុះហត្ថលេខា

សំណួរ MySQL នេះបានប្តូរឈ្មោះអាយុជួរឈរទៅជា vozrast ជាមួយនឹងប្រភេទទិន្នន័យ TINYINT UNSIGNED ។

ប្តូរឈ្មោះតារាង - RENAME TABLE ... TO ...

ពេលខ្លះអ្នកប្រហែលជាត្រូវប្តូរឈ្មោះតារាង៖

RENAME TABLE អ្នកប្រើប្រាស់ទៅកាន់ប្រជាជន

ការដកមូលដ្ឋានទិន្នន័យចេញ - ទម្លាក់ទិន្នន័យ

សំណួរនេះអាចលុបមូលដ្ឋានទិន្នន័យដែលមានឈ្មោះអ្នកសាកល្បង៖

ទម្លាក់អ្នកសាកល្បង DATABASE

បង្កើតមូលដ្ឋានទិន្នន័យ - CREATE DATABASE

សំណួរនេះបង្កើតមូលដ្ឋានទិន្នន័យដែលមានឈ្មោះថា អ្នកសាកល្បង៖

បង្កើតអ្នកសាកល្បង DATABASE

សំណើនេះដំណើរការសម្រាប់ខ្ញុំនៅទីក្រុង Denver ប៉ុន្តែនៅលើការបង្ហោះវាប្រហែលជាមិនដំណើរការទេ ប្រសិនបើអ្នកប្រើមូលដ្ឋានទិន្នន័យមិនមានសិទ្ធិធ្វើការលុប។

លទ្ធផល

ដូច្នេះនៅក្នុងផ្នែកនេះ យើងបានស្គាល់ជាមួយនឹងសំណួរទៅកាន់ MySQL ។ សំណួរជាច្រើនដែលយើងបានពិនិត្យជាញឹកញាប់មិនមានប្រយោជន៍សម្រាប់យើងក្នុងដំណើរការការងារនោះទេ ប៉ុន្តែយើងត្រូវដឹងពីសំណួរទាំងនោះ ព្រោះថាពួកគេប្រាកដជានឹងមានប្រយោជន៍ក្នុងដំណើរការបង្កើតស្គ្រីប។

សំណើមួយចំនួនជាធម្មតាត្រូវបានធ្វើឡើងតែពី phpMyAdmin ប៉ុណ្ណោះ (ឧទាហរណ៍ការបង្កើត និងលុបមូលដ្ឋានទិន្នន័យ)។

នៅពេលធ្វើការនៅលើគេហទំព័រ ជាធម្មតាអ្នកត្រូវបន្ថែមកំណត់ត្រាទៅក្នុងតារាង កែសម្រួលកំណត់ត្រា ឬលុបកំណត់ត្រាចេញពីតារាង។

ជំហានបន្ទាប់គឺសិក្សាអំពីប្រភេទទិន្នន័យ MySQL ។

នៅក្នុងអត្ថបទនេះយើងនឹងរៀន ផ្ញើសំណួរមូលដ្ឋានទិន្នន័យតាមរយៈ PHP. អត្ថបទនេះមានសារៈសំខាន់ណាស់ ហើយអ្នកត្រូវតែយល់វា។ ទោះជាយ៉ាងណាក៏ដោយខ្ញុំនឹងធានាអ្នកឡើងវិញ - សម្ភារៈគឺសាមញ្ញណាស់ដូច្នេះវាមិនគួរមានការលំបាកទេ។

មុនពេលបន្តទៅប្រធានបទនៃអត្ថបទខ្ញុំព្រមានអ្នកជាមុនថាខ្ញុំនឹងមិនវិភាគលម្អិតទេ។ ភាសា SQL. ព័ត៌មានចាំបាច់ទាំងអស់ត្រូវបានគ្របដណ្តប់នៅក្នុងប្រភេទដែលឧទ្ទិសដល់ ប៉ុន្តែនៅទីនេះយើងតែប៉ុណ្ណោះ ធ្វើការជាមួយ MySQL តាមរយៈ PHP.

ឥឡូវនេះសូមបន្តទៅ ផ្ញើសំណួរមូលដ្ឋានទិន្នន័យនៅក្នុង PHP:


}
$mysqli->query("បញ្ចូលទៅក្នុង mytable (ឈ្មោះ អ៊ីមែល) VALUES ("MyName", " [អ៊ីមែលការពារ]")");
$mysqli->close();
?>

ក្នុងឧទាហរណ៍នេះ យើងបានភ្ជាប់ទៅមូលដ្ឋានទិន្នន័យ ពិនិត្យមើលភាពជោគជ័យនៃការតភ្ជាប់ ហើយបានផ្ញើសំណើដោយប្រើវិធីសាស្ត្រ សំណួរ()ហើយបន្ទាប់មកបិទការតភ្ជាប់។ ដូចដែលអ្នកអាចឃើញអ្វីគ្រប់យ៉ាងគឺសាមញ្ញណាស់។ ដើម្បីផ្ញើណាមួយ។ សំណួរ SQLវិធីសាស្រ្តមួយគឺគ្រប់គ្រាន់ហើយ - សំណួរ()ដូច្នេះក្នុងករណីនេះអ្វីគ្រប់យ៉ាងគឺសាមញ្ញមិនគួរឱ្យជឿ។

ឥឡូវ​នេះ​សូម​ធ្វើ​ឱ្យ​កិច្ចការ​ស្មុគស្មាញ​បន្តិច។ សូមក្រឡេកមើលសំណួរដែលត្រឡប់មកវិញ លទ្ធផល_សំណុំ- លទ្ធផល។ សំណើ​ដ៏​ពេញ​និយម​បំផុត​ត្រឡប់​មក​វិញ។ លទ្ធផល_សំណុំគឺជាការជ្រើសរើសទិន្នន័យពីតារាង។ ក្នុងឧទាហរណ៍ខាងក្រោម យើងនឹងយកទិន្នន័យគំរូ ហើយបន្ទាប់មកបង្ហាញលទ្ធផល៖

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
ប្រសិនបើ (mysqli_connect_errno()) (
បន្ទរ "ការតភ្ជាប់បានបរាជ័យ៖ ".mysqli_connect_error();
}
$result_set = $mysqli->
while ($row = $result_set->fetch_assoc()) (
print_r($row);
បន្ទរ "
";
}
$result_set->close();
$mysqli->close();
?>

ជាដំបូងខ្ញុំសូមពន្យល់បន្តិចអំពីអ្វីដែលវាគឺជា។ លទ្ធផល_សំណុំ. លទ្ធផល_សំណុំ- នេះគឺជាតារាងដែលមានលទ្ធផល។ តារាងនេះមានសំណុំកំណត់ត្រា (ជួរតារាង)។ ហើយ​ដើម្បី​បង្ហាញ​កំណត់​ត្រា​ទាំងអស់ អ្នក​ត្រូវ​ធ្វើ​ម្តងទៀត​លើ​ជួរ​ដេក​នីមួយៗ​នៃ​តារាង ហើយ​បង្ហាញ​វា។ ហើយឥឡូវនេះខ្ញុំនឹងពន្យល់ជាមួយឧទាហរណ៍៖ បន្ទាប់ពីផ្ញើសំណើមួយ យើងបង្កើត លទ្ធផល_សំណុំ. បន្ទាប់មកយើងកំណត់ទៅអថេរក្នុងរង្វិលជុំ ជួរតម្លៃនៃបន្ទាត់បន្ទាប់ នោះគឺជាអារេមួយវិមាត្រដែលវិធីសាស្ត្រត្រឡប់ fetch_assoc(). នៅពេលដែលបន្ទាត់ទាំងអស់បានបញ្ចប់ វិធីសាស្ត្រ fetch_assoc()នឹងត្រឡប់មកវិញ មិនពិតហើយរង្វិលជុំនឹងត្រូវបានចេញ។ នៅខាងក្នុងរង្វិលជុំ ខណៈពេលដែលយើងគ្រាន់តែបញ្ចេញអារេដោយប្រើមុខងារបំបាត់កំហុស print_r()ទោះបីជាវាអាចត្រូវបានកាត់ដោយការប្រើប្រាស់ ខាងមុខប៉ុន្តែឥឡូវនេះវាមិនចាំបាច់ទេ។

ចូរយើងសង្ខេបពីរបៀបធ្វើការជាមួយ លទ្ធផល_សំណុំ:

  1. ទទួលបាន លទ្ធផល_សំណុំដោយផ្ញើសំណើដែលត្រូវគ្នាទៅកាន់មូលដ្ឋានទិន្នន័យ។
  2. នៅក្នុងរង្វិលជុំ នៅពេលធ្វើម្តងទៀតនីមួយៗ កំណត់ជួរបន្ទាប់ (កំណត់ត្រា) ពី លទ្ធផល_សំណុំដោយប្រើវិធីសាស្រ្ត fetch_assoc()អថេរខ្លះ ជួរ. បន្ទាប់មក អ្នកអាចធ្វើការជាមួយអថេរនេះជាអារេសហការមួយវិមាត្រ ដែលគ្រាប់ចុចរបស់វាជាឈ្មោះរបស់វាលតារាង ហើយតម្លៃត្រូវគ្នាទៅនឹងកំណត់ត្រាបច្ចុប្បន្ន។
  3. ត្រូវប្រាកដថាបិទ លទ្ធផល_សំណុំវិធីសាស្រ្ត បិទ ()ដើម្បីបង្ហូរធនធាន។

ដូចដែលអ្នកបានកត់សម្គាល់ វិធីសាស្ត្រ fetch_assoc()តែងតែត្រឡប់កំណត់ត្រាបន្ទាប់។ នោះគឺទីមួយទី 1 បន្ទាប់មកទី 2 បន្ទាប់មកទី 3 ជាដើម។ ប្រសិនបើអ្នកមានបទពិសោធន៍សរសេរកម្មវិធីល្អ នោះអ្នកនឹងស្មានភ្លាមៗថាវាកើតឡើងដោយសារទ្រនិចខាងក្នុង ដែលអ្នកពិតជាអាចផ្លាស់ទីបាន។ តើវាប្រើនៅឯណា? ឧទាហរណ៍ វាអាចត្រូវបានប្រើនៅពេលដែលអ្នកត្រូវការធ្វើការជាមួយ លទ្ធផល_សំណុំទេ។ 1 , ក 2 និងដងច្រើនទៀត។ ដើម្បីជៀសវាងការបង្កើតសំណើដដែលម្តងទៀត អ្នកគ្រាន់តែអាចផ្លាស់ទីទ្រនិចទៅដើម។ ហើយបន្ទាប់មកអ្នកអាចចាប់ផ្តើម brute force ម្តងទៀត លទ្ធផល_សំណុំដោយប្រើវិធីសាស្ត្រ fetch_assoc() ។

មានវិធីសាស្រ្តដើម្បីផ្លាស់ប្តូរទីតាំងនៃទ្រនិច data_seek()ដែលយកចំនួនគត់ពី 0 ទៅ " ចំនួនកំណត់ត្រា - 1" អាស្រ័យហេតុនេះ ទ្រនិចត្រូវបានដាក់នៅលើធាតុដែលត្រូវនឹងប៉ារ៉ាម៉ែត្រ៖

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
ប្រសិនបើ (mysqli_connect_errno()) (
បន្ទរ "ការតភ្ជាប់បានបរាជ័យ៖ ".mysqli_connect_error();
}
$result_set = $mysqli->query("SELECT * FROM mytable");
$result_set->num_rows;
while ($row = $result_set->fetch_assoc()) (
print_r($row);
បន្ទរ "
";
}
$result_set->data_seek(0);
while ($row = $result_set->fetch_assoc()) (
print_r($row);
បន្ទរ "
";
}
$result_set->close();
$mysqli->close();
?>

ក្នុងឧទាហរណ៍នេះយើងមានទិន្នផល ចំនួនកំណត់ត្រាក្នុង result_setការប្រើប្រាស់ទ្រព្យសម្បត្តិ num_rows. យើងក៏បានស្គាល់វិធីសាស្រ្តផងដែរ។ data_seek(). នោះ​គឺ យើង​បាន​ធ្វើ​ម្តងទៀត​លើ​លទ្ធផល​ទាំងមូល បន្ទាប់មក​ត្រឡប់​ទ្រនិច​ទៅ 0កត់ត្រាហើយបានឆ្លងកាត់លទ្ធផលម្តងទៀត។

នៅក្នុងអត្ថបទនេះ យើងភ្ជាប់ម្តងទៀតទៅមូលដ្ឋានទិន្នន័យ ហើយបិទការតភ្ជាប់។ ហើយក៏បានរកឃើញផងដែរ។ របៀបសួរ database តាមរយៈ PHP. យើងបានរកឃើញ របៀបដើម្បីទទួលបានលទ្ធផល_setនិងរបៀបធ្វើការជាមួយវា។ នេះគឺជាអ្វីគ្រប់យ៉ាងដែលអ្នកត្រូវដឹងដើម្បីទទួលបានជោគជ័យ ធ្វើការជាមួយ MySQL ក្នុង PHP.

ចំណាំ៖រចនាសម្ព័ន្ធទំនើប សំណួរថាមពលផ្តល់ជូននៅក្នុង Excel 2016 ជាក្រុមនៃពាក្យបញ្ជា ទាញយកនិងបម្លែង. ព័ត៌មាននៅក្នុងអត្ថបទនេះអនុវត្តទាំង Power Query និងក្រុមថ្មី។ សម្រាប់ព័ត៌មានបន្ថែម សូមមើលមុខងារទាញយក និងបំប្លែងនៅក្នុង Excel 2016។

នៅក្នុងប្រតិបត្តិការ Power Query បន្ថែមបង្កើតសំណួរថ្មីដែលមានជួរទាំងអស់ពីសំណួរទីមួយ ហើយបន្ទាប់មកជួរទាំងអស់ពីសំណួរទីពីរ។

កំណត់សម្គាល់សុវត្ថិភាព៖ កម្រិតឯកជនភាពការពារការបញ្ចូលគ្នាដោយចៃដន្យនៃទិន្នន័យពីប្រភពជាច្រើន ដែលអាចជាឯកជន ឬអង្គការ។ នៅពេលប្រើសំណួរមួយចំនួន អ្នកប្រើប្រាស់អាចផ្ញើទិន្នន័យដោយអចេតនាពីប្រភពទិន្នន័យឯកជនទៅប្រភពទិន្នន័យផ្សេងទៀត។ អ្នកវាយប្រហារអាចទាញយកប្រយោជន៍ពីឱកាសនេះ។ Power Query វិភាគប្រភពទិន្នន័យនីមួយៗ និងកំណត់កម្រិតភាពប្រែប្រួលរបស់វា៖ សាធារណៈ អង្គការ និងឯកជន។ សម្រាប់ព័ត៌មានបន្ថែមអំពីកម្រិតឯកជនភាព សូមមើលកម្រិតឯកជនភាព។

អនុវត្តការបន្ថែម

អ្នកអាចអនុវត្តប្រតិបត្តិការបន្ថែមពីរប្រភេទ៖ ការបន្ថែមកម្រិតមធ្យមបន្ថែមក្នុងបន្ទាត់. នៅពេលប្រើ ការបន្ថែមកម្រិតមធ្យមសម្រាប់ប្រតិបត្តិការបន្ថែមនីមួយៗ សំណួរថ្មីមួយត្រូវបានបង្កើត។ នៅ បន្ថែមក្នុងបន្ទាត់អ្នកបន្ថែមទិន្នន័យទៅក្នុងសំណួរដែលមានស្រាប់ រហូតដល់អ្នកឈានដល់លទ្ធផលចុងក្រោយ។ លទ្ធផលគឺជាជំហានថ្មីមួយនៅចុងបញ្ចប់នៃសំណើបច្ចុប្បន្ន។

ការបន្ថែមក្នុងជួរ

ការបន្ថែមកម្រិតមធ្យម


សូមមើលផងដែរ៖

ចំណាំ៖ កម្មវិធីនិពន្ធសំណួរអាចមើលឃើញតែនៅពេលផ្ទុក កែសម្រួល ឬបង្កើតសំណើថ្មីដោយប្រើ សំណួរថាមពល. វីដេអូបង្ហាញពីបង្អួច កម្មវិធីនិពន្ធសំណួរដែលលេចឡើងបន្ទាប់ពីអ្នកកែសម្រួលសំណួរនៅក្នុងសៀវភៅការងារ Excel ។ ដើម្បីមើល កម្មវិធីនិពន្ធសំណួរដោយមិនផ្ទុក ឬកែប្រែសំណួរដែលមានស្រាប់នៅក្នុងសៀវភៅការងារ នៅក្នុងផ្នែក ការទទួលទិន្នន័យខាងក្រៅនៅលើផ្ទាំងក្រណាត់ សំណួរថាមពលជ្រើសរើស ពីប្រភពផ្សេងទៀត > សំណើទទេ. វីដេអូបង្ហាញពីវិធីសាស្រ្តបង្ហាញមួយ។ កម្មវិធីនិពន្ធសំណួរ.

ខ្ញុំ​គិត​ថា អ្នក​រាល់​គ្នា​បាន​ឮ​អំពី​ច្បាប់ Pareto។ នៅក្នុងវិស័យណាមួយ 20% នៃកិច្ចខិតខំប្រឹងប្រែងបង្កើតបាន 80% នៃលទ្ធផល។ ឧទាហរណ៍ អ្នកស្លៀកពាក់ 20% នៃតុរប្យួរខោអាវរបស់អ្នក 80% នៃពេលវេលា 20% នៃអតិថិជនរបស់អ្នកនាំមក 80% នៃប្រាក់ចំណូលរបស់អ្នក។ វាដូចគ្នានៅក្នុង Google Sheets៖ ដោយដឹង 20% នៃមុខងារដែលមានស្រាប់ អ្នកអាចដោះស្រាយបញ្ហាបាន 80%។

ខ្ញុំយល់ថា Query គឺជាមុខងារដ៏មានប្រយោជន៍បំផុតមួយរបស់ Google Sheets។ ប៉ុន្តែ Google Help ពិពណ៌នាវាយ៉ាងស្រើបស្រាល ហើយថាមពលពេញលេញនៃមុខងារនេះមិនត្រូវបានបង្ហាញឱ្យដឹងនោះទេ។ នៅពេលពិនិត្យកាន់តែជិត វាកាន់តែច្បាស់ថាវាមានសមត្ថភាពជំនួសមុខងារដែលមានស្រាប់ភាគច្រើន។

ដើម្បីធ្វើការជាមួយ QUERY អ្នកនឹងត្រូវការចំណេះដឹងជាមូលដ្ឋាននៃ SQL ។ សម្រាប់អ្នកដែលមិនដឹង កុំបារម្ភ មុខងារ QUERY ពិតជាគាំទ្រមុខងារ SQL ជាមូលដ្ឋានខ្លាំងណាស់។

វាក្យសម្ព័ន្ធ QUERY

QUERY(ទិន្នន័យ សំណើរ [បឋមកថា])
  • ទិន្នន័យ— នេះគឺជាជួរនៃក្រឡាដែលនឹងបម្រើជាមូលដ្ឋានទិន្នន័យសម្រាប់សំណួរ SQL ។
  • សំណើ- អត្ថបទសំណួរ SQL;
  • ក្បាលគឺ​ជា​អាគុយម៉ង់​ស្រេច​ចិត្ត ដែល​អ្នក​អាច​បញ្ជាក់​ចំនួន​ជួរ​ដេក​ដំបូង​នៃ​អារេ​មាន​បឋមកថា។

ដើម្បីបង្កើនការយល់ឃើញនៃព័ត៌មានបន្ថែម ខ្ញុំស្នើឱ្យបើក និងចម្លង Google សន្លឹកខាងក្រោម

មានសន្លឹកជាច្រើននៅក្នុង dox ដែលអ្នកទើបតែបង្កើតច្បាប់ចម្លង។ សន្លឹក DB គឺជាមូលដ្ឋានទិន្នន័យដែលយើងនឹងចូលប្រើដោយប្រើមុខងារ QUERY ។ សន្លឹកកម្រិតមានឧទាហរណ៍ដែលយើងនឹងមើលនៅក្នុងអត្ថបទនេះ។ ជាមួយនឹងកម្រិតថ្មីនីមួយៗ ឧទាហរណ៍នឹងកាន់តែស្មុគស្មាញ។

ផែនការសំណួរ SQL នៅក្នុងមុខងារសំណួរ

រាល់សំណួរ SQL មានប្លុកដាច់ដោយឡែក ដែលជារឿយៗត្រូវបានគេហៅថាបង្កាច់បង្ខូច។ SQL សម្រាប់មុខងារ Query ប្រើវាក្យសម្ព័ន្ធភាសាសំណួរ Google Visualization API ដែលគាំទ្រឃ្លាខាងក្រោម៖

  • ជ្រើសរើស- រាយបញ្ជីវាលដែលនឹងត្រូវបានបញ្ជូនមកវិញដោយការស្នើសុំ;
  • កន្លែងណា- មានបញ្ជីលក្ខខណ្ឌដែលអារេទិន្នន័យដំណើរការដោយសំណើនឹងត្រូវបានត្រង។
  • ក្រុមដោយ- មានបញ្ជីនៃវាលដែលអ្នកចង់ដាក់ជាក្រុមលទ្ធផល។
  • ស្នូល- ជួយបង្កើតផ្ទាំងឆ្លងដោយប្រើតម្លៃនៃជួរឈរមួយជាឈ្មោះនៃជួរឈរនៃតារាងចុងក្រោយ។
  • បញ្ជាទិញដោយ- ទទួលខុសត្រូវក្នុងការតម្រៀបលទ្ធផល;
  • ដែនកំណត់- ជាមួយផ្នែកនៃសំណួរនេះ អ្នកអាចកំណត់ចំនួនជួរដេកដែលត្រឡប់ដោយសំណួរ។
  • អុហ្វសិត- ដោយប្រើពាក្យបង្កាច់បង្ខូចនេះ អ្នកអាចកំណត់ចំនួនបន្ទាត់ដំបូងដែលមិនចាំបាច់ដំណើរការដោយសំណួរ។
  • ស្លាក- ការបង្កាច់បង្ខូចនេះទទួលខុសត្រូវចំពោះឈ្មោះវាលដែលបានប្រគល់មកវិញដោយការស្នើសុំ។
  • ទម្រង់- ទទួលខុសត្រូវចំពោះទ្រង់ទ្រាយនៃទិន្នន័យលទ្ធផល;
  • ជម្រើស —ធ្វើឱ្យវាអាចកំណត់ប៉ារ៉ាម៉ែត្រទិន្នផលទិន្នន័យបន្ថែម។

Hello World for Query (ជ្រើសរើស) មុខងារ

តោះទៅសន្លឹក Level_1 ហើយមើលរូបមន្តក្នុងក្រឡា A1។

សំណួរ(DB!A1:L1143;"ជ្រើសរើស *ដែនកំណត់ 100")

ផ្នែកនៃរូបមន្ត " DB!A1:L1143"ទទួលខុសត្រូវលើមូលដ្ឋានទិន្នន័យ ដែលយើងនឹងធ្វើគំរូ។ ផ្នែកទីពីរ " ជ្រើសរើស * ដែនកំណត់ 100"មានអត្ថបទនៃសំណើដោយខ្លួនឯង។ និមិត្តសញ្ញា "*" ក្នុងករណីនេះមានន័យថា ត្រឡប់វាលទាំងអស់ដែលមាននៅក្នុងមូលដ្ឋានទិន្នន័យ។ ដោយប្រើ " ដែនកំណត់ 100» យើងកំណត់ទិន្នផលរហូតដល់ 100 ជួរអតិបរមា។ នេះគឺជាឧទាហរណ៍នៃសំណើសាមញ្ញបំផុត។ យើងបានជ្រើសរើសជួរ 100 ដំបូងពីមូលដ្ឋានទិន្នន័យ។ នេះគឺជាប្រភេទនៃ "Hello world" សម្រាប់មុខងារ Query ។

យើងប្រើតម្រង និងតម្រៀប (កន្លែងណា បញ្ជាតាម)

ទៅកាន់សន្លឹក Level_2 ។ ចូរយើងជ្រើសរើសតែវាលមួយចំនួនដែលយើងត្រូវការ ហើយកំណត់លក្ខខណ្ឌតម្រង និងតម្រៀប។ ឧទាហរណ៍ យើងប្រើទិន្នន័យសម្រាប់តែយុទ្ធនាការ Campaign_1 និង Campaign_2 សម្រាប់រយៈពេលពីថ្ងៃទី 22-25 ខែតុលា ឆ្នាំ 2015 ប៉ុណ្ណោះ។ ចូរតម្រៀបពួកវាតាមលំដាប់ចុះតាមចំនួនវគ្គ។ ដើម្បីត្រង និងតម្រៀប អ្នកត្រូវបន្ថែមការពិពណ៌នាអំពីការបង្កាច់បង្ខូចទៅក្នុងអត្ថបទសំណើ កន្លែងណានិង បញ្ជាទិញ. ដើម្បីបង្ហាញឧទាហរណ៍ដែលបានពិពណ៌នាខាងលើក្នុងតារាងលទ្ធផល យើងត្រូវការវាលយុទ្ធនាការ កាលបរិច្ឆេទ និងវគ្គ។ ពួក​គេ​ជា​អ្នក​ដែល​ត្រូវ​ចុះ​បញ្ជី​ក្នុង​ការ​បង្កាច់​បង្ខូច ជ្រើសរើស.

វាលមូលដ្ឋានទិន្នន័យត្រូវបានចូលប្រើតាមរយៈឈ្មោះជួរឈរនៃសន្លឹកកិច្ចការដែលមូលដ្ឋានទិន្នន័យស្ថិតនៅ។

ក្នុងករណីរបស់យើង ទិន្នន័យដែលមាននៅលើសន្លឹក DB និងការចូលទៅកាន់វាលជាក់លាក់ត្រូវបានសរសេរជាឈ្មោះនៃជួរឈរសន្លឹក។ ដូច្នេះ វាលដែលត្រូវការមានទីតាំងនៅក្នុងជួរខាងក្រោម៖

  • វាល កាលបរិច្ឆេទ- ជួរ A;
  • វាល យុទ្ធនាការ- ជួរ B;
  • វាល វគ្គ- ជួរ G ។

ដូច្នោះហើយ ផ្នែកនៃសំណើដែលទទួលខុសត្រូវចំពោះបញ្ជីទិន្នន័យលទ្ធផលនឹងមើលទៅដូចនេះ៖

ជ្រើសរើស A, B, G

បន្ទាប់នៅក្នុងការស្នើសុំគឺជាការបង្កាច់បង្ខូច កន្លែងណា. នៅពេលសរសេរការស្នើសុំការបង្កាច់បង្ខូចត្រូវតែដាក់តាមលំដាប់ដែលវាត្រូវបានពិពណ៌នានៅក្នុងផ្នែកដំបូងនៃអត្ថបទនេះ។ បន្ទាប់ពីការប្រកាស កន្លែងណាយើងត្រូវរាយបញ្ជីលក្ខខណ្ឌតម្រង។ ក្នុងករណីនេះ យើងត្រងទិន្នន័យតាមឈ្មោះយុទ្ធនាការ (យុទ្ធនាការ) និងកាលបរិច្ឆេទ (កាលបរិច្ឆេទ)។ យើងប្រើលក្ខខណ្ឌតម្រងជាច្រើន។ អត្ថបទសំណើត្រូវតែមានប្រតិបត្តិករឡូជីខល OR ឬ AND រវាងលក្ខខណ្ឌទាំងអស់។ ការត្រងតាមកាលបរិច្ឆេទគឺខុសគ្នាបន្តិចបន្តួចពីការត្រងតាមលេខ និងតម្លៃអត្ថបទ វាតម្រូវឱ្យប្រើប្រតិបត្តិករកាលបរិច្ឆេទ។ ផ្នែកនៃសំណើដែលទទួលខុសត្រូវចំពោះការត្រងទិន្នន័យនឹងមើលទៅដូចនេះ៖

កន្លែងណា (A >= date"2015-10-22" និង A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")

ដោយប្រើតង្កៀប យើងបានបែងចែកការត្រងទិន្នន័យជាពីរផ្នែកឡូជីខល៖ តម្រងទីមួយតាមកាលបរិច្ឆេទ តម្រងទីពីរតាមឈ្មោះយុទ្ធនាការ។ នៅដំណាក់កាលនេះ រូបមន្តពិពណ៌នាអំពីទិន្នន័យដែលត្រូវជ្រើសរើស ហើយលក្ខខណ្ឌនៃការត្រងទិន្នន័យមើលទៅដូចនេះ៖

សំណួរ(DB!A1:L1143;" ជ្រើសរើស A, B, G កន្លែងណា (A >= date"2015-10-22" និង A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")")

អ្នក​អាច​ចម្លង និង​បិទភ្ជាប់​វា​ជា​ឧទាហរណ៍​លើ​សន្លឹក​ថ្មី​នៃ​ឯកសារ​ដែល​ប្រើ​ជា​ឧទាហរណ៍​ក្នុង​ការ​ប្រកាស​នេះ ហើយ​ទទួល​បាន​លទ្ធផល​ដូច​ខាង​ក្រោម៖

បន្ថែមពីលើប្រតិបត្តិករឡូជីខលធម្មតា (=,<, >) ប្លុក WHERE គាំទ្រប្រតិបត្តិករតម្រងបន្ថែម៖

  • មាន- ពិនិត្យខ្លឹមសារនៃតួអក្សរជាក់លាក់ក្នុងខ្សែអក្សរ។ ឧទាហរណ៍ WHERE A មាន 'John' នឹងត្រឡប់ទៅតម្រងតម្លៃទាំងអស់ពីជួរឈរ A ដែលមាន John ឧទាហរណ៍ John Adams Long John Silver;
  • ចាប់ផ្តើមជាមួយ- ត្រងតម្លៃតាមបុព្វបទ ពោលគឺពិនិត្យតួអក្សរនៅដើមបន្ទាត់។ ឧទាហរណ៍ ចាប់ផ្តើមដោយ 'en' នឹងត្រឡប់តម្លៃវិស្វកម្ម និងភាសាអង់គ្លេស។
  • បញ្ចប់ដោយ- តម្រងតម្លៃនៅចុងបញ្ចប់នៃខ្សែអក្សរ។ ឧទាហរណ៍បន្ទាត់ 'ខូវប៊យ ' នឹងត្រូវបានត្រឡប់មកវិញដោយ "បញ្ចប់ដោយ 'ក្មេងប្រុស' ឬ "បញ្ចប់ដោយ 'y";
  • ការប្រកួត- ត្រូវគ្នានឹងកន្សោមធម្មតា។ ឧទាហរណ៍៖ កន្លែងដែលត្រូវគ្នា។ '.* អាយ ' នឹងត្រឡប់តម្លៃឥណ្ឌា និងនីហ្សេរីយ៉ា។
  • ចូលចិត្ត -កំណែសាមញ្ញនៃកន្សោមធម្មតា វាពិនិត្យថាតើខ្សែអក្សរត្រូវគ្នានឹងកន្សោមដែលបានផ្តល់ឱ្យដោយប្រើតួអក្សរជំនួស។ បច្ចុប្បន្ន ដូចជាគាំទ្រតួអក្សរជំនួសពីរ៖ "%" មានន័យថាចំនួនតួអក្សរណាមួយនៅក្នុងខ្សែអក្សរ ហើយ "_" មានន័យថាតួអក្សរណាមួយ។ ឧទាហរណ៍ "កន្លែងដែលឈ្មោះដូចជា 'fre%'" នឹងផ្គូផ្គងបន្ទាត់ 'ទំនេរ ’, 'ហ្វ្រេដ ' និង 'freddy ’.

សំណួរបានត្រងទិន្នន័យរួចហើយសម្រាប់រយៈពេលជាក់លាក់មួយ ហើយទុកតែយុទ្ធនាការដែលយើងត្រូវការប៉ុណ្ណោះ។ អ្វីដែលនៅសល់គឺត្រូវតម្រៀបលទ្ធផលតាមលំដាប់ចុះ អាស្រ័យលើចំនួនវគ្គ។ ការតម្រៀបនៅក្នុងសំណួរទាំងនេះត្រូវបានអនុវត្តជាប្រពៃណីសម្រាប់ SQL ដោយប្រើពាក្យបង្កាច់បង្ខូច បញ្ជាទិញដោយ. វាក្យសម្ព័ន្ធគឺសាមញ្ញណាស់៖ អ្នកគ្រាន់តែត្រូវរាយបញ្ជីវាលដែលអ្នកចង់តម្រៀបលទ្ធផល ហើយបញ្ជាក់លំដាប់តម្រៀបផងដែរ។ លំដាប់លំនាំដើមគឺ asc ពោលគឺឡើង។ ប្រសិនបើអ្នកបញ្ជាក់ប៉ារ៉ាម៉ែត្រ desc បន្ទាប់ពីឈ្មោះវាល សំណួរនឹងត្រឡប់លទ្ធផលតាមលំដាប់ចុះនៃអ្នកដែលបានបញ្ជាក់នៅក្នុងការបង្កាច់បង្ខូច។ បញ្ជាទិញដោយវាល។

ក្នុងករណីរបស់យើង បន្ទាត់នៅក្នុងអត្ថបទសំណើនឹងទទួលខុសត្រូវចំពោះការត្រង៖

បញ្ជាទិញដោយ G desc

ដូច្នោះហើយ លទ្ធផលចុងក្រោយនៃរូបមន្តនៅលើសន្លឹក Level_2 ដែលដោះស្រាយបញ្ហាដែលយើងត្រូវការ មើលទៅដូចនេះ៖

សំណួរ(DB!A1:L1143;" ជ្រើសរើស A, B, G កន្លែងណា (A >= date"2015-10-22" និង A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2") ORDER BY G DESC")

ឥឡូវនេះអ្នកអាចប្រើវាក្យសម្ព័ន្ធ SQL សាមញ្ញ និងមុខងារ QUERY ដើម្បីត្រង និងតម្រៀបទិន្នន័យ។

".
ប្រហែលជាបុរសមកពីការិយាល័យទីក្រុងមូស្គូមិនមានពេលទេ ដូច្នេះអ្វីដែលខាងក្រោមនេះនឹងជាការបកប្រែដោយឥតគិតថ្លៃនៃឯកសារយោងភាសាសំណួរ (កំណែ 0.7)។
Google Visualization API ។ ភាសាសំណួរ (កំណែ 0.7)
ភាសាសំណួរ Google Visualization API អនុញ្ញាតឱ្យអ្នករៀបចំទិន្នន័យតាមរយៈសំណួរទៅកាន់ប្រភពទិន្នន័យ។

ជាធម្មតា ការមើលឃើញតម្រូវឱ្យបង្ហាញទិន្នន័យក្នុងទម្រង់ជាក់លាក់មួយចំនួន។ ជាឧទាហរណ៍ គំនូសតាងចំណិតត្រូវការជួរពីរ៖ ស្លាកអត្ថបទ និងតម្លៃជាលេខ។ ប្រភពទិន្នន័យអាចមិនត្រូវគ្នានឹងរចនាសម្ព័ន្ធនេះទេ។ វា​អាច​មាន​ជួរ​ឈរ​ច្រើន​ទៀត ឬ​លំដាប់​របស់​វា​នឹង​ខុស​ពី​អ្វី​ដែល​ត្រូវ​ការ​សម្រាប់​តារាង។
ភាសាសំណួរអនុញ្ញាតឱ្យយើងរៀបចំរចនាសម្ព័ន្ធទិន្នន័យតាមរបៀបដែលយើងត្រូវការដើម្បីសម្រេចបានលទ្ធផល។
វាក្យសម្ព័ន្ធភាសាសំណួរគឺស្រដៀងនឹង SQL ។ អ្នកដែលមានជំនាញក្នុងការប្រើប្រាស់ SQL នឹងអាចធ្វើជាម្ចាស់នៃភាសាសំណួរបានយ៉ាងឆាប់រហ័ស។ ផ្នែកវាក្យសម្ព័ន្ធរៀបរាប់ពីភាពខុសគ្នានៅក្នុងភាសាទាំងនេះ។
ចំណាំថាវាមិនតែងតែចាំបាច់ក្នុងការប្រើភាសាសំណួរសម្រាប់ការមើលឃើញនោះទេ។ ទាមទារមូលដ្ឋានដើម្បីប្រើវា។ ទៅមាតិកា។

ការប្រើប្រាស់ភាសាសំណួរ

អ្នកអាចបន្ថែមខ្សែអក្សរសំណួរទៅប្រភពទិន្នន័យតាមពីរវិធី៖ ពីកូដ JavaScript ឬជាប៉ារ៉ាម៉ែត្រទៅតំណប្រភពទិន្នន័យ។ ប្រសិនបើតំណរបស់អ្នកមិនមានប៉ារ៉ាម៉ែត្រសំណួរទេ នោះតាមលំនាំដើម សំណុំទិន្នន័យទាំងមូលនឹងត្រលប់មកវិញ។ អ្នកអាចផ្លាស់ប្តូរសំណុំនេះដោយកែតម្រូវសំណួរទៅប្រភពទិន្នន័យខ្លួនឯង។

ប្រសិនបើអ្នកកំពុងប្រើមុខងារ QUERY នៅក្នុង Google Sheets នោះអ្នកអាចរំលងចំណុចខាងក្រោម ហើយបន្តទៅផ្នែកបន្ទាប់ទៀត។

កំណត់សំណើពី JavaScript

ដើម្បីកំណត់ខ្សែអក្សរសំណួរពីកូដ JavaScript អ្នកត្រូវហៅវិធីសាស្ត្រ setQueryថ្នាក់ google.visualization.Query ។
var query = new google.visualization.Query(DATA_SOURCE_URL);
query.setQuery("ជ្រើសរើស dept, sum(salary) group by dept");
query.send(handleQueryResponse);

ខ្សែអក្សរសំណួរទៅប្រភពទិន្នន័យអាចត្រូវបានបន្ថែមដោយប្រើប៉ារ៉ាម៉ែត្រ tq. វិធីនេះ វាអាចប្រើការមើលឃើញដែលត្រូវបានសរសេរដោយអ្នកអភិវឌ្ឍន៍ផ្សេងទៀត ដោយគ្រាន់តែកែតម្រូវសំណុំទិន្នន័យរបស់អ្នក។
ខ្សែអក្សរសំណួរត្រូវតែត្រូវបានអ៊ិនកូដឱ្យបានត្រឹមត្រូវជាប៉ារ៉ាម៉ែត្រ URL ។ អ្នកអាចប្រើមុខងារ JavaScript អ៊ិនកូដURICComponentសម្រាប់ការអ៊ិនកូដ ឬធ្វើវាដោយដៃដោយប្រើឧបករណ៍នៅចុងបញ្ចប់នៃផ្នែក។
ឧទាហរណ៍
សូមក្រឡេកមើលសំណួរឧទាហរណ៍សម្រាប់ Google Sheet (សូមចាំថា ការកំណត់អត្តសញ្ញាណជួរឈរគឺតែងតែជាអក្សរ។ ឈ្មោះជួរឈរនៅពេលបោះពុម្ពមិនមែនជាការកំណត់អត្តសញ្ញាណទេ។ វាគឺជាការកំណត់អត្តសញ្ញាណជួរឈរដែលត្រូវតែប្រើក្នុងសំណួរ)
បន្ទាប់ពីសរសេរកូដ សំណើនឹងមើលទៅដូចនេះ៖
ជ្រើសរើស%20A%2C%20sum(B)%20group%20by%20A
ចូរសន្មតថាអាសយដ្ឋាននៃតារាងទិន្នន័យមានដូចខាងក្រោម:
http://spreadsheets.google.com/a/google.com/tq?key=ABCDE
តោះបន្ថែមប៉ារ៉ាម៉ែត្រស្នើសុំ &tq=YOUR_QUERY_STRINGទៅកាន់តំណភ្ជាប់ទៅកាន់តារាង ហើយទទួលបានខ្សែអក្សរសំណួរដែលត្រៀមរួចជាស្រេច
http://spreadsheets.google.com/a/google.com/tq?key=ABCDE&tq=select%A%2C%20sum(B)%20group%20by%20A

វាក្យសម្ព័ន្ធភាសា

ពិនិត្យ

ភាសាសំណួររបស់ខ្ញុំគឺស្រដៀងទៅនឹង SQL ។ ទោះយ៉ាងណាក៏ដោយមានលក្ខណៈពិសេសមួយចំនួនដែលចាំបាច់ត្រូវយកមកពិចារណា។
តារាងទិន្នន័យ
ឯកសារនេះណែនាំគោលគំនិតនៃ "តារាងទិន្នន័យ" ដើម្បីយោងទៅលើលទ្ធផលនៃសំណួរ។ តារាងមានជួរ និងជួរឈរ។ ជួរនីមួយៗមានលក្ខណៈសម្បត្តិដូចខាងក្រោមៈ
  • លេខសម្គាល់ (ឬលេខសម្គាល់ជួរឈរ). ប្រើដើម្បីសំដៅលើជួរឈរតារាង។ សូមចំណាំថាអ្នកគ្រាន់តែត្រូវយោងទៅជួរឈរមួយដោយអ្នកកំណត់អត្តសញ្ញាណរបស់វា។ ល្បិច៖ ព្យាយាម​មិន​ប្រើ​ដកឃ្លា​ក្នុង​ឧបករណ៍​សម្គាល់ វា​អាច​បង្ក​ការ​លំបាក​ក្នុង​ការ​កែសម្រួល​សំណើ។ លើសពីនេះ គ្រឿងសម្គាល់ទាំងអស់ដែលមានដកឃ្លាត្រូវតែត្រូវបានរុំព័ទ្ធក្នុងសម្រង់ខាងក្រោយ។
  • ស្លាក. នេះគឺជាខ្សែអក្សរដែលជាធម្មតាត្រូវបានបង្ហាញដល់អ្នកប្រើប្រាស់ចុងក្រោយ។ ឧទាហរណ៍ រឿងព្រេងនៅក្នុងតារាងចំណិត ឬចំណងជើងក្នុងតារាងតារាង។ មិនអាចអនុវត្តបានសម្រាប់មុខងារ QUERY() នៅក្នុង Google សន្លឹក.
  • ប្រភេទទិន្នន័យ. ប្រភេទទិន្នន័យខាងក្រោមត្រូវបានគាំទ្រ៖ ខ្សែអក្សរ លេខ ប៊ូលីន កាលបរិច្ឆេទ កាលបរិច្ឆេទ ពេលវេលានៃថ្ងៃ។ តម្លៃ​ទាំងអស់​ក្នុង​ជួរ​ឈរ​នឹង​ជា​ប្រភេទ​ទិន្នន័យ​របស់​ជួរ​ឈរ​នោះ ឬ​ទុក​ជា​មោឃៈ។
  • ប្រភេទទិន្នន័យទាំងនេះគឺស្រដៀងទៅនឹងប្រភេទ JavaScript ប៉ុន្តែមិនដូចគ្នាបេះបិទទេ។ ពួកវាត្រូវបានពិពណ៌នានៅក្នុងផ្នែកអក្សរសាស្ត្រ។ទម្រង់បែបបទ
. តារាងទិន្នន័យអាចគាំទ្រទម្រង់បែបបទសម្រាប់ជួរឈរទាំងអស់ ឬមួយចំនួន។
ទាំងនេះត្រូវបានពិពណ៌នានៅក្នុងផ្នែក ការធ្វើទ្រង់ទ្រាយ។
តារាងទិន្នន័យដែលប្រើក្នុងឧទាហរណ៍ទាំងអស់។
ឧទាហរណ៍ក្នុងឯកសារនេះប្រើតារាងដែលមានទិន្នន័យ និងប្រភេទជួរឈរខាងក្រោម៖
ឈ្មោះ
ឧទាហរណ៍ក្នុងឯកសារនេះប្រើតារាងដែលមានទិន្នន័យ និងប្រភេទជួរឈរខាងក្រោម៖
ខ្សែអក្សរ
នាយកដ្ឋាន

ម៉ោងអាហារថ្ងៃត្រង់
ពេលវេលានៃថ្ងៃ

ប្រាក់ខែ
លេខ
កាលបរិច្ឆេទជួល
កាលបរិច្ឆេទ
អាយុ
លេខ
គឺជាន់ខ្ពស់
ប៊ូលីន
អតីតភាពការងារចាប់ផ្តើមម៉ោង កាលបរិច្ឆេទ 12:00:00 2005-03-19 35 ចន 2007-12-02 15:56:00
អេង កាលបរិច្ឆេទ 12:00:00 2006-04-19 27 មិនពិត ពិត
ដេវ កាលបរិច្ឆេទ 13:00:00 2005-10-10 30 មិនពិត ពិត
មោឃៈ សាលី 12:00:00 2002-10-10 32 ចន 2005-03-09 12:30:00
បេន សាលី 12:00:00 2004-09-08 25 មិនពិត ពិត
ការលក់ ដាណា 13:00:00 2005-01-10 24 ចន 2007-12-30 14:40:00

លោក Mike

ទីផ្សារ
ប្រតិបត្តិករ ការប្រើប្រាស់
ជ្រើសរើស ជ្រើសរើស​ជួរ​ឈរ​មួយ​ណា​នឹង​ត្រូវ​បាន​ត្រឡប់​មក​វិញ ហើយ​តាម​លំដាប់​ណា។ ប្រសិន​បើ​ប្រតិបត្តិករ​ត្រូវ​បាន​លុប​ចោល ជួរ​ឈរ​ទាំង​អស់​នៃ​តារាង​នឹង​ត្រូវ​បាន​ត្រឡប់​មក​វិញ។
ត្រឡប់តែជួរតារាងទាំងនោះដែលត្រូវនឹងលក្ខខណ្ឌមួយ។ ប្រសិន​បើ​ប្រតិបត្តិករ​ត្រូវ​បាន​លុប​ចោល ជួរ​ទាំង​អស់​ក្នុង​តារាង​នឹង​ត្រូវ​បាន​ត្រឡប់​មក​វិញ។
ក្រុមដោយ តម្លៃក្រុមតាមជួរ។
ស្នូល បំប្លែងតម្លៃតែមួយគត់ក្នុងជួរឈរទៅជាជួរឈរថ្មី ដោយធ្វើតាមឧទាហរណ៍នៃតារាងជំនួយទិន្នន័យ។
បញ្ជាទិញដោយ តម្រៀប​ជួរ​ដេក​ដោយ​ផ្អែក​លើ​តម្លៃ។
ដែនកំណត់ កំណត់ដែនកំណត់លើជួរដែលនឹងត្រូវត្រឡប់។
អុហ្វសិត រំលងចំនួនជួរដែលបានបញ្ជាក់ពីលទ្ធផល។
ស្លាក កំណត់ចំណងជើងសម្រាប់ជួរឈរ។
ទម្រង់ ធ្វើ​ទ្រង់ទ្រាយ​តម្លៃ​ក្នុង​ជួរ​ឈរ​ដែល​បាន​បញ្ជាក់​តាម​លំនាំ​ការ​ធ្វើ​ទ្រង់ទ្រាយ។
ជម្រើស កំណត់ជម្រើសបន្ថែម។
ពី ពីប្រតិបត្តិករមិនត្រូវបានប្រើទេ។
ជ្រើសរើស
សេចក្តីថ្លែងការណ៍ជ្រើសរើស បញ្ជាក់ថាតើជួរឈរមួយណាគួរតែត្រលប់មកវិញ ហើយក្នុងលំដាប់ណា។ ប្រសិនបើប្រតិបត្តិករមិនត្រូវបានបញ្ជាក់ ឬជ្រើសរើស * ត្រូវបានបញ្ជាក់ នោះជួរឈរតារាងទាំងអស់នឹងត្រលប់មកវិញតាមលំដាប់ដើមរបស់វា។ ជួរឈរអាចត្រូវបានយោងតាមរយៈឧបករណ៍កំណត់អត្តសញ្ញាណ ប៉ុន្តែមិនមែនតាមរយៈស្លាកទេ។ លេខសម្គាល់នៅក្នុង Google Sheets គឺជាឈ្មោះជួរឈរមួយ ឬពីរអក្សរ (A, B, C, ..., AC, ..., DC, ...)។
ប៉ារ៉ាម៉ែត្រប្រតិបត្តិករអាចជាសញ្ញាសម្គាល់ជួរឈរ អនុគមន៍សរុប អនុគមន៍មាត្រដ្ឋាន ឬសញ្ញាប្រមាណវិធីនព្វន្ធ។
ឧទាហរណ៍៖
ជ្រើសរើស *
ជ្រើសរើសនាយកដ្ឋាន, ប្រាក់ខែ
ជ្រើសរើសអតិបរមា (ប្រាក់ខែ)
អាសយដ្ឋានអ៊ីមែលកាលបរិច្ឆេទ):

យើងទទួលបានលទ្ធផល៖
ម៉ោងអាហារថ្ងៃត្រង់ ឈ្មោះ
12:00:00 អតីតភាពការងារចាប់ផ្តើមម៉ោង
12:00:00 អេង
13:00:00 ដេវ
12:00:00 មោឃៈ
12:00:00 បេន
13:00:00 ការលក់
កន្លែងដែលសេចក្តីថ្លែងការណ៍ត្រូវបានប្រើដើម្បីត្រឡប់តែជួរទាំងនោះដែលបំពេញលក្ខខណ្ឌ។
ប្រតិបត្តិករប្រៀបធៀបសាមញ្ញត្រូវបានប្រើដើម្បីពិពណ៌នាអំពីលក្ខខណ្ឌ<=, <, >, >=, =, !=, <>. ប្រតិបត្តិករទាំងពីរ !=,<>មធ្យម មិនស្មើគ្នា. ខ្សែអក្សរត្រូវបានប្រៀបធៀបដោយតម្លៃ lexicographic របស់ពួកគេ។ ចំណាំ ភាពស្មើគ្នាត្រូវបានត្រួតពិនិត្យតាមរយៈ = operator ហើយមិនមែនតាមរយៈ == ដូចនៅក្នុងភាសាជាច្រើននោះទេ។. ការប្រៀបធៀបជាមួយ null ត្រូវបានធ្វើតាមរយៈគឺ null ហើយមិនមែនជា null ទេ។ នៅពេលប្រើ QUERY() នៅក្នុង Google សន្លឹក ជាធម្មតា វាលខ្សែអក្សរមានតម្លៃទទេ "" ជាជាងចាត់ទុកជាមោឃៈ។
អ្នកអាចបញ្ចូលគ្នានូវលក្ខខណ្ឌជាច្រើនដោយប្រើសញ្ញាប្រមាណវិធីតក្កវិជ្ជា និង ឬមិនមែន វង់ក្រចកត្រូវបានប្រើដើម្បីកំណត់អាទិភាពច្បាស់លាស់។

កន្លែងដែលសេចក្តីថ្លែងការណ៍ក៏ប្រើសញ្ញាប្រមាណវិធីបន្ថែមដើម្បីធ្វើការប្រៀបធៀបខ្សែអក្សរដែលស្មុគស្មាញជាង។ ប្រតិបត្តិករទាំងនេះយកអាគុយម៉ង់ពីរដែលត្រូវតែជាខ្សែអក្សរ អាគុយម៉ង់ដែលមិនមែនជាខ្សែអក្សរណាមួយ (កាលបរិច្ឆេទ លេខ) នឹងត្រូវបានបំប្លែងទៅជាខ្សែអក្សរមុនពេលប្រៀបធៀប។ ការប្រៀបធៀបគឺប្រកាន់អក្សរតូចធំ (ដើម្បីធ្វើឱ្យមុខងារនេះរលូន ប្រើមុខងារមាត្រដ្ឋានខាងលើ() ទាប())។
មាន - ត្រូវគ្នានឹងខ្សែអក្សររង។ កន្សោមនឹងត្រឡប់ពិត ប្រសិនបើផ្នែកនៃខ្សែអក្សរត្រូវគ្នាទាំងស្រុងទៅនឹងអាគុយម៉ង់ដែលបានផ្តល់ឱ្យ - ខ្សែអក្សររងមួយ។ ឧទាហរណ៍ កន្លែងដែលឈ្មោះមាន "ចន" នឹងត្រលប់មកវិញ "John", "John Adams", "Long John Silver"ប៉ុន្តែមិនមែនទេ។ "John Adams".

ឧទាហរណ៍៖
ជ្រើសរើស *
ជ្រើសរើសនាយកដ្ឋាន, ប្រាក់ខែ
ជ្រើសរើសអតិបរមា (ប្រាក់ខែ)
ឧទាហរណ៍ខាងក្រោមបង្ហាញពីការប្រើប្រាស់ឯកសារយោងអត្តសញ្ញាណដែលមានដកឃ្លា ( អាសយដ្ឋានអ៊ីមែល) និងការកំណត់អត្តសញ្ញាណដែលត្រូវគ្នានឹងឈ្មោះនៃពាក្យដែលបានបម្រុងទុក ( កាលបរិច្ឆេទ):
ជ្រើសរើស "អាសយដ្ឋានអ៊ីមែល" ឈ្មោះ "កាលបរិច្ឆេទ"
តោះអនុវត្តសំណួរខាងក្រោមទៅតារាងឧទាហរណ៍៖
យើងទទួលបានលទ្ធផល៖
ម៉ោងអាហារថ្ងៃត្រង់ ឈ្មោះ
12:00:00 អតីតភាពការងារចាប់ផ្តើមម៉ោង
12:00:00 អេង
13:00:00 ដេវ
12:00:00 មោឃៈ
12:00:00 បេន
13:00:00 ការលក់