11 ലിനക്സ് ഉപയോക്താക്കൾക്കായി അഡ്വാൻസ് MySQL ഡാറ്റാബേസ് ഇന്റർവ്യൂ ചോദ്യങ്ങളും ഉത്തരങ്ങളും


ഞങ്ങൾ ഇതിനകം രണ്ട് MySQL ലേഖനങ്ങൾ പ്രസിദ്ധീകരിച്ചിട്ടുണ്ട്, ഇത് Tecmint കമ്മ്യൂണിറ്റി നന്നായി അഭിനന്ദിക്കുന്നു. ഇത് MySQL ഇന്റർവ്യൂ സീരീസിലെ മൂന്നാമത്തെ ലേഖനവും ഇന്റർവ്യൂ ജെനർ കോളത്തിലെ പതിനാറു ലേഖനവുമാണ്.

  1. 15 അടിസ്ഥാന MySQL അഭിമുഖ ചോദ്യങ്ങൾ
  2. ഇന്റർമീഡിയറ്റുകൾക്കായുള്ള 10 MySQL ഡാറ്റാബേസ് അഭിമുഖ ചോദ്യങ്ങൾ

നിങ്ങളുടെ പിന്തുണ കൊണ്ടാണ് ഞങ്ങൾ ഇവിടെ എത്തിയിരിക്കുന്നത്, ഭാവിയിലും നിങ്ങളുടെ ലക്ഷ്യത്തിൽ ഞങ്ങൾ അത് തന്നെ തേടുന്നു. ഇവിടെ ഈ ലേഖനത്തിൽ ഞങ്ങൾ MySQL-ന്റെ പ്രായോഗിക വശങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും, അഭിമുഖത്തിന്റെ വശത്തിന് പ്രസക്തമായ ചോദ്യം.

Ans: താഴെയുള്ള MySQL കമാൻഡ് സെർവർ പതിപ്പും നിലവിൽ തിരഞ്ഞെടുത്ത ഡാറ്റാബേസും കാണിക്കും.

mysql> SELECT VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | NULL       |
+-------------------------+------------+
1 row in set (0.06 sec)

ഡാറ്റാബേസ് കോളത്തിൽ അത് NULL മൂല്യം കാണിക്കുന്നു, കാരണം ഞങ്ങൾ ഒരു ഡാറ്റാബേസും തിരഞ്ഞെടുത്തിട്ടില്ല. അതിനാൽ, ഇനിപ്പറയുന്ന കമാൻഡിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഡാറ്റാബേസ് തിരഞ്ഞെടുക്കുക.

mysql> use Tecmint;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | tecmint    |
+-------------------------+------------+
1 row in set (0.00 sec)

ഉത്തരം: ' എന്ന ഉപയോക്താവ് ഒഴികെയുള്ള 'Tecmint' പട്ടികയിൽ നിന്നുള്ള എല്ലാ ഉപയോക്താക്കളുടെയും എല്ലാ കോളങ്ങളും താഴെയുള്ള പ്രസ്താവന കാണിക്കും. SAM'.

mysql> SELECT * FROM Tecmint WHERE user !=SAM;

+---------------------+---------+---------+---------+---------+-------+ 
| date                | user    | host 	 | root     | local   | size  | 
+---------------------+---------+---------+---------+---------+-------+ 
| 2001-05-14 14:42:21 | Anthony | venus  | barb     | venus   | 98151 | 
| 2001-05-15 08:50:57 | TIM     | venus  | phil     | venus   | 978   | 
+---------------------+---------+---------+---------+---------+-------+

ഉത്തരം: നമ്മൾ (=) ഉപയോഗിക്കുമ്പോൾ AND ഓപ്പറേറ്റർ ഉപയോഗിക്കുന്നു, ഞങ്ങൾ (!=) ഉപയോഗിക്കുമ്പോൾ ഓപ്പറേറ്റർ OR ഉപയോഗിക്കുന്നു. AND ഓപ്പറേറ്ററുമായി (=) ഒരു ഉദാഹരണം.

mysql> SELECT * FROM mail WHERE user = SAM AND root = phil

അല്ലെങ്കിൽ ഓപ്പറേറ്റർ ഉള്ള (!=) ഒരു ഉദാഹരണം.

mysql> SELECT * FROM mail WHERE user != SAM OR root != phil

