Mini Task Basic SQL 1

Jolly
6 min readSep 25, 2023

--

Apa yang dimaksud dengan SQL?

SQL adalah bahasa pemrograman yang berkomunikasi dengan database. Tujuan dari SQL (sering diucapkan sekuel) adalah untuk menyimpan, mengambil, mengelola, dan memanipulasi data dalam sistem manajemen basis data. SQL dikembangkan oleh IBM pada awal tahun 1970-an dan tersedia secara komersial pada tahun 1979. SQL diterima secara global sebagai sistem manajemen basis data relasional (RDBMS) standar.

Berbagai varian SQL telah berkembang dan diperluas oleh banyak perusahaan dan organisasi IT lainnya. contohnya seperti Microsoft SQL Server, Microsoft Access, MySQL, PostgreSQL, Oracle Database, MariaDB, Bigquery SQL dari Google dan masih banyak lagi.

Nah…setelah berkenalan dan paham apa itu SQL maka kini kita mulai praktek pemakaiannya….lets do it !.

Persiapan Analisa Data

Pemahaman SQL yang saya pelajari di online course dari MySkill kali ini, saya coba tuangkan diartikel. Ada beberapa sesi pelajaran SQL dan ini Basic 1-nya. Dimana sebagai seorang Data Analyst start nya selalu dimulai dari pembuatan database. By the way….software yang saya pakai untuk proses database ini menggunakan PostgreSQL 16 dan mengunakan Management Tools via pgAdmin 4 untuk melakukan DDL, DML dll.

Kamu baru saja dihire oleh online store kecil-kecilan bernama Tokopaedi milik pak Edi sebagai data analyst. Namun sayangnya Tokopaedi belum memiliki sistem database sehingga kamu membangunnya dari awal. Maka dari itu tugas pertama kamu sebagai data analyst adalah:
1. Membuat database bernama tokopaedi pada PostgreSQL
2. Membuat tabel bernama orders dengan kolomnya sebagai berikut (tips: tentukan terlebih dahulu tipe data dari setiap kolom berdasarkan nilai inputnya) — untuk nomor 2 ini data sudah disiapkan dalam file CSV.

untuk menjawabnya kita mulai dari langkah pertama yaitu pembuatan database dan ini sangat mudah:

CREATE DATABASE tokopaedi;

hanya dengan 1 baris code SQL tersebut sudah menghasilkan database yang kita inginkan.

contoh pembuatan database di PostgreSQL via pgAdmin

untuk menjawab nomor 2 cara terbaik menurutku adalah kita buat dahulu table orders tersebut dan terakhir baru mengisi datanya.


CREATE TABLE orders (
order_id character varying(20),
customer_id character varying(10),
postal_code integer,
product_id character varying(20),
sales real,
quantity smallint,
discount real,
profit double precision,
category character varying(20),
subcategory character varying(20),
product_name character varying(130),
order_date date,
ship_date date,
ship_mode character varying(20),
customer_name character varying(30),
segment character varying(20),
country character varying(20),
city character varying(20),
state character varying(20),
region character varying(10)
);

coding diatas yang tipe data character varying(20) itu boleh saja diketik varchar(20). sama aja artinya. coding diatas terbentuk karena hasil dump sql dari sqliteonline.

dan jika query diatas di running maka akan muncul pesan sukses seperti gambar berikut.

sampai disini table orders sudah terbentuk.

langkah berikutnya kita masukkan semua isi data ke table orders tersebut. total data ada 9994 rows…wahh…sangat banyak yah..gimana input satu-satu gitu ?….dan saat ini filenya ada dalam bentuk CSV.

supaya mempermudah kerja kita, saya memanfaatkan tools import CSV yang ada di https://sqliteonline.com/

sebenarnya ada beberapa alasan kenapa saya menggunakan sqliteonline terlebih dahulu untuk prepare data. terutama untuk case format date.

