11 ฐานข้อมูล MySQL ขั้นสูง "คำถามและคำตอบในการสัมภาษณ์" สำหรับผู้ใช้ Linux
เราได้เผยแพร่บทความ MySQL สองบทความแล้ว ซึ่งได้รับความชื่นชมอย่างมากจาก ชุมชน Tecmint นี่เป็นบทความที่สามในชุดการสัมภาษณ์ MySQL และบทความที่ 16 ในคอลัมน์ประเภทการสัมภาษณ์
เรามาถึงที่นี่ทั้งหมดเพราะการสนับสนุนของคุณ และเราแสวงหาสิ่งเดียวกันนี้ในอนาคตเพื่อจุดจบของคุณ ในบทความนี้ เราจะเน้นไปที่การใช้งานจริงของ 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 |
+---------------------+---------+---------+---------+---------+-------+
- = : หมายถึงเท่ากับ
- != : ไม่เท่ากับ
- ! : หมายถึง 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
- Mysql เป็น FOSS
- MySQL เป็นแบบพกพา
- MYSQL รองรับทั้ง GUI และ Command Prompt
- รองรับการดูแลระบบ 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 และอย่าลืมให้ข้อเสนอแนะอันมีค่าของคุณแก่เราในส่วนความคิดเห็นด้านล่าง