Showing posts with label SQL. Show all posts
Showing posts with label SQL. Show all posts
Mencari Minimal dari Hasil Count MySQL

Mencari Minimal dari Hasil Count MySQL



mysql> desc produksi;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id_pegawai | char(4) | YES  |     | NULL    |       |
| id_barang  | char(4) | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)



mysql> select * from produksi;
+------------+-----------+
| id_pegawai | id_barang |
+------------+-----------+
| PEG1       | BAR1      |
| PEG1       | BAR2      |
| PEG1       | BAR3      |
| PEG2       | BAR1      |
| PEG2       | BAR2      |
| PEG2       | BAR3      |
| PEG2       | BAR4      |
| PEG3       | BAR1      |
| PEG3       | BAR2      |
| PEG3       | BAR3      |
| PEG3       | BAR4      |
| PEG3       | BAR5      |
| PEG3       | BAR6      |
+------------+-----------+
13 rows in set (0.00 sec)


Mencari Jumlah dengan Query Count :

mysql> select count(id_barang) hasilcount from produksi group by id_pegawai;

+------------+
| hasilcount |
+------------+
|          3 |
|          4 |
|          6 |
+------------+
3 rows in set (0.00 sec)

Mencari Minimal dari hasil count dengan Query Min :

mysql> select min(hasilcount) from (select count(id_barang) hasilcount from produksi group by id_pegawai) as minimal;

+-----------------+
| min(hasilcount) |
+-----------------+
|               3 |
+-----------------+
1 row in set (0.00 sec)


Insert Multiple Data dengan Check Box dan PHP

Sekedar Tips bagi yang merasa kesulitan dengan query insert multiple data dengan checkbox dan PHP
Sebagai contoh kita buat dulu databasenya, DBMS yang saya gunakan adalah PostgreSQL, untuk MySQL hampir sama,

contoh :

Table Mahasiswa 
CREATE TABLE mahasiswa (nim char(9) primary key, nama varchar(30) not null);

Insert Multiple Data dengan Check Box dan PHP

Table Status
 CREATE TABLE status (nim char(9) references mahasiswa (nim),status varchar(10)); 
Insert Multiple Data dengan Check Box dan PHP

Insert beberapa data di Table Mahasiswa

Insert Multiple Data dengan Check Box dan PHP


Buat file koneksi.php

<?php
$conn_string ="host=localhost dbname=mydb user=abby password=acakadud";
$connection = pg_pconnect($conn_string);
?>

Sekarang buat form untuk insert beberapa data dari tabel mahasiswa ke tabel status dengan checkbox simpan dengan nama index.php

<!DOCTYPE html>
<html>
<!-- Code By : abby -->
<head>
<title>Multiple Checkbox PHP</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 0.21" />
</head>
<body>
<h3 align='center'>Multiple Checkbox dengan PHP</h3>
<?php
require "koneksi.php";
echo"
<form action='proses.php' method='post'>
<table border='1' align='center'>";
$q=pg_query("select * from mahasiswa");
while($d=pg_fetch_array($q)){
echo"
<tr>
<td align='center'><input type='checkbox' name='item[]' value='$d[nim]'></td>
<td>$d[nama]</td>
</tr> ";
}
echo"
<tr>
<td><input type='reset' value='Reset'></td>
<td><input type='submit' name='submit' value='Simpan'></td>
</tr>
</table>
</from>";
?>
</body>
</html>

Hasilnya seperti berikut :
Insert Multiple Data dengan Check Box dan PHP

sekarang buat file proses.php

<?php
require "koneksi.php";
$jumlah = count($_POST["item"]);
for($i=0; $i < $jumlah; $i++)
{
    $nim=$_POST["item"][$i];
    $q=pg_query("insert into status values ('$nim','aktif')");
}
if ($q){
echo"Data Berhasil disimpan";
}
else
{
echo"Data Gagal Disimpan";
}
?>

Sekarang kita coba :

Insert Multiple Data dengan Check Box dan PHP

Insert Multiple Data dengan Check Box dan PHP

Setelah Berhasil kita cek di Database :
SELECT * from status;

Insert Multiple Data dengan Check Box dan PHP

Semoga Membantu

Query Group By di PostgreSQL

Untuk penggunaan query Group By di PostgreSQL berbeda dengan MySQL, agar lebih di mengerti coba dilihat contoh berikut :

MySQL 
mysql> create table pengunjung (id_pengunjung int not null, nama_pengunjung varchar(30) not null, tanggal date not null);Query OK, 0 rows affected (0.15 sec)
mysql> desc pengunjung;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| id_pengunjung   | int(11)     | NO   |     | NULL    |       |
| nama_pengunjung | varchar(30) | NO   |     | NULL    |       |
| tanggal         | date        | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> insert into pengunjung values     -> (1,'abby','2013-01-01'),    -> (2,'yoga','2013-01-01'),    -> (3,'dono','2013-01-02'),    -> (2,'yoga','2013-01-04'),    -> (1,'abby','2013-01-13'),    -> (1,'abby','2013-01-23');Query OK, 6 rows affected (0.19 sec)Records: 6  Duplicates: 0  Warnings: 0
mysql> select * from pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung | tanggal    |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
|             2 | yoga            | 2013-01-04 |
|             1 | abby            | 2013-01-13 |
|             1 | abby            | 2013-01-23 |
+---------------+-----------------+------------+
6 rows in set (0.00 sec)

