0% found this document useful (0 votes)
41 views32 pages

Slebew

The document contains SQL queries and notes on selecting, filtering, manipulating and aggregating data from the employees table. It demonstrates various SQL functions such as upper, lower, concat, substr, length, trim, replace, avg, count, sum, max, min, group by, having, to_date, to_char for date conversion and arithmetic. It also shows use of DUAL table and date functions like months_between.

Uploaded by

Asih Asmarani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views32 pages

Slebew

The document contains SQL queries and notes on selecting, filtering, manipulating and aggregating data from the employees table. It demonstrates various SQL functions such as upper, lower, concat, substr, length, trim, replace, avg, count, sum, max, min, group by, having, to_date, to_char for date conversion and arithmetic. It also shows use of DUAL table and date functions like months_between.

Uploaded by

Asih Asmarani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 32

--#pertemuan2

SELECT table_name FROM user_tables;

desc employees;

SELECT * FROM employees;

SELECT last_name, phone_number, salary FROM employees;

SELECT last_name "Nama Belakang", phone_number "Nomor Telepon", salary "Gaji" FROM
employees;

SELECT last_name, phone_number, salary, (salary+1000)"Bonus" FROM employees;

SELECT last_name "Nama Belakang", phone_number "Nomor Telepon", salary "Gaji", (salary+1000)
"Bonus" FROM employees;

SELECT * FROM employees WHERE salary = 4800;

SELECT * FROM employees WHERE last_name = 'King';

SELECT first_name ||' '|| last_name “Nama Lengkap” FROM employees;

select first_name ||' '|| last_name "Nama Lengkap" from employees;

--pertumuan3 Tugas

select * FROM employees WHERE salary >10000;

SELECT last_name "Nama Karyawan", salary "Gaji", (salary*15/100) "Tunjangan" FROM employees;

SELECT employee_id "NIK", last_name "Nama Karyawan", job_id "Kode Jabatan" FROM employees;

SELECT last_name,department_id, manager_id,hire_date FROM employees WHERE hire_date < '21-


Jun-1989';

SELECT DISTINCT manager_id FROM employees;

SELECT first_name ||' '|| last_name "Nama Lengkap",phone_number "Nomor Telepon" FROM
employees WHERE first_name ||' '|| last_name = 'Lisa Ozer';

--Catatan

SELECT * FROM employees WHERE first_name LIKE 'A%';

SELECT * FROM employees WHERE first_name LIKE '%a';

SELECT * FROM employees WHERE first_name LIKE '%a%';

SELECT first_name ||' '|| last_name "Nama Lengkap", department_id "Bagian Kerja", salary "Gaji"
FROM employees WHERE first_name LIKE 'Al%';

SELECT * FROM employees WHERE first_name NOT LIKE 'A%';

SELECT * FROM employees WHERE first_name NOT LIKE '%a';


SELECT * FROM employees WHERE first_name NOT LIKE '%a%';

--#pertemuan 29 NOV 2022

select last_name, department_id, salary from employees where salary >= 1400 and last_name like 'E
%';

select last_name, department_id, salary from employees where salary >= 1400 OR last_name like
'%E';

select * from employees where salary between 15000 and 25000;

select last_name, department_id, salary from employees where salary between 1000 and 5000;

select first_name, department_id, salary from employees where salary between 1000 and 5000 and
first_name like 'A%';

select * from employees where manager_id in (100,108);

select * from employees where manager_id not in (100,108);

select * from employees where manager_id is null;

select salary from employees order by salary asc;

select salary from employees order by salary desc;

--LATIHAN 29NOV

select employee_id, last_name, hire_date, salary from employees where employee_id in (100,120);

select employee_id, last_name, job_id, salary from employees where last_name like '%i' or salary >
10000;

select employee_id, last_name, commission_pct, salary from employees where commission_pct is


null;

select last_name, job_id, salary from employees where job_id in ('SH_CLERK', 'ST_CLERK');

select last_name, job_id, department_id from employees where department_id between 40 and 80;

select last_name, job_id, salary from employees where last_name ='Smith';

--#Pertemuan6 5NOV materi nvl

select last_name, salary "Gaji", commission_pct "commission NVL", NVL(commission_pct,0.20)


"commission dengan NVL" from employees;

select last_name "Nama Karyawan", salary "Gaji Pokok", commission_pct "Komisi", salary +
NVL(commission_pct,1000) "commission dengan NVL" from employees;

--NVL2(commission_pct,100,0) yang 100 itu yang ada nilai, kalo 0 itu yang gak ada nilai untuk nilai
100,0 bisa diganti

select last_name, salary "Gaji", commission_pct "Komisi", NVL2(commission_pct,100,0)


"Penghasilan" from employees;
--*case Manipulation function

--UPPER : mengubah menjadi huruf besar semua

select upper(last_name) from employees;

select last_name,upper(last_name) from employees;

select first_name ||' '|| upper(last_name) "Data KAryawan" from employees;

select 'Jabatan dari saudara/i '|| upper(last_name)||' adalah '||job_id "Data Karyawan" from
employees;

--LOWER: mengubah menjadi huruf kecil semua

select lower(first_name) from employees;

select last_name,lower(last_name) from employees;

select first_name ||' '|| lower(last_name) "Data KAryawan" from employees;

--INITCAP: mengubah huruf awal menjadi huruf kapital

select initcap(first_name) from employees;

select last_name,upper(last_name),lower(last_name),initcap(last_name) from employees;

--*character-manipulation functions

--CONCAT : menggabungkan hanya 2 field, mirip dengan operator ||

select first_name,last_name,concat(first_name,last_name) "Nama Karyawan" from employees;

--SUBSTR : mengambil karakter tertentu dari suatu record

select first_name, substr(first_name,1,4) ,substr(first_name,4,3) from employees;

--LENGTH : menghitung jumlah karakter dari suatu record

select first_name,length(first_name) "Jumlah Karakter pd first_name" from employees;

SELECT first_name, length(first_name) "Jumlah Karakter pd first_name", salary "Gaji" from


employees where salary between 1500 and 3500;

--Instr : mengetahui letak dari suatu karakter tertentu dari suatu record

select last_name, instr(last_name,'a') from employees;


--Lpad : menempatlan karakter tertentu disisi kiri record

select last_name,salary, lpad(salary,10,'*'),lpad(salary,8,'-') from employees;

--RAPD : menempatkan karakter tertentu disisi kanan record

select last_name,salary, rpad(salary,10,'*'),rpad(salary,8,'-') from employees;

