
ទន្ទឹមនឹងការប្រើប្រាស់កម្មវិធី Google Sheets ជាមូលដ្ឋានទិន្នន័យសំរាប់កម្មវិធី Google App Script ទាំងឡាយ យើងក៏អាចប្រើប្រាស់កម្មវិធី Google App Script នេះដើម្បីភ្ជាប់សេវាទៅនឹងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធមួយចំនួនទៀតបានដែរ អោយតែមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធទាំងនោះមានប្រភេទជា Google Cloud SQL, MySQL, Microsoft SQL, ឬ Oracle ។
នៅក្នុងការតភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យទាំងនោះ ប្រព័ន្ធ Google App Script បានបង្កើតរបៀបតភ្ជាប់តាមបែប «JDBC» ដូចដែលមាននៅក្នុងកម្មវិធីជាភាសា Java ទាំងឡាយដែរ។
ជាក់ស្តែង ដើម្បីតភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធមានប្រភេទជា Google Cloud SQL យើងត្រូវប្រើប្រាស់ក្បួនមានឈ្មោះថា «Jdbc.getCloudSqlConnection» ។ ហើយដើម្បីតភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យមានប្រភេទជា MySQL, Microsoft SQL, ឬ Oracle យើងត្រូវប្រើប្រាស់ក្បួនមានឈ្មោះថា «Jdbc.getConnection» ។
បន្ទាប់មកទៀត បើសិនជាយើងមិនទាន់មានមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធណាមួយទេនោះ យើងអាចបង្កើតមូលដ្ឋានទិន្នន័យប្រភេទ MySQL មួយបាន នៅលើ server ដែលមានអាស័យដ្ឋានជា freesqldatabase.com។ ក្រោយពីបង្កើតគណនីមួយសំរាប់មូលដ្ឋានទិន្ន័យ MySQL មួយរួចហើយ server នោះនឹងផ្ញើរសារទៅកាន់អ៊ីមែលរបស់យើង បញ្ជាក់ប្រាប់ពីឈ្មោះអ្នកប្រើប្រាស់របស់យើង (username) ពាក្យសំងាត់ (password) ឈ្មោះរបស់មូលដ្ឋានទិន្នន័យ (database name) អាស័យដ្ឋានសំរាប់តភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យ (database url) និងច្រកចូលទៅកាន់មូលដ្ឋានទិន្នន័យ (port) ។
ក៏ប៉ុន្តែ មុននឹងអាចប្រើប្រាស់មូលដ្ឋានទិន្នន័យនោះសំរាប់រក្សាទុកនូវទិន្នន័យផ្សេងៗជាភាសាខ្មែរយើងបាន យើងចាំបាច់ត្រូវធ្វើការកែកុនមួយជាមុនសិន ដោយចូលទៅកាន់ទំព័រ «phpMyAdmin» របស់ server freesqldatabase.com តាមរយៈអាស័យដ្ឋាននេះ phpmyadmin.co/index.php ។ នៅពេលដែលយើងចូលដល់ទំព័រនោះហើយ យើងត្រូវសរសេរនៅលើ console របស់ទំព័រ phpMyAdmin នោះដូចខាងក្រោមនេះ រួចចុច Ctrl+Enter គឺជាការស្រេច យើងនឹងអាចប្រើប្រាស់ទិន្នន័យជាភាសាខ្មែរយើងបានគ្រប់ពេលវេលានៅក្នុងមូលដ្ឋានទិន្នន័យរបស់យើងនោះ។

ហើយដើម្បីភ្ជាប់ទៅនឹងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធដែលមានប្រភេទជា MySQL នោះ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com'; var port = '3306'; var user = 'USERNAME'; var userPwd = 'PASSWORD'; var database = 'sql12286644'; var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port; var font = '?useUnicode=yes&characterEncoding=UTF-8'; var dbUrl = instanceUrl+'/'+database+font; //ភ្ជាប់សេវាទៅកាន់មូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធ var conn = Jdbc.getConnection(dbUrl, user, userPwd);
នៅលើបន្ទាត់លេខ 12 ការសរសេរថា var conn = Jdbc.getConnection(dbUrl, user, userPwd) គឺជាការយកក្បួនឈ្មោះ «getConnection» មកប្រើដើម្បីភ្ជាប់សេវាទៅនឹងមូលដ្ឋានទិន្នន័យនៅលើ server ដែលមានអាស័យដ្ឋានជា dbUrl ឈ្មោះអ្នកប្រើប្រាស់ជា user និង ពាក្យសំងាត់សំរាប់ចូលទៅកាន់មូលដ្ឋានទិន្នន័យជា userPwd ។
មួយវិញទៀត ដើម្បីបញ្ជូលទិន្នន័យទៅក្នុងមូលដ្ឋានទិន្នន័យនៅក្រៅប្រព័ន្ធនោះ ជាដំបូងឡើយយើងត្រូវបង្កើតតារាងមួយសិន ដោយធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com'; var port = '3306'; var user = 'USERNAME'; var userPwd = 'PASSWORD'; var database = 'sql12286644'; var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port; var font = '?useUnicode=yes&characterEncoding=UTF-8'; var dbUrl = instanceUrl+'/'+database+font; var conn = Jdbc.getConnection(dbUrl, user, userPwd); function createTable(){ //បង្កើតតារាងមួយឈ្មោះ Classroom conn.createStatement().execute('CREATE TABLE Classroom ' + '(ឈ្មោះ VARCHAR(255), ' + 'អាយុ VARCHAR(255), ' + 'ភេទ VARCHAR(255), ' + 'ទីលំនៅ VARCHAR(255), ' + 'Facebook_ID VARCHAR(255));'); }

