Selasa, 21 Februari 2023

SQL INSERT INTO SELECT Statement

The SQL INSERT INTO SELECT Statement

The INSERT INTO SELECT statement copies data from one table and inserts it into another table.

The INSERT INTO SELECT statement requires that the data types in source and target tables match.

Note: The existing records in the target table are unaffected.

INSERT INTO SELECT Syntax

Copy all columns from one table to another table:

INSERT INTO table2
SELECT * FROM table1
WHERE condition;

Copy only some columns from one table into another table:

INSERT INTO table2 (column1column2column3, ...)
SELECT column1column2column3, ...
FROM table1
WHERE condition;
sumber : https://www.w3schools.com/sql/sql_insert_into_select.asp

Selasa, 14 Februari 2023

Kelebihan Kekurangan InnoDB dan MYISAM

Saat kita membuat sebuah tabel pada database MySQL kita sering sekali mengabaikan engine yang kita gunakan. Kita jarang memperhatikan engine karena kita terbiasa create tabel menggunakan tool, artinya tidak menggunakan query. Ketika kita membangun sebuah aplikasi yang besar atau komplek, tentu engine dalam database ini harus kita perhatikan. Terlebih jika tabel-tabel yang kita rancang memiliki banyak relasi.

Posting kali ini kita akan belajar bersama mengenai engine pada database MySQL, yakni Storage Engine utama penyimpanan tabel database MySQL adalah InnoDB dan MyISAM. Perbedaan dari kedua sorage engine ini adalah.

– MYISAM tidak memiliki transaksi, semetara InnoDB memiliki Transaksi.

– MYISAM tidak memiliki FK, sedangkan InnoDB memiliki FK.

– MYISAM menerapkan metode penguncian tiap tabel, sementara InnoDB metode pengunciannya tiap baris/row.

– Sistem Recovery data lebih bagus InnoDB dari pada MYISAM.

 

Berikut kelebihan dan kekurangan dari storage engine tersebut.

INNODB

Kelebihan Storage Engine ini adalah:

– Integritas data sangat baik dan optimal.

– Proses CRUD tabel lebih cepat, karena metode pengunciannya perbaris.

Kekurangan Storage Engine ini adalah:

– Desain model relasi membutuhkan waktu yang lama.

– Membutuhkan sumber daya sistem yang besar seperti RAM.

-Pengindekan text tidak penuh.

MYISAM

Kelebihan Storage Engine ini adalah:

– Lebih mudah dan sederhana untuk dirancang.

– Sangat cocok digunakan untuk pemula / newbie.

– Proses eksekusi data cepat karena dengan struktur yang sederhana.

– Pengindekan text kengkap.

Kekurangan Storage Engine ini adalah:

– Integritas data jelek / buruk.

– Tidak support untuk proses transaksi.

– Proses CRUD sedikit lambat karena pengunciannya per tabel.


sumber : https://itoez.com/kelebihan-kekurangan-innodb-dan-myisam/

Kamis, 22 Desember 2022

Menambahkan SCROLL pada tampilan tabel dengan div

 Untuk tabel yang banyak kolom, dibutuhkan scroll untuk melihat kolom yang tidak terlihat..

cukup menambahkan html div diatas tabel tersebut.


<div style="overflow-x:auto;">

<table class="table table-bordered"cellpadding=3 cellspacing=1 bgcolor=black width="100%" align=center>
 <tr bgcolor="#3399FF" align=center>
    <td align=center class="boardsection" width="1%" rowspan="3"><b>No</b></td>
    <td align=center class="boardsection" width="40%" rowspan="3"><b>Unit Kerja</b></td>
   
    <td align=center class="boardsection" width="5%" rowspan="3"><b>Eselon </b></td>  
    <td align=center class="boardsection" width="3%" rowspan="3"><b>Bezetting Pejabat Eselon</b></td>  
    <td align=center class="boardsection" width="3%" colspan="2"><b>Kebutuhan ASN</b></td>
    <td align=center class="boardsection" width="3%" colspan="2"><b>Bezetting ASN</b></td>  
    <td align=center class="boardsection" width="3%" rowspan="3"><b>Kekurangan/ Kelebihan</b></td>  
    <td align=center class="boardsection" width="3%" colspan="10"><b>PROYEKSI</b></td>
