ข้อกำหนดเบื้องต้น:
ในการดำเนินการตามขั้นตอนที่แสดงในคู่มือนี้ คุณต้องมีส่วนประกอบต่อไปนี้:
- ระบบ Linux ที่ได้รับการกำหนดค่าอย่างเหมาะสม สำหรับการทดสอบโปรดพิจารณา ตั้งค่าเครื่อง Ubuntu เสมือนโดยใช้ VirtualBox .
- ติดตั้งและกำหนดค่า PostgreSQL เรียนรู้เพิ่มเติมเกี่ยวกับ ติดตั้ง PostgreSQL บน Ubuntu .
- การเข้าถึง ผู้ใช้ที่ไม่ใช่รูทที่มีสิทธิ์ sudo .
ฐานข้อมูล PostgreSQL
PostgreSQL เป็นระบบฐานข้อมูลเชิงวัตถุเชิงวัตถุที่สอดคล้องกับ SQL แบบโอเพ่นซอร์สและฟรี สามารถทำงานกับทั้งการสืบค้นเชิงสัมพันธ์ (SQL) และแบบไม่เชิงสัมพันธ์ (JSON) เรียนรู้เพิ่มเติมเกี่ยวกับ คุณสมบัติของ PostgreSQL .
ใน PostgreSQL ลำดับชั้นของข้อมูลจะเป็นดังนี้:
- กลุ่ม
- ฐานข้อมูล
- สคีมา
- ตาราง (หรือวัตถุอื่นๆ เช่น ฟังก์ชัน)
อินสแตนซ์ PostgreSQL ใดๆ สามารถยอมรับการเชื่อมต่อไคลเอนต์หลายเครื่องได้ ลูกค้าต้องระบุชื่อฐานข้อมูลในคำขอเชื่อมต่อ อนุญาตเพียงฐานข้อมูลเดียวต่อการเชื่อมต่อ อย่างไรก็ตาม ไคลเอ็นต์สามารถเปิดการเชื่อมต่อกับเซิร์ฟเวอร์ได้หลายรายการ โดยเชื่อมต่อกับฐานข้อมูลตั้งแต่หนึ่งฐานข้อมูลขึ้นไปพร้อมกัน
การสร้างฐานข้อมูลใน PostgreSQL
1. การเปิดการเชื่อมต่อกับเซิร์ฟเวอร์
หากต้องการสร้างฐานข้อมูลใหม่ ให้เชื่อมต่อกับเซิร์ฟเวอร์ PostgreSQL ก่อน:
$ ซูโด -ฉัน -ใน โพสต์เกรส
$psql
โปรดทราบว่าการสร้างฐานข้อมูลเป็นการดำเนินการที่จำกัด เฉพาะผู้ใช้ที่มีสิทธิ์เพียงพอเท่านั้นที่ได้รับอนุญาตให้ดำเนินการได้
2. รายชื่อฐานข้อมูลปัจจุบัน
เรียกใช้แบบสอบถามต่อไปนี้ใน psql เพื่อพิมพ์รายการฐานข้อมูลบนเซิร์ฟเวอร์:
ระหว่างการติดตั้ง PostgreSQL จะสร้างฐานข้อมูลแรกของเซิร์ฟเวอร์ซึ่งเรียกว่า “postgres” มีการสร้างฐานข้อมูลเพิ่มเติมอีกสองฐานข้อมูล:
- แม่แบบ1 : เมื่อใดก็ตามที่สร้างฐานข้อมูลใหม่ภายในคลัสเตอร์ “เทมเพลต1” จะถูกโคลน
- แม่แบบ0 : ทำหน้าที่เป็นสำเนาดั้งเดิมของเนื้อหาต้นฉบับของ “เทมเพลต1”
อย่าสร้างวัตถุภายใน 'เทมเพลต1' เว้นแต่คุณต้องการให้เป็นส่วนหนึ่งของฐานข้อมูลที่สร้างขึ้นใหม่ หากมีการแก้ไข 'เทมเพลต1' สามารถโคลน 'เทมเพลต0' เพื่อสร้างฐานข้อมูลใหม่โดยไม่ต้องเพิ่มไซต์ในเครื่อง
3. การสร้างฐานข้อมูลใหม่
หากต้องการสร้างฐานข้อมูลใหม่ ให้เรียกใช้แบบสอบถามต่อไปนี้ใน psql:
ที่นี่:
- บทบาทปัจจุบันจะถือว่าเป็นเจ้าของฐานข้อมูลใหม่โดยอัตโนมัติ
- เจ้าของมีสิทธิ์เปลี่ยนเจ้าของเป็นบทบาทอื่น
ตรวจสอบรายการฐานข้อมูลหากดำเนินการสำเร็จโดยใช้คำสั่งต่อไปนี้:
$ \รายการ
ด้วยบัญชีพิเศษ เรายังสามารถสร้างฐานข้อมูลสำหรับบุคคลอื่นโดยใช้คำสั่งต่อไปนี้:
$ สร้างฐานข้อมูล < db_name > เจ้าของ < บทบาท > ;
คำสั่ง Createb
ในวิธีการก่อนหน้านี้ เราต้องผ่านหลายขั้นตอนเพื่อสร้างฐานข้อมูล:
- เชื่อมต่อกับเซิร์ฟเวอร์ PostgreSQL โดยใช้ psql
- เรียกใช้แบบสอบถามเพื่อสร้างฐานข้อมูลใหม่
เพื่อปรับปรุงกระบวนการ PostgreSQL มาพร้อมกับคำสั่ง createdb โดยพื้นฐานแล้วมันทำหน้าที่เป็นตัวห่อหุ้มสำหรับการกระทำเหล่านี้ เราสามารถเรียกใช้คำสั่ง createb จากเชลล์ได้โดยตรง
1. การสร้างฐานข้อมูลโดยใช้ Createb
หากต้องการสร้างฐานข้อมูลโดยใช้เซิร์ฟเวอร์ฐานข้อมูลเริ่มต้น ให้ใช้คำสั่งต่อไปนี้:
ตรวจสอบการดำเนินการโดยใช้คำสั่งต่อไปนี้:
$ psql -ค '\รายการ'
ด้วยตัวเลือกที่หลากหลาย เรายังสามารถปรับแต่งการดำเนินการที่สร้างขึ้นได้อย่างละเอียด ตรวจสอบตัวอย่างต่อไปนี้:
$ สร้างขึ้นb -ชม < เจ้าภาพ > -หน้า < ท่าเรือ > -T < แม่แบบ > -มันคือ --ชื่อผู้ใช้ = < ชื่อผู้ใช้ > --รหัสผ่าน --การบำรุงรักษา-db = < maintenance_db_name > < db_name >ที่นี่:
- -ชม : พารามิเตอร์นี้ระบุตำแหน่งเซิร์ฟเวอร์ PostgreSQL (ที่อยู่ IP หรือชื่อโดเมน)
- -หน้า : พอร์ตสำหรับเชื่อมต่อกับเซิร์ฟเวอร์
- -T : เทมเพลตที่จะใช้เมื่อสร้างฐานข้อมูลใหม่ โดยสามารถเป็น template0, template1 หรือฐานข้อมูลอื่นๆ
- -มันคือ : สะท้อนข้อความค้นหาที่เทียบเท่า
- -ชื่อผู้ใช้ : ชื่อผู้ใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์
- -รหัสผ่าน : บังคับคำสั่ง createdb ให้ถามรหัสผ่านก่อนเชื่อมต่อกับเซิร์ฟเวอร์ ในกรณีส่วนใหญ่ ไม่จำเป็นเนื่องจาก createb จะถามรหัสผ่านโดยอัตโนมัติหากเซิร์ฟเวอร์ต้องการ อย่างไรก็ตาม มันใช้ความพยายามในการเชื่อมต่อเพื่อหาคำตอบ
- –การบำรุงรักษาฐานข้อมูล : ฐานข้อมูลที่จะเชื่อมต่อเมื่อสร้างฐานข้อมูลใหม่ หากไม่ได้ระบุไว้ ระบบจะถือว่า postgres เป็นค่าเริ่มต้น หากไม่มี postgres จะถือว่า 'เทมเพลต1'
ถึงเวลาที่จะนำไปใช้จริง รันคำสั่ง createdb ต่อไปนี้:
$ สร้างขึ้นb -ชม โลคัลโฮสต์ -หน้า 5432 -T แม่แบบ0 -มันคือ --ชื่อผู้ใช้ =postgres test_db
ตามที่ผลลัพธ์แนะนำ จะเทียบเท่ากับข้อความค้นหาต่อไปนี้:
$ สร้างฐานข้อมูล test_db TEMPLATE template0;การจัดการฐานข้อมูลเพิ่มเติม
ในส่วนนี้ มาดูการดำเนินการจัดการฐานข้อมูลอื่นๆ กัน
รายการฐานข้อมูล
มีสองวิธีในการแสดงรายการฐานข้อมูลที่จัดเก็บไว้ในเซิร์ฟเวอร์ เราได้สาธิตวิธีหนึ่งในส่วนก่อนหน้านี้แล้ว:
$ \รายการอีกวิธีหนึ่งคือการตรวจสอบแคตตาล็อกระบบ “pg_database”:
$ เลือกชื่อข้อมูลจาก pg_database;
การลบฐานข้อมูล
หากต้องการลบฐานข้อมูล ให้เรียกใช้แบบสอบถามต่อไปนี้:
$ วางฐานข้อมูล < db_name > ;
PostgreSQL ยังมาพร้อมกับคำสั่ง dropdb ซึ่งเราเรียกใช้จากเชลล์ได้เช่นเดียวกับ createdb ลองดูตัวอย่างต่อไปนี้:
$ ดร็อปดีบี -ชม < เจ้าภาพ > -หน้า < ท่าเรือ > --ชื่อผู้ใช้ = < ชื่อผู้ใช้ > --รหัสผ่าน -มันคือ < db_name >
ที่นี่:
- -ชม : เซิร์ฟเวอร์ PostgreSQL ที่จะเชื่อมต่อ
- -หน้า : พอร์ตของเซิร์ฟเวอร์ PostgreSQL ที่จะเชื่อมต่อ
- -มันคือ : สะท้อนข้อความค้นหาที่เทียบเท่า
โปรดทราบว่าผู้ใช้ต้องมีสิทธิ์เพียงพอในการลบฐานข้อมูล
การเปลี่ยนความเป็นเจ้าของฐานข้อมูล
เจ้าของฐานข้อมูลสามารถดำเนินการใดๆ กับฐานข้อมูลได้ รวมถึงการลบฐานข้อมูล ตามค่าเริ่มต้น ผู้ใช้ที่สร้างฐานข้อมูลถูกกำหนดให้เป็นเจ้าของ อย่างไรก็ตาม เราสามารถมอบหมายความเป็นเจ้าของใหม่ให้กับผู้ใช้รายอื่นได้
หากต้องการเปลี่ยนเจ้าของฐานข้อมูล ให้เรียกใช้แบบสอบถามต่อไปนี้ใน psql:
$ เปลี่ยนฐานข้อมูล < db_name > เจ้าของถึง < new_owner > ;
อย่างไรก็ตาม สิ่งนี้จะไม่เปลี่ยนความเป็นเจ้าของของวัตถุภายในฐานข้อมูล (รวมถึงตาราง) ในกรณีเช่นนี้ เราต้องใช้แบบสอบถามอื่น เชื่อมต่อกับฐานข้อมูลเป้าหมายและเรียกใช้แบบสอบถามต่อไปนี้:
$ มอบหมายใหม่ให้เป็นเจ้าของโดย < old_owner > ถึง < new_owner > ;แม้จะสะดวก แต่ข้อความค้นหานี้ก็มีข้อแม้บางประการ:
- เมื่อเชื่อมต่อกับ postgres (ฐานข้อมูล) จะสามารถเปลี่ยนการเป็นเจ้าของฐานข้อมูลหลายรายการพร้อมกันได้
- อย่าใช้แบบสอบถามนี้เมื่อเจ้าของเดิมเป็น postgres เนื่องจากอาจทำให้อินสแตนซ์ DB ทั้งหมดเสียหายได้
โบนัส: เรียกใช้การสืบค้นจากเชลล์
จนถึงตอนนี้ เราเรียกใช้การสืบค้นจากคอนโซล PostgreSQL ถ้าคุณต้องการรวมฟังก์ชันฐานข้อมูลบางอย่างในสคริปต์ของคุณล่ะ คำสั่ง createb และ dropdb สามารถดำเนินการเฉพาะได้เท่านั้น
เพื่อแก้ปัญหานี้ เราสามารถใช้ psql เป็นท่อร้อยสาย นอกจากเชลล์โต้ตอบมาตรฐานแล้ว psql ยังสามารถเรียกใช้การสืบค้นได้ทันที
วิธีที่ 1:
โครงสร้างคำสั่งมีดังนี้:
$ psql -ชม < เจ้าภาพ > -หน้า < ท่าเรือ > -ใน < ชื่อผู้ใช้ > -d < ฐานข้อมูล > -ค < สอบถาม >
ที่นี่:
- -ชม : ที่อยู่ของเซิร์ฟเวอร์ PostgreSQL
- -หน้า : พอร์ตที่จะเชื่อมต่อ (ค่าเริ่มต้นคือ 5432)
- -ใน : ผู้ใช้ที่จะเชื่อมต่อเป็น
- -d : ฐานข้อมูลที่จะเชื่อมต่อ
- -ค : แบบสอบถามที่จะดำเนินการ
วิธีที่ 2:
PostgreSQL มาพร้อมกับคุณสมบัติที่น่าสนใจอีกอย่างหนึ่ง: URI การเชื่อมต่อ เป็นวิธีที่ชาญฉลาดในการเข้ารหัสพารามิเตอร์การเชื่อมต่อทั้งหมดอย่างเรียบร้อย โครงสร้างของ URI การเชื่อมต่อเป็นดังนี้:
$ postgresql: //< ชื่อผู้ใช้ > : < รหัสผ่าน >@< เจ้าภาพ > : < ท่าเรือ >/< db_name >ที่นี่:
- postgresql หรือ โพสต์เกรส : โปรโตคอลเฉพาะสำหรับ URI การเชื่อมต่อ PostgreSQL
ในการเชื่อมต่อกับฐานข้อมูลโดยใช้ URI การเชื่อมต่อ ให้ใช้คำสั่ง psql ต่อไปนี้:
$ psql -d < connection_uri > -ค < สอบถาม >
บทสรุป
เราได้เรียนรู้เกี่ยวกับวิธีต่างๆ ในการสร้างฐานข้อมูลใน PostgreSQL เราสาธิตวิธีสร้างฐานข้อมูลโดยใช้แบบสอบถามสร้างฐานข้อมูล เรายังแสดงการสร้างฐานข้อมูลโดยใช้คำสั่ง createdb นอกจากนี้ เรายังปัดเศษการดำเนินการจัดการฐานข้อมูลที่สำคัญอื่นๆ เช่น การลบฐานข้อมูลและการเปลี่ยนเจ้าของ
สนใจเรียนรู้เพิ่มเติมเกี่ยวกับ PostgreSQL หรือไม่ ตรวจสอบที่ หมวดหมู่ย่อย PostgreSQL ที่มีคำแนะนำมากมายเกี่ยวกับคุณสมบัติต่างๆ ตัวอย่างเช่น: ฟังก์ชั่น , นิพจน์ทั่วไป , ตาราง และอื่น ๆ อีกมากมาย