យើងបានរៀនពីរបៀបភ្ជាប់ទៅម៉ាស៊ីនមេ 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()ទោះបីជាវាអាចត្រូវបានកាត់ដោយការប្រើប្រាស់ ខាងមុខប៉ុន្តែឥឡូវនេះវាមិនចាំបាច់ទេ។
ចូរយើងសង្ខេបពីរបៀបធ្វើការជាមួយ លទ្ធផល_សំណុំ:
- ទទួលបាន លទ្ធផល_សំណុំដោយផ្ញើសំណើដែលត្រូវគ្នាទៅកាន់មូលដ្ឋានទិន្នន័យ។
- នៅក្នុងរង្វិលជុំ នៅពេលធ្វើម្តងទៀតនីមួយៗ កំណត់ជួរបន្ទាប់ (កំណត់ត្រា) ពី លទ្ធផល_សំណុំដោយប្រើវិធីសាស្រ្ត fetch_assoc()អថេរខ្លះ ជួរ. បន្ទាប់មក អ្នកអាចធ្វើការជាមួយអថេរនេះជាអារេសហការមួយវិមាត្រ ដែលគ្រាប់ចុចរបស់វាជាឈ្មោះរបស់វាលតារាង ហើយតម្លៃត្រូវគ្នាទៅនឹងកំណត់ត្រាបច្ចុប្បន្ន។
- ត្រូវប្រាកដថាបិទ លទ្ធផល_សំណុំវិធីសាស្រ្ត បិទ ()ដើម្បីបង្ហូរធនធាន។
ដូចដែលអ្នកបានកត់សម្គាល់ វិធីសាស្ត្រ 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);ខ្សែអក្សរសំណួរទៅប្រភពទិន្នន័យអាចត្រូវបានបន្ថែមដោយប្រើប៉ារ៉ាម៉ែត្រ tq. វិធីនេះ វាអាចប្រើការមើលឃើញដែលត្រូវបានសរសេរដោយអ្នកអភិវឌ្ឍន៍ផ្សេងទៀត ដោយគ្រាន់តែកែតម្រូវសំណុំទិន្នន័យរបស់អ្នក។
query.setQuery("ជ្រើសរើស dept, sum(salary) group by dept");
query.send(handleQueryResponse);
ខ្សែអក្សរសំណួរត្រូវតែត្រូវបានអ៊ិនកូដឱ្យបានត្រឹមត្រូវជាប៉ារ៉ាម៉ែត្រ 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 | ការលក់ |