jadi karena untuk pgAdmin tidak bisa import file orders.csv secara langsung, tapi wajib buat table dahulu. dan dengan query table diatas terbentuk table orders dan jika di klik kanan nama table orders dan klik import panggil file orders.csv akan mengalami error. ada kemungkinan karena tipe tanggal. jadi solusi supaya data masuk ke table orders via pgAdmin adalah sbb :

  1. Dengan sqliteonline kita bisa import orders.csv file asli dengan Command : Show Code. jadi akan muncul di editor 2 instruksi, yang pertama create table dan kedua insert into. dan untuk create table kita ubah tipe data order_date dan ship_date jadi date. setelah itu di running query. maka data masuk ke sqliteonline. terbentuk table orders lengkap dengan isi datanya di sqliliteonline. sayangnya jika saya ambil query insert into tsb dan running di pgAdmin query tools hasilnya error masalah tipe data tanggal. karenanya saya jalani langkah no 2.
  2. dari table di sqliteonline ini. di editor ketik select * from orders dan tampil semua data. lalu export kembali ke csv akan terbentuk file csv. rename jadi orders.csv => sayangnya file ini hanya berhasil di import jika menggunakan bigquery. tapi gagal import di pgAdmin…nah bingung memang...fasilitas import di pgAdmin ini memang pilih-pilih file csv dan kendalanya selalu ada dimasalah format tanggal…jadi saya masuk ke no 3 untuk solusinya…
  3. jadi solusinya file order.csv yang baru terbentuk dari sqliteonline ini. saya import balik kembali ke sqliteonline tapi Command : Show Code dan tidak di running. dan waktu keluar code nya untuk query create table saya remark/kasih tanda komentar karena table sudah ada di pgAdmin dan saya hanya ambil query insert into dengan cara di editor sqliteonline pilih File-Save SQL dan tersimpan file .sql dan file ini saya rename misal order.sql dan file inilah yang di open di pgadmin query tool dan di running…barulah ter-insert semua datanya. Done. its Work !.

utk point no 3 saya jelaskan ulang secara detail dibawah ini…

contoh sqliteonline yang sudah terbentuk table orders

pastikan di https://sqliteonline.com/ tersebut sudah dibuatkan juga table orders di posisi PostgreSQL menggunakan query create table orders sebelumnya.

saat Import dan panggil file CSV yang baru dibuat hasil export via sqliteonline dan saat import di setting seperti gambar berikut :

jangan lupa setting :

  • nama table : orders
  • column name : First line
  • Command : Show Code. dan kemudian klik Ok.

Jangan lupa di remark dengan tanda dash 2x — — atau boleh di hapus aja baris create table orders => karena tidak dipakai. query create table otomatis ini biasanya ada kekeliruan tipe data terutama di tipe data tanggal “order_date” VARCHAR(10),”ship_date” VARCHAR(10) . yang seharusnya tipe data Date. selain itu pula kita sudah membuat table orders sebelumnya.

jadi kita focus hanya menggunakan query INSERT INTO “orders” dst yang isinya sangat panjang tersebut. kita simpan dengan klik File-Save SQL.

akan tersimpan file dengan extention .sql . ( jangan dibingungkan dengan extention .sql karena pada dasarnya itu file text juga dan bisa dibuka di notepad ). Dan kita open filenya di pgAdmin 4.

dan running query dan selesai…

data sudah masuk ke table orders dengan total 9994 rows.

untuk memudahkan keperluan datanya yang cukup tricky diatas maka sudah saya simpan syntax sql untuk pembuatan table dan insert into table nya di dalam github. klik disini untuk download.

Mini Task Pertama selesai.

oh iya..ini hanya di case orders.csv tersebut saja yah. di case lain fasilitas Import Data dari pgAdmin berjalan normal. jadi tidak selalu gagal yah…hanya saja ini case dimana file csv-nya unik saja, terutama yang punya tipe tanggal. sehingga artikel ini juga bisa dijadikan panduan dan tip & trik bagi user yang gagal dalam proses memasukan data dalam jumlah sangat banyak ke database postgreSQL via pgAdmin.

Thank You. semoga bermanfaat.

--

--