ค้นหาเว็บไซต์

11 ฐานข้อมูล MySQL ขั้นสูง "คำถามและคำตอบในการสัมภาษณ์" สำหรับผู้ใช้ Linux


เราได้เผยแพร่บทความ MySQL สองบทความแล้ว ซึ่งได้รับความชื่นชมอย่างมากจาก ชุมชน Tecmint นี่เป็นบทความที่สามในชุดการสัมภาษณ์ MySQL และบทความที่ 16 ในคอลัมน์ประเภทการสัมภาษณ์

  1. 15 คำถามสัมภาษณ์ MySQL พื้นฐาน
  2. 10 คำถามสัมภาษณ์ฐานข้อมูล MySQL สำหรับตัวกลาง

เรามาถึงที่นี่ทั้งหมดเพราะการสนับสนุนของคุณ และเราแสวงหาสิ่งเดียวกันนี้ในอนาคตเพื่อจุดจบของคุณ ในบทความนี้ เราจะเน้นไปที่การใช้งานจริงของ MySQL ซึ่งเป็นคำถามที่เกี่ยวข้องกับการสัมภาษณ์

1. การใช้คำสั่ง SELECT ค้นหาเวอร์ชันของเซิร์ฟเวอร์ที่คุณใช้งานอยู่และพิมพ์ชื่อของฐานข้อมูลปัจจุบันหรือไม่

คำตอบ: คำสั่ง 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)
2. ใช้ NOT Operator (!) เพื่อเลือกผู้ใช้ทั้งหมดยกเว้น 'SAM' จากตารางพูดว่า 'Tecmint'

คำตอบ: คำสั่งด้านล่างจะแสดงคอลัมน์ทั้งหมดของผู้ใช้ทั้งหมดจากตาราง '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   | 
+---------------------+---------+---------+---------+---------+-------+
3. เป็นไปได้หรือไม่ที่จะใช้ 'AND' กับตัวดำเนินการ NOT (!)

คำตอบ: ตัวดำเนินการ AND ถูกใช้เมื่อเราใช้ (=) และตัวดำเนินการ OR ถูกใช้เมื่อเราใช้ (!=) ตัวอย่างของ (=) ด้วย AND Operator

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

ตัวอย่างของ (!=) ที่มี OR Operator

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. ! : หมายถึง NOT Operator

AND & OR ถือเป็นตัวดำเนินการเข้าร่วมใน MySQL

4. คำสั่ง IFNULL() ใดที่ใช้ใน MySQL?

คำตอบ: Query ใน 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  | 
+---------+---------+
5. คุณต้องการดูเฉพาะบางแถวจากชุดผลลัพธ์ตั้งแต่จุดเริ่มต้นหรือจุดสิ้นสุดของชุดผลลัพธ์ คุณจะทำมันได้อย่างไร?

คำตอบ: เราจำเป็นต้องใช้ส่วนคำสั่ง LIMIT ร่วมกับ ORDER BY เพื่อให้บรรลุสถานการณ์ที่อธิบายไว้ข้างต้น

แสดง 1 บันทึก
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
แสดง 5 บันทึก
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    | 
+----+------+------------+-------+----------------+------+
6. ออราเคิลกับ MySQL อันไหนและทำไม?

คำตอบ: ทั้งสองมีข้อดีและข้อเสียของตัวเอง เมื่อเวลาผ่านไป ฉันชอบ MySQL มากกว่า

เหตุผลในการเลือก MySQL เหนือ Oracle
  1. Mysql เป็น FOSS
  2. MySQL เป็นแบบพกพา
  3. MYSQL รองรับทั้ง GUI และ Command Prompt
  4. รองรับการดูแลระบบ MySQL ผ่านเบราว์เซอร์แบบสอบถาม
7. คุณจะได้รับวันที่ปัจจุบันใน MySQL ได้อย่างไร?

คำตอบ: การรับวันที่ปัจจุบันใน MySQL นั้นง่ายดายเพียงแค่ดำเนินการคำสั่ง SELECT ด้านล่าง

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+
8. คุณจะส่งออกตารางเป็นไฟล์ XML ใน MySQL ได้อย่างไร

คำตอบ: เราใช้ตัวเลือก '-e' (ส่งออก) เพื่อส่งออกตาราง MySQL หรือฐานข้อมูลทั้งหมดไปเป็นไฟล์ XML สำหรับตารางขนาดใหญ่ เราอาจจำเป็นต้องติดตั้งด้วยตนเอง แต่สำหรับตารางขนาดเล็ก แอปพลิเคชันอย่าง phpMyAdmin ก็สามารถทำงานได้

คำสั่งดั้งเดิมของ MySQL สามารถทำได้

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

โดยที่ USER_NAME คือชื่อผู้ใช้ของฐานข้อมูล table_name คือตารางที่เรากำลังส่งออกไปยัง XML และ table_name.xml คือไฟล์ xml ที่ใช้จัดเก็บข้อมูล

9. MySQL_pconnect คืออะไร? และมันแตกต่างจาก MySQL_connect อย่างไร?

คำตอบ: MySQL_pconnect() เปิดการเชื่อมต่อที่คงอยู่กับฐานข้อมูล MySQL ซึ่งหมายความว่าฐานข้อมูลจะไม่ถูกเปิดทุกครั้งที่โหลดเพจ และด้วยเหตุนี้เราจึงไม่สามารถ ใช้ MySQL_close() เพื่อปิดการเชื่อมต่อแบบถาวร

ข้อแตกต่างโดยย่อระหว่าง MySQL_pconnect และ MySQL_connect คือ

ต่างจาก MySQL_pconnect ตรงที่ MySQL_connect – เปิดฐานข้อมูลทุกครั้งที่โหลดเพจ ซึ่งสามารถปิดได้ตลอดเวลาโดยใช้คำสั่ง MySQL_close()

10. คุณต้องแสดงดัชนีทั้งหมดที่กำหนดไว้ในตารางว่า 'ผู้ใช้' ของฐานข้อมูลพูดว่า 'mysql' คุณจะบรรลุเป้าหมายนี้ได้อย่างไร?

คำตอบ: คำสั่งต่อไปนี้จะแสดงดัชนีทั้งหมดของตาราง 'ผู้ใช้'

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)
11. ตาราง CSV คืออะไร

คำตอบ: CSV ย่อมาจาก Comma-Separated Values หรือที่เรียกกันว่า Character-Separated Values ตาราง CSV จัดเก็บข้อมูลในรูปแบบข้อความธรรมดาและตาราง โดยทั่วไปจะมีหนึ่งระเบียนต่อบรรทัด

แต่ละบันทึกจะถูกคั่นด้วยตัวคั่นเฉพาะ (จุลภาค, เซมิโคลอน, …) โดยที่แต่ละบันทึกมีลำดับฟิลด์ที่เหมือนกัน ตาราง CSV ถูกใช้กันอย่างแพร่หลายในการจัดเก็บรายชื่อติดต่อในโทรศัพท์เพื่อนำเข้าและส่งออก และสามารถใช้เพื่อจัดเก็บข้อมูลข้อความธรรมดาทุกประเภท

นั่นคือทั้งหมดที่สำหรับตอนนี้. ฉันจะกลับมาที่นี่อีกครั้งพร้อมกับบทความที่น่าสนใจอีกเรื่อง พวกคุณคงจะชอบอ่าน จนกว่าจะคอยติดตามและเชื่อมต่อกับ Tecmint และอย่าลืมให้ข้อเสนอแนะอันมีค่าของคุณแก่เราในส่วนความคิดเห็นด้านล่าง