OneszAccess

Blog Pribadi dan Sharing Sedikit Pengetahuan

Query MySQL untuk Manipulasi Tabel

Dalam database, kunci atau key berfungsi membantu dalam pengolahan data pada sebuah tabel (insert, update, delete). Jika data yang akan dimasukkan atau diubah tidak sesuai dengan kunci pada tersebut, maka data tersebut akan ditolak. Secara global, key-key dalam database dapat dibagi sebagai berikut;

  1. Primary Key
    Key adalah satu gabungan dari beberapa atribut yang dapat membedakan semua basis data (row) dalam tabel secara unik. Primary key sendiri adalah suatu atribut atau satu set minimal atribut yang tidak hanya mendefinisikan secara unik suatu kejadian spesifik tetapi juga dapat mewakili setiap kejadian dari suatu kejadian.
    Pengertian lainnya Primary key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel atau Primary Key adalah asalah satu atribut dari candidat key dapat dipilih menjadi primary key dengan tiga kriteria sebagai berikut:
    1) Key tersebut lebih natural untuk dijadikan acuan
    2) Key tersebut lebih sederhana
    3) Key tersebut cukup unique
    Agar data tidak kembar, maka hendaknya filed tersebut di deklarasikan dengan primary key atau kunci primer, kunci primer tersebut hanya dapat dibuat sekali, jadi kunci primer tersebut sebenarnya diciptakan untuk menjadi kolom utama sebuah tabel. Jika user memasukkan data kembar maka proses tersebut akan ditolak database, kondisi akan adanya data kembar ini dikenal dengan istilah rududansi data.
    Syarat utama untuk membuat kunci primer adalah kolom tersebut tidak boleh kosong atau diset dengan nilai NOT NULL.
    Syntax penulisan perintah kunci primer adalah:
    CREATE TABLE nama_table (
    Kolom_primer type(length) NOT NULL primary key,
    Kolom2 type(length)
    ……………………………………);
  2. Foreign KeyForeign Key adalah Sebuah kumpulan field dalam satu relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan primary key pada relasi yang kedua). Pengertian lain  Foreign key adalah satu attribute yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan, atau dengan kata lain foreign key merupakan sembarang atribut yang menunjuk kepada primary key pada tabel lain. Contoh syntax penulisan perintah foreign key adalah:
    CREATE TABLE mhs(
    nim CHAR(8) NOT NULL PRIMARY KEY,
    nama VARCHAR(50) NOT NULL,
    alamat VARCHAR(60) NOT NULL,
    id_matkul CHAR(5),
    FOREIGN KEY(id_matkul) REFERENCES matkul(id_matkul));
  3. Alternate Key (Unique Key)
    Key ini sebenarnya hampir sama dengan fungsi primary key yaitu berjenis unique key. Maksudnya adalah mungkin saja primary key yang dibuat pada suatu tabel adalah merupakan autonumber (angka yang bertambah terus-menerus ketika proses insert data, sehingga tidak dimungkinkan terdapat nilai yang sama), dikarenakan tidak diperbolehkan ada dua primary key maka dapat dibantu oleh alternate key ini sebagai penanda unique-nya sebuah record dengan record lain. Dalam sebuah tabel diperbolehkan lebih dari satu alternate key.
    Primary Key atau Unique Key merupakan kunci yang secara unik mengidentifikasi baris pada tabel. Primary Key atau Unique Key dapat diterapkan pada satu atau lebih field. Apabila primary key atau unique key diterapkan pada satu atau lebih field maka pada field tersebut tidak boleh bernilai sama untuk seluruh baris pada tabel. Kemudian yang membedakan primary key dan unique key adalah setiap kita memberikan constraint primary key pada field maka constraint NOT NULL akan diberikan pada field tersebut secara otomatis, sedangkan pada unique key tidak.
    Syntax penulisan perintah kolom unique adalah:
    Create table nama_table (
    Kolom_unique type(length) not null unique,
    Kolom_2 type (length)
    ……………………………);
  4. Non Unique Key
    Non Unique Key adalah Key yang bisa lebih dari satu dalam sebuah tabel dan tidak mendefinisikan unique antar record di dalam tabel tersabut. Key ini biasa digunakan untuk membantu proses pencarian (select) data pada sebuah kolom yang sering digunakan untuk proses tersebut.
  5. Auto Increment
    Metode auto increment merupakan sebuah kolom yang dapat merekam data dan melakukan penambahan data secara otomatis, penambahan disini dimaksud penambahan yang sifatnya berurutan dari kecil ke besar. Auto increment hanya dapat dibuat apabila data berupa angka atau integer (termasuk long int, tiny int) selain itu tidak dapat menggunakan auto increment. Metode penambahan otomatis ini biasanya digunakan untuk mendefinisikan sebuah kode berupa kunci utama seperti nomor record atau nomor urut pada baris tabel.
    Penggunaan bentu Auto Increment ini memiliki syarat-syarat khusus yaitu data harus berupa data integer dan kunci primer, selain itu hanya diizinkan untuk membentuk sebuah kunci dengan kemampuan auto increment dalam satu tabel.
    Syntax penulisan perintah kolom unique adalah:
    Create table nama_table (
    Kolom_primer type(length) not null auto_increment,
    Kolom_2 type(length)
    ……………………………………………);
  6. Unsigned Zerofill
    Pada auto increment data yang masuk secara otomatis disesuaikan dengan urutan data yang masuk ke dalam tabel, seperti 1,2,3, dst. Data tersebut merupakan data tunggal , bagaimana jika seseorang ingin membuat sebuah angka seperti 001, 002, dst. Unsigned Zerofill dapat menyelesaikan masalah tersebut, bentuk penulisan angka akan disesuaikan dengan panjang record pada kolom kunci yang ada. Pemodelan kunci primer tersebut dapat diciptakan dengan menambahkan fungsi unsigned zerofill sebelum fungsi auto_increment, syntaxnya adalah:
    Create table nama_table (
    Kolom_primer type(length) unsigned zerofill not null auto_increment,
    Kolom_2 type(length)
    ……………………………………………);
  7. Menentukan Nilai Default
    Situasi bisa saja berubah jika menginginkan sebuah kolom untuk menggunakan nilai default ketika memasukkan atau mengupdate suatu baris, jika tidak ada nilai apapun yang disediakan. Hal ini sangat berguna ketika sebuah nilai seringkali berulang-ulang dalam sebuah kolom atau merupakan nilai yang paling sering digunakan dalam kolom tersebut. MySQL mengijinkan user untuk memberikan nilai default melalui penggunaan klausa DEFAULT. Misal, definisi tabel berikut menyertakan sebuah kolom yang didefinisikan dengan nilai default ‘Kosong’:
    CREATE TABLE Biografi
    (
    IDPenulis SMALLINT UNSIGNED NOT NULL,
    TahunLahir YEAR NOT NULL,
    KotaKelahiran VARCHAR(40) NOT NULL DEFAULT ‘Kosong’
    );