+---------------------+---------+---------+---------+---------+-------+ 
| date                | user    | host    | root    | local   | size  | 
+---------------------+---------+---------+---------+---------+-------+ 
| 2001-05-14 14:42:21 | Anthony | venus   | barb    | venus   | 98151 | 
+---------------------+---------+---------+---------+---------+-------+

  1. = : അർത്ഥമാക്കുന്നത്
  2. എന്നതിന് തുല്യമാണ്
  3. != : തുല്യമല്ല
  4. ! : ഓപ്പറേറ്ററെ അല്ല പ്രതിനിധീകരിക്കുന്നത്

AND & OR എന്നിവ MySQL-ൽ ചേരുന്ന ഓപ്പറേറ്റർമാരായി കണക്കാക്കപ്പെടുന്നു.

Ans: MySQL-ലെ ചോദ്യം IFNULL() സ്റ്റേറ്റ്മെന്റ് ഉപയോഗിച്ച് കൃത്യമായി എഴുതാം. IFNULL() പ്രസ്താവന അതിന്റെ ആദ്യ ആർഗ്യുമെന്റ് പരിശോധിച്ച് അത് NULL അല്ലെങ്കിലോ അല്ലെങ്കിൽ രണ്ടാമത്തെ ആർഗ്യുമെന്റ് നൽകുകയോ ചെയ്യുന്നു.

mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+

ഉത്തരം: മുകളിൽ വിവരിച്ച സാഹചര്യം നേടുന്നതിന്, ഓർഡർ പ്രകാരം ഞങ്ങൾ ലിമിറ്റ് ക്ലോസ് ഉപയോഗിക്കേണ്ടതുണ്ട്.

mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
mysql> SELECT * FROM profile LIMIT 5;

+----+------+------------+-------+-----------------------+------+ 
| id | name | birth      | color | foods                 | cats | 
+----+------+------------+-------+-----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza  | 0    | 
| 2  | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3    | 
| 3  | Brit | 1957-12-01 | red   | burrito,curry,pizza   | 1    |   
| 4  | Carl | 1973-11-02 | red   | eggroll,pizza         | 4    | 
| 5  | Sean | 1963-07-04 | blue  | burrito,curry         | 5    | 
+----+------+------------+-------+-----------------------+------+
mysql> SELECT * FROM profile ORDER BY birth LIMIT 1;

+----+------+------------+-------+----------------+------+ 
| id | name | birth      | color | foods          | cats | 
+----+------+------------+-------+----------------+------+ 
| 9  | Dick | 1952-08-20 | green | lutefisk,fadge | 0    | 
+----+------+------------+-------+----------------+------+

Ans: രണ്ടിനും അതിന്റെ ഗുണങ്ങളും ദോഷങ്ങളുമുണ്ട്. സമയത്തിന്റെ കാര്യത്തിൽ ഞാൻ MySQL ആണ് ഇഷ്ടപ്പെടുന്നത്.

  1. Mysql FOSS ആണ്.
  2. MySQL പോർട്ടബിൾ ആണ്.
  3. MYSQL GUI, കമാൻഡ് പ്രോംപ്റ്റ് എന്നിവയെ പിന്തുണയ്ക്കുന്നു.
  4. MySQL അഡ്മിനിസ്ട്രേഷൻ ക്വറി ബ്രൗസറിൽ പിന്തുണയ്ക്കുന്നു.

ഉത്തരം: MySQL-ൽ നിലവിലെ തീയതി ലഭിക്കുന്നത് ചുവടെയുള്ള SELECT സ്റ്റേറ്റ്uമെന്റ് നടപ്പിലാക്കുന്നത് പോലെ ലളിതമാണ്.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+

Ans: MySQL ടേബിൾ അല്ലെങ്കിൽ മുഴുവൻ ഡാറ്റാബേസും ഒരു XML ഫയലിലേക്ക് കയറ്റുമതി ചെയ്യുന്നതിന് ഞങ്ങൾ ‘-e‘ (കയറ്റുമതി) ഓപ്ഷൻ ഉപയോഗിക്കുന്നു. വലിയ ടേബിളുകൾ ഉള്ളതിനാൽ നമുക്ക് ഇത് സ്വമേധയാ നടപ്പിലാക്കേണ്ടി വന്നേക്കാം, എന്നാൽ ചെറിയ ടേബിളുകൾക്ക്, phpMyAdmin പോലുള്ള ആപ്ലിക്കേഷനുകൾക്ക് ഈ ജോലി ചെയ്യാൻ കഴിയും.

