Random

MySQL membuat relasi tabel

Masih bermain dengan contoh yang kita gunakan dari awal yaitu database kios_kelontong di dalamnya akan kita buat dua tabel dan akan direlasikan. Dua tabel tersebut yaitu tabel “barang” dengan tabel “pemasok”

Kita pastikan dua tabel tersebut sudah terbentuk ya… caranya membuat tabel dapat dilihat catatan kita sebelumnya di sini.

MySQL [kios_kelontong]> desc barang;
 +-----------+-------------+------+-----+---------+-------+
 | Field     | Type        | Null | Key | Default | Extra |
 +-----------+-------------+------+-----+---------+-------+
 | CODE_BRG  | char(6)     | NO   | PRI | NULL    |       |
 | NAMA_BRG  | varchar(30) | NO   |     | NULL    |       |
 | HARGA_BRG | int(8)      | NO   |     | NULL    |       |
 | JUMLAH    | int(6)      | NO   |     | NULL    |       |
 | KODE_PMS  | char(6)     | NO   |     | NULL    |       |
 +-----------+-------------+------+-----+---------+-------+
 5 rows in set (0.131 sec)
 MySQL [kios_kelontong]> desc pemasok;
 +---------------+-------------+------+-----+---------+-------+
 | Field         | Type        | Null | Key | Default | Extra |
 +---------------+-------------+------+-----+---------+-------+
 | KODE_PMS      | char(6)     | NO   | PRI | NULL    |       |
 | NAMA_PMS      | varchar(40) | YES  |     | NULL    |       |
 | NOMOR_TLP_PMS | int(20)     | YES  |     | NULL    |       |
 +---------------+-------------+------+-----+---------+-------+
 3 rows in set (0.004 sec)

Tabel barang kita akan tambahkan foreign key yang menghubungkannya dengan table pemasok:

MySQL [kios_kelontong]> DESC BARANG;
 +-----------+-------------+------+-----+---------+-------+
 | Field     | Type        | Null | Key | Default | Extra |
 +-----------+-------------+------+-----+---------+-------+
 | CODE_BRG  | char(6)     | NO   | PRI | NULL    |       |
 | NAMA_BRG  | varchar(30) | NO   |     | NULL    |       |
 | HARGA_BRG | int(8)      | NO   |     | NULL    |       |
 | JUMLAH    | int(6)      | NO   |     | NULL    |       |
 | KODE_PMS  | char(6)     | NO   |     | NULL    |       |
 +-----------+-------------+------+-----+---------+-------+
 5 rows in set (0.028 sec)
 MySQL [kios_kelontong]> ALTER table BARANG 
                        ADD foreign key (KODE_PMS)
                        references pemasok(KODE_PMS);
 Query OK, 7 rows affected (2.253 sec)
 Records: 7  Duplicates: 0  Warnings: 0

Lihat lagi descripsi dari table barang :

MySQL [kios_kelontong]> desc barang;
 +-----------+-------------+------+-----+---------+-------+
 | Field     | Type        | Null | Key | Default | Extra |
 +-----------+-------------+------+-----+---------+-------+
 | CODE_BRG  | char(6)     | NO   | PRI | NULL    |       |
 | NAMA_BRG  | varchar(30) | NO   |     | NULL    |       |
 | HARGA_BRG | int(8)      | NO   |     | NULL    |       |
 | JUMLAH    | int(6)      | NO   |     | NULL    |       |
 | KODE_PMS  | char(6)     | NO   | MUL | NULL    |       |
 +-----------+-------------+------+-----+---------+-------+
 5 rows in set (0.066 sec)

Sudah terdapat “MUL” pada kolom key untuk field KODE_PMS berarti foreign key sudah terbentuk.

Dengan demikian kita sudah dapat menampilkan kombinasi field dari kedua table dalam satu tabel saja.

Sebagai contoh saya ingin tampilkan Nama Barang dengan Jumlah Barang pada tabel barang dan Nama Pemasok pada tabel pemasok :

