Cara Membuat, Memodifikasi, Menghapus Tabel dalam DDL
SQL adalah Structured Query Language. secara garis besar terdiri dari
1. DDL (Data Definition Language)
2. DML (Data Manipulating Language)
3. DCL (Data Control Language)
1. Study Kasus = Inventory
Tabel Barang = Menggambarkan entitas barang dan terdiri atas atribut yang berkaitan dengan entitas barang. Atribut barang meliputi : kode_barang,nama_barang,satuan_barang dan stok barang
Tabel Suplier = Menggambarkan entitas suplier dan terdiri atas atribut atribut yang berkaitan dengan suplier. Atribut suplier meliputi : kode_suplier, nama_suplier, alamat_suplier, kota_suplier dan telepon_suplier
Tabel Customer = Menggambarkan entitas customer dan terdiri atas atribut atribut yang berkaitan dengan customer. Atribut customer meliputi : kode_customer, nama_customer, alamat_customer, kota_customer dan telepon_customer
Tabel Pasok = Menggambarkan entitas pasok dan terdiri atas atribut atribut yang berkaitan dengan pasok. Atribut pasok meliputi : kode_pasok, kode_barang, kode_suplier, tanggal_pasok dan jumlah_pasok
Tabel Pembelian = Menggambarkan entitas pembelian dan terdiri atas atribut atribut yang berkaitan dengan pembelian. Atribut pembelian meliputi : kode_pembelian, kode_barang, kode_customer, tanggal_pembelian dan jumlah pembelian
ID card Teguh Triharto - Oracle Database SQL Expert - 1Z0-047 |
2. Entity Relationship Diagram(ERD)
merupakan model data berupa notasi grafis dalam pemodelan data konseptual yang menggambarkan hubungan antara penyimpan. Model data sendiri merupakan sekumpulan cara, peralatan untuk mendeskripsikan data-data yang hubungannya satu sama lain, semantiknya, serta batasan konsistensi. Model data terdiri dari model hubungan entitas dan model relasional. Diagram hubungan entitas ditemukan oleh Peter Chen dalam buku Entity Relational Model-Toward a Unified of Data. Chen mencoba merumuskan dasar-dasar model dan setelah itu dikembangkan dan dimodifikai oleh Chen dan banyak pakar lainnya. Pada saat itu diagram hubungan entitas dibuat sebagai bagian dari perangkat lunak yang juga merupakan modifikasi khusus, karena tidak ada bentuk tunggal dan standar dari diagram hubungan entitas
ERD |
==== Data Definition Language ===
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.
Type Data Oracle
CHAR(n) = Mendefinisikan string sepanjang n karakter, bila n tidak disertakan, maka panjang karekter adalah 1
VARCHAR(n) = Mendefinisikan string yang panjangnya berubah ubah sesuai kebutuhan. namun string tersebut dibatasi sebanyak n karakter
VARCHAR2(n) = Mendefinisikan string yang panjangnya berubah ubah sesuai kebutuhan, namun string tersebut dibatasi sebanyak karakter. Maksimum karekter sebanyak 2000 karakter
LONG = Mendefninikan tipe data binary, maksimum 2 giga byte dan disimpan dalam format internal oracle
LONG RAW = Mendefninikan tipe data binary, maksimum 2 giga byte dan tidak dikonversi oleh oracle(data mentah apa adanya)
DATE = Mendefinisikan dan tanggal, menyimpan tahun, bulan, hari, jam, menit dan detik
NUMBER(n,p) = Mendefinisikan angka pecahan, baik fixed decimal ataupun floating point. Nilai n adalah jumlah bytes total dan p adalah presisi angka di belakang koma.
Note :
Type data non oracle dapat dikonversi sebagai berikut
DECIMAL -> NUMBER
INTEGER, INT -> NUMBER(38)
SMALLINT -> NUMBER(38)
FLOAT -> NUMBER
REAL -> NUMBER
DOUBLE -> NUMBER
=== 3.1 Membuat Tabel (Create Table) ===
Sintak SQL
tttttttttttttttttttttttttttttttttttttttttttttttttttt
CREATE TABLE table_name (
name field 1 type data (field long),
....................................
....................................
name field 1 type data (field long),
);
tttttttttttttttttttttttttttttttttttttttttttttttttttt
== Tabel Barang ==
SQL> -- 1. TABEL BARANG
SQL> create table barang(
2 KODE_BARANG char(6),
3 NAMA_BARANG varchar2(25),
4 SATUAN_BARANG varchar2(20),
5 STOK_BARANG number(4),
6 constraint pk_barang primary key(KODE_BARANG)
7 );
Table created.
atau
-- 1. TABEL BARANG
create table barang(KODE_BARANG char(6),NAMA_BARANG varchar2(25), SATUAN_BARANG varchar2(20),STOK_BARANG number(4),constraint pk_barang primary key(KODE_BARANG));
Table created.
== Tabel Suplier ==
SQL> -- 2. TABEL SUPLIER
SQL> create table suplier(
2 KODE_SUPLIER char(5),
3 NAMA_SUPLIER varchar2(30),
4 ALAMAT_SUPLIER varchar2(30),
5 KOTA_SUPLIER varchar2(15),
6 TELEPON_SUPLIER varchar2(15),
7 constraint pk_suplier primary key(KODE_SUPLIER)
8 );
Table created.
atau
-- 2. TABEL SUPLIER
create table suplier(KODE_SUPLIER char(5),NAMA_SUPLIER varchar2(30),ALAMAT_SUPLIER varchar2(30),KOTA_SUPLIER varchar2(15),TELEPON_SUPLIER varchar2(15),constraint pk_suplier primary key(KODE_SUPLIER));
Table created.
== Tabel Customer ==
SQL> -- 3. TABEL CUSTOMER
SQL> create table customer(
2 KODE_CUSTOMER char(6),
3 NAMA_CUSTOMER varchar2(30),
4 ALAMAT_CUSTOMER varchar2(30),
5 KOTA_CUSTOMER varchar2(15),
6 TELEPON_CUSTOMER varchar2(15),
7 constraint pk_customer primary key(KODE_CUSTOMER)
8 );
Table created.
atau
-- 3. TABEL CUSTOMER
create table customer(KODE_CUSTOMER char(6),NAMA_CUSTOMER varchar2(30),ALAMAT_CUSTOMER varchar2(30),KOTA_CUSTOMER varchar2(15),TELEPON_CUSTOMER varchar2(15),constraint pk_customer primary key(KODE_CUSTOMER));
Table created.
== Tabel Pasok ==
SQL> -- 4. TABEL PASOK
SQL> create table pasok(
2 KODE_PASOK char(10),
3 KODE_BARANG char(6),
4 KODE_SUPLIER char(5),
5 TANGGAL_PASOK date,
6 JUMLAH_PASOK number(4),
7 constraint pk_pasok primary key(KODE_PASOK,KODE_BARANG,KODE_SUPLIER),
8 constraint fk_pasok_barang foreign key(KODE_BARANG)
9 references barang(KODE_BARANG),
10 constraint fk_pasok_suplier foreign key(KODE_SUPLIER)
11 references suplier(KODE_SUPLIER)
12 );
Table created.
-- 4. TABEL PASOK
create table pasok(KODE_PASOK char(10),KODE_BARANG char(6),KODE_SUPLIER char(5),TANGGAL_PASOK date,JUMLAH_PASOK number(4),constraint pk_pasok primary key(KODE_PASOK,KODE_BARANG,KODE_SUPLIER),constraint fk_pasok_barang foreign key(KODE_BARANG)references barang(KODE_BARANG),constraint fk_pasok_suplier foreign key(KODE_SUPLIER)references suplier(KODE_SUPLIER));
Table created.
== Tabel Pembelian ==
SQL> -- 5. TABEL PEMBELIAN
SQL> create table pembelian(
2 KODE_PEMBELIAN char(10),
3 KODE_BARANG char(6),
4 KODE_CUSTOMER char(6),
5 TANGGAL_PEMBELIAN date,
6 JUMLAH_PEMBELIAN number(4),
7 constraint pk_pembelian primary key(KODE_PEMBELIAN,KODE_BARANG,KODE_CUSTOMER),
8 constraint fk_pembelian_barang foreign key(KODE_BARANG)
9 references barang(KODE_BARANG),
10 constraint fk_pembelian_customer foreign key(KODE_CUSTOMER)
11 references customer(KODE_CUSTOMER)
12 );
Table created.
atau
-- 5. TABEL PEMBELIAN
create table pembelian(KODE_PEMBELIAN char(10),KODE_BARANG char(6),KODE_CUSTOMER char(6),TANGGAL_PEMBELIAN date,JUMLAH_PEMBELIAN number(4),constraint pk_pembelian primary key(KODE_PEMBELIAN,KODE_BARANG,KODE_CUSTOMER),constraint fk_pembelian_barang foreign key(KODE_BARANG)references barang(KODE_BARANG),constraint fk_pembelian_customer foreign key(KODE_CUSTOMER)references customer(KODE_CUSTOMER));
Table created.
== Check Tabel ==
SQL> desc barang;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_BARANG NOT NULL CHAR(6)
NAMA_BARANG VARCHAR2(25)
SATUAN_BARANG VARCHAR2(20)
STOK_BARANG NUMBER(4)
SQL> desc suplier;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_SUPLIER NOT NULL CHAR(5)
NAMA_SUPLIER VARCHAR2(30)
ALAMAT_SUPLIER VARCHAR2(30)
KOTA_SUPLIER VARCHAR2(15)
TELEPON_SUPLIER VARCHAR2(15)
SQL> desc customer;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_CUSTOMER NOT NULL CHAR(6)
NAMA_CUSTOMER VARCHAR2(30)
ALAMAT_CUSTOMER VARCHAR2(30)
KOTA_CUSTOMER VARCHAR2(15)
TELEPON_CUSTOMER VARCHAR2(15)
SQL> desc pasok;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_PASOK NOT NULL CHAR(10)
KODE_BARANG NOT NULL CHAR(6)
KODE_SUPLIER NOT NULL CHAR(5)
TANGGAL_PASOK DATE
JUMLAH_PASOK NUMBER(4)
SQL> desc pembelian;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_PEMBELIAN NOT NULL CHAR(10)
KODE_BARANG NOT NULL CHAR(6)
KODE_CUSTOMER NOT NULL CHAR(6)
TANGGAL_PEMBELIAN DATE
JUMLAH_PEMBELIAN NUMBER(4)
SQL>
== Resume Tabel ==
desc barang;
desc suplier;
desc customer;
desc pasok;
desc pembelian;
=== 3.2 mengubah Tabel(Alter table) ===
tttttttttttttttttttttttttttttttttttttttttttttttttttt
ALTER TABLE name_field A
DD/MODIFY name_field type_data(long_field)
tttttttttttttttttttttttttttttttttttttttttttttttttttt
Sample
SQL> alter table barang modify SATUAN_BARANG char(5);
Table altered.
SQL> desc barang;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_BARANG NOT NULL CHAR(6)
NAMA_BARANG VARCHAR2(25)
SATUAN_BARANG CHAR(5)
STOK_BARANG NUMBER(4)
SQL>
SQL> desc barang;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_BARANG NOT NULL CHAR(6)
NAMA_BARANG VARCHAR2(25)
SATUAN_BARANG CHAR(5)
STOK_BARANG NUMBER(4)
SQL> alter table barang
2 modify STOK_BARANG number(2);
Table altered.
SQL> desc barang;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_BARANG NOT NULL CHAR(6)
NAMA_BARANG VARCHAR2(25)
SATUAN_BARANG CHAR(5)
STOK_BARANG NUMBER(2)
SQL>
SQL> alter table barang add KETERANGAN varchar2(15);
Table altered.
SQL> desc barang;
Name Null? Type
----------------------------------------- -------- ----------------------------
KODE_BARANG NOT NULL CHAR(6)
NAMA_BARANG VARCHAR2(25)
SATUAN_BARANG CHAR(5)
STOK_BARANG NUMBER(2)
KETERANGAN VARCHAR2(15)
SQL>
SQL> descr barang
Name Null? Type
----------------------------------------- -------- ---------------------
KODE_BARANG NOT NULL CHAR(6)
NAMA_BARANG VARCHAR2(25)
SATUAN_BARANG VARCHAR2(20)
STOK_BARANG NUMBER(4)
KETERANGAN VARCHAR2(15)
SQL> alter table suplier add KETERANGAN varchar2(15);
Table altered.
SQL>
SQL> descr suplier
Name Null? Type
----------------------------------------- -------- ---------------------
KODE_SUPLIER NOT NULL CHAR(5)
NAMA_SUPLIER VARCHAR2(30)
ALAMAT_SUPLIER VARCHAR2(30)
KOTA_SUPLIER VARCHAR2(30)
TELEPON_SUPLIER VARCHAR2(15)
KETERANGAN VARCHAR2(15)
SQL>
SQL> alter table customer add KETERANGAN varchar2(15);
Table altered.
SQL> descr customer
Name Null? Type
----------------------------------------- -------- ----------------
KODE_CUSTOMER NOT NULL CHAR(6)
NAMA_CUSTOMER VARCHAR2(30)
ALAMAT_CUSTOMER VARCHAR2(30)
KOTA_CUSTOMER VARCHAR2(15)
TELEPON_CUSTOMER VARCHAR2(15)
KETERANGAN VARCHAR2(15)
SQL>
SQL> alter table pasok add KETERANGAN varchar2(15);
Table altered.
SQL> descr pasok
Name Null? Type
----------------------------------------- -------- ----------------------
KODE_PASOK NOT NULL CHAR(10)
KODE_BARANG NOT NULL CHAR(6)
KODE_SUPLIER NOT NULL CHAR(5)
TANGGAL_PASOK DATE
JUMLAH_PASOK NUMBER(4)
KETERANGAN VARCHAR2(15)
SQL> alter table pembelian add KETERANGAN varchar2(15);
Table altered.
SQL> descr pembelian
Name Null? Type
----------------------------------------- -------- ----------------------
KODE_PEMBELIAN NOT NULL CHAR(10)
KODE_BARANG NOT NULL CHAR(6)
KODE_CUSTOMER NOT NULL CHAR(6)
TANGGAL_PEMBELIAN DATE
JUMLAH_PEMBELIAN NUMBER(4)
KETERANGAN VARCHAR2(15)
SQL>
SQL> descr suplier
Name Null? Type
----------------------------------------- -------- ---------------------
KODE_SUPLIER NOT NULL CHAR(5)
NAMA_SUPLIER VARCHAR2(30)
ALAMAT_SUPLIER VARCHAR2(30)
KOTA_SUPLIER VARCHAR2(30)
TELEPON_SUPLIER VARCHAR2(15)
KETERANGAN VARCHAR2(15)
SQL> alter table suplier modify KOTA_SUPLIER varchar2(15);
Table altered.
SQL> descr suplier
Name Null? Type
----------------------------------------- -------- ---------------------
KODE_SUPLIER NOT NULL CHAR(5)
NAMA_SUPLIER VARCHAR2(30)
ALAMAT_SUPLIER VARCHAR2(30)
KOTA_SUPLIER VARCHAR2(15)
TELEPON_SUPLIER VARCHAR2(15)
KETERANGAN VARCHAR2(15)
SQL>
=== add keterangan ==
== Resume ==
desc barang;
desc suplier;
desc customer;
desc pasok;
desc pembelian;
alter table barang add KETERANGAN varchar2(15);
alter table suplier add KETERANGAN varchar2(15);
alter table customer add KETERANGAN varchar2(15);
alter table pasok add KETERANGAN varchar2(15);
alter table pembelian add KETERANGAN varchar2(15);
desc barang;
desc suplier;
desc customer;
desc pasok;
desc pembelian;
=== 3.3 menghapus tabel(drop table) ===
tttttttttttttttttttttttttttttttttttttttttttttttttttt
DROP TABLE name_tabel
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
SQL> drop table barang;
drop table barang
*
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
SQL> drop table suplier
2 ;
drop table suplier
*
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
SQL> drop table customer;
drop table customer
*
ERROR at line 1:
ORA-02449: unique/primary keys in table referenced by foreign keys
SQL>
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
PASOK TABLE
PEMBELIAN TABLE
BARANG TABLE
SUPLIER TABLE
CUSTOMER TABLE
SQL>
hapus table relasi dulu kemudian table acuan/reference
SQL> drop table pasok;
Table dropped.
SQL> drop table pembelian;
Table dropped.
SQL> drop table barang;
Table dropped.
SQL> drop barang
2 ;
drop barang
*
ERROR at line 1:
ORA-00950: invalid DROP option
SQL> drop table barang;
drop table barang
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL>
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$DsU0nta8R2WHv9hOJCJjhw==$0 TABLE
BIN$j21UK451SzuPpOWhK8nLlQ==$0 TABLE
BIN$WW7R+woCQoGBzQAPDlux8g==$0 TABLE
SUPLIER TABLE
CUSTOMER TABLE
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$DsU0nta8R2WHv9hOJCJjhw==$0 TABLE
BIN$cCyULMnESoudoGQMEfl5cQ==$0 TABLE
BIN$j21UK451SzuPpOWhK8nLlQ==$0 TABLE
BIN$WW7R+woCQoGBzQAPDlux8g==$0 TABLE
BIN$8ROKntcYTOCU3+Bv8BsSFg==$0 TABLE
SQL>
SQL> select * from tabs;
no rows selected
SQL>
8. Referensi
- Menguasai Oracle, SQL & PL/SQL karya Imam Heryanto, Budi Raharjo, Penerbit Informatika Bandung