MySQL-ന്റെ നേറ്റീവ് കമാൻഡിന് അത് ചെയ്യാൻ കഴിയും.

mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml

USER_NAME എന്നത് ഡാറ്റാബേസിന്റെ ഉപയോക്തൃനാമമാണ്, ഞങ്ങൾ XML-ലേക്ക് എക്uസ്uപോർട്ടുചെയ്യുന്ന പട്ടികയാണ് table_name, ഡാറ്റ സംഭരിച്ചിരിക്കുന്ന xml ഫയലാണ് table_name.xml.

Ans: MySQL_pconnect() MySQL ഡാറ്റാബേസിലേക്ക് സ്ഥിരതയുള്ള ഒരു കണക്ഷൻ തുറക്കുന്നു, അതായത് പേജ് ലോഡുചെയ്യുമ്പോഴെല്ലാം ഡാറ്റാബേസ് തുറക്കില്ല, അതിനാൽ ഞങ്ങൾ സ്ഥിരമായ ഒരു കണക്ഷൻ അടയ്ക്കുന്നതിന് MySQL_close() ഉപയോഗിക്കാൻ കഴിയില്ല.

MySQL_pconnect ഉം MySQL_connect ഉം തമ്മിലുള്ള ഒരു ചെറിയ വ്യത്യാസം.

MySQL_pconnect പോലെയല്ല, MySQL_connect - പേജ് ലോഡ് ചെയ്യുമ്പോൾ ഓരോ തവണയും ഡാറ്റാബേസ് തുറക്കുന്നു, അത് MySQL_close() എന്ന പ്രസ്താവന ഉപയോഗിച്ച് ഏത് സമയത്തും അടയ്uക്കാനാകും.

Ans: താഴെ പറയുന്ന കമാൻഡ് ഒരു ടേബിൾ ‘ഉപയോക്താവിന്റെ’ എല്ലാ സൂചികകളും കാണിക്കും.

mysql> show index from user;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | 
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| user  |          0 | PRIMARY  |            1 | Host        | A         |        NULL |     NULL | NULL   |      | BTREE      |         |               | 
| user  |          0 | PRIMARY  |            2 | User        | A         |           4 |     NULL | NULL   |      | BTREE      |         |               | 
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
2 rows in set (0.00 sec)

Ans: CSV എന്നാൽ കോമ-വേർതിരിക്കപ്പെട്ട മൂല്യങ്ങൾ അല്ലെങ്കിൽ പ്രതീകം-വേർതിരിക്കപ്പെട്ട മൂല്യങ്ങൾ. CSV ടേബിൾ പ്ലെയിൻ ടെക്uസ്uറ്റിലും ടേബിൾ ഫോർമാറ്റിലും ഡാറ്റ സംഭരിക്കുന്നു. ഇതിൽ സാധാരണയായി ഒരു വരിയിൽ ഒരു റെക്കോർഡ് അടങ്ങിയിരിക്കുന്നു.

ഓരോ റെക്കോർഡിനും നിർദ്ദിഷ്ട ഡീലിമിറ്ററുകൾ (കോമ, സെമി-കോളൺ, …) കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു, അവിടെ ഓരോ റെക്കോർഡിനും ഒരേ ഫീൽഡ് സീക്വൻസ് ഉണ്ട്. ഇറക്കുമതി ചെയ്യുന്നതിനും കയറ്റുമതി ചെയ്യുന്നതിനുമായി ഫോൺ കോൺടാക്റ്റുകൾ സംഭരിക്കുന്നതിന് CSV പട്ടികകൾ ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്നു, കൂടാതെ ഏത് തരത്തിലുള്ള പ്ലെയിൻ ടെക്സ്റ്റ് ഡാറ്റയും സംഭരിക്കുന്നതിന് ഇത് ഉപയോഗിക്കാം.

ഇപ്പോഴത്തേക്ക് ഇത്രമാത്രം. രസകരമായ മറ്റൊരു ലേഖനവുമായി ഞാൻ ഇവിടെ വീണ്ടും വരും, നിങ്ങൾ വായിക്കാൻ ഇഷ്ടപ്പെടും. അതുവരെ Tecmint-മായി തുടർന്നും കണക്uറ്റുചെയ്uതിരിക്കുക, ചുവടെയുള്ള അഭിപ്രായ വിഭാഗത്തിൽ നിങ്ങളുടെ വിലയേറിയ ഫീഡ്uബാക്ക് ഞങ്ങൾക്ക് നൽകാൻ മറക്കരുത്.