MySQL [kios_kelontong]> select                                                          barang.NAMA_BRG,barang.JUMLAH,pemasok.NAMA_PMS
from barang,pemasok 
where barang.KODE_PMS=pemasok.KODE_PMS;
 +--------------+--------+------------------+
 | NAMA_BRG     | JUMLAH | NAMA_PMS         |
 +--------------+--------+------------------+
 | Sandal Jepit |     24 | Anugerah Lestari |
 | Sapu         |     20 | Cakrawala Indah  |
 | Sabun        |    100 | Gunung Mas       |
 | Chiki        |    100 | Tiga Serangkai   |
 | Korek Api    |     50 | Rumah Warna      |
 | Pensil       |     12 | Darma Bangsa     |
 | Penggaris    |     12 | Darma Bangsa     |
 +--------------+--------+------------------+
 7 rows in set (0.019 sec)
Random

Latihan MySQL (Create,insert,update table)

Disini cuma mau bikin latihan latihan dasar MySQ database sederhana sebagai latihan dan catatan. Disini kita tetapkan aja ya database yang akan kita buat dan kita pakai sebagai latihan yaitu database “KIOS KELONTONG”. Kita akan mencatatan bagaimana cara membuat database dari awal dan mengolah data yang ada.

. Buatlah database “KIOS KELONTONG”

CREATE
1. Create Database Kios Kelontong

Perintah untuk membuat database:

MySLQ > create database KIOS_KELONTONG;
 Query OK, 1 row affected (0.020 sec)

2. Show/Lihat list database
Perintah untuk cek apakah database kios_kelontong sudah ada pada list database:

 MySQL> show databases;
 +--------------------+
 | Database           |
 +--------------------+
 | information_schema |
 | mysql              |
 | performance_schema |
 | phpmyadmin         |
 | kios_kelontong     |
 +--------------------+
 5 rows in set (0.001 sec)
 

3. Create Tabel

Sebelum membuat tabel pastikan kita sedang berada di dalam database kios_kelontong dengan cara :

MySQL [(none)]> use kios_kelontong;
 Database changed
 MySQL [kios_kelontong]>

Kemudian buat tabel “Barang” didalam database KIOS_KELONTONG

FIELDTYPENULL
KODE_BRGCHAR(6)PRIMARY KEY
NAMA_BRGVARCHAR(30)NOT NULL
HARGA_BRGINT(8)NOT NULL
JUMLAHINT(6)NOT NULL

Ketikan perintah :

MySQL> create table BARANG
     -> (KODE_BRG CHAR(6) PRIMARY KEY,
     -> NAMA_BRG VARCHAR(30) NOT NULL,
     -> HARGA_BRG INT (8) NOT NULL,
     -> JUMLAH INT(6) NOT NULL);
 Query OK, 0 rows affected (0.390 sec)

4. Show Field Tabel Barang
Kemudian lihat format tabel barang dengan mengetikkan perintah :

MySQL [kios_kelontong]> desc barang;
 +-----------+-------------+------+-----+---------+-------+
 | Field     | Type        | Null | Key | Default | Extra |
 +-----------+-------------+------+-----+---------+-------+
 | KODE_BRG  | char(6)     | NO   | PRI | NULL    |       |
 | NAMA_BRG  | varchar(30) | NO   |     | NULL    |       |
 | HARGA_BRG | int(8)      | NO   |     | NULL    |       |
 | JUMLAH    | int(6)      | NO   |     | NULL    |       |
 +-----------+-------------+------+-----+---------+-------+
 4 rows in set (0.109 sec)

5. Insert Table

Untuk memasukkan nilai dari barang-barang yaitu dengan menggunakan perintah pada contoh berikut:

KODE_BRGNAMA_BRGHARGA_BRGJUMLAH
B001SANDAL JEPIT1600024
B002SAPU1500020
B003SABUN8000100
B004CHIKI5000100
B005KOREK API250050
MySQL > insert into BARANG
    -> VALUES
    -> ("B001","Sandal Jepit","16000","24"),
    -> ("B002","Sapu","15000","20"),
    -> ("B003","Sabun","8000","100"),
    -> ("B004","Chiki","5000","100"),
    -> ("B005","Korek Api","2500","50");

Query OK, 5 rows affected (0.148 sec)
Records: 5  Duplicates: 0  Warnings: 0

6. Show/Tampilkan Tabel

Kemudian cek tabel barang :
MySQL [kios_kelontong]> select * from BARANG;
 +----------+--------------+-----------+--------+
 | KODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |      5000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 +----------+--------------+-----------+--------+
 5 rows in set (0.001 sec)

7. Gantilah field “JUMLAH” menjadi “Stok” pada tabel “BARANG”

Cek terlebih dahulu detail field yang akan diubah pada tabel barang :