contoh query Group By dengan MySQL seperti berikut :
mysql> select * from pengunjung group by id_pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung | tanggal    |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
+---------------+-----------------+------------+
3 rows in set (0.00 sec)

Sekarang coba kita coba tabel data yang sama dengan PostgreSQL :
postgres=# SELECT * from pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung |  tanggal   |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
|             2 | yoga            | 2013-01-04 |
|             1 | abby            | 2013-01-13 |
|             1 | abby            | 2013-01-23 |
+---------------+-----------------+------------+
(6 rows)

Dan kita coba jalankan query Group By yang sama :
postgres=# select * from pengunjung group by id_pengunjung;
ERROR:  column "pengunjung.nama_pengunjung" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select * from pengunjung group by id_pengunjung;

Solusinya adalah dengan menggunakan fungsi DISTINCT ON  seperti berikut :
postgres=# select distinct on (id_pengunjung) id_pengunjung, nama_pengunjung, tanggal from pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung |  tanggal   |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
+---------------+-----------------+------------+
(3 rows)

Jadi DISTINCT akan mengabaikan nilai yang sama dalam suatu kolom.

Query Group By di PostgreSQL

Query Group By di PostgreSQL


Semoga Membantu 





Merubah Owner Suatu Table di PostgreSQL

Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL
Masih dengan DBMS PostgreSQL, dan hanya sekedar untuk catatan tentang Owner atau Kepemilikan suatu Table yang pasti ada kaitannya dengan Peringatan Error "Permission Denied".

Agar lebih mudah dalam penjelasan, coba kita buat suatu kasus sebagai berikut :







1. Masuk postgreSQL dengan perintah berikut :
$ psql
dan hasilnya :
postgres=#
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

Ok, bisa dilihat tanda setelah "=" yaitu tanda "#" bisa diartikan adalah root, artinya user dengan hak akses root mempunya hak penuh atas kepemilikannya, misal Database atau Table.

2. Selanjutnya coba buat user dengan perintah berikut :
# create user abby;
dan tambahkan password :
# \password abby;
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL


3.  Kemudian coba buat lagi user yang berbeda :

# create user dika;
# \password dika;

Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

untuk melihat user bisa dengan perintah query berikut :
# select * from pg_user;

4. Buat Database :
# create database mydb;
dan lihat owner  dari database tersebut :
# \l
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

5. Rubah Owner database mydb ke user abby :
# alter database mydb owner to abby;
dan lihat owner dari databasenya :
# \l

Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

6. Keluar dan Masuk ke Database mydb dengan user abby;
# \q
# psql mydb abby;
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL
 perbedaan user abby dengan postgres  bisa dilihat di tanda "#" dan ">" artinya user abby tidah mempunyai hak penuh seperti user postgres.

7. Buat Table dengan nama table_abby :
> create table table_abby (id char(2),nama varchar(10));
hasilnya :
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

8. Sekarang coba keluar dan Masuk ke Database mydb dengan User dika :
> \q
> psql mydb dika;
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

9. Buat Table dengan nama table_dika :
> create table table_dika (id char(2),nama varchar(10));
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

10. Sekarang coba rubah owner user untuk masing-masing table :
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

dan lihat ownernya :
> \d
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL
 
Masih dengan user dika, untuk mencobanya , Lakukan perintah Insert untuk table_abby :

> INSERT INTO table_abby values ('1','nama');
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

Muncul Pesan Error "Permission Denied"

dan sekarang Lakukan perintah Insert untuk table_dika :
> INSERT INTO table_dika values ('1','nama');
Merubah Owner atau Kepemilikan Database dan Table di PostgreSQL

 Mungkin dari hasil diatas bisa di mengerti apa Owner itu dari suatu Table ..

Semoga Membantu..

Membuat User di MySQL [Debian]



Berhubung lagi ngeremote, dan masih berhubungan dengan DBMS MySQL, sekedar membuat catatan bagaimana membuat user di DBMS MySQL :

1. Masuk MySQL dengan user root :
# mysql -u root -p
Membuat User di MySQL [Debian]

2. Buat Hash Password dengan perintah berikut :
contoh : abby
> select password ('abby');
hasilnya seperti berikut :
Membuat User di MySQL [Debian]

3. Buat User dengan perintah berikut dan password dengan hasil hash tadi :
> create user 'abby'@'localhost' identified by password '*8DF79545DB6D735C372251BA785BF66DCB982705';
Membuat User di MySQL [Debian]

4. Lihat hasilnya di dalam tabel user database mysql :
> select user, password from mysql.user where user='abby';
Membuat User di MySQL [Debian]

5. Sekarang coba buat Database untuk User yang sudah dibuat :
> create database db_abby;
Membuat User di MySQL [Debian]

6. Beri Hak Akses User untuk database yang sudah dibuat :
> grant all on db_abby.* to 'abby'@'localhost';
Membuat User di MySQL [Debian]

7. Keluar dan Masuk dengan user yang sudah dibuat :
Membuat User di MySQL [Debian]

Semoga Membantu..