SQL Introduction,

Set Up & Syntax Basic

Outline Workshop part 1

  • Apa itu database?
  • Fungsi database
  • Pengaplikasian database
  • Main operation of database
  • Tipe database
  • Relational databases
  • Database management system
  • Structured Query Language (SQL)
  • Tipe Data SQL
  • Basic Syntax SQL
  • Setup RDBMS

Apa itu Database?

Apa itu Database?

Merupakan basis data / sekumpulan data

Apa itu Database?

Kumpulan terorganisir dari informasi terstruktur atau data yang disimpan secara elektronik ke dalam sistem komputer.

 

Database biasanya dikendalikan oleh DBMS (database management system).

 

Data dan DBMS bersama aplikasi yang terkait biasa disebut sebagai sistem database.

- ORACLE

Fungsi Database

  • Mengelompokan data dan informasi

  • Memudahkan identifikasi data

  • Menghindari data ganda yang tersimpan

  • Memudahkan akses, simpan, pembaruan, dan penghapusan data

  • Menjadi penyimpanan data dari aplikasi atau situs web

  • Menjaga kualitas data yang diakses agar sesuai yang diinput

  • Membuat aplikasi berjalan lancar karena datanya terpusat

  • Database membuat data tersimpan aman karena keamanan tinggi

  • Database memudahkan pencarian data lebih cepat

Contoh Pengaplikasian Database

E-Commerce

  • Terdapat data produk, review, orders, kartu kredit, users, dll
  • Terdapat jutaan data / informasi yang harus tersedia dan disimpan
  • Data tersebut sangat penting agar e-commerce dapat berfungsi
  • Keamanan data diperlukan, e-commerce menyimpan informasi sensitif pengguna (kartu kredit, no telepon, alamat, dll)

Contoh Pengaplikasian Database

E-commerce berinteraksi dengan database untuk melakukan penambahan, pembacaan, update dan penghapusan informasi 

E-Commerce

Database

4 Main Operation of Database

C . R . U . D

create

read

update

delete

Dua Tipe Database

  • Data tersimpan dalam bentuk tabel
  • Setiap tabel terdapat kolom dan baris
  • Terdapat unique key identifier pada setiap baris (ex: id)
  • Documents (JSON, XML, etc)
  • Graphs
  • Key-value stores
  • Flexible tables

Relational Databases

( SQL )

Non-relational Databases

( NoSQL / Not just SQL )

Dua Tipe Database

Relational Databases

( SQL )

Non-relational Databases

( NoSQL / Not just SQL )

Dua Tipe Database

Relational Databases

( SQL )

  • Data tersimpan dalam bentuk tabel
  • Setiap tabel terdapat kolom dan baris
  • Terdapat unique key identifier pada setiap baris (ex: id)

Relational Databases

Relational Database Management System ( RDBMS )

Structured Query Language ( SQL )

Relational Database Management System

( RDBMS )

Berfungsi untuk membantu memanajemen penggunaan relational database

MySQL, MariaDB, Microsoft SQL, Oracle, PostgreSQL, SQLite, ...

Software RDBMS

loading...

Structured Query Language ( SQL )

  • Bahasa standar (ANSI / ISO) untuk berinteraksi dengan RDBMS
  • Untuk melakukan operasi C.R.U.D pada database
  • Untuk mendefinisikan tabel dan strukturnya
  • Untuk melakukan administrasi database (user management, security, backup, restore, dll)
  • Meskipun sebagai bahasa standar, setiap RDBMS akan memiliki perbedaan syntax sedikit

Tipe Data SQL

  • Numeric data: INT, TINYINT, BIGINT, FLOAT, REAL, etc.
  • Date and Time data: DATE, TIME, DATETIME, etc.
  • Character and String data: CHAR, VARCHAR, TEXT, etc.
  • Binary data: BINARY, VARBINARY, etc.
  • Miscellaneous data - CLOB, BLOB, XML, CURSOR, TABLE, etc.

Numeric Data Types

Type From To
BIT
1
0
TINYINT
0
255
SMALLINT
-32,768
32,767
INT
-2,147,483,648
2,147,483,647
BIGINT
-9,223,372,036,854,775,808
9,223,372,036,854,775,807
DECIMAL
-10^38 + 1
10^38 - 1
NUMERIC
-10^38 + 1
10^38 - 1
FLOAT
-1.79E+308
1.79E+308
REAL
-3.40E+38
3.40E+38

Date and Time Data Types

Type Description
DATE
Stores date in the format YYYY-MM-DD
TIME
Stores time in the format HH:MI:SS
DATETIME
Stores date and time information in the format YYYY-MM-DD HH:MI:SS
TIMESTAMP
Stores number of seconds passed since the Unix epoch ('1970-01-01 00:00:00' UTC)
YEAR
Stores year in a 2-digit or 4-digit format. Range 1901 to 2155 in 4-digit format. Range 70 to 69, representing 1970 to 2069.

Character and String Data Types

Type Description
CHAR(3)
Fixed length with a maximum length of 8,000 characters
VARCHAR(4)
Variable-length storage with a maximum length of 8,000 characters
TEXT
Variable-length storage with a maximum size of 65,535 bytes
MEDIUMTEXT
Variable-length storage with a maximum size of 16,777,215 characters
LONGTEXT
Variable-length storage with a maximum size of 4,294,967,295 characters