MySQL [kios_kelontong]> desc barang;
 +-----------+-------------+------+-----+---------+-------+
 | Field     | Type        | Null | Key | Default | Extra |
 +-----------+-------------+------+-----+---------+-------+
 | CODE_BRG  | char(6)     | NO   | PRI | NULL    |       |
 | NAMA_BRG  | varchar(30) | NO   |     | NULL    |       |
 | HARGA_BRG | int(8)      | NO   |     | NULL    |       |
 | JUMLAH    | int(6)      | NO   |     | NULL    |       |
 +-----------+-------------+------+-----+---------+-------+
 4 rows in set (0.003 sec)

Untuk mengubah field pada tabel gunakan perintah “CHANGE”

MySQL [kios_kelontong]> ALTER TABLE BARANG
     -> CHANGE JUMLAH STOK INT(6) NOT NULL;
 Query OK, 0 rows affected (0.139 sec)
 Records: 0  Duplicates: 0  Warnings: 0
 MySQL [kios_kelontong]> DESC BARANG;
 +-----------+-------------+------+-----+---------+-------+
 | Field     | Type        | Null | Key | Default | Extra |
 +-----------+-------------+------+-----+---------+-------+
 | CODE_BRG  | char(6)     | NO   | PRI | NULL    |       |
 | NAMA_BRG  | varchar(30) | NO   |     | NULL    |       |
 | HARGA_BRG | int(8)      | NO   |     | NULL    |       |
 | STOK      | int(6)      | NO   |     | NULL    |       |
 +-----------+-------------+------+-----+---------+-------+
 4 rows in set (0.003 sec)

8. Ubah nilai harga barang!

Sesuai dengan data yang ada pada table yang telah kita buat, misalnya harga Chiki yang tadinya 5000 kita ubah menjadai 10000.

 +----------+--------------+-----------+--------+
 | KODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |      5000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 +----------+--------------+-----------+--------+ 
MySQL [kios_kelontong]> update barang
     -> set HARGA_BRG='10000'
     -> where CODE_BRG='B004';
 Query OK, 1 row affected (0.197 sec)
 Rows matched: 1  Changed: 1  Warnings: 0
 MySQL [kios_kelontong]> select * from barang;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |     10000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 +----------+--------------+-----------+--------+
 5 rows in set (0.001 sec)

9. Tambah barang!

Misalnya akan kita tambah data barang yaitu :

Kode BarangNama BarangHarga
B006Pencil1000
B007Buku30000
B008Bolpoin35000

Untuk melakukan penambahan barang dapat dilakukan dengan perintah berikut:

MySQL [kios_kelontong]> insert into barang
     -> values
     -> ("B006","Pensil","1200","12"),
     -> ("B007","Penggaris","2000","12"),
     -> ("B008","Penghapus","500","12");
 Query OK, 3 rows affected (0.064 sec)
 Records: 3  Duplicates: 0  Warnings: 0
 ERROR: No query specified
 MySQL [kios_kelontong]> select*from barang;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |     10000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      1200 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 | B008     | Penghapus    |       500 |     12 |
 +----------+--------------+-----------+--------+
 8 rows in set (0.001 sec)

10. Hapus salah satu data pada tabel!

Misalnya kita akan menghapus “Penghapus pada tabel barang”

MySQL [kios_kelontong]> select*from barang;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |     10000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      1200 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 | B008     | Penghapus    |       500 |     12 |
 +----------+--------------+-----------+--------+
 8 rows in set (0.002 sec)
 MySQL [kios_kelontong]> delete from barang where CODE_BRG="B008";
 Query OK, 1 row affected (0.164 sec)
 MySQL [kios_kelontong]> select*from barang;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |     10000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      1200 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 +----------+--------------+-----------+--------+
 7 rows in set (0.000 sec)

11. Tampilkan kolom nama barang dan harga barang saja!

MySQL [kios_kelontong]> select NAMA_BRG,HARGA_BRG from barang;
 +--------------+-----------+
 | NAMA_BRG     | HARGA_BRG |
 +--------------+-----------+
 | Sandal Jepit |     16000 |
 | Sapu         |     15000 |
 | Sabun        |      8000 |
 | Chiki        |     10000 |
 | Korek Api    |      2500 |
 | Pensil       |      1200 |
 | Penggaris    |      2000 |
 +--------------+-----------+
 7 rows in set (0.001 sec)