select salary, rpad(salary,7,'.00') from employees where salary < 4000;

--TRIM : menghilangkan karakter awal atau akhir dari suatu record

select last_name ,trim('A' from last_name),trim('a' from last_name) from employees;

--REPLACE : menggantikan karakter tertentu dari record

select last_name, replace(last_name,'a','o') from employees;

select last_name, job_id, replace(job_id,'IT_PROG','IT_PROGRAMMER') from employees;

--Quis

--1.

select last_name, hire_date, salary from employees where hire_date < '21-Jun-1989';

--2.

select last_name, job_id, department_id, salary from employees where department_id between 50
and 80;

--3.

select last_name, job_id, department_id from employees where job_id ='SH_CLERK' or


department_id between 40 and 60 order by job_id asc;

--4.

select last_name, job_id, salary from employees where last_name like'%e%' and salary between
5000 and 10000;

--5.

select last_name, lower(concat(email,'@GMAIL.COM')) from employees;

--6.

select first_name,last_name, job_id, replace(job_id,'FI_ACCOUNT','Bagian Accounting') from


employees;
--7.

select last_name, email, phone_number, substr(phone_number,1,3) from employees where


phone_number like '515%';

--8.

select last_name, department_id, replace(department_id, '30','Bagian Keuangan') from employees;

--19 NOV ONLINE

--AVG : Menampilkan rata-rata dari seluruh kolom

select avg(salary) "Rata-rata Gaji" from employees;

--COUNT : Menghitung banyaknya data

select count(*) from employees;

select count(department_id) from employees;

select count(distinct department_id) from employees;

select count(*) from employees where salary > 5000;

select count(first_name) from employees where first_name like 'A%';

select first_name from employees where first_name like 'A%';

--SUM (Jumlah data), MAX (Nilai tertinggi dari data), MIN (Nilai terendah dari data)

select sum(salary), max(salary), min(salary) from employees;

select sum(salary), max(salary), min(salary) from employees where department_id = 20;

--Group by : mengelompokkan data berdasarkan kolom tertentu

select department_id, avg(salary) "Rata-rata Gaji" from employees group by department_id;

select department_id, avg(salary) from employees group by department_id order by avg(salary) asc;

--HAVING : Menampilkan data yang merupakan hasil dari fungsi group by berdasarkan kondisi
tertentu

-- where diganti dengan having

select department_id, avg(salary) from employees having avg(salary) > 8000 group by
department_id;

--select department_id, avg(salary) from employees where avg(salary) > 8000 group by
department_id; (error)
select department_id, avg(salary) from employees group by department_id having max(salary) >
1000;

--3 Desember

-- DUAL TABEL

select * from dual;

select 33+36,60-4, 70/35,2*8 from dual;

select 50/5 from dual;

select upper('nama kamu nana') from dual;

select initcap('nama kamu nana') from dual;

--fungsi untuk menampilkan tanggal yang ada di sistem

select sysdate from dual;

-- KONVERSI

--- To_Date (konversi dari tipe data karakter ke tipe data date)

select to_date('27 January 2022','dd mm yyyy') from dual;

-- To_char (konversi tipe data ke tipe karakter)

select to_char (sysdate,'dd mm yyyy') from dual;

select to_char (sysdate,'dd/mm/yyyy') "Tanggal Di sistem sekarang " from dual;

select last_name "Nama Karyawan", hire_date, to_char(hire_date, 'day, dd month yyyy') "Tanggal
Masuk Kerja" from employees;

-- date + number: menambah sejumlah hari pada data tanggal

select sysdate "Tanggal Sekarang", sysdate+7 "Tanggal Minggu Depan" from dual;

"7 hari kedepan dari 27 desember 2022"

select to_date('27-12-22','dd-mm-yyyy')+7 from dual;

-- date - number : mengurangi tanggal

select sysdate "Tanggal Sekarang", sysdate-14 "Tanggal 14hari lalu" from dual;

select sysdate - 14 from dual;

-- date - date: menghasilkan selisih

select To_date('01-05-2023','dd-mm-yyyy') - sysdate from dual;


select to_date('22-04-2023','dd-mm-yyyy') - sysdate from dual;

select sysdate - to_date('27-01-2000','dd-mm-yyyy') from dual;

select to_date('17-08-2023','dd-mm-yyyy') - to_date('01-01-2023','dd-mm-yyyy') from dual;

-- sate + number/2: menambah sejumlah jam dari data tanggal

select sysdate "Tanggal Sekarang",sysdate + 140/24 " Tanggal 140 jam kemudian" from dual;

-- Date fungsi

-- months_between : menmapilkan jumlah bulan