ចាប់ពីបន្ទាត់លេខ 15 រហូតដល់លេខ 20 គឺជាបញ្ជាតំរូវអោយបង្កើតតារាងមួយមានឈ្មោះថា «Classroom» នៅក្នុងមូលដ្ឋានទិន្នន័យ MySQL នៅក្រៅប្រព័ន្ធមួយ។ តារាងនោះមាន ក្រឡាឈរ (column) ចំនួន ៥ និង ក្រឡាដេក (row) ចំនួន 1 ហើយក្រឡាទាំងពីរនោះកាត់ខ្វែងគ្នាបង្កើតបានជាតូចៗ (cell) ចំនួន 5 ដែលនៅក្នុងនោះមានទិន្នន័យដែលជាពាក្យថា «ឈ្មោះ» «អាយុ» «ភេទ» «ទីលំនៅ» និង «Facebook_ID» រៀងគ្នា។
បន្ទាប់មកទៀត ដើម្បីបញ្ជូលទិន្នន័មួយចំនួនចូលទៅក្នុងតារាងនោះ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com'; var port = '3306'; var user = 'USERNAME'; var userPwd = 'PASSWORD'; var database = 'sql12286644'; var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port; var font = '?useUnicode=yes&characterEncoding=UTF-8'; var dbUrl = instanceUrl+'/'+database+font; var conn = Jdbc.getConnection(dbUrl, user, userPwd); function writeToTable(){ //បញ្ចូលទិន្នន័យមួយចំនួននៅក្នុងតារាងឈ្មោះ Classroom var stmt = conn.prepareStatement('INSERT INTO Classroom ' + '(ឈ្មោះ, អាយុ, ភេទ, ទីលំនៅ, Facebook_ID) values (?, ?, ?, ?, ?)'); stmt.executeQuery("SET NAMES 'UTF8'"); stmt.executeQuery("SET CHARACTER SET 'UTF8'"); stmt.setString(1, "តាន់ វិច្ឋិកា"); stmt.setString(2, '២៤'); stmt.setString(3, 'ស្រី'); stmt.setString(4, 'ភ្នំពេញ'); stmt.setString(5, '100010725609098'); stmt.addBatch(); stmt.setString(1, "កែវ ចិត្រា"); stmt.setString(2, '២៥'); stmt.setString(3, 'ប្រុសី'); stmt.setString(4, 'កំពត'); stmt.setString(5, '100010725609589'); stmt.addBatch(); stmt.setString(1, "ពិន សុវណ្ណ"); stmt.setString(2, '២៧'); stmt.setString(3, 'ប្រុស'); stmt.setString(4, 'តាកែវ'); stmt.setString(5, '528744436942158'); stmt.addBatch(); stmt.setString(1, "សុខ សុភា"); stmt.setString(2, '២៣'); stmt.setString(3, 'ស្រី'); stmt.setString(4, 'ភ្នំពេញ'); stmt.setString(5, '564651316448853'); stmt.addBatch(); stmt.executeBatch(); conn.close(); }

នៅលើបន្ទាត់លេខ 13 ការសរសេរថា function writeToTable() គឺជាការបង្កើតក្បួនមួយ ដែលនៅក្នុងនោះមានបញ្ជាមួយចំនួនសំរាប់បញ្ចូលទិន្នន័យមួយចំនួនចូលទៅក្នុងតារាងឈ្មោះ «Classromm» នៅក្នុងមូលដ្ឋានទិន្នន័យ MySQL ក្រៅប្រព័ន្ធមួយ។
លើសពីនេះទៀត ដើម្បីចំលងយកទិន្នន័យទាំងនោះមកប្រើការ យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
var connectionName = 'sql12.freesqldatabase.com'; var port = '3306'; var user = 'USERNAME'; var userPwd = 'PASSWORD'; var database = 'sql12286644'; var instanceUrl = 'jdbc:mysql://'+connectionName+':'+port; var font = '?useUnicode=yes&characterEncoding=UTF-8'; var dbUrl = instanceUrl+'/'+database+font; var conn = Jdbc.getConnection(dbUrl, user, userPwd); function readFromTable(){ var stmt = conn.createStatement(); stmt.setMaxRows(1000); var results = stmt.executeQuery('SELECT * FROM Classroom'); var numCols = results.getMetaData().getColumnCount(); while (results.next()) { var rowString = ''; for (var col = 0; col < numCols; col++) { rowString += results.getString(col + 1) + '\t'; } Logger.log(rowString); } results.close(); stmt.close(); }

នៅលើបន្ទាត់លេខ 16 ការសរសរថា var results = stmt.executeQuery('SELECT * FROM Classroom') គឺជាបញ្ជាតំរូវអោយចំលងយកទិន្នន័យទាំងអស់ដែលមាននៅក្នុងតារាងឈ្មោះ «Classroom» មកប្រើការតាមសេចក្តីត្រូវការ។
នៅលើបន្ទាត់លេខ 24 ការសរសេរថា Logger.log(rowString) គឺជាបញ្ជាតំរូវអោយសរសេរបង្ហញទិន្នន័យទាំងនោះនៅលើបង្អួច View > Logs នៅក្នុងប្រព័ន្ធ Google App Script ៕