Tuesday, 14 November 2017

MEMULAI DATABASE SQLITE

tulisan ini adalah praktek, hanya ada script saja tanpa ada penjelasan.





D:\CENTRAL>sqlite3 data.purwant
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> create TABLE PEMAKAIAN_BAN(TANGGAL DATE,MERK_BAN CHAR(60),JUMLAH INT,SAT
UAN CHAR(5),ALOKASI CHAR(5),SITE CHAR(20),POSISI CHAR(3),NO_SERI CHAR(50));
sqlite> .table
PEMAKAIAN_BAN
sqlite> .schema
CREATE TABLE PEMAKAIAN_BAN(TANGGAL DATE,MERK_BAN CHAR(60),JUMLAH INT,SATUAN CHAR
(5),ALOKASI CHAR(5),SITE CHAR(20),POSISI CHAR(3),NO_SERI CHAR(50));
sqlite> .schema PEMAKAIAN_BAN
CREATE TABLE PEMAKAIAN_BAN(TANGGAL DATE,MERK_BAN CHAR(60),JUMLAH INT,SATUAN CHAR
(5),ALOKASI CHAR(5),SITE CHAR(20),POSISI CHAR(3),NO_SERI CHAR(50));
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-01','GT MAX 10.00','2','PCS','
412','ANGSANA','BLK','');
sqlite> SELECT*FROM PEMAKAIAN_BAN;
2015-01-01|GT MAX 10.00|2|PCS|412|ANGSANA|BLK|
sqlite> DELETE FROM PEMAKAIAN_BAN WHERE ALOKASI='412'
   ...> ;
