11 ຖານຂໍ້ມູນ MySQL ລ່ວງ ໜ້າ "ຄຳ ຖາມ ສຳ ພາດແລະ ຄຳ ຕອບ" ສຳ ລັບຜູ້ໃຊ້ Linux
ພວກເຮົາໄດ້ເຜີຍແຜ່ບົດຂຽນ MySQL ສອງບົດແລ້ວ, ເຊິ່ງໄດ້ຮັບການຕີລາຄາສູງຈາກ Tecmint Community. ນີ້ແມ່ນບົດຂຽນທີສາມກ່ຽວກັບຊຸດ MySQL ສຳ ພາດແລະສິບຫົກໃນຄໍ ລຳ ສຳ ພາດປະເພດ.
<
ພວກເຮົາໄດ້ມາຮອດບ່ອນນີ້ທັງ ໝົດ ຍ້ອນການສະ ໜັບ ສະ ໜູນ ຂອງທ່ານແລະພວກເຮົາສະແຫວງຫາອັນດຽວກັນໃນອະນາຄົດເພື່ອເປັນທີ່ສຸດຂອງທ່ານ. ຕໍ່ໄປນີ້ໃນບົດຄວາມນີ້ພວກເຮົາຈະສຸມໃສ່ການປະຕິບັດຕົວຈິງຂອງ MySQL, ຄຳ ຖາມທີ່ກ່ຽວຂ້ອງ ສຳ ລັບດ້ານການ ສຳ ພາດ.
ຄຳ ຕອບ: ຄຳ ສັ່ງ MySQL ດ້ານລຸ່ມຈະສະແດງເວີຊັນຂອງ server ແລະຖານຂໍ້ມູນທີ່ຖືກຄັດເລືອກໃນປະຈຸບັນ.
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 ແມ່ນໃຊ້ໃນເວລາທີ່ພວກເຮົາໃຊ້ (=) ແລະຜູ້ປະຕິບັດງານຫຼືໃຊ້ໃນເວລາທີ່ພວກເຮົາໃຊ້ (! =). ຕົວຢ່າງຂອງ (=) ກັບ 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 | +---------------------+---------+---------+---------+---------+-------+
<
The AND & OR ຖືກຖືວ່າເປັນຜູ້ເຂົ້າຮ່ວມໃນ MySQL.
ຄຳ ຕອບ: ຄຳ ຖາມໃນ 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 | +---------+---------+
ຄຳ ຕອບ: ພວກເຮົາ ຈຳ ເປັນຕ້ອງ ນຳ ໃຊ້ຂໍ້ ກຳ ນົດ ຈຳ ກັດ ພ້ອມກັບ ORDER BY ເພື່ອບັນລຸສະຖານະການທີ່ໄດ້ກ່າວມາຂ້າງເທິງ.
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 | +----+------+------------+-------+----------------+------+
ຄຳ ຕອບ: ທັງດີທັງຂໍ້ດີແລະຂໍ້ເສຍປຽບຂອງມັນ. ເປັນເລື່ອງທີ່ໃຊ້ເວລາຂ້ອຍມັກ MySQL.
<
ຄຳ ຕອບ: ການເຂົ້າຫາ MySQL ໃນປະຈຸບັນແມ່ນງ່າຍດາຍຄືກັບການປະຕິບັດ ຄຳ ຖະແຫຼງການ SELECT ຂ້າງລຸ່ມນີ້.
mysql> SELECT CURRENT_DATE(); +----------------+ | CURRENT_DATE() | +----------------+ | 2014-06-17 | +----------------+
Ans: ພວກເຮົາໃຊ້ຕົວເລືອກ '-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 ທີ່ເກັບຂໍ້ມູນ.
ຄຳ ຕອບ: MySQL_pconnect() ເປີດການເຊື່ອມຕໍ່ທີ່ຄົງຢູ່ກັບຖານຂໍ້ມູນ MySQL ເຊິ່ງ ໝາຍ ຄວາມວ່າພຽງແຕ່ວ່າຖານຂໍ້ມູນບໍ່ໄດ້ຖືກເປີດທຸກຄັ້ງທີ່ ໜ້າ ເວັບໂຫລດແລະເພາະສະນັ້ນພວກເຮົາບໍ່ສາມາດ ໃຊ້ MySQL_close() ເພື່ອປິດການເຊື່ອມຕໍ່ທີ່ຕໍ່ເນື່ອງ.
ຄວາມແຕກຕ່າງສັ້ນໆລະຫວ່າງ MySQL_pconnect ແລະ MySQL_connect ແມ່ນ.
ຕ່າງຈາກ MySQL_pconnect, MySQL_connect - ເປີດຖານຂໍ້ມູນທຸກໆຄັ້ງທີ່ ໜ້າ ເວັບຖືກໂຫລດເຊິ່ງສາມາດຖືກປິດທຸກເວລາໂດຍໃຊ້ ຄຳ ຖະແຫຼງການ MySQL_close().
ຄຳ ຕອບ: ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະສະແດງດັດສະນີທັງ ໝົດ ຂອງຕາຕະລາງ 'ຜູ້ໃຊ້'.
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)
ຄຳ ຕອບ: CSV ຢືນ ສຳ ລັບຄຸນຄ່າ Comma-Separated Values aka ຄຸນລັກສະນະທີ່ແຍກອອກຈາກກັນ. ຕາຕະລາງ CSV ເກັບຮັກສາຂໍ້ມູນເປັນແບບ ທຳ ມະດາແລະຮູບແບບຕາຕະລາງ. ໂດຍປົກກະຕິມັນມີບັນທຶກ ໜຶ່ງ ເສັ້ນຕໍ່ເສັ້ນ.
ບັນທຶກແຕ່ລະອັນຖືກແຍກອອກໂດຍຜູ້ ຈຳ ກັດສະເພາະ (Comma, Semi-colon, …) ເຊິ່ງແຕ່ລະບັນທຶກມີແຕ່ລະພາກສະ ໜາມ ດຽວກັນ. ຕາຕະລາງ CSV ຖືກ ນຳ ໃຊ້ຢ່າງກວ້າງຂວາງທີ່ສຸດໃນການເກັບຮັກສາລາຍຊື່ໂທລະສັບເພື່ອ ນຳ ເຂົ້າແລະສົ່ງອອກແລະສາມາດ ນຳ ໃຊ້ເພື່ອເກັບຂໍ້ມູນຂໍ້ຄວາມ ທຳ ມະດາ.
ດຽວນີ້ ໝົດ ແລ້ວ. ຂ້າພະເຈົ້າຈະຢູ່ທີ່ນີ້ອີກເທື່ອ ໜຶ່ງ ດ້ວຍບົດຂຽນທີ່ ໜ້າ ສົນໃຈອີກ, ທ່ານຜູ້ອ່ານຈະມັກ. ຈົນກ່ວາຫຼັງຈາກນັ້ນຕິດຕາມແລະເຊື່ອມຕໍ່ກັບ Tecmint ແລະຢ່າລືມໃຫ້ພວກເຮົາມີ ຄຳ ຕິຊົມທີ່ມີຄຸນຄ່າຂອງທ່ານໃນສ່ວນ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.