สร้างฐานข้อมูลใน PostgreSQL โดยใช้คำสั่ง createdb

Srang Than Khxmul Ni Postgresql Doy Chi Kha Sang Createdb



ในคู่มือนี้ เราจะเรียนรู้เกี่ยวกับการสร้างฐานข้อมูลใน PostgreSQL โดยใช้คำสั่ง createdb

ข้อกำหนดเบื้องต้น:

ในการดำเนินการตามขั้นตอนที่แสดงในคู่มือนี้ คุณต้องมีส่วนประกอบต่อไปนี้:

  • ระบบ 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 > ;

ที่นี่:

  • บทบาทปัจจุบันจะถือว่าเป็นเจ้าของฐานข้อมูลใหม่โดยอัตโนมัติ
  • เจ้าของมีสิทธิ์เปลี่ยนเจ้าของเป็นบทบาทอื่น

ตรวจสอบรายการฐานข้อมูลหากดำเนินการสำเร็จโดยใช้คำสั่งต่อไปนี้:

$ \รายการ

ด้วยบัญชีพิเศษ เรายังสามารถสร้างฐานข้อมูลสำหรับบุคคลอื่นโดยใช้คำสั่งต่อไปนี้:

$ สร้างฐานข้อมูล < db_name > เจ้าของ < บทบาท > ;

คำสั่ง Createb

ในวิธีการก่อนหน้านี้ เราต้องผ่านหลายขั้นตอนเพื่อสร้างฐานข้อมูล:

  • เชื่อมต่อกับเซิร์ฟเวอร์ PostgreSQL โดยใช้ psql
  • เรียกใช้แบบสอบถามเพื่อสร้างฐานข้อมูลใหม่

เพื่อปรับปรุงกระบวนการ PostgreSQL มาพร้อมกับคำสั่ง createdb โดยพื้นฐานแล้วมันทำหน้าที่เป็นตัวห่อหุ้มสำหรับการกระทำเหล่านี้ เราสามารถเรียกใช้คำสั่ง createb จากเชลล์ได้โดยตรง

1. การสร้างฐานข้อมูลโดยใช้ Createb
หากต้องการสร้างฐานข้อมูลโดยใช้เซิร์ฟเวอร์ฐานข้อมูลเริ่มต้น ให้ใช้คำสั่งต่อไปนี้:

$ สร้างขึ้นb < db_name >

ตรวจสอบการดำเนินการโดยใช้คำสั่งต่อไปนี้:

$ 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 ที่มีคำแนะนำมากมายเกี่ยวกับคุณสมบัติต่างๆ ตัวอย่างเช่น: ฟังก์ชั่น , นิพจน์ทั่วไป , ตาราง และอื่น ๆ อีกมากมาย