sqlite> SELECT*FROM PEMAKAIAN_BAN;
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-01','GT MAX 10.00','2','PCS','
412','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-01','GT MAX 10.00','2','PCS','
413','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-01','GT MAX 10.00','2','PCS','
102','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-01','GT MAX 10.00','2','PCS','
118','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-01','GT MAX 10.00','2','PCS','
114','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-05','QIMA 11.00','2','PCS','41
1','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-05','GT MAX 10.00','2','PCS','
541','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-05','GT MAX 10.00','2','PCS','
119','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-05','MRF 11.00','2','PCS','121
','ANGSANA','DPN','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-05','GT MAX 10.00','2','PCS','
541','ANGSANA','DPN','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-05','GT MAX 10.00','2','PCS','
014','ANGSANA','DPN','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-07','GT MAX 10.00','2','PCS','
106','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-07','GT MAX 10.00','2','PCS','
107','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-07','GT MAX 10.00','2','PCS','
109','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-07','GT MAX 10.00','2','PCS','
111','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-07','GT MAX 10.00','2','PCS','
537','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-07','GT MAX 10.00','2','PCS','
542','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-10','QIMA 10.00','2','PCS','11
7','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-10','GT MAX 10.00','2','PCS','
127','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-12','QIMA 11.00','2','PCS','40
1','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-14','GT MAX 10.00','2','PCS','
409','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-14','GT MAX 10.00','2','PCS','
102','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-14','GT MAX 10.00','2','PCS','
535','ANGSANA','DPN','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-15','GT MAX 10.00','2','PCS','
535','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-16','POWER TECHKING 10.00','8'
,'SET','116','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-16','POWER TECHKING 10.00','8'
,'SET','531','ANGSANA','BLK','');
sqlite> INSERT INTO PEMAKAIAN_BAN VALUES('2015-01-19','MRF 11.00','2','PCS','122
','','BLK','');
sqlite>



  ALOKASI = 536
PEMAKAIAN = 4

  ALOKASI = 537
PEMAKAIAN = 4

  ALOKASI = 538
PEMAKAIAN = 2

  ALOKASI = 540
PEMAKAIAN = 4

  ALOKASI = 541
PEMAKAIAN = 6

  ALOKASI = 542
PEMAKAIAN = 2
sqlite> SELECT ALOKASI, SUM(JUMLAH) FROM PEMAKAIAN_BAN WHERE HAVING MAX(SUM(JUML
AH)) GROUP BY ALOKASI
   ...> ;
Error: near "HAVING": syntax error
sqlite> SELECT ALOKASI, SUM(JUMLAH) FROM PEMAKAIAN_BAN WHERE HAVING MAX(JUMLAH)
GROUP BY ALOKASI
   ...> ;
Error: near "HAVING": syntax error
sqlite> SELEC ALOKASI,MAX(JUMLAH)FROM PEMAKAIAN_BAN GROUP BY ALOKASI;
Error: near "SELEC": syntax error
sqlite> SELECT ALOKASI,MAX(JUMLAH)FROM PEMAKAIAN_BAN GROUP BY ALOKASI ORDER BY M
AX(JUMLAH) DESC;
    ALOKASI = 116
MAX(JUMLAH) = 8
menampilkan bulan
sqlite> select  strftime('%m', date(tanggal)) from pemakaian_ban;
sqlite> select*from pemakaian_ban where strftime('%m', date(tanggal))='02';
2015-02-01  GT MAX 10.00  2           PCS         535                     BLK
2015-02-01  GT MAX 10.00  2           PCS         537                     BLK
2015-02-01  GT MAX 10.00  2           PCS         131                     BLK
2015-02-01  GT MAX 10.00  2           PCS         115                     BLK
                BLK
sqlite> select alokasi,avg(jumlah) from pemakaian_ban
   ...> group by alokasi;

sqlite> select alokasi,strftime('%m',date(tanggal)),avg(jumlah) from pemakaian_ban group by strftime('%m', date(tan
ggal)),alokasi;


sqlite> select alokasi,sum(jumlah) from pemakaian_ban group by alokasi having sum(jumlah)>8 order by alokasi asc;
116         10
sqlite> select alokasi,sum(jumlah) from pemakaian_ban group by alokasi having sum(jumlah)>6 order by alokasi asc;
116         10
531         8
sqlite> select alokasi,sum(jumlah) from pemakaian_ban group by alokasi having sum(jumlah)>4 order by alokasi asc;
102         6
116         10
401         6
412         6
531         8
535         6
541         6
sqlite>
mode tampilan
sqlite> .mode list
sqlite> select alokasi,sum(jumlah) from pemakaian_ban group by alokasi having sum(jumlah)>4 order by alokasi asc
102|6
116|10
401|6
412|6
sqlite> .mode line
sqlite> select alokasi,sum(jumlah) from pemakaian_ban group by alokasi having sum(jumlah)>4 order by alokasi asc;
    ALOKASI = 102
sum(jumlah) = 6
    ALOKASI = 116
sqlite> .mode column
sqlite> select alokasi,sum(jumlah) from pemakaian_ban group by alokasi having sum(jumlah)>4 order by alokasi asc;
102         6
116         10
sqlite> .mode insert pemakaian_ban
sqlite> select*from pemakaian_ban where alokasi='116';
INSERT INTO pemakaian_ban(TANGGAL,MERK_BAN,JUMLAH,SATUAN,ALOKASI,SITE,POSISI,NO_SERI) VALUES('2015-01-16','POWER TE
CHKING 10.00',8,'SET','116','ANGSANA','BLK','');
INSERT INTO pemakaian_ban(TANGGAL,MERK_BAN,JUMLAH,SATUAN,ALOKASI,SITE,POSISI,NO_SERI) VALUES('2015-02-15','MRF 10.0
0',2,'PCS','116','','DPN','');


sqlite> .header on
sqlite> select alokasi,sum(jumlah) from pemakaian_ban group by alokasi having sum(jumlah)>4 order by alokasi asc;
ALOKASI     sum(jumlah)
----------  -----------
102         6
116         10
401         6
sqlite> select alokasi,max(jumlah)from pemakaian_ban group by alokasi order by max(jumlah) desc limit 1;
ALOKASI     max(jumlah)
----------  -----------
116         8
sqlite> select alokasi,max(jumlah)from pemakaian_ban group by alokasi order by max(jumlah) desc;
ALOKASI     max(jumlah)
----------  -----------
116         8
531         8
006         2
sqlite>  select alokasi,sum(jumlah)from pemakaian_ban group by alokasi order by max(jumlah) desc limit 1;
116         10
sqlite>
sqlite> select alokasi,sum(jumlah)from pemakaian_ban group by alokasi order by max(jumlah) desc limit 3;
116         10
531         8
006         2
sqlite>
sqlite> select ALOKASI,strftime('%d', date(tanggal))AS tanggal,strftime('%m',date(tanggal)),strftime('%Y',date(tanggal)) from pemakaian_ban LIMIT 20;
412|01|01|2015
413|01|01|2015
102|01|01|2015
118|01|01|2015
114|01|01|2015
411|05|01|2015

CASE
     WHEN bool_expression_1 THEN result_1
     WHEN bool_expression_2 THEN result_2
     [ ELSE result_else ]
END

sqlite> select case when 1>2 then '1>2' else '1<2' end;
1<2
sqlite>
sqlite> select alokasi,avg(jumlah),(select avg(jumlah)from pemakaian_ban), case when avg(jumlah)<(select avg(jumlah)from pemakaian_ban) then
   ...> 'lbih kecil dari rata' else 'lebih besar dari rata'
   ...> end as ket from pemakaian_ban group by alokasi;
ALOKASI     avg(jumlah)  (select avg(jumlah)from pemakaian_ban)  ket
----------  -----------  --------------------------------------  --------------------
006         2.0          2.15789473684211                        lbih kecil dari rata
013         2.0          2.15789473684211                        lbih kecil dari rata
014         2.0          2.15789473684211                        lbih kecil dari rata


Fungsi tanggal sqlite
SQLite Tanggal Waktu

SQLite mendukung lima tanggal dan waktu fungsi sebagai berikut:
SN
Fungsi
Contoh
1
tanggal (timestring, pengubah ...)
Ini mengembalikan tanggal dalam format ini: YYYY-MM-DD
2
waktu (timestring, pengubah ...)
Ini mengembalikan waktu sebagai HH: MM: SS
3
datetime (timestring, pengubah ...)
Ini mengembalikan YYYY-MM-DD HH: MM: SS
4
julianday (timestring, pengubah ...)
Ini mengembalikan jumlah hari sejak siang hari di Greenwich pada tanggal 24 November 4714 BC
5
strftime (timestring, pengubah ...)
Ini mengembalikan tanggal diformat sesuai dengan format string yang ditentukan sebagai argumen pertama diformat sebagai per formatters dijelaskan di bawah.
Semua di atas lima tanggal dan waktu fungsi mengambil string waktu sebagai argumen. Waktu string diikuti oleh nol atau lebih pengubah. The strftime () fungsi juga mengambil format string sebagai argumen pertama. Berikut bagian akan memberikan detail pada berbagai jenis string waktu dan pengubah.

Waktu Strings:
Waktu string dapat berada di salah satu format berikut:
SN
waktu String
Contoh
1
YYYY-MM-DD
2010/12/30
2
YYYY-MM-DD HH: MM
2010/12/30 12:10
3
YYYY-MM-DD HH: MM: SS.SSS
2010-12-30 12: 10: 04,100
4
MM-DD-YYYY HH: MM
30-12-2010 00:10
5
HH: MM
00:10
6
YYYY-MM-DD T HH: MM
2010/12/30 12:10
7
HH: MM: SS
00:10:01
8
YYYYMMDD HHMMSS
20101230 121001
9
sekarang
2013/05/07
Anda dapat menggunakan "T" sebagai karakter literal memisahkan tanggal dan waktu.

pengubah
Waktu string dapat diikuti oleh nol atau lebih pengubah yang akan mengubah tanggal dan / atau waktu dikembalikan oleh salah satu dari lima fungsi di atas. Pengubah diterapkan dari kiri ke kanan dan mengikuti modifers tersedia dalam SQLite:
  • hari NNN
  • jam NNN
  • NNN menit
  • detik NNN.NNNN
  • NNN bulan
  • NNN tahun
  • awal bulan
  • awal tahun
  • awal hari
  • hari kerja N
  • unixepoch
  • waktu lokal
  • UTC

formatters:
SQLite menyediakan sangat berguna fungsi strftime () untuk memformat setiap tanggal dan waktu. Anda dapat menggunakan berikut substitusi untuk memformat tanggal dan waktu:
Pengganti
Deskripsi
% d
Hari bulan, 01-31
% f
pecahan detik, SS.SSS
% H
Jam, 00-23
% j
Hari tahun, 001-366
% J
jumlah hari julian, DDDD.DDDD
% m
Bulan, 00-12
% M
Menit, 00-59
% s
Detik sejak 1970/01/01
% S
Detik, 00-59
% w
Hari minggu, 0-6 (0 hari Minggu)
% W
Minggu tahun, 01-53
% Y
Tahun, YYYY
%%
% simbol

contoh
Mari kita coba berbagai contoh sekarang menggunakan cepat SQLite. Berikut menghitung tanggal saat ini:
sqlite> SELECT date('now');
2013-05-07
Berikut menghitung hari terakhir bulan ini:
sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31
Berikut menghitung tanggal dan waktu untuk UNIX timestamp 1092941466 diberikan:
sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06
Berikut menghitung tanggal dan waktu untuk UNIX timestamp 1092941466 diberikan dan mengimbangi zona waktu lokal Anda:
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06
Berikut menghitung saat UNIX timestamp:
sqlite> SELECT strftime('%s','now');
1393348134
Berikut menghitung jumlah hari sejak penandatanganan Deklarasi Kemerdekaan AS:
sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023
Berikut menghitung jumlah detik sejak saat tertentu pada tahun 2004:
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
Berikut menghitung tanggal Selasa pertama di bulan Oktober untuk tahun berjalan:
sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01
Berikut menghitung waktu sejak zaman UNIX di detik (seperti strftime ( '% s', 'sekarang') kecuali termasuk bagian pecahan):
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598
Untuk mengkonversi antara UTC dan nilai-nilai waktu setempat ketika format tanggal, menggunakan UTC atau localtime pengubah sebagai berikut:
sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite>  SELECT time('12:00', 'utc');
19:00:00

 referensi http://sqlite.org/docs.html

No comments:

Post a Comment