Şema Postgres'inde TABLO OLUŞTUR

Sema Postgres Inde Tablo Olustur



PostgreSQL, en popüler nesne ilişkisel veritabanı sistemlerinden biridir. Karmaşık veri iş yüklerinin üstesinden gelmek için SQL dilini ek özelliklerle genişleten ücretsiz ve açık kaynaklı bir yazılımdır. Güvenilir ve güvenli çeşitli veri türleri ile çalışabilir. PostgreSQL'in özellikleri hakkında daha fazla bilgi edinin.

Bu kılavuzda, PostgreSQL'de bir şemada tablo oluşturma hakkında daha fazla bilgi edineceğiz.







PostgreSQL'deki şemalar

Bir PostgreSQL veritabanı, her şema tablo içeren bir veya daha fazla adlandırılmış şema içerebilir.



Aynı nesne adı, çakışma olmaksızın birden fazla şemaya atanabilir. Örneğin aşağıdaki şema/tablo ağacı geçerlidir:



  • şema_a
    • tablo 1
    • Tablo 2
  • şema_b
    • tablo 1
    • Tablo 2

İşletim sistemi düzeyinde dizinler gibi şemalar düşünebilirsiniz. Fark şu ki, iç içe geçmiş şemalar olamaz. Şema hakkında derinlemesine daha fazla bilgi edinin PostgreSQL belgeleri .





Şemaları uygulamak için birden çok neden olabilir:

  • Aynı veritabanını birbiriyle çakışmadan kullanan birden çok kullanıcı.
  • Veritabanlarının mantıksal gruplar halinde daha iyi organizasyonu ve yönetimi.
  • Üçüncü taraf uygulamaları, mevcut şemalar veya diğer nesnelerle çarpışmadan kendi benzersiz şemalarını oluşturabilir.

PostgreSQL'deki tablolar

Herhangi bir ilişkisel veritabanı, her biri satır ve sütunlardan oluşan birden çok ilişkili tablodan oluşur. PostgreSQL, çeşitli sistem bilgilerini içeren birkaç yerleşik tabloyla birlikte gelir. Ancak kullanıcı tanımlı veritabanları ve şemalar altında yeni tablolar da oluşturabiliriz.



Ön koşullar:

Bu kılavuzda gösterilen adımları gerçekleştirmek için aşağıdaki bileşenlere ihtiyacınız olacak:

  • Düzgün yapılandırılmış bir Linux sistemi. Hakkında daha fazla öğren Ubuntu'yu VirtualBox'a kurmak .
  • Düzgün bir PostgreSQL kurulumu. Ödeme PostgreSQL'i Ubuntu'ya kurmak .
  • erişim bir PostgreSQL kullanıcısı ile birlikte KULLANIM izni bir veritabanına.

Bu kılavuzun amacı için kullanacağız postgres PostgreSQL'deki tüm eylemleri gerçekleştirmek için.

Bir Şemada Tablolar Oluşturma

Demo Veritabanı Oluşturma

Daha önce belirtildiği gibi, şemalar bir veritabanı altında bulunur. Gösterim amacıyla, herhangi bir mevcut veri tabanının kesintiye uğramasını önleyerek sahte bir veri tabanı oluşturuyoruz.

PostgreSQL kabuğuna şu şekilde erişin: postgres :

$ sudo -i -u postgres psql

Yeni bir veritabanı oluştur demo_db:

$ VERİTABANI OLUŞTUR demo_db;

Veritabanının başarıyla oluşturulduğunu doğrulayın:

$ \ l

Son olarak, yeni oluşturulan veritabanına bağlanın:

$ \demo_db'yi bağla;

Genel Şema

PostgreSQL'deki herhangi bir yeni veritabanı, varsayılan bir şema ile gelir – halka açık . Şema adını belirtmeden bir nesne oluşturmaya çalışırsanız, genel şema varsayılan olarak seçilir.

Aşağıdaki komut, PostgreSQL veritabanındaki tüm kullanılabilir şemaları yazdırır:

$ \dn

Alternatif olarak, aşağıdaki SQL sorgusunu da kullanabiliriz:

$ SEÇ * pg_catalog.pg_namespace'DEN;

Yeni Şema Oluşturma

Belirli bir veritabanı altında yeni bir şema oluşturmak için komut yapısı aşağıdaki gibidir:

$ ŞEMA OLUŞTUR <şema_adı>;

Kurala uyarak yeni bir şema demo_schema oluşturalım:

$ ŞEMA OLUŞTUR demo_schema;

Doğrulama için şema listesini kontrol edin:

$ \dn

Şemada Tablo Oluşturma

Artık hedef şemayı oluşturduğumuza göre, onu tablolarla doldurabiliriz.

Bir tablo oluşturmak için sözdizimi aşağıdaki gibidir:

TABLO OLUŞTUR <şema>. (

...
)

Burada:

  • şema : Bu alan, tablonun oluşturulduğu şemanın adını belirtir. Herhangi bir değer sağlanmazsa, tablo altında oluşturulur. halka açık şema.

Gösterim için basit bir tablo oluşturuyoruz:

TABLO OLUŞTUR demo_schema.demo_table (

AD CHAR(64),

ID INT BOŞ DEĞİL

);

Burada:

  • Alan İSİM 64 karakterlik bir diziyi depolamak için belirtilir.
  • Alan İD tamsayı değerlerini içerir. Dönem ' GEÇERSİZ DEĞİL ' belirtir İD boş veya null olamaz.

Aşağıdaki sorguyu kullanarak tablonun varlığını doğrulayabiliriz:

$ SEÇ * demo_schema.demo_table'DAN;

Tabloya Veri Ekleme

Tablo hazır olduğunda, artık bazı değerler ekleyebiliriz:

demo_schema.demo_table'A EKLEYİN (NAME, ID)

DEĞERLER

('PQR', 45),

('IJK', 99)

;

Tablonun içeriğini kontrol edin:

$ SEÇ * demo_schema.demo_table'DAN;

Şema Yönetimi

Şema İzinleri

Şema izni yardımıyla, belirli bir şema üzerinde hangi rolün hangi eylemi gerçekleştirebileceğini yönetebiliriz. Tüm olası ayrıcalıklar dışında, şemalar yalnızca destekler OLUŞTURUN ve KULLANIN.

Belirli bir rol için şema iznini güncellemek için komut yapısı aşağıdaki gibidir:

$ GRANT ON SCHEMA TO ;

Belirli bir rol için şema iznini iptal etmek için komut yapısı aşağıdaki gibidir:

$ REVOKE ŞEMA ÜZERİNDE TO ;

Aşağıdaki komutu kullanarak değişikliği doğrulayın:

$ \dn+

Şema Özelliklerini Değiştir

yardımı ile DEĞİŞİK ŞEMA ifadesinde, bir şemanın çeşitli özelliklerini değiştirebiliriz. Örneğin: sahiplik, şema adı vb.

Şema adını değiştirmek için aşağıdaki sorguyu kullanın:

$ ALTER SCHEMA RENAME TO ;

Bir şemanın sahipliğini değiştirmek için aşağıdaki sorguyu kullanın:

$ ALTER SCHEMA OWNER TO ;

Sahipliği değiştirmek için geçerli kullanıcının şu özelliklere sahip olması gerektiğini unutmayın: OLUŞTURMAK şema izni.

Bir Şemayı Silme

Bir şema artık gerekli değilse, onu kullanarak silebiliriz. DÜŞÜRMEK sorgu:

$ DÜŞÜRME ŞEMASI <şema_adı>

Şema herhangi bir nesne içeriyorsa, ÇAĞLAYAN değiştirici:

$ DROP SCHEMA CASCADE;

Tablo Yönetimi

Tablo İzinleri

Şema gibi her tablo, bir rolün tabloda hangi eylemi gerçekleştirebileceğini tanımlayan izin yönetimiyle birlikte gelir.

Bir tablonun izinlerini kontrol etmek için psql'de aşağıdaki komutu kullanın:

$ \dp

Tablo Özelliklerini Değiştir

yardımı ile TABLOYU DEĞİŞTİR deyimi ile zaten var olan bir tablonun sayısız yönünü değiştirebiliriz.

Örneğin, bir sütunu bırakmak için sorgu şöyle görünür:

$ ALTER TABLE DROP COLUMN ;

Yeni bir sütun eklemek için aşağıdaki sorguyu kullanabiliriz:

$ ALTER TABLE
ADD COLUMN ;

Sıkıştırmayı belirli bir sütun için de ayarlayabiliriz:

$ ALTER COLUMN COMPRESSION AYARLA ;

Tablo Silme

Bir şemadan bir tabloyu silmek için şunu kullanabiliriz: DÜŞME TABLOSU sorgu:

$ DROP TABLE ;

Şemalardan farklı olarak, DÜŞME TABLOSU tablo boş olsun ya da olmasın sorgu hata üretmez.

Çözüm

Bu kılavuzda, PostgreSQL'de bir şemada tabloların nasıl oluşturulacağını gösterdik. Dummy veritabanı içerisinde dummy şema oluşturduk ve şema içerisinde tablo oluşturduk. Bu kılavuz ayrıca şemaların ve tabloların çeşitli özelliklerinin nasıl yönetileceğini de gösterdi.

Daha iyi veri bütünlüğü için bir mantıksal PostgreSQL çoğaltması . PostgreSQL veritabanını sağlıklı tutmak için, otomatik vakum silinen kayıtların bıraktığı ölü demetleri temizlemek için.

Daha fazla PostgreSQL kılavuzu için şuraya göz atın: PostgreSQL alt kategorisi .