CREATE TABLE

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
    .....
   	columnN datatype,
   	PRIMARY KEY( column1, column2 )
);
  • PRIMARY KEY berfungsi untuk pengidentifikasi baris data. Kolom ini harus memiliki nilai yang UNIQUE antar baris data.

INSERT DATA

/* Tanpa deklarasi kolom, VALUE harus sesuai dengan urutan kolom */
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

/* Dengan deklarasi kolom, VALUE disesuikan dengan urutan deklarasi kolom */
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  • Untuk memasukan banyak data biasanya menggunakan fitur import atau bantuan program

CREATE TABLE

Buat tabel diatas dengan nama `daftar_siswa`

CREATE TABLE

--
-- Membuat tabel daftar siswa
--

CREATE TABLE daftar_siswa (
        id int,
        name varchar(60),
        kota varchar(25),
        alamat text,
        telepon varchar(12),
        tgl_input date,
        PRIMARY KEY (id)
);

--
-- Menambahkan data dummy
--

INSERT INTO daftar_siswa VALUES
(1, 'Kevin', 'surabaya', 'Jl. Surabaya 10', '081123321123', '2024-01-01'),
(2, 'Nathan', 'surabaya', 'Jl. Surabaya 9', '082999000111', '2024-01-20'),
(3, 'Trio', 'kediri', 'Jl. Kediri 10', '081123321123', '2024-02-23');

CREATE TABLE (ADVANCED)

--
-- Membuat tabel daftar siswa
--

CREATE TABLE daftar_siswa (
        id int NOT NULL AUTO_INCREMENT,
        name varchar(60) NOT NULL,
        kota varchar(25) NOT NULL,
        alamat text NOT NULL,
        telepon varchar(12) NOT NULL,
        tgl_input date NOT NULL,
        PRIMARY KEY (id)
);

--
-- Menambahkan data dummy
--

INSERT INTO daftar_siswa (name, kota, alamat, telepon, tgl_input) VALUES
('Kevin', 'surabaya', 'Jl. Surabaya 10', '081123321123', '2024-01-01'),
('Nathan', 'surabaya', 'Jl. Surabaya 9', '082999000111', '2024-01-20'),
('Trio', 'kediri', 'Jl. Kediri 10', '081123321123', '2024-02-23');
  • NOT NULL: data pada kolom tidak boleh kosong (null)
  • AUTO_INCREMENT: berfungsi agar database menuliskan urutan secara otomatis berdasarkan data / urutan terakhir. (Hanya berfungsi untuk tipe data int / bigint

CREATE TABLE (ADVANCED)

--
-- Membuat tabel daftar siswa
--

CREATE TABLE daftar_siswa (
        id int NOT NULL AUTO_INCREMENT,
        name varchar(60) NOT NULL,
        kota varchar(25) NOT NULL DEFAULT 'surabaya',
        alamat text DEFAUL NULL,
        telepon varchar(12) NOT NULL,
        tgl_input date NOT NULL DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY (id)
);

--
-- Menambahkan data dummy
--

INSERT INTO daftar_siswa (name, alamat, telepon) VALUES
('Kevin', 'Jl. Surabaya 10', '081123321123'),
('Nathan', 'Jl. Surabaya 9', '082999000111'),
('Trio', 'Jl. Kediri 10', '081123321123');
  • DEFAULT: berfungsi untuk menuliskan data default apabila tidak ada value yang dituliskan

Simple SELECT Statement

/* Memilih semua kolom */
SELECT * FROM nama_tabel;

/* Memilih beberapa kolom */
SELECT kolom_1, kolom_2, ..., kolom_n FROM tabel;

/*
Menggunakan function 
COUNT(col) , SUM(col), MAX(col), MIN(col), ..., etc
*/
SELECT COUNT(kolom) FROM tabel; 

/* Menggunakan alias */
SELECT COUNT(kolom) AS total FROM tabel; 

Simple SELECT Statement

SELECT * FROM daftar_siswa;

WHERE Clause

SELECT * FROM nama_tabel
WHERE nama_kolom = value;
Operator Description
= Equal to
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
<> Not equal to

WHERE Clause

SELECT * FROM daftar_siswa
WHERE name = 'trio';

AND / OR Clause

SELECT * FROM `table`
WHERE `column` = `value`
AND `other_column` = `value`
SELECT * FROM `table`
WHERE `column` = `value`
OR `other_column` = `value`

AND / OR Clause

ORDER BY Clause

--
-- ASC  : (Ascending) mengurutkan data dari nilai terendah
-- DESC : (Descending) mengurutkan data dari nilai tertinggi
--

SELECT * FROM `table`
ORDER BY `column` DESC

ORDER BY Clause

GROUP BY Clause

SELECT COUNT(kota), kota FROM daftar_siswa
GROUP BY kota;

GROUP BY Clause

LATIHAN

Installasi XAMPP

- SELESAI -

TERIMA KASIH

SQL Basic - Part 1

By Dimas Mahendra

SQL Basic - Part 1

  • 54