Showing posts with label MySQL. Show all posts
Showing posts with label MySQL. Show all posts

Saturday, July 25, 2020

Sql Insert

SQL Insert dipakai untuk menambah data gres ke sebuah tabel. Terdapat beberapa cara untuk menuliskan sintaks insert. Kita akan membahasnya disini. Sebagai pola masalah kita akan menggunakan tabel berjulukan `kategori` yang ada dalam database `latihan` dengan struktur sebagai berikut:


Basic

Cara paling sederhana untuk input satu baris gres ialah menggunakan sintaks INSERT INTO dan menuliskan masing-masing nilai untuk semua kolom yang ada pada tabel tersebut. Jika tabel ada 10 kolom maka seluruhnya mesti diisi nilainya.

INSERT INTO kategori
VALUES ('K003', 'Berita Media Cetak', '2010-05-14 15:15:32', 'rani',
'2019-12-11 15:15:32', 'rani')

Kolom modifieddate dan modifiedby merupakan log untuk pergeseran data yang boleh bernilai NULL. Karena ketika pertama kali insert data tercatat waktu dan user pembuatnya. Contoh Insert dengan nilai NULL yaitu sebagai berikut:

INSERT INTO klasifikasi
VALUES ('K003''Berita Media Cetak''2010-05-14 15:15:32',
'rani'NULLNULL)

Dengan Menyebutkan Nama Field yang akan Diinput Nilai

Menyebutkan nama field yang mau diisi nilai pada query insert sungguh diusulkan alasannya:

  • Tidak harus mengingat urutan kolom mirip dalam struktur tabel.
  • Tidak perlu memilih nilai untuk semua kolom, hanya yang diperlukan saja.
  • Jika ada banyak kolom, lebih mudah untuk mencocokkan nilai dengan kolom yang dimaksud. 
  • Sintaks INSERT tanpa daftar kolom akan menjadi tidak valid (error) jikalau ada perubahan kolom mirip ditambah atau dihapus dari tabel. Sehingga sesudah kolom disertakan atau dihapus dari tabel. Sintaks mesti diganti lagi sesuai urutan kolom yang gres supaya berfungsi kembali.

INSERT INTO kategori (kodekategori,namakategori,createddate,createdby)
VALUES ('K003''Berita Media Cetak''2010-05-14 15:15:32''rani')

Menggunakan Sintaks SET

Meskipun jarang digunakan namun ternyata INSERT MySQL mampu dikerjakan dengan cara mirip ini. Kelebihan menggunakan SET yakni membuat lebih mudah membaca query ketika kolom dalam table sungguh banyak. Tetapi cara ini hanya mampu menginput data 1 baris saja.

INSERT INTO klasifikasi SET
  kodekategori ='K003',
  namakategori='Berita Media Cetak',
  createddate='2010-05-14 15:15:32',
  createdby='rani';

Insert Banyak Baris (Rows) Sekaligus

Insert data dapay dijalankan eksklusif beberapa baris dalam satu sintaks INSERT dengan memisahkan set nilai dalam beberapa tanda kurung.

INSERT INTO kategori
VALUES ('K001', 'Fiksi', '2010-05-14 15:15:31', 'rani', NULLNULL),
('K002', 'Non Fiksi', '2010-05-14 15:15:32''rani'NULLNULL),
('K003', 'Berita Media Cetak', '2010-05-14 15:15:33''rani'NULLNULL);

atau

INSERT INTO kategori(kodekategori,namakategori,createddate,createdby)
VALUES ('K001''Fiksi''2010-05-14 15:15:31''rani'),
('K002''Non Fiksi''2010-05-14 15:15:32''rani'),
('K003''Berita Media Cetak''2010-05-14 15:15:33''rani');

Insert dari Hasil Query

Insert data dari query atau sintaks SELECT juga mampu dilaksanakan, tentukan jumlah dan urutan kolom yang dihasilkan dari SELECT sesuai dengan kolom tabel atau list kolom yang terdapat dalam sintaks INSERT.

Sebagai teladan kita akan mengambil data yang ada di tabel kategori_beta untuk disimpan di tabel kategori.


INSERT INTO klasifikasi
SELECT kodekategori, namakategori, createddate, createdby, 
modifieddate, modifiedby FROM kategori_beta

atau

INSERT INTO kategori(kodekategori,namakategori,createddate,createdby)
SELECT kodekategori, namakategori, createddate, createdby FROM kategori_beta

Mencegah Error Duplikat Data dengan INSERT IGNORE

Sintaks ini mampu digunakan untuk menanggulangi error data unik/primary key jikalau kita ingin mengabaikan proses INSERT jikalau data sudah ada.
Kita lihat pola data sebelum di insert:


Query yang dipakai:

INSERT IGNORE INTO kategori 
(kodekategori,namakategori,createddate,createdby, modifieddate,modifiedby)
VALUES ('K003', 'Berita Media Terikini', '2010-05-14 15:15:32'
'rani', '2019-12-14 15:15:32', 'rani')

Setelah INSERT IGNORE karena primary key telah digunakan sebelumnya, maka tidak ada pergeseran:


Namun akan berlaku INSERT biasa jika tidak didapatkan primary key atau unique constrain yang sama.

Mencegah Error Duplikat Data dengan REPLACE INTO

Berbeda dengan Insert Ignore, sintaks ini akan menghapus baris data yang sudah ada dan menggantikan dengan yang baru. Kita akan menjajal mengubah data sebelum nya dengan PK K003 secara keseluruhan sehingga terlihat pergeseran masing-masing kolom.

REPLACE INTO klasifikasi 
(kodekategori,namakategori,createddate,createdby, modifieddate,modifiedby)
VALUES ('K003''Berita Media Terikini''2019-012-14 11:11:11'
'irsan''2019-12-15 05:10:55''irsan')

Hasilnya seluruh nilai baris tergantikan (kecuali primary key)


Query akan berlaku mirip INSERT biasa jika tidak ditemukan primary key atau unique constrain yang serupa.

Mencegah Error Duplikat Data dengan INSERT ... ON DUPLICATE KEY UPDATE

Ketika Insert dilakukan dan data unik sudah ada kita cuma ingin update beberapa kolom tertentu saja, kita bisa memakai sintaks ON DUPLICATE KEY ini. Tidak seperti REPLACE INTO yang mengubah sepenuhnya.

Status nilai data terakhir sebelum mengeksekusi on duplicate key update:


Query dibuat dengan nilai berlainan seluruhnya dengan data yang ada dalam baris bersangkutan (kecuali primary key) untuk melihat imbas update berlaku pada kolom mana saja.
Disini kalau terjadi duplikat maka hanya akan mengubah kolom namakategorimodifieddate dan modifiedby saja.

INSERT INTO kategori 
(kodekategori,namakategori,createddate,createdby, modifieddate,modifiedby)
VALUES ('K003', 'Berita Media Terpercaya', '2018-11-14 22:22:22', 
'ibenk', '2019-11-15 15:12:11', 'ibenk') 
ON DUPLICATE KEY UPDATE namakategori = VALUES(namakategori), 
modifieddate = VALUES(modifieddate), modifiedby = VALUES(modifiedby);

Hasilnya:


Jika terjadi duplikasi maka query cuma akan mengupdate data yang didefinisikan di klausa ON DUPLICATE KEY UPDATE

Sementara akan berlaku INSERT biasa jika tidak ditemukan primary key atau unique constrain yang serupa.

Lihat tutorial selengkap nya pada link di bawah ini:

Tutorial MySQL



Sumber http://rani-irsan.blogspot.com

Sql Update

SQL Update digunakan untuk mengubah data tabel yang sudah ada di sebuah tabel database.
Format:
UPDATE namatabel
SET namafield1= nilaifield1, namafield2= nilaifield2,...
WHERE standar

Kriteria where aturan nya sama seperti where pada query select. Yang paling sering digunakan yakni
WHERE namafieldprimarykey = nilainamafieldprimarykey

Sebagai acuan masalah kita akan memakai tabel bernama `kategori` yang ada dalam database `latihan` dengan struktur sebagai berikut:


Update Nilai Semua Baris dalam Tabel

!!! WARNING !!!
Jangan lupa menambahkan WHERE dalam query update! Kecuali jika kamu bener2 ingin seluruh data yang ada tabel bersangkutan berubah ke nilai yang sama.
Contoh keadaan tabel sebelum update:

Kita akan update modifieddate = tanggal/waktu hari ini dan modifiedby = 'rani' untuk semua baris.


Sintaks SQL: (again, hati2 alasannya adalah ini mengganti seluruh baris)
UPDATE `kategori` SET `modifieddate` = now(), `modifiedby` = 'rani'

Nilai kolom yang diubah berlaku untuk seluruh baris:

Nilai 2019-12-16 10:21:34 adalah waktu dikala rani execute query ini.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Update Nilai dengan Kriteria Tertentu (Primary Key)

Query ini umumnya digunakan untuk update dalam CRUD standard, menggunakan primary key sebagai tolok ukur. Untuk contoh kita lanjut dari kondisi data sebelum nya (di atas).
Query yang digunakan:

UPDATE kategori SET namakategori = 'Media Cetak', modifieddate = now(), modifiedby = 'rani' WHERE kodekategori = 'K003'

Hasilnya:

Update Nilai dengan Hasil Penggabungan String dan Kriteria Like

Lanjutan yah, masih menggunakan sample di atas. Disini kita akan mempelajari update kolom dengan penggabungan teks (string) dan bagaimana memakai tolok ukur kolom yang memuat kata tertentu dengan sintaks (LIKE). Contoh perkara berikut nya yaitu kalau kita ingin menambahkan kata 'Buku ' di depan nilai kolom namakategori yang mengandung kata 'fiksi'.

UPDATE kategori 
SET namakategori = CONCAT('Buku ', namakategori) 
WHERE namakategori LIKE '%Fiksi%'

Hasilnya:


Update Nilai dengan Formula dan Kriteria Kategori Tertentu
Berikutnya ialah update dengan nilai hasil formula dan kriterianya klasifikasi tertentu. Disini aku masih menggunakan database latihan tetapi tabel yang digunakan ialah tabel buku. Dengan keadaan data permulaan selaku berikut:


Query pertama kita akan mengupdate harga buku dengan pemanis harga 1000 tiap buku dengan kategori K001.

UPDATE buku SET harga = harga + 1000 WHERE kodekategori = 'K001'

Hasilnya:

Query selanjutnya merupakan acuan bila kita ingin menaikan harga sebesar 10% dari harga dikala ini untuk kodekategori K002.

UPDATE buku 
SET harga = harga + (0.1 * harga) 
WHERE kodekategori = 'K002'

Hasilnya:

Kita juga mampu mengambil nilai update dari tabel lain, contohnya ada pada artikel berikut:


Semoga uraian dan pola tentang UPDATE ini mampu berfaedah, klo temen-temen coder ada pertanyaan silahkan di kolom komentar ya!


Sumber http://rani-irsan.blogspot.com

Friday, July 24, 2020

Sql Delete

SQL Delete dipakai untuk menghapus baris data tabel yang telah ada di sebuah tabel database.
Format:
DELETE FROM namatabel WHERE tolok ukur

Kriteria where hukum nya sama seperti where pada query select. Yang paling kerap digunakan ialah
WHERE namafieldprimarykey = nilainamafieldprimarykey

!!!Warning!!!
Jangan lupa untuk menyertakan patokan atau klausa WHERE meskipun bersifat opsional, kecuali kau memang bermaksud menghapus seluruh data di tabel.

Aturan penulisan klausa WHERE di query delete tidak berlainan dengan SELECT dan UPDATE. Query akan menghapus baris data yang cocok dengan kriteria.

Berikut pola penggunaan SQL Delete
  • ­ delete from produk where kodeproduk = 'K00202003'
  • ­delete from where kodesub = 'K00301'
  • ­delete from klasifikasi where kodekategori = 'K003'

Sumber http://rani-irsan.blogspot.com

Mysql: Sql Dml Dan Ddl

Sebelum menyelam lebih jauh dengan MySQL ada baiknya kita mengenal bahasa SQL yang dipakai dalam MySQL itu sendiri SQL mampu dibagi menjadi 2 bagian ialah:



Data Manipulation Language (DML), merupakan sintaks/perintah SQL yang digunakan dalam mengambil data dan mengolah/memodifikasi data. Yang tergolong DML diantaranya:
­SELECT– menampilkan data yang ada di database
UPDATE– mengganti data yang ada di database
­DELETE – meniadakan data yang ada di database
­INSERT INTO – memperbesar baris data baru ke database

Data Definition Language (DDL), merupakan sintaks/perintah SQL yang digunakan untuk membuat dan mengubah struktur objek database. Yang termasuk DDL diantaranya:
­CREATE DATABASE - membuat database baru
CREATE TABLE - menciptakan tabel gres
­ALTER TABLE – mengganti struktur tabel
­DROP TABLE – meniadakan tabel
­CREATE INDEX - menciptakan index (search key)




Sumber http://rani-irsan.blogspot.com

Thursday, July 23, 2020

Mysql: Mengosongkan Tabel Dengan Truncate

Kita mampu menggunakan sintaks TRUNCATE untuk mengosongkan seluruh isi tabel. Biasanya dilakukan dikala masih tahap pengerjaan aplikasi dan awal implementasi. Akan sungguh jarang sekali dikerjakan untuk aplikasi yang sudah berlangsung.

!!! WARNING !!!
Dan sekali lagi Rani ingatkan....
Mengeksekusi ini akan membuat isi tabel benar-benar kosong dan tidak dapat dikembalikan. 

Format Query:
TRUNCATE TABLE table_name;

atau mampu juga tidak menyertakan TABLE alasannya adalah bersifat opsional
TRUNCATE table_name;

Contoh kita akan meniadakan seluruh isi tabel yang berjulukan kategori_beta, dengan kondisi awal seperti gambar di bawah:


Query:
TRUNCATE kategori_beta

Hasilnya, kalau kita query select memakai phpmyadmin:




Sumber http://rani-irsan.blogspot.com

Wednesday, July 22, 2020

Mysql: Duplikasi Tabel Dengan Create Table ... As Select / Create Table... Like

CREATE TABLE ... AS SELECT statement

Kita mampu menduplikasi atau clone isi/konten dari suatu tabel dari hasil query dengan sintaks CREATE TABLE ... AS SELECT statement.

CREATE TABLE tabel_baru AS SELECT * FROM tabel_asli;

Hati-hati dalam menduplikasi data yang besar, karena menyantap waktu yang lama dan membebani database server.

Sintaks CREATE TABLE ... AS SELECT statement cuma akan menciptakan bentuk dasar bagian dari tabel seperti nilai NULL atau nilai default. Tapi tidak menciptakan index atau auto_increments.



CREATE TABLE... LIKE

Berbeda dengan sintaks pertama, CREATE TABLE... LIKE ini akan menduplikasi secara keseluruhan struktur tabel.

CREATE TABLE tabel_baru LIKE tabel_asli;

Tapi tidak mengcopy datanya. Untuk duplikasi datanya juga, kita butuh aksesori INSERT INTO .... SELECT.

INSERT INTO new_table SELECT * FROM original_table;


Sumber http://rani-irsan.blogspot.com

Mysql: Memperbesar Kolom Dalam Tabel Dengan Alter Table ... Add

Sebagai teladan kita akan menggunakan tabel tbl_Category dengan struktur permulaan sebagai berikut:

ColumnTypeNullDefaultCommentsMIME
idcategoryint(11)No
categoryname     varchar(50)No 
datemodifieddatetimeYes NULL 



Menambah Kolom Default di Akhir Tabel

Sintaks: memperbesar kolom bernama createdby dengan tipe data varchar(50).

ALTER TABLE tbl_Category ADD createdby VARCHAR(50);

Sebelum:



Sesudah:




Menambah Kolom dengan Menentukan Posisi

Sintaks: menambah kolom createdby di awal tabel (paling kiri).

ALTER TABLE tbl_Category ADD createdby VARCHAR(50)FIRST;

Sebelum:



Sesudah:


Sintaks: memperbesar kolom createdby di antara kolom categoryname dan datemodified.

ALTER TABLE tbl_Category ADD createdby VARCHAR(50)AFTER categoryname;

Sebelum:


Sesudah:


Sumber http://rani-irsan.blogspot.com