Update, Delete, Alter, Drop, Desc

  1. UPDATE
    Fungsi UPDATE digunakan untuk merubah isi data field dari sebuah record.
    Query :
    UPDATE nama_tabel SET nama_field = ‘value’ WHERE nama_field = ‘value’
  2. DELETE
    Fungsi DELETE digunakan untuk menghapus sebuah record dalam sebuah database.
    Query :
    DELETE nama_tabel WHERE nama_field = ‘value’
  3. ALTER
    Perintah ALTER berfungsi untuk mengubah struktur dari sebuah tabel. Bisa berarti menambahkan field baru, merubah field yang sudah ada, maupun menghapus field yang sudah ada.
    Query :
    ALTER TABLE nama_tabel ADD new_field tipedata
    ALTER TABLE nama_tabel CHANGE field_lama field_baru tipedata
    ALTER TABLE nama_tabel DROP nama_field
  4. DROP
    Perintah DROP digunakan untuk menghapus struktur dalam database, termasuk menghapus database dan tabel.
    Query :
    DROP DATABASE nama_database;
    DROP TABLE nama_tabel;
  5. DESC
    Perintah DESC digunakan untuk melihat struktur/metadata dari sebuah tabel.
    Query :
    DESC nama_table;
Langsung saja, lihat contoh dibawah ini:


mysql> create database penjualan;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| kpu                |
| mysql              |
| penjualan          |
| performance_schema |
| test               |
+--------------------+
10 rows in set (0.00 sec)

mysql> use penjualan;
Database changed