select sysdate "Tanggal Sekarang",'20-Dec-02' "Tanggal Lahir", months_between(sysdate,'20-Dec-


02') "jrk bulan" from dual;

select sysdate "Tanggal Sekarang",'20-Dec-02' "Tanggal Lahir",round( months_between(sysdate,'20-


Dec-02'),2) "jrk bulan" from dual;

-- add_months : menambah jumlah bulan pada suatu tanggal

select sysdate "Tanggal Kini", add_months(sysdate,6)"Tanggal 6 bulan LAgi" from dual;

-- next_day : menampilkan hari berikutnya dari suatu tanggal

select next_day(sysdate,'Monday') "Senin Berikutnya" from dual;

select next_day('26-Nov-19','Friday')"Jumat Berikutnya" from dual;

-- last_day : menampilkan tanggal akhir bulan

select last_day(sysdate)from dual;

-- round :pembulan dalm desimalpembulatan data tanggal

-- trunc : truncate data tanggal

--UTS

--1

select hire_date "Tanggal Masuk", add_months(hire_date,120)"Tanggal Pecat" from employees;

--2 select To_date('01-05-2023','dd-mm-yyyy') - sysdate from dual;

select to_date('28-September-2024','dd-month-yyyy') - to_date('20-January-2023','dd-month-yyyy')


from dual;

--3

select last_name,job_id,salary,substr(last_name,1,5)from employees;

--4

select last_name,replace(last_name,'Ma','Ghi')from employees;


--5

select to_date('01-01-2023','dd-mm-yyyy'), add_months(to_date('01-01-2023','dd-mm-


yyyy'),60)"5tahun berikutnya" from dual;

--6

select department_id "Department", salary "Gaji", count(*) "Jumlah Karyawan dgn Gaji Sama" from
employees group by department_id, salary;

--14 Januari 2023

show user;

create table datamahasiswa (nim varchar(10),

nama_mahasiswa varchar2(25),

jk varchar2(9),

tempat_lahir varchar2(20),

tgl_lahir date,

agama varchar2(20),

alamat varchar2(100),

email varchar2(20),

telp varchar2(20),

ig varchar2(20));

desc datamahasiswa;

alter table datamahasiswa add fb varchar2(25);

alter table datamahasiswa modify telp number(13);

alter table datamahasiswa modify nim number(10);

alter table datamahasiswa rename column telp to hp;

alter table datamahasiswa drop column fb;

--menghapus table: drop table

insert into datamahasiswa(nim, nama_mahasiswa, jk,

tempat_lahir, tgl_lahir, agama,alamat, email,hp , ig)

values('8020191089','Nanda Ghina','Perempuan','Jambi',
'27-Jan-2000','Islam','Jl. Tarmizi Kadir No 1', '[email protected]','081234567890','@nandaghina');

select *from datamahasiswa;

delete from datamahasiswa where nim=8020191089;

create table pasien (kode_pasien varchar2(10),

nama_pasien varchar2(30), alamat_pasien varchar2(100),

jenis_kelamin varchar2(9), tgl_lahir date, gol_darah varchar2(3),

no_telp number(13), riwayat_penyakit varchar2(100));

desc pasien;

select *from pasien;

--1

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('A0001', 'Nanda Ghina', 'Jl. Tarmizi Kadir No 1', 'Perempuan', '27-Jan-2000', 'O+',
'081234567890', 'Maag');

--2

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('A0002', 'Nuryani', 'Jl. Sudirman No 10', 'Perempuan', '20-Jun-1974', 'A+', '081234567891',
'Demam');

--3

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('A0003', 'Asih', 'Jl. Baduri No 34', 'Perempuan', '16-Dec-2001', 'AB+', '081234567892', 'Flu dan
Batuk');

--4

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('A0004', 'Diemas', 'Jl. Santoso No 11', 'Laki-Laki', '06-Jul-1989', 'B-', '081234567893', 'Tumor
jinak');

--5

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('A0002', 'Lutfi', 'Jl. Baduri No 1', 'Laki-Laki', '08-Apr-2002', 'A-', '081234567894', 'DBD');
--update atau mengubah record

update pasien set kode_pasien='A0005' where nama_pasien = 'Lutfi';

--6

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('B0001', 'Firman', 'Jl. Santoso No 89', 'Laki-Laki', '28-Feb-1956', 'O-', '081234567895', 'Darah
Tinggi');

--7

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('B0002', 'Nada', 'Jl. Sudirman No 67', 'Perempuan', '24-Apr-1960', 'B+', '081234567896',
'Jantung');

--8

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('B0003', 'Ilham', 'Jl. Budiman No 9', 'Laki-Laki', '28-Feb-1952', 'O-', '081234567897', 'Flu dan
Batuk');

--9

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('B0004', 'Karin', 'Jl. Sintapi No 67', 'Perempuan', '28-Sep-1956', 'AB-', '081234567898', 'Darah
Tinggi');

--HAPUS DATA

delete from pasien where kode_pasien = 'B0004';

--10

insert into pasien (kode_pasien, nama_pasien, alamat_pasien, jenis_kelamin, tgl_lahir, gol_darah,


no_telp, riwayat_penyakit)

values ('B0005', 'Juleha', 'Jl. Sintapi No 56', 'Perempuan', '14-Oct-1954', 'A+', '081234567889',
'Maag');

create table buku (


id_buku varchar (10) primary key,
judul_buku varchar (40),
tahun_terbit number (4) check(tahun_terbit > 2015),
pengarang varchar (30),
penerbit varchar (25));

desc buku;

create table anggota (


id_anggota varchar (10) primary key,
nama varchar (25),
alamat varchar (25),
tgl_lahir date,
jkel char(1) check (jkel in('L','P')),
hp number (12) unique);

desc anggota;

create table peminjam (


kode_pinjam varchar (5),
id_anggota varchar (10) references anggota(id_anggota),
id_buku varchar (10)references buku(id_buku),
tgl_pinjam date,
tgl_kembali date);

desc peminjam;

insert into buku


values ('BK-01','GHOST IN THE WIRELESS','2020','KEVIN MITNICK','GRAMEDIA');
insert into buku
values ('BK-02','HOW TO BECAME A HACKER','2018','JASON BOURNE','GRAMEDIA');
insert into buku
values ('BK-03','DATABASE PROGRAMMING','2022','TONY STARK','BALAI PUSTAKA');

select * from buku;

insert into anggota


values ('AG-01','LISA','TALANG BAKUNG','13-Dec-1998','P','081377922678');
insert into anggota
values ('AG-02','FAJAR','TALANG BAKUNG','20-Jan-1999','L','081377922477');
insert into anggota
values ('AG-03','PUTRI','TALANG BAKUNG','25-Dec-2000','P','081397922678');

select * from anggota;


insert into peminjam
values ('11','AG-01','BK-01','13-Jan-2023','16-Jan-2023');
insert into peminjam
values ('12','AG-02','BK-02','15-Jan-2023','17-Jan-2023');
insert into peminjam
values ('13','AG-03','BK-03','18-Jan-2023','20-Jan-2023');

select * from peminjam;


select judul_buku, tgl_pinjam, tgl_kembali from buku cross join peminjam;
select b.pengarang, b.judul_buku, b.tahun_terbit, p.tgl_pinjam, p.tgl_kembali, m.nama, m.alamat,
m.hp from buku b, peminjam p, anggota m where b.id_buku=p.id_buku;

MATERI CONSTRAINT

Buatlah table Buku dengan atribut, Id buku, judul buku, tehun terbit,pengarang dan penerbit

create table buku(

id_buku varchar (10)primary key,

judul_buku varchar (30),

tahun_terbit number(4) check(tahun_terbit > 2015),

pengarang varchar (25),

penerbit varchar (25));

Buatlah table Anggota dengan atribut seperti gambar berikut

create table anggota(

id_anggota varchar (10)primary key,

nama varchar(25),

alamat varchar (25),

tgl_lahir date,

jkel char (1)check(jkel in ('L','P')),

hp number (12) unique);

Buatlah table Peminjam dengan atribut seperti gambar berikut

create table peminjam(

kode_pinjam number (12) primary key,

id_anggota varchar (10)references anggota(id_anggota),

id_buku varchar (10)references buku(id_buku),

tgl_pinjam date,

tgl_kembali date);
Input data berikut kedalam tebel buku

insert into buku values('BK-01',‘GHOST IN THE WIRELESS','2020','DAVID MITNICK',

'GRAMEDIA');

insert into buku values('BK-02','TEH ART OF INVINCIBLE','2021','DAVID MITNICK',

'GRAMEDIA');

Input data berikut kedalam tebel ANGGOTA

INSERT INTO ANGGOTA

VALUES('AG-01', 'firman', 'Thehok','12-Dec-2001','L','089677934569');

Input data berikut kedalam tebel peminjam

insert into peminjam

values('11','AG-01','BK-01','11-Jan-2023','13-Jan-2023');

Buatlah query untuk menampilkan judul buku, tanggal pinjam dan tanggal kembali

SELECT JUDUL_BUKU,TGL_PINJAM,TGL_KEMBALI

FROM BUKU CROSS JOIN PEMINJAM;

tampilkan ID BUKU,JUDUL BUKU,TAHUN TERBIT,KODE PINJAM dan TANGGAL PINJAM

SELECT B.ID_BUKU,B.JUDUL_BUKU,B.TAHUN_TERBIT,P.KODE_PINJAM,P.TGL_PINJAM

FROM BUKU B JOIN PEMINJAM P ON B.ID_BUKU=P.ID_BUKU;

Query ke 2 yang bisa dilakukan

SELECT B.ID_BUKU,B.JUDUL_BUKU,B.TAHUN_TERBIT,P.KODE_PINJAM,P.TGL_PINJAM

FROM BUKU B,PEMINJAM P WHERE B.ID_BUKU=P.ID_BUKU;

tampilkan pengarang,judul buku,tahun terbit,tanggal pinjam,tanggal kembali,nama minjam,alamat


dan hp peminjam

SELECT B.PENGARANG,B.JUDUL_BUKU,B.TAHUN_TERBIT,P.TGL_PINJAM,P.TGL_KEMBALI,

M.NAMA,M.ALAMAT,M.HP

FROM BUKU B,PEMINJAM P,ANGGOTA M WHERE B.ID_BUKU=P.ID_BUKU;

MATERI TABLE MANAGEMENT (DDL)


Type data

CHAR(n)

Mendefenisikan string sepanjang n karakter, Bila N tidak disertakan, panjang karakter adalah 1.

VARCHAR(n)

Mendefenisikan string yang panjangnya bisa berubah-ubah sesuai dengan kebutuhan, namun string
tersebut dibatasi sebanyak n karakter. Oracle merekomendasikan varchar2.

VARCHAR2(n)

Mendefenisikan string yang panjangnya bisa berubah-ubah sesuai dengan kebutuhan, namun string
tersebut dibatasi sebanyak n karakter. Maksimum karakter pada varchar2 adalah 2000 karakter.

LONG

Mendefenisikan tipe data binary, maksimum 2 Gygabyte, disimpan dalam format internal Oracle.

LONG RAW

Sama dengan long yaitu mendefenisikan tipe data binary, maksimum 2 Gigabyte, tidak dikonversi
oleh Oracle (data mentah apa adanya

DATE

Mendefenisikan tanggal, menyimpan tahun, bulan, hari, jam, menit dan detik.

NUMBER(n,p)

Mendefenisikan angka pecahan, fixed decimal atau floating point, Nilai n adalah jumlah bytes total
dan p adalah presisi angka di belakang koma.

Create table

Create table datamahasiswa(nim varchar(10), nama_mahasiswa varchar2(25), jk varchar2(9),


tempat_lahir varchar2(20), tgl_lahir date, agama varchar2(20), alamat varchar2(100), email
varchar2(20), telp varchar2(20), ig varchar2(20));

Melihat struktur table

DESC datamahasiswa;
Syntax

Menambah Field : ALTER TABLE Nama_Tabel

ADD Nama_Field Type_Data(Size);

Mengubah Field : ALTER TABLE Nama_Tabel

MODIFY Nama_Field Type_Data(Size);

Menghapus Field : ALTER TABLE Nama_Tabel

DROP COLUMN Nama_Field

Mengubah Nama Field : ALTER TABLE Nama_Tabel

RENAME COLUMN Field_Lama TO Field_Baru ;

Menambah collum/field

ALTER TABLE datamahasiswa

ADD fb varchar2(20);

Mengubah type data

ALTER TABLE datamahasiswa

modify NIM number(10);

ALTER TABLE datamahasiswa

modify telp number(12);

Mengubah nama collumn

ALTER TABLE datamahasiswa

rename column telp to hp;

Menghapus collumn

ALTER TABLE datamahasiswa

drop column fb;

Menghapus table

drop table datamahasiswa;

Create table

Create table datamahasiswa(nim number(10), nama_mahasiswa varchar2(25), jk varchar2(9),


tempat_lahir varchar2(20), tgl_lahir date, agama varchar2(20), alamat varchar2(100), email
varchar2(20), telp number(12), ig varchar2(20), fb varchar2(20));
Data manipulation (insert)

INSERT INTO datamahasiswa(nim, nama_mahasiswa, jk, tempat_lahir, tgl_lahir, agama, alamat,


email, telp, ig, fb) VALUES('1234567890', 'Si Anu', 'perempuan', 'Jambi', '20-DEC-2000', 'Islam','Jl.
Sudirman No 69', '[email protected]','0812345678','@anu','sianualay');

Lihat datanya :

select * from datamahasiswa;

MATERI SUBTITUTION VARIABLE

SINGLE AMPERSAND SUBTITUTION VARIABLE

SELECT employee_id, last_name, salary, department_id FROM EMPLOYEES WHERE salary > &gaji;

SELECT * FROM employees WHERE salary BETWEEN &nilaimin AND &nilaimax;

SELECT * FROM EMPLOYEES WHERE MANAGER_ID IN (&man1, &man2);

ISI DENGAN 100 108

Character Values with Substitution Variable

SELECT last_name, department_id, salary,job_id FROM employees WHERE job_id = '&jab_kerja' ;

ISI DENGAN IT_PROG

SELECT * FROM EMPLOYEES WHERE FIRST_NAME LIKE '&hurufnya%' ;

ISI DENGAN A

SELECT * FROM EMPLOYEES WHERE FIRST_NAME LIKE ‘%&hurufnya%' ;

ISI DENGAN d

SELECT * FROM EMPLOYEES WHERE salary >= &gaji AND FIRST_NAME LIKE '%&hurufnya%' ;

ISI DENGAN 1000, d

Specify Column Names with Substitution Variable

SELECT last_name, &kolom1, &kolom2 FROM employees WHERE salary > 2000;

Kolom 1 isi dengan Kolom 2 isi dengan

department_id salary
Specify Expressions with Substitution Variable

SELECT last_name, salary, job_id FROM employees WHERE &kondisi;

Isi dengan

salary > 2000

SELECT last_name, salary, job_id FROM EMPLOYEES WHERE salary &operator &nilai;

Input Operator Isi dengan : Input nilai Isi dengan :

> 1000

Specify Order with Substitution Variable

SELECT last_name, salary, job_id FROM EMPLOYEES WHERE salary > 3000 Order by &urutan asc;

Input urutan isi dengan

Salary

Double-Ampersand Substitution Variable

SELECT employee_id, last_name, salary, department_id FROM employees WHERE employee_id =


&&id_karyawan ;

SELECT employee_id, last_name, salary, department_id FROM EMPLOYEES WHERE salary > &&gaji;

SELECT employee_id, last_name, salary, department_id FROM EMPLOYEES WHERE salary < &&gaji;

Untuk menghapus variable yang sudah disimpan dengan &&, digunakan perintah/query:

UNDEFINE variable

Contoh:

UNDEFINE gaji

Ketika query dieksekusi lagi maka akan ditampilkan input (sama seperti ketika pertama kali
dieksekusi)

SELECT employee_id, last_name, salary, department_id FROM EMPLOYEES WHERE salary < &&gaji;
DEFINE and UNDEFINE Commands

DEFINE : Mendefinisikan sebuah variabel

UNDEFINE: Mengapus variabel

DEFINE employee_num = 200 SELECT employee_id, last_name, salary, department_id FROM


employees WHERE employee_id = &employee_num ; UNDEFINE employee_num

Buat Query yang menerima input dari pengguna berupa 1 huruf dan menampilkan ID Karyawan,
Nama Belakang, Gaji, dari karyawan dengan Nama Belakang yang mengandung huruf tersebut.

Select employee_id, last_name, salary from employees where last_name like '%&huruf%';

Buat Query yang menampilkan data LAST_NAME, DEPARTMENT_ID, SALARY dengan kondisi, record
yg ditampilkan adalah record dengan Department_id antara dua buah nilai yang diinputkan
pengguna

Select last_name,department_idsalary from employees where department_id between &nilai1 and


&nilai2;

MATERI Single row function

Berdasarkan tipe data yang diproses, single-row function dibagi menjadi lima jenis, yaitu:

1. Character Function digunakan untuk memproses data karakter.

2. Numeric Function digunakan untuk memproses data numerik.

3. Date Function digunakan untuk memproses data tanggal.

4. Convension Function digunakan untuk melakukan konversi data.

5. General Function merupakan function yang bisa digunakan untuk memproses semua tipe
data.

Character Function

1. Fungsi umum, yakni:

• NVL,

• NVL2,

• NULLIF,

• COALESECE,

• CASE, dan

• DECODE.
Fungsi karakter

Fungsi karakter terbagi atas dua bagian, yaitu:

a. Case-manipulation functions, yaitu:

• LOWER(kolom/ekspresi), digunakan untuk mengkonversi semua huruf menjadi

• huruf kecil.

• UPPER(kolom/ekspresi), untuk mengubah seluruh huruf menjadi huruf besar.

• INITCAP(kolom/ekspresi), untuk mengubah huruf pertama dari setiap kata menjadi huruf
besar.

b. Character-manipulation functions

- CONCAT

- SUBSTR

- LENGTH

- INSTR

- LPAD

- RPAD

- TRIM

- REPLACE

FUNCTION RESULT

CONCAT(‘Hello’, ‘World’) HelloWorld

SUBSTR(‘HelloWorld’,1,5) Hello

LENGTH(‘HelloWorld’) 10

INSTR(‘HelloWorld’, ‘W’) 6

LPAD(salary,10,’*’) *****24000

RPAD(salary, 10, ‘*’) 24000*****

TRIM(‘H’ FROM ‘HelloWorld’) elloWorld


Number Function

• ROUND : rounds value to specified decimal

Menampilkan hasil dari pembulatan (rounding) suatu nilai atau bilangan sesuai dengan presisi yang
diinginkan.

ROUND (45.926, 2) = 45.93

• TRUNC : tuncate value to specified decimal

Menampilkan hasil pemotongan dari suatu nilai (bilangan) sesuai dengan presisi yang diinginkan.

TRUNC (45.926,2) = 45.92

• MOD : returns remainder of division

mengembalikan sisa pembagian

MOD(1600,300) =100

Working with Dates

Fungsi MySQL SYSDATE digunakan untuk menghasilkan tanggal dan waktu sekarang.

Contoh Input:

SELECT SYSDATE FROM dual

Tanggal juga dapat dilakukan operasi aritmetika dengan pola seperti pada tabel berikut.

Operasi Hasil Penjelasan

Tanggal + angka Tanggal Menambahkan banyak hari pada tanggal

Tanggal - angka Tanggal Mengurangi banyak hari dari tanggal

Tanggal - tanggal Jumlah hari Mengurangi satu tanggal dari tanggal yang lain

Tanggal + angka/24 Tanggal Menambah sejumlah jam pada tanggal

Contoh input:

SELECT last_name, (SYSDATE - hire_date)/7 AS MINGGU FROM employees WHERE department_id =


90
Fungsi-fungsi pada tanggal adalah sebagai berikut:

 MONTHS_BETWEEN(tgl1, tgl2), mencari jumlah bulan di antara tgl1 dan tgl2.Hasilnya dapat
berupa positif atau negatif. Jika tgl1 lebih besar dari tgl2 maka hasilnya positif.

 ADD_MONTHS(tgl, n), menambahkan sejumlah n bulan ke tgl. n harus berupa integer dan
dapat berupa bilangan negatif.

 NEXT_DAY(tgl, “char”), menemukan hari berikut dari sebuah tanggal yang dispesifikasikan.
Nilai dari „char‟ dapat berupa angka yang merepresentasikan hari atau string.

 LAST_DAY(tgl), menemukan tanggal hari terakhir dari bulan dimana tgl berada.

 ROUND(tgl[, “fmt”]), mengembalikan tgl yang di-round sebanyak unit yang dispesifikaskan
oleh fmt. Jika fmt tidak disebutkan, tgl di-round ke hari yang terdekat.

 TRUNC(tgl[, “fmt”]), mengembalikan tgl dengan porsi waktu dari hari yang di-truncate
sebanyak unit yang dispesifikasikan oleh fmt. Jika fmt tidak disebutkan, tgl di-truncate ke
hari yang terdekat.

Contoh input:

SELECT employee_id, hire_date, MONTHS_BETWEEN(SYSDATE, hire_date) masajabatan,


ADD_MONTHS(hire_date, 6) review, NEXT_DAY(hire_date, 'FRIDAY'), LAST_DAY(hire_date) FROM
employees WHERE MONTHS_BETWEEN(SYSDATE, hire_date) < 280

Contoh input:

SELECT employee_id, hire_date, ROUND(hire_date, 'MONTH'), TRUNC(hire_date, 'MONTH') FROM


employees WHERE hire_date LIKE '%97'

Konversi tipe data

Tipe data konversi terbagi atas dua, yaitu : implicit dan explicit. Implisit berarti dikerjakan secara
otomatis oleh server Oracle, sedangkan eksplisit berarti dilakukan secara manual oleh user

TO_CHAR(nomor/tanggal, [ fmt], [nlsparam]), mengkonversikan angka atau tanggal ke tipe data


VARCHAR2.

Syntax :

Select Last_name, To_char(Start_date,'FmDD Month YYYY')START_DATE From employees

Contoh input:

SELECT employee_id, TO_CHAR(hire_date, 'MM/YY') bulan_dipekerjakan FROM employees WHERE


last_name = 'Higgins'

Contoh input:

SELECT employee_id, TO_CHAR(salary, '$99,999.00') GAJI FROM employees WHERE last_name =


'Ernst';
TO_NUMBER(char, [ fmt], [ nslparam]), mengkonversi string yang mengandung angka menjadi
NUMBER yang dispesifikasikan dengan model format fmt. Nslparam untuk konversi ini sama seperti
konversi TO_CHAR dari NUMBER.

TO_DATE(char, [ fmt], [ nslparam]), mengkonversi string yang menunjukkan tanggal ke dalam bentuk
DATE berdasarkan format yang ditentukan pada fmt. Jika fmt tidak disebutkan, maka format yang
digunakan adalah DD-MON-YY.

YYYY 4 digit tahun

YEAR Tahun disebutkan

MM 2 digit bulan

MONTH Bulan disebutkan secara penuh

MON 3 huruf singkatan dari bulan

DY 3 huruf singkatan dari hari

DAY Hari disebutkan secara penuh

DD 2 digit tanggal

Contoh input:

SELECT last_name, TO_CHAR(hire_date, 'fmDD Month YYYY') as TanggalMasuk FROM employees;

Contoh input:

SELECT last_name, TO_CHAR(hire_date, 'fmDD Month YYYY HH:MI:SS') as tanggalmasuk FROM


employees;

Contoh input:

SELECT last_name, TO_CHAR(hire_date, 'FmDD-Mon-YYYY') FROM employees WHERE hire_date <


TO_DATE('01-Jan-90', 'DD-Mon-RR')

GENERAL FUNCTION

NVL (Null Value) adalah fungsi yang sangat mampu untuk mengatasi tersebut. NVL adalah fungsi
untuk mengembalikan sebuah nilai null menjadi nilai yang kita inginkan.

Contoh input:

select last_name, salary, NVL(commission_pct,0), (salary*12) + (salary*12*NVL(commission_pct,0))


Coba_AN_SAL from employees

Bedakan

select last_name, salary, commission_pct, (salary*12) + (salary*12*commission_pct) Coba_AN_SAL


from employees
NVL2 Mengembalikan salah satu dari dua nilai berdasarkan apakah ekspresi tertentu mengevaluasi
ke NULL atau NOT NULL.

Adapun syntax penulisan NVL2 ini yaitu sebagai berikut:

NVL(ekpresi1, ekspresi2, ekspresi3)

Dimana :

Ekspresi1: ekspresi yang mungkin mengandung nilai null

Ekspresi2: nilai yang dikembalikan jika ekspresi1 TIDAK null

Ekspresi3: nilai yang dikembalikan jika ekspresi1 bernilai null

Contoh input

select last_name, salary, commission_pct, NVL2(commission_pct, 'SAL+COMM' , 'SAL') Income from


employees

NULLIF ini akan membandingkan nilai dari ekspresi1 dan ekspresi2. Jika nilai dari ekspresi1 dan
ekspresi2 bernilai SAMA, maka fungsi NULLIF akan mengembalikan nilai NULL, namun jika nilai dari
ekspresi1 dan ekspresi2 berbeda maka fungsi NULLIF akan mengembalikan nilai ekspresi1.

Contoh input

Select first_name, LENGTH(first_name) "expr1", last_name, LENGTH(last_name) "expr2",


NULLIF(LENGTH(First_name), LENGTH(last_name)) result From employees

COALESCE akan mengembalikan ekpresi pertama yang BUKAN null dari beberapa ekspresi yang ada.
Jika ternyata semua ekspresi bernilai null maka fungsi COALESCE akan mengembalikan null. Pada
fungsi COALESCE ini, database akan mengevaluasi setiap nilai dan menentukan apakah dia null atau
tidak, tanpa mengevaluasi semua ekspresi sebelum menentukan apakah salah satu dari semua
ekspresi tersebut adalah null.

Contoh input

Select last_name, COALESCE(commission_pct, salary, 10) comm From employees

Bedakan

Select last_name, COALESCE(commission_pct, salary, 10) comm From employees Order By


commission_pct

Conditional Expressions

CASE ini merupakan alternatif penggunaan IF-THEN-ELSE pada pemrograman. Sehingga dengan
menggunakan fungsi CASE, kita dapat memberikan hasil berdasarkan pemilihan kondisi yang telah
ditetapkan.

Syntax :

CASE expr WHEN comparison_expr1 then return_expr1 [WHEN comparison_expr2 then


return_expr2 WHEN comparison_exprn then return_exprn ELSE else_expr] END
Contoh input

Select last_name, department_id, Salary, CASE department_id WHEN 50 THEN 1.10*salary WHEN
80 THEN 1.15*salary WHEN 100 THEN 1.20*salary ELSE salary END "Diperbaiki_SALARY_Nya" FROM
Employees

DECODE Sama seperti penggunaan CASE , DECODE juga merupakan alternative penggunaan
kondisional IF-THEN-ELSE. DECODE bekerja menggunakan nilai, kolom, dan ekspresi dengan semua
jenis data.

Syntax :

DECODE (col / expression, search1, result1 [,search2, result2, …..] [, default])

Contoh input

Select last_name, department_id, Salary, DECODE (department_id, 50, 1.10*salary, 80, 1.15*salary,
100, 1.20*salary, salary) Diperbaiki_SALARY_Nya FROM Employees

MATERI table management (DML) data manipulation languange

Table Creation (Membuat Table)

SQL Command untuk membuat table adalah CREATE TABLE.

Kemudian diikuti dengan nama untuk tabel baru, dan semua Field.

SYNTAX :

Constraint

Contoh constraints : Untuk membuat tabel acuan (reference) dengan Primary Key

constraint nama_constraint primary key (nama_field_primarykey) ;

Tabel barang

create table barang (kode_barang char(6), nama_barang varchar2(25), satuan_barang


varchar2(20), stok_barang number(4), constraint pk_barang primary key(kode_barang));
Tabel suplier

create table supplier (

kode_supplier char(5),

nama_supplier varchar2(30),

alamat_supplier varchar2(30),

kota_supplier varchar2(15),

telepon_supplier varchar2(15) unique,

constraint pk_supplier primary key(kode_supplier));

Tabel Customer

create table customer (

kode_customer char(6),

nama_customer varchar2(30),

alamat_customer varchar2(30),

kota_customer varchar2(15),

telepon_customer varchar2(15) unique,

constraint pk_customer primary key(kode_customer));

Tabel Pasok

Create table pasok (

kode_pasok char(10),

kode_barang char(6),

kode_supplier char(5),

tanggal_pasok date,

jumlah_pasok number(4),

constraint pk_pasok primary key(kode_pasok, kode_barang, kode_supplier),

constraint fk_pasok_barang foreign key(kode_barang)

references barang(kode_barang),

constraint fk_pasok_supplier foreign key(kode_supplier)

references supplier(kode_supplier));
Tabel Pembelian

create table pembelian (

kode_pembelian char(10),

kode_barang char(6),

kode_customer char(6),

tanggal_pembelian date,

jumlah_pembelian number(4),

constraint pk_pembelian primary key(kode_pembelian,

kode_barang, kode_customer),

constraint fk_pembelian_barang foreign key(kode_barang)

references barang(kode_barang),

constraint fk_pembelian_customer foreign key(kode_customer)

references customer(kode_customer));

Manipulating data

Data Manipulation Language (DML) adalah bahasa yang digunakan untuk mengakses dan
memanipulasi data. Manipulasi data mengacu pada pengambilan, penyisipan, penghapusan dan
modifikasi data atau informasi yang disimpan dalam database.

Tujuan dasarnya adalah untuk mencapai interaksi user yang efisien dengan sistem database.

Kemampuan fungsional DML dalam perintah manipulasi sebagai berikut:

SELECT : mengambil rows dari tabel.

INSERT : menambahkan satu atau lebih record ke tabel

UPDATE : mengubah data dari satu atau lebih record.

DELETE : menghapus satu atau lebih record dari tabel.

INSERT (Memasukkan Data)

Pada prinsipnya insert bertujuan untuk mengisikan data/record ke dalam suatu tabel. Pengisian data
ini bisa satu record penuh atau hanya sebagian saja.

Syntax

INSERT INTO nama_tabel (nama field ke-1, ………,nama field ke-n) VALUES (nilai_field ke-1,
……..,nilai_field ke-n)

Lihat hasil INSERT dengan perintah select :

select * from barang


UPDATE (Memperbaharui Data)

Update adalah perubahan data lama menjadi data terkini.

Syntax

UPDATE nama_table

SET nama_field = data_baru

WHERE nama_field_kunci = kode_kunci

Lihat hasil UPDATE dengan perintah select :

select * from barang

DELETE (Menghapus Data)

Penghapusan data bisa dilakukan secara keseluruhan dan bisa juga dilakukan sebagian.

Syntax

DELETE FROM nama_table

[WHERE Kondisi]

Hapus barang dengan kode BRG-6

delete from barang where kode_barang='BRG-6';

Lihat hasil DELETE dengan perintah select :

select * from barang

insert into supplier(kode_supplier, nama_supplier, alamat_supplier, kota_supplier,


telepon_supplier) values ('SUP-1','Maju Mundur Olshop', 'Jl. Sunyi Sepi No.
69','Balikpapan','08123456789');

insert into pasok(kode_pasok, kode_barang, kode_supplier, tanggal_pasok, jumlah_pasok)

values ('PAS-1','BRG-2','SUP-1','12-MAR-18',20);
MATERI multiple row function

Identifikasi berbagai macam group functions

Deskripsi penggunaan group functions

Mengelompokkan data dengan menggunakan GROUP BY

Memilih pengelompokan data menggunakan HAVING

Contoh: Menampilkan rata-rata dari seluruh data salary.

SELECT AVG(salary) "Rata-rata Gaji" FROM employees;

COUNT : Menghitung banyaknya data

SELECT COUNT(*) FROM EMPLOYEES;

SELECT COUNT(department_id) FROM employees;

SELECT COUNT(DISTINCT department_id) FROM employees;

SELECT COUNT(*) FROM EMPLOYEES WHERE salary > 5000;

Ada berapa orang yang nama depannya (first_name) diawali dengan huruf ‘A’?

SELECT FIRST_NAME FROM employees WHERE first_name LIKE 'A%';

SUM jumlah data(hasil penambahan)

MAX nilai tertinggi/terbesar dari data

MIN nilai terendah/terkecil dari data

Tampilkan Jumlah gaji, gaji tertinggi dan gaji terendah dari karyawan di department_id 20

SELECT MIN(salary), MAX(salary), SUM(salary) FROM employees WHERE department_id = 20;

GROUP BY: Mengelompokkan data berdasarkan kolom tertentu

Contoh: Menampilkan rata-rata dari seluruh data salary dan dikelompokkan berdasarkan field
(kolom) DEPARTMENT_ID

select department_id, avg(salary) “Rata-rata Gaji" from employees group by department_id;

Contoh: Menampilkan rata-rata dari seluruh data salary dan dikelompokkan berdasarkan field
(kolom) DEPARTMENT_ID dan diurutkan berdasarkan rata-rata seluruh data salary

SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ORDER BY


AVG(salary) ASC;
Menampilkan data yang merupakan hasil dari fungsi group by berdasarkan kondisi tertentu

SELECT department_id, AVG(salary) FROM EMPLOYEES WHERE AVG(salary) > 8000 GROUP BY
department_id;

Menampilkan data yang merupakan hasil dari fungsi group by berdasarkan kondisi tertentu

WHERE diganti dengan HAVING:

SELECT department_id, AVG(salary) FROM EMPLOYEES HAVING AVG(salary) > 8000 GROUP BY
department_id;

Menampilkan data rata-rata SALARY yang lebih besar dari 10000

SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING


MAX(salary)>10000;

Temukan Gaji Tertinggi, Gaji Terendah, Jumlah Seluruh Gaji, dan Rata-rata Seluruh Gaji. Beri label
(judul) setiap kolomnya Gaji Tertinggi, Gaji Terendah, Jumlah Seluruh Gaji, dan Rata-rata seluruh gaji.
Bulatkan Rata-rata gaji menjadi 2 angka di belakang koma.

SELECT MAX(SALARY) "Gaji Tertinggi", MIN(SALARY) "Gaji Terendah", SUM(SALARY) "Jumlah Seluruh
Gaji", ROUND(AVG(SALARY),2) "Rata-rata Gaji" from employees;

Berapa orang karyawan dengan salary di antara 10000 dan 20000

SELECT COUNT(*) FROM EMPLOYEES WHERE SALARY BETWEEN 10000 AND 20000;

Berapa orang karyawan dengan nomor telepon yang diawali dengan 515.

SELECT count(*) from EMPLOYEES WHERE substr(PHONE_NUMBER,1,3) = '515';

Berapa orang karyawan di setiap Bagian Kerja.

SELECT job_id "Bagian Kerja", COUNT(*) "Jumlah Karyawan" FROM EMPLOYEES GROUP BY job_id;

Berapa orang karyawan yang memiliki gaji (salary) yang sama di setiap department.

SELECT DEPARTMENT_ID "Department", SALARY "Gaji", COUNT(*) "Jumlah Karyawan dgn Gaji Sama"
FROM EMPLOYEES GROUP BY DEPARTMENT_ID, SALARY ;
MATERI SYSDATE

SYSDATE adalah fungsi yang digunakan untuk menampilkan tanggal dan waktu dari sistem.

select SYSDATE from DUAL;

Konversi dari tipe data karakter ke tipe data Date

SELECT TO_DATE(‘30 november 2021','DD MM YYYY') from DUAL;

SELECT TO_DATE(‘30-11-2021','DD-MM-YYYY') from DUAL;

SELECT TO_DATE(‘30 11 2021','DD-MM-YYYY') from DUAL;

Konversi dari tipe data Date ke tipe karakter

SELECT TO_CHAR(SYSDATE, 'DD-MM-YYYY') FROM dual;

SELECT TO_CHAR(SYSDATE, 'DD MM YYYY') FROM dual;

SELECT TO_CHAR(SYSDATE, 'DD MON YEAR') FROM dual;

SELECT last_name "Nama Karyawan", hire_date, TO_CHAR(hire_date, 'DAY, DD MONTH YYYY')


"Tanggal Masuk Kerja" FROM EMPLOYEES;

Date + number Menambah sejumlah hari pada data tanggal

Date – number Mengurangi sejumlah hari dari data tanggal

Date – Date Menghasilkan selisih hari diantara 2 tanggal

Date + number/24 Menambah sejumlah jam dari data tanggal

Date + number

Tanggal berapakah minggu depan (7 hari dari hari ini)?

Select SYSDATE "Tanggal Sekarang" , SYSDATE + 7 "Tanggal Minggu Depan" FROM DUAL ;

Date - number

Tanggal berapakah 14 hari yang lalu?

Select SYSDATE "Tanggal Sekarang" , SYSDATE - 14 "Tanggal 14 hari lalu" FROM DUAL ;

Date – Date

Tanggal 1 Mei 2021 itu berapa hari yang lalu?

SELECT SYSDATE - TO_DATE('1-05-2021','DD-MM-YYYY') FROM DUAL;

Lebaran berapa hari lagi?

SELECT TO_DATE(‘02-05-2022','DD-MM-YYYY') - SYSDATE FROM DUAL;


Date + number/24

Tanggal berapakah 140 jam kemudian?

Select SYSDATE "Tanggal Sekarang" , SYSDATE + 140/24 "Tanggal 140 jam kemudian" from DUAL ;

Date Functions

MONTHS_BETWEEN Menampilkan jumlah Bulan antara 2 tanggal

ADD_MONTHS Menambah jumlah Bulan pada suatu tanggal

NEXT_DAY Menampilkan hari berikutnya dari suatu tanggal

LAST_DAY Menampilkan tanggal akhir bulan

ROUND Pembulatan data tanggal

TRUNC Truncate data tanggal

MONTHS_BETWEEN

Berapa bulan jarak Tanggal sekarang dengan Tanggal 20 December 2002?

Select SYSDATE "Tanggal Kini", '20-DEC-02' "Tanggal Lahir", Months_Between(SYSDATE,'20-DEC-02')


"Jarak dlm Bulan" From Dual;

Pembulatan 2 angka di belakang koma :

Select SYSDATE "Tanggal Kini", '20-DEC-00' "Tanggal Lahir", ROUND(Months_Between(SYSDATE,'20-


DEC-00'),2) "Jarak dlm Bulan" From Dual;

Sudah berapa bulan karyawan bekerja?

SELECT last_name, hire_date "Tanggal Masukin", MONTHS_BETWEEN(SYSDATE,hire_date) "Lama


Kerja (bulan)" FROM employees;

ADD_MONTHS

Menambah sekian bulan dari sebuah tanggal

select sysdate “Tanggal Kini", add_months(sysdate,6) “Tanggal 6 Bulan lagi" from dual;

NEXT_DAY

Hari berikutnya setelah sebuah tanggal

Hari Senin berikutnya setelah hari ini:

select next_day(sysdate,'Monday') "Senin Berikutnya" from dual;

Hari Jumat berikutnya setelah Tanggal 26 NOV 2021:

select next_day(‘26-NOV-19','Friday') "Jumat Berikutnya" from dual;


LAST_DAY

Tanggal Akhir Bulan

Tanggal akhir bulan ini:

select last_day(sysdate) from dual;

Tanggal akhir bulan dari tanggal 3 Mei 2018:

select last_day('3-MAY-18') from dual;

ROUND & TRUNC

Membulatkan tanggal :

Round : Ke awal bulan terdekat dari sebuah tanggal

Trunc : Ke awal bulan yang sama dari sebuah tanggal

select sysdate, round(sysdate,'month'), trunc(sysdate,'month') from dual;

select

round(to_date('25-MAY-19'),'month'),

trunc(to_date('25-MAY-19'),'month') from dual;

Dengan format ‘year’

select '25-DEC-2019' "Tanggalnya",

round(to_date('25-DEC-19'),'year'),

trunc(to_date('25-DEC-19'),'year') from dual;

You might also like