Computer, Random

Symbol Operator MySQL

Operasi logika dalam MySQL :

NamaKeterangan
AND, &&Logika AND
BETWEEN … AND …Mengecek nilai dalam
BINARYMengubah nilai string ke biner string
&Operasi bit AND
~Membalik nilai bits
|Operasi bit OR
^Operasi bit  XOR
CASEOperator Case
DIVPembagian hasil nilai Integer
/Operator pembagian
<=>Operator loiga untuk karakter NULL
=Operator sama dengan
>=Lebih besar atau sama dengan
>Perator lebih besar
IS NOT NULLMenguji nilai NOT NULL
IS NOTMenguji  boolean benar/salah
IS NULLMengujin nilai NULL
ISMenguji  boolean benar/salah
<<Operator geser kekiri
<=Lebih kecil atau sama dengan
<Lebih kecil
LIKEPencocokan pola  tesks /mirip
Operator pengurangan
%operator modulus
NOT BETWEEN … AND …Mengecak yang  nilainya tidak sama dalam  range
!=, <>Operator tidak sama dengan
NOT LIKEPembanding yang tidak mirip/sama
NOT REGEXPPembandingan pola yang tidak sama dengan ekspresi
NOT, !Membalik nilai
||, ORLogika OR
+Operator penambahan
REGEXPPembandingan pola yang sama dengan ekspresi
>>Geser kekanan
RLIKESama dengan operator REGEXP
*Times operator
Jika didepan tanda bilangan nigatif
XORlogika XOR

Contoh Operasi Logika

  1. Logika Bukan (Not atau !) atau tidak sama dengan (!=)

Tampilkan semua barang kecuali yang memiliki kode barang B005!

MySQL [kios_kelontong]> select * from barang where CODE_BRG!="B005";
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |     10000 |    100 |
 | B006     | Pensil       |      1200 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 +----------+--------------+-----------+--------+
 6 rows in set (0.001 sec)

2. Operasi logika AND (&&)

MySQL [kios_kelontong]> select*from barang;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |     10000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      2000 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 +----------+--------------+-----------+--------+
 7 rows in set (0.002 sec)

Tampilkan semua barang yang harganya 2000 dan jumlahnya 12

MySQL [kios_kelontong]> select*from barang 
where HARGA_BRG="2000" && JUMLAH="12";
 +----------+-----------+-----------+--------+
 | CODE_BRG | NAMA_BRG  | HARGA_BRG | JUMLAH |
 +----------+-----------+-----------+--------+
 | B006     | Pensil    |      2000 |     12 |
 | B007     | Penggaris |      2000 |     12 |
 +----------+-----------+-----------+--------+
 2 rows in set (0.067 sec)

3. Operasi OR (||)

Tampilkan semua barang yang jumlahnya 12 atau 24 atau nama barang “Korek Api”

MySQL [kios_kelontong]> select*from barang;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B003     | Sabun        |      8000 |    100 |
 | B004     | Chiki        |     10000 |    100 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      2000 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 +----------+--------------+-----------+--------+
 7 rows in set (0.001 sec)
 MySQL [kios_kelontong]> select*from barang 
where JUMLAH="24"||JUMLAH="12"||NAMA_BRG="Korek Api";
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      2000 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 +----------+--------------+-----------+--------+
 4 rows in set (0.008 sec)

4. Between… and…

Tampilkan barang yang jumlanya diantara 10 s/d 50 :

MySQL [kios_kelontong]> select*from barang 
where JUMLAH between 10 and 50;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      2000 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 +----------+--------------+-----------+--------+
 5 rows in set (0.076 sec)

Juga dapat menggunakan perintah berikut :

5. Operasi <=, >=, <, >,

  MariaDB [kios_kelontong]> select*from barang
  where JUMLAH>=10 and JUMLAH<=50;
 +----------+--------------+-----------+--------+
 | CODE_BRG | NAMA_BRG     | HARGA_BRG | JUMLAH |
 +----------+--------------+-----------+--------+
 | B001     | Sandal Jepit |     16000 |     24 |
 | B002     | Sapu         |     15000 |     20 |
 | B005     | Korek Api    |      2500 |     50 |
 | B006     | Pensil       |      2000 |     12 |
 | B007     | Penggaris    |      2000 |     12 |
 +----------+--------------+-----------+--------+
  5 rows in set (0.058 sec)