mysql> create table produk
    -> (
    -> Kode_Pr int(3) unsigned zerofill auto_increment primary key,
    -> Nama_Pr varchar(19) unique not null,
    -> Type_Pr varchar(19) not null,
    -> Status varchar(9) default 'ada' not null,
    -> Harga int(19) not null
    -> );
Query OK, 0 rows affected (0.33 sec)

mysql> desc produk;
+---------+--------------------------+------+-----+---------+----------------+
| Field   | Type                     | Null | Key | Default | Extra          |
+---------+--------------------------+------+-----+---------+----------------+
| Kode_Pr | int(3) unsigned zerofill | NO   | PRI | NULL    | auto_increment |
| Nama_Pr | varchar(19)              | NO   | UNI | NULL    |                |
| Type_Pr | varchar(19)              | NO   |     | NULL    |                |
| Status  | varchar(9)               | NO   |     | ada     |                |
| Harga   | int(19)                  | NO   |     | NULL    |                |
+---------+--------------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

mysql> insert into produk
    -> (Kode_Pr, Nama_Pr, Type_Pr, Harga) values
    -> ('null','Processor','Intel Core i7','2000000'),
    -> ('null','Hardisk','Seagate','500000'),
    -> ('null','RAM','Visipro','250000');
Query OK, 3 rows affected, 3 warnings (0.32 sec)
Records: 3  Duplicates: 0  Warnings: 3

mysql> insert into produk values
    -> ('null','VGA Card','NVDIA','tidak','900000'),
    -> ('null','Mainboard','PC Chips','tidak','750000');
Query OK, 2 rows affected, 2 warnings (0.31 sec)
Records: 2  Duplicates: 0  Warnings: 2


mysql> select * from produk;
+---------+-----------+---------------+--------+---------+
| Kode_Pr | Nama_Pr   | Type_Pr       | Status | Harga   |
+---------+-----------+---------------+--------+---------+
|     001 | Processor | Intel Core i7 | ada    | 2000000 |
|     002 | Hardisk   | Seagate       | ada    |  500000 |
|     003 | RAM       | Visipro       | ada    |  250000 |
|     004 | VGA Card  | NVDIA         | tidak  |  900000 |
|     005 | Mainboard | PC Chips      | tidak  |  750000 |
+---------+-----------+---------------+--------+---------+
5 rows in set (0.00 sec)

mysql> alter table produk
    -> change Type_Pr Merek_Pr varchar(19) not null;
Query OK, 5 rows affected (0.18 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from produk;
+---------+-----------+---------------+--------+---------+
| Kode_Pr | Nama_Pr   | Merek_Pr      | Status | Harga   |
+---------+-----------+---------------+--------+---------+
|     001 | Processor | Intel Core i7 | ada    | 2000000 |
|     002 | Hardisk   | Seagate       | ada    |  500000 |
|     003 | RAM       | Visipro       | ada    |  250000 |
|     004 | VGA Card  | NVDIA         | tidak  |  900000 |
|     005 | Mainboard | PC Chips      | tidak  |  750000 |
+---------+-----------+---------------+--------+---------+
5 rows in set (0.00 sec)

mysql> alter table produk
    -> add Profit int(19) not null
    -> after Harga;
Query OK, 5 rows affected (0.15 sec)
Records: 5  Duplicates: 0  Warnings: 0
mysql> desc produk;
+----------+--------------------------+------+-----+---------+----------------+
| Field    | Type                     | Null | Key | Default | Extra          |
+----------+--------------------------+------+-----+---------+----------------+
| Kode_Pr  | int(3) unsigned zerofill | NO   | PRI | NULL    | auto_increment |
| Nama_Pr  | varchar(19)              | NO   | UNI | NULL    |                |
| Merek_Pr | varchar(19)              | NO   |     | NULL    |                |
| Status   | varchar(9)               | NO   |     | ada     |                |
| Harga    | int(19)                  | NO   |     | NULL    |                |
| Profit   | int(19)                  | NO   |     | NULL    |                |
+----------+--------------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)

mysql> alter table produk
    -> drop profit;
Query OK, 5 rows affected (0.14 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> desc produk;
+----------+--------------------------+------+-----+---------+----------------+
| Field    | Type                     | Null | Key | Default | Extra          |
+----------+--------------------------+------+-----+---------+----------------+
| Kode_Pr  | int(3) unsigned zerofill | NO   | PRI | NULL    | auto_increment |
| Nama_Pr  | varchar(19)              | NO   | UNI | NULL    |                |
| Merek_Pr | varchar(19)              | NO   |     | NULL    |                |
| Status   | varchar(9)               | NO   |     | ada     |                |
| Harga    | int(19)                  | NO   |     | NULL    |                |
+----------+--------------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

mysql> alter table produk
    -> alter Status drop default;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc produk;
+----------+--------------------------+------+-----+---------+----------------+
| Field    | Type                     | Null | Key | Default | Extra          |
+----------+--------------------------+------+-----+---------+----------------+
| Kode_Pr  | int(3) unsigned zerofill | NO   | PRI | NULL    | auto_increment |
| Nama_Pr  | varchar(19)              | NO   | UNI | NULL    |                |
| Merek_Pr | varchar(19)              | YES  |     | NULL    |                |
| Status   | varchar(9)               | NO   |     | NULL    |                |
| Harga    | int(19)                  | NO   |     | NULL    |                |
+----------+--------------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

mysql> alter table produk
    -> alter Status set default 'ada';
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc produk;
+----------+--------------------------+------+-----+---------+----------------+
| Field    | Type                     | Null | Key | Default | Extra          |
+----------+--------------------------+------+-----+---------+----------------+
| Kode_Pr  | int(3) unsigned zerofill | NO   | PRI | NULL    | auto_increment |
| Nama_Pr  | varchar(19)              | NO   | UNI | NULL    |                |
| Merek_Pr | varchar(19)              | YES  |     | NULL    |                |
| Status   | varchar(9)               | NO   |     | ada     |                |
| Harga    | int(19)                  | NO   |     | NULL    |                |
+----------+--------------------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

Primary key dimaksudkan untuk menjadi kolom utama sebuah tabel yang isinya tidak boleh sama dengan yang lainnya, jika terjadi rududansi atau penggandaan data maka proses tersebut akan ditolak oleh database, dan kolom ini tidak boleh kosong (not null).

Unique Key ini sebenarnya hampir sama dengan fungsi primary key, maksudnya adalah apabila primary key yang dibuat pada suatu tabel adalah merupakan autonumber (angka yang bertambah terus-menerus ketika proses insert data, sehingga tidak dimungkinkan terdapat nilai yang sama), dikarenakan tidak diperbolehkan ada dua primary key maka dapat dibantu oleh unique key ini sebagai penanda unique-nya sebuah record dengan record lain. Dalam sebuah tabel diperbolehkan lebih dari satu unique key.

auto_increment merupakan atribut tipe data numeric yang memungkinkan kolom memiliki nilai yang berurutan dan secara otomatis dihasilkan oleh MySQL sendiri tanpa harus didefinisikan eksplisit dalam perintah MySQL.

Perintah alter table produk
    -> change Type_Pr Merek_Pr varchar(19) not null; merupakan perintah yang digunakan untuk memanipulasi tabel yaitu mengubah nama field / kolom pada tabel.
mysql> alter table produk
    -> add Profit int(19) not null
    -> after Harga; 
Yaitu perintah untuk penambahan field bernama Profit pada tabel yang diletakkan setelah filed Harga. Sedangkan perintah mysql> alter table produk -> drop profit; merupakan perintah untuk menghapus field pada tabel.
Perintah  mysql> alter table produk -> alter Status drop default; merupakan perintah untuk menghapus nilai / isi default yang telah ditetapkan sebelumnya
Dan perintah  mysql> alter table produk -> alter Status set default 'ada'; merupakan perintah untuk menambah isi / nilai default pada suatu field yang telah dibuat sebelumnya.

Semoga bermanfaat.
HAVE FUN.
2 Komentar untuk "Query MySQL untuk Manipulasi Tabel"

terimakasih kak blognya sngat membantu :v .

nama kak ulwan masuk daftar pustaka.. wkwk selamat :v

hohoho,,, ntar dapat nilai 100 di laporan kalau pakai blog ini jadi daftar pustakanya haha :v :p

Kami Menerima Saran dan Kritikan yang bersifat MEMBANGUN
Tinggalkan Komentar anda disini...

 
Copyright © 2014 OneszAccess - All Rights Reserved
Template By Catatan Info