วันนี้ผมมีเทคนิคการใช้งาน wildcard กับคำสั่งใน psql มาฝากครับ
Wildcard คืออะไร
สำหรับคนที่คุ้นเคยกับคำสั่ง command line ของ Linux หรือ Unix ก็จะรู้จักหรือเคยใช้ wildcard เป็นอย่างดี เช่น การเรียกใช้คำสั่ง
ls -l *abc*จะเป็นการเรียกดูไฟล์ที่มีคำว่า abc อยู่ในชื่อไฟล์ ทำนองนี้ หรือ
ls -l postgresql?1[0-9]*จะเป็นการเรียกดูชื่อไฟล์ ที่ขึ้นต้นด้วย postgresql ตามด้วยตัวอักขระอะไรก็ได้ 1 ตัว (?) และตามด้วยตัวเลข 0-9 อีกหนึ่งตัว
Wildcard กับคำสั่ง psql
เราลองมาดูตัวอย่างคำสั่ง ใน psql ที่เรียกใช้ wildcard ได้กันนะครับ ตัวอย่างแรกคือคำสั่ง \l ซึ่งปกติถ้าไม่ระบุ parameter อะไร จะเป็นการ list ดูชื่อ database ทั้งหมด ที่มีอยู่ในระบบ ออกมา
แต่ถ้าเราเรียกใช้คำสั่ง โดยระบุชื่อ database จะเป็นการ list ดู เฉพาะ database ที่เราระบุชื่อ
แต่เราก็สามารถเรียกใช้ตัวอักษร * ซึ่งเป้นตัวอักษรพิเศษตัวหนึ่ง ซึ่งใช้แทน ชุดตัวอักษรใดๆ ตั้งแต่ 0 ตัวเป็นต้นไป ได้ ตัวอย่างเช่น
จากตัวอย่างนี้ เป็นการเรียกใช้คำสั่ง \l template* ผลลัพท์ที่ได้เป้นการเรียกดู database ที่มีชื่อขึ้นต้นด้วยคำว่า template และตามด้วยตัวอักขระอะไรก็ได้ ตั้งแต่ 0 ตัวขึ้นไปครับ เราจะได้ database สองตัวคือ template0 และ template1
ลองดูอีกตัวอย่าง เช่น list ดู database ซึ่งในชื่อ มีตัวอักษร underscore (_) อยู่
จากตัวอย่างนี้ เราจะเห็น database ชื่อ test_pentaho อยู่
ที่จริงการใช้ wildcard นี้สามารถใช้กับคำสั่งอื่นๆ ใน psql ได้นะครับ คำสั่งที่ผมใช้บ่อยๆ อีกคำสั่งหนึ่งคือ \dt ซึ่งปกติ เป็นการ list รายชื่อ table ที่มีอยู่ใน database ที่เรา connect อยุ่ออกมา
จากตัวอย่าง ผมใช้คำสั่ง psql connect ไปที่ database ชื่อ test_pentaho แล้วลองใช้คำสั่ง \dt ทำการ list table ที่มีอยู่ใน database นี้ จะเห็นมีสอง table
ลองใช้ \dt *1 เพื่อ list ชื่อ table ที่ลงท้ายด้วย 1







No comments:
Post a Comment