</tr>
<tr bgcolor="#3399FF" align=center>
    <td align=center class="boardsection" width="3%" rowspan="2"><b>Fungsional<br> Umum</b></td>
    <td align=center class="boardsection" width="3%" rowspan="2"><b>Fungsional <br>Khusus</b></td>
    <td align=center class="boardsection" width="3%" rowspan="2"><b>Fungsional<br> Umum</b></td>
    <td align=center class="boardsection" width="3%" rowspan="2"><b>Fungsional <br>Khusus</b></td>
    <td align=center class="boardsection" width="3%" colspan="5"><b>Pegawai yang akan Pensiun</b></td>
    <td align=center class="boardsection" width="3%" colspan="5"><b>Pegawai yang dibutuhkan</b></td>
</tr>
<tr bgcolor="#3399FF" align=center>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_1;?></b></td>  
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_2;?></b></td>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_3;?></b></td>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_4;?></b></td>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_5;?></b></td>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_1;?></b></td>  
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_2;?></b></td>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_3;?></b></td>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_4;?></b></td>
    <td align=center class="boardsection" width="3%" ><b><?php echo $tahun_5;?></b></td>
</tr>

<div>

Senin, 12 Desember 2022

Cara mengambil tanggal sekarang di javacript

 

<script>

        var d = new Date();
        var tglnow= d.getFullYear()+'-'+d.getMonth()+'-'+d.getDate();
        var t = new Date('2022-12-30');
        var tglyad= t.getFullYear()+'-'+t.getMonth()+'-'+t.getDate();
        var tglPertama  = Date.parse(tglyad);
        var tglKedua    = Date.parse(tglnow);
         var selisih     = (tglPertama - tglKedua) / miliday;  
                // alert(selisih);
                if (selisih<=0){  
                     return 'background-color:#FFD4D0;';  
                } else if ((selisih<15 && selisih>0 )){  
                     return 'background-color:#FCF9C1;';  
                }
                else if (selisih>=15){  
                     return 'background-color:#ECFBC8;';  
                }
</script>

Kamis, 24 November 2022

Cara merubah/mengupdate tanggal format dd-mm-YYYY menjadi format YYYY-mm-dd

 Pengalaman ini terkait update data tahun pengadaan untuk barang aset daerah. pencatatan awal hanya ditulis tahun saja dan atau format nya Indonesia, yaitu dd-mm-yyyy atau dd/mm/yyyy. sehingga ahal ini mengakibatkan proses transaksi pada aset akan mengalami permasalahan .

untuk itu ada kebijakan untuk menyesuaikan format .

SELECT kode, KODE_KIB, DTPDOK5,Tgl_Pengadaan, Tahun_Pengadaan, CHAR_LENGTH(Tahun_Pengadaan) AS digit, TAHUN_PENGADAAN_BARU FROM tabel_aset WHERE Tahun_Pengadaan>'2014' AND SUBSTR(Tahun_Pengadaan,7,4)>'2014' AND KODE_KIB='3' ORDER BY KODE_KIB ASC


UPDATE tabel_aset SET TAHUN_PENGADAAN_BARU=IF(CHAR_LENGTH(Tahun_Pengadaan)='4',CONCAT(Tahun_Pengadaan,'-01-01'),CONCAT(SUBSTR(Tahun_Pengadaan,7,4),'-',SUBSTR(Tahun_Pengadaan,4,2),'-',SUBSTR(Tahun_Pengadaan,1,2))) WHERE Tahun_Pengadaan>'2014' AND SUBSTR(Tahun_Pengadaan,7,4)>'2014' AND kode_kib='3'

Senin, 21 November 2022

Membuat Terbilang bilangan Desimal

 <?php error_reporting(0);

