Minggu, 24 Januari 2016

membuat schema pada postgresql

assalamualaykum sobat, apakabar sobat dihari ini :D.

tak bertele-tele, langsung saja kita kepembahasan, kali ini saya akan sedikit mendeskripsikan bagaimana cara membuat schema pada postgresql, berikut cara-caranya :

Buat db baru :

root@ubuntu-desktop:/home/ubuntu# createdb dbsiak -U irfan2

masuk user postgress :

root@ubuntu-desktop:/home/ubuntu# su - postgres

masuk ke dbsiak :

postgres@ubuntu-desktop:~$ psql -U postgres dbsiak
Password for user postgres:
psql (9.3.9)
Type "help" for help.

dbsiak=#

buat user adminti :
dbsiak=# create user adminti with password 'ti';
CREATE ROLE

buat scema untuk proditi :
dbsiak=# create schema proditi;
CREATE SCHEMA

hapus seluruh skema yang ada pada proditi :

dbsiak=# revoke all on schema proditi from public;
REVOKE

berikan izin seluruh skema ke adminti:

dbsiak=# grant all on schema proditi to adminti;
GRANT

buat table member :

dbsiak=# create table member(
dbsiak(# id serial primary key,
dbsiak(# nama varchar(30) not null,
dbsiak(# email varchar(40) unique,
dbsiak(# gender char(1),
dbsiak(# tmp_lahir varchar(30),
dbsiak(# tgl_lahir date);
CREATE TABLE

buat table proditi.mahasiswa yang inheritance ke member :

dbsiak=# create table proditi.mahasiswa(
dbsiak(# kodeprodi varchar(2) default 'TI',
dbsiak(# nim varchar(10) unique,
dbsiak(# thn_masuk integer,
dbsiak(# ipk double precision)
dbsiak-# inherits (member);
CREATE TABLE

berikan  hak akses proditi.mahasiswa ke adminti :

dbsiak=# grant all on proditi.mahasiswa to adminti;
GRANT

logout kemudian masuk ke menggunakan user adminti ke dbsiak :

dbsiak=# \q
postgres@ubuntu-desktop:~$ psql -U adminti dbsiak
Password for user adminti:
psql (9.3.9)
Type "help" for help.

dbsiak=>

lihat skema :

dbsiak=> \d
              List of relations
 Schema |     Name      |   Type   |  Owner  
--------+---------------+----------+----------
 public | member        | table    | postgres
 public | member_id_seq | sequence | postgres
(2 rows)

lihat path :

dbsiak=> show search_path;
  search_path  
----------------
 "$user",public
(1 row)

ubah search_path dari adminti :

dbsiak=> alter role adminti set search_path=proditi, public;
ALTER ROLE

keluar dari postgres dan masuk kembali kemudian lihat search_path menggunakan (\d) :

dbsiak=> \q
postgres@ubuntu-desktop:~$ psql -U adminti dbsiak
Password for user adminti:
psql (9.3.9)
Type "help" for help.

dbsiak=> \d
               List of relations
 Schema  |     Name      |   Type   |  Owner  
---------+---------------+----------+----------
 proditi | mahasiswa     | table    | postgres
 public  | member        | table    | postgres
 public  | member_id_seq | sequence | postgres
(3 rows)

lihat deskripsi dari proditi.mahasiswa :

dbsiak=> \d proditi.mahasiswa;
                                Table "proditi.mahasiswa"
  Column   |         Type          |                      Modifiers                     
-----------+-----------------------+-----------------------------------------------------
 id        | integer               | not null default nextval('member_id_seq'::regclass)
 nama      | character varying(30) | not null
 email     | character varying(40) |
 gender    | character(1)          |
 tmp_lahir | character varying(30) |
 tgl_lahir | date                  |
 kodeprodi | character varying(2)  | default 'TI'::character varying
 nim       | character varying(10) |
 thn_masuk | integer               |
 ipk       | double precision      |
Indexes:
    "mahasiswa_nim_key" UNIQUE CONSTRAINT, btree (nim)
Inherits: member

masukkan data pada proditi.mahasiswa kemudian lihat hasil:

dbsiak=> insert into proditi.mahasiswa values(1, 'irfan','assidiq.irfan@gmail.com','L','cianjur','1992-12-28','TI','0110214033',2014,3.14);
INSERT 0 1
dbsiak=> select * from proditi.mahasiswa;
 id | nama  |          email          | gender | tmp_lahir | tgl_lahir  | kodeprodi |    nim     | thn_masuk | ipk 
----+-------+-------------------------+--------+-----------+------------+-----------+------------+-----------+------
  1 | irfan | assidiq.irfan@gmail.com | L      | cianjur   | 1992-12-28 | TI        | 0110214033 |      2014 | 3.14
(1 row)

keluar dari user adminti dan masuk sebagai postgres, kemudian buat user baru :

dbsiak=# create user usercab2 with password '2';
CREATE ROLE

buat schema baak :

dbsiak=# create schema baak;
CREATE SCHEMA


hilangkan hak akses public pada schema :

dbsiak=# revoke all on schema baak from public;
REVOKE

berikan hak akses public pada schema :
dbsiak=# grant all on schema baak to public;
GRANT

ubah nama skema baak menjadi akademik :

dbsiak=# alter schema baak rename to akademik;
ALTER SCHEMA

ubah owner dari schema akademik ke adminti :

dbsiak=# alter schema akademik owner to adminti;

ALTER SCHEMA


yupss, hanya itu saja deskriptif tentang cara membuat schema, semoga bermanfaat.

Tidak ada komentar:

Posting Komentar