function konversi($x){

  

  $x = abs($x);

  $angka = array ("","satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");

  $temp = "";

  

  if($x < 12){

   $temp = " ".$angka[$x];

  }else if($x<20){

   $temp = konversi($x - 10)." belas";

  }else if ($x<100){

   $temp = konversi($x/10)." puluh". konversi($x%10);

  }else if($x<200){

   $temp = " seratus".konversi($x-100);

  }else if($x<1000){

   $temp = konversi($x/100)." ratus".konversi($x%100);   

  }else if($x<2000){

   $temp = " seribu".konversi($x-1000);

  }else if($x<1000000){

   $temp = konversi($x/1000)." ribu".konversi($x%1000);   

  }else if($x<1000000000){

   $temp = konversi($x/1000000)." juta".konversi($x%1000000);

  }else if($x<1000000000000){

   $temp = konversi($x/1000000000)." milyar".konversi($x%1000000000);

  }

  

  return $temp;

 }

  

 function tkoma($x){

  $str = stristr($x,".");

  $ex = explode('.',$x);

  

  if(($ex[1]/10) >= 1){

   $a = abs($ex[1]);

  }

  

  $string = array("nol", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");

  $temp = "";

 

  $a2 = $ex[1]/10;

  $pjg = strlen($str);

  $i =1;

  

  

  if($a>=1 && $a< 12){   

   $temp .= " ".$string[$a];

  }else if($a>12 && $a < 20){   

   $temp .= konversi($a - 10)." belas";

  }else if ($a>20 && $a<100){   

   $temp .= konversi($a / 10)." puluh". konversi($a % 10);

  }else{

   if($a2<1){

    

    while ($i<$pjg){     

     $char = substr($str,$i,1);     

     $i++;

     $temp .= " ".$string[$char];

    }

   }else{ 

    

while ($i<$pjg){     

$char = substr($str,$i,1);     

$i++;

$temp .= " ".$string[$char];

    }

    

   }

  }  

  return $temp;

 }

 

 function terbilang($x){

  if($x<0){

   $hasil = "minus ".trim(konversi(x));

  }else{

   $poin = trim(tkoma($x));

   $hasil = trim(konversi($x));

  }

  

if($poin){

   $hasil = $hasil." koma ".$poin;

  }else{

   $hasil = $hasil;

  }

  return $hasil;  

 }

echo ucwords(terbilang('10000003.09'));

?>

Selasa, 25 Oktober 2022

Membuat Query untuk menampilkan data dari beberapa field dengan IF

Membuat sebuah query pada proses menampilkan data dengan melibatkan beberapa field bisa dilakukan

langsung pada sql. sebagai contoh saya akan menampilkan data nama dan gelar sedangkan field

gelar depan, nama dan gelar belakang dibuatkan sendiri-sendiri.

untuk membuat query nya sebagai berikut :


SELECT IF(((a.gelar_depan!='-' AND a.gelar_depan!='') AND (a.gelar_belakang!='-' AND a.gelar_belakang!='')) , CONCAT(a.gelar_depan,'. ',a.B_03,', ',a.gelar_belakang), IF(((a.gelar_depan='-' OR a.gelar_depan='') AND (a.gelar_belakang!='-' AND a.gelar_belakang!='')) , CONCAT(a.nama,', ',a.gelar_belakang), IF(((a.gelar_depan!='-' AND a.gelar_depan!='') AND (a.gelar_belakang='-' OR a.gelar_belakang='')) , CONCAT(a.gelar_depan,'. ',a.nama),a.nama) ) ) AS nama, a.B_02B as nip, if(a.E_04 IS NOT NULL, CONCAT(b.PANJANG, ' (',b.NAMA,')'),'-') as gol_pangkatfrom pegawai as a LEFT JOIN golongan as b ON b.KODE=a.E_04


Pada proses diatas query tersebut menggunakan LEFT JOIN untuk relasi antar tabel.


Demikian semoga bermanfaat.


Concat tidak berfungsi untuk indexing

 $sql = "SELECT a.* , CONCAT(a.Kode_Barang,'<br><b>',b.Nm_Aset5,'</b>') as Nm_Aset5, CONCAT(a.latitud...