• Tidak ada hasil yang ditemukan

INSERT INTO dokter (nip, nama, alamat, tgllahir, tunjangan) VALUES ('222', 'Dr. Dewi', 'Solo', ' ', );

N/A
N/A
Protected

Academic year: 2021

Membagikan "INSERT INTO dokter (nip, nama, alamat, tgllahir, tunjangan) VALUES ('222', 'Dr. Dewi', 'Solo', ' ', );"

Copied!
10
0
0

Teks penuh

(1)

Perintah SQL Database SQL Server (Administrasi Database)

Berikut ini perintah-perintah SQL pada Database SQL Server. Materi pelatihan ber upa contoh-contoh perintah SQL dasar mulai dari CREATE, SELECT, UPDATE, DELETE, sampai PROCEDURE dan TRIGGER.

Membuat Database

CREATE DATABASE rumahsakit Menghapus Database

DROP DATABASE rumahsakit Menggunakan Database USE rumahsakit

Membuat Tabel

CREATE TABLE dokter (

nip nvarchar(50) NOT NULL, nama nvarchar(200) NULL, alamat text NULL,

tgllahir datetime NULL, tunjangan float NULL, PRIMARY KEY (nip) )

CREATE TABLE jabatan (

idjabatan nvarchar(50) NOT NULL PRIMARY KEY, namajabatan nvarchar(200) NULL

)

Menambah Kolom pada Tabel

ALTER TABLE dokter ADD idjabatan nvarchar(50) NULL Menambah Data

INSERT INTO dokter (nip, nama, alamat, tgllahir, tunjangan) VALUES ('222', 'Dr. Dewi', 'Solo', '1983-02-20', 1500000);

Mengupdate Data

UPDATE dokter SET nip = '333', nama = 'Dr. Asri', alamat = 'Jogja', tgllahir = ' 1984-03-14', tunjangan = 2000000 WHERE nip = '444'

Menghapus Data

DELETE FROM dokter WHERE nip = '111' Memfilter Data dengan Klausa WHERE SELECT * FROM dokter WHERE nip = '111'

SELECT * FROM dokter WHERE nama = 'Dr. Andi Irmawan' SELECT * FROM dokter WHERE nama LIKE '%Andi%'

(2)

SELECT * FROM dokter WHERE tunjangan = 1000000 SELECT * FROM dokter WHERE tunjangan <= 1000000 SELECT * FROM dokter WHERE tunjangan <> 1000000 SELECT * FROM dokter WHERE tunjangan IS NULL SELECT * FROM dokter WHERE NOT tunjangan IS NULL

SELECT * FROM dokter WHERE tunjangan > 10000 AND alamat LIKE '%Yogya%' SELECT * FROM dokter WHERE tgllahir > '1980-12-27'

Fungsi Menambah Tanggal atau Mengurangi Tanggal dengan Hari, Bulan, atau Tahun SELECT nip,DATEADD(day,30,TglLahir) AS Kadaluarsa FROM dokter

SELECT nip,DATEADD(day,-30,TglLahir) AS Kadaluarsa FROM dokter SELECT nip,nama,DATEADD(year,60,TglLahir) AS Pensiun FROM dokter

SELECT nip,nama,tgllahir FROM dokter WHERE GETDATE() > DATEADD(day,30,tgllahir) Menggabungkan Dua Buah Tabel dengan Penggabungan Biasa

SELECT * FROM dokter, jabatan WHERE dokter.idjabatan = jabatan.idjabatan Menggabungkan Dua Buah Tabel dengan JOIN

SELECT * FROM dokter JOIN jabatan ON dokter.idjabatan = jabatan.idjabatan Menggabungkan Dua Buah Tabel dengan LEFT JOIN

SELECT * FROM dokter LEFT JOIN jabatan ON dokter.idjabatan = jabatan.idjabatan Menggabungkan Dua Buah Tabel dengan RIGHT JOIN

SELECT * FROM dokter RIGHT JOIN jabatan ON dokter.idjabatan = jabatan.idjabatan Menggabungkan Dua Buah Tabel dengan FULL JOIN

SELECT * FROM dokter FULL JOIN jabatan ON dokter.idjabatan = jabatan.idjabatan Menghapus Kolom dalam suatu Tabel

ALTER TABLE dokter DROP COLUMN idjabatan Membuat Tabel dengan Foreign Key

CREATE TABLE dokter (

nip nvarchar(50) NOT NULL, nama nvarchar(200) NULL, alamat text NULL,

tgllahir datetime NULL, tunjangan float NULL, PRIMARY KEY (nip) ,

CONSTRAINT fk_dokjab FOREIGN KEY (idjabatan) REFERENCES jabatan(idjabatan) )

Mengubah kolom Tabel dan menambahkan Foreign Key setelah Tabel dibuat. ALTER TABLE dokter ADD idjabatan nvarchar(50)

ALTER TABLE dokter ADD CONSTRAINT fk_dokjab FOREIGN KEY (idjabatan) REFERENCES j abatan(idjabatan)

(3)

Mengetes Foreign Key sudah Bekerja atau Belum

UPDATE dokter SET idjabatan = 'KEP' WHERE nip = '111' UPDATE dokter SET idjabatan = 'MANN' WHERE nip = '222' UPDATE dokter SET idjabatan = NULL WHERE nip = '111'

UPDATE jabatan SET idjabatan = 'KPL' WHERE idjabatan = 'KEP' UPDATE jabatan SET idjabatan = 'STF' WHERE idjabatan = 'STA' Msg 547, Level 16, State 0, Line 1

The UPDATE statement conflicted with the FOREIGN KEY constraint "fk_dokjab". The conflict occurred in database "rumahsakit", table "dbo.jabatan", column 'idjaba tan'.

The statement has been terminated. Menghapus Foreign Key

ALTER TABLE dokter DROP CONSTRAINT fk_dokjab Menambah Foreign Key dengan On Update Cascade

ALTER TABLE dokter ADD CONSTRAINT fk_dokjab FOREIGN KEY (idjabatan) REFERENCES j abatan(idjabatan) ON UPDATE CASCADE

Mengetes Foreign Key dengan Cascade Update

UPDATE jabatan SET idjabatan = 'KPL' WHERE idjabatan = 'KEP' Menghapus Foreign Key

ALTER TABLE dokter DROP CONSTRAINT fk_dokjab Menambah Foreign Key dengan On Delete Cascade

ALTER TABLE dokter ADD CONSTRAINT fk_dokjab FOREIGN KEY (idjabatan) REFERENCES j abatan(idjabatan) ON DELETE CASCADE

Mengetes Foreign Key dengan Cascade Delete DELETE jabatan WHERE idjabatan = 'KPL' Menghapus Foreign Key

ALTER TABLE dokter DROP CONSTRAINT fk_dokjab

Menambah Foreign Key dengan Cascade Delete dan Cascade Update

ALTER TABLE dokter ADD CONSTRAINT fk_dokjab FOREIGN KEY (idjabatan) REFERENCES j abatan(idjabatan) ON UPDATE CASCADE ON DELETE CASCADE

Mengetes Foreign Key dengan Cascade Delete dan Cascade Update UPDATE jabatan SET idjabatan = 'KPL' WHERE idjabatan = 'KEP' DELETE jabatan WHERE idjabatan = 'KPL'

Membuat Tabel Baru Untuk Mempraktekkan Gabungan Join 3 Tabel CREATE TABLE spesialis

(

idspesialis nvarchar(50) NOT NULL PRIMARY KEY, namaspesialis nvarchar(200) NULL,

(4)

Menambahkan Kolom pada Tabel

ALTER TABLE dokter ADD idspesialis nvarchar(50) NULL Gabungan Join 3 Tabel dengan Cara Sederhana

SELECT * FROM dokter, jabatan, spesialis WHERE dokter.idjabatan = jabatan.idjaba tan AND dokter.idspesialis = spesialis.idspesialis

Join Penggabungan 3 Tabel dengan JOIN

SELECT * FROM dokter JOIN jabatan ON dokter.idjabatan = jabatan.idjabatan JOIN s pesialis ON dokter.idspesialis = spesialis.idspesialis

Menghapus Kolom pada suatu Tabel

ALTER TABLE dokter DELETE COLUMN idspesialis Mengubah Tipe data dari suatu Kolom pada Tabel

ALTER TABLE dokter ALTER COLUMN idspesialis nvarchar(50) NULL

Agregat Penjumlahan, Hitung Baris, Maksimum, Minimum, dan Rata-rata

SELECT SUM(tunjangan), MIN(tunjangan), MAX(tunjangan), COUNT(nip), AVG(tunjangan ) FROM dokter

Memberi Nama Kolom dengan Klausa AS

SELECT SUM(tunjangan) as total FROM dokter Menjumlahkan Tunjangan Per Jabatan

SELECT idjabatan, SUM(tunjangan) as total FROM dokter GROUP BY idjabatan Menampilkan Tunjangan dan Total Semua Tunjangan Dokter dengan SubQuery

SELECT nip, tunjangan, (SELECT SUM(tunjangan) as total FROM dokter WHERE idjabat an = d.idjabatan) FROM dokter d

Menampilkan Tunjangan dan Persentase terhadap Total Semua Tunjangan Dokter denga n SubQuery

SELECT nip, (tunjangan/(SELECT SUM(tunjangan) FROM dokter WHERE idjabatan = d.id jabatan))*100 as persentase FROM dokter d

Menampilkan Dokter dengan Persentase terhadap Total Semua Tunjangan Dokter yang lebih dari 30% per Jabatan dengan SubQuery

SELECT nip FROM dokter d WHERE (tunjangan/(SELECT SUM(tunjangan) FROM dokter WHE RE idjabatan = d.idjabatan))*100 > 30

Menampilkan Beberapa Dokter dengan Klausa IN

SELECT nip, nama FROM dokter d WHERE nip IN ( 001 , 002 , 003 ) Menampilkan Dokter dengan Tunjangan Terbesar dengan IN

SELECT nip, nama FROM dokter d WHERE nip IN (SELECT TOP 3 * FROM dokter ORDER BY tunjangan DESC)

(5)

Daftar Semua Teman dokter sama spesialis dari 2 orang dokter spesialis yg mempun yai tunjangan terbesar

SELECT nip, nama FROM dokter WHERE idspesialis IN (SELECT TOP 2 idspesialis FROM dokter ORDER BY tunjangan DESC)

SELECT nip, nama, (tunjangan / (SELECT SUM(tunjangan) FROM dokter)) * 100 AS per sentase, tunjangan FROM dokter

SELECT nip, nama, (tunjangan / (SELECT SUM(tunjangan) FROM dokter)) * 100 AS per sentase, tunjangan FROM dokter WHERE ((tunjangan / (SELECT SUM(tunjangan) FROM d okter)) * 100) > 30

Contoh lain SubQuery Berlapis-lapis

SELECT * FROM (SELECT nip, nama, (tunjangan/(SELECT SUM(tunjangan) FROM dokter)) * 100 AS persentase, tunjangan FROM dokter) d WHERE d.persentase > 30

SELECT nip, nama, (tunjangan / (SELECT SUM(tunjangan) FROM dokter) WHERE idspesi alis = d.idspesialis) * 100 AS persentase, tunjangan FROM dokter d

Mengkopi suatu Tabel ke Tabel lain atau Memasukkan hasil Query menjadi sebuat Ta bel Temporary

SELECT *

INTO backupdokter FROM dokter

SELECT * FROM backupdokter DROP TABLE backupdokter

Membuat Tabel untuk Backup Data CREATE TABLE backupdokter

(

id int NOT NULL PRIMARY KEY IDENTITY, waktu datetime NULL,

nip nvarchar(50) NULL, nama nvarchar(200) NULL, alamat text NULL,

tgllahir datetime NULL, tunjangan float NULL )

Mengkopi Tabel ke Tabel Backup atau Memasukkan hasil sebuah Query ke Tabel Backu p

INSERT INTO backupdokter (waktu, nip, nama, alamat, tgllahir, tunjangan) SELECT GETDATE(), nip, nama, alamat, tgllahir, tunjangan

FROM dokter

SELECT * FROM backupdokter Membuat Stored Procedure

CREATE PROCEDURE sp_totaltunjangan AS

SELECT SUM(tunjangan) AS total FROM dokter

Menjalankan Stored Procedure EXECUTE sp_totaltunjangan

(6)

CREATE PROCEDURE sp_totaljabatan @idjab nvarchar(50)

AS

SELECT SUM(tunjangan) AS total FROM dokter

WHERE idjabatan = @idjab

Menjalankan Stored Procedure dengan Parameter Input EXECUTE sp_totaljabatan 'KEP'

Membuat Stored Procedure dengan Parameter Input dan Output CREATE PROCEDURE tertinggiterendah

@idjab varchar(10),

@tunjtertinggi float OUTPUT, @tunjterendah float OUTPUT AS

SELECT @tunjtertinggi=(SELECT MAX(tunjangan) FROM dokter WHERE idjabatan = @idj ab)

SELECT @tunjterendah=(SELECT MIN(tunjangan) FROM dokter WHERE idjabatan = @idja b)

Menyiapkan Parameter dan Memanggil Stored Procedure yang Menggunakan Parameter I nput Output

----DECLARE @idjabcari varchar(10); DECLARE @hsltertinggi float; DECLARE @hslterendah float; SET @idjabcari='MAN'

EXECUTE tertinggiterendah @idjab=@idjabcari, @tunjtertinggi=@hsltertinggi OUTPUT , @tunjterendah=@hslterendah OUTPUT

SELECT @hsltertinggi AS "tertinggi", @hslterendah AS "terendah"

---Menambah Kolom pada Tabel untuk mempraktekkan Trigger ALTER TABLE jabatan ADD totaltunjangan float NULL; Mengetes perintah SUM

SELECT SUM(tunjangan) FROM dokter WHERE idjabatan = MAN

Mengetes perintah SubQuery untuk Mengupdate Semua Baris dalam Suatu Tabel

UPDATE jabatan SET totaltunjangan = (SELECT SUM(tunjangan) FROM dokter d WHERE d .idjabatan = jabatan.idjabatan)

SELECT * FROM jabatan

Membuat Trigger untuk Mengupdate Total Tunjangan ketika Ada Tunjangan Diubah, Di tambah atau Dihapus

CREATE TRIGGER updatetotaltunjangan ON dokter

AFTER INSERT, UPDATE, DELETE AS

BEGIN

UPDATE jabatan SET totaltunjangan = (SELECT SUM(tunjangan) FROM dokter d WHERE d .idjabatan = jabatan.idjabatan)

(7)

Mengubah kolom bertipe TEXT menjadi bertipe NVARCHAR agar bisa dipakai di Trigge r

ALTER TABLE dokter ALTER COLUMN alamat nvarchar(1000) NULL

ALTER TABLE backupdokter ALTER COLUMN alamat nvarchar(1000) NULL Membuat Trigger untuk Membackup Data yang Dihapus (Deleted) CREATE TRIGGER backupdelete

ON dokter AFTER DELETE AS

BEGIN

INSERT INTO backupdokter (waktu, nip, nama, alamat, tgllahir, tunjangan) SELECT GETDATE(), nip, nama, alamat, tgllahir, tunjangan

FROM deleted; END;

Mengetes Trigger untuk Membackup Data yang Dihapus (Deleted) SELECT * FROM dokter;

DELETE FROM dokter WHERE nip='444'; SELECT * FROM backupdokter;

Mengembalikan Data Dokter yang Telah Dihapus

INSERT INTO dokter (nip, nama, alamat, tgllahir, tunjangan) SELECT TOP 1 nip, na ma, alamat, tgllahir, tunjangan FROM backupdokter WHERE nip='444' ORDER BY waktu DESC

Membuat Trigger untuk Membackup Data yang Diedit (Updated) CREATE TRIGGER backupupdate

ON dokter AFTER UPDATE AS

BEGIN

INSERT INTO backupdokter (waktu, nip, nama, alamat, tgllahir, tunjangan) SELECT GETDATE(), nip, nama, alamat, tgllahir, tunjangan

FROM updated; END;

Membuat Trigger untuk Membackup Data yang Ditambahkan (Inserted) CREATE TRIGGER backupinsert

ON dokter AFTER INSERT AS

BEGIN

INSERT INTO backupdokter (waktu, nip, nama, alamat, tgllahir, tunjangan) SELECT GETDATE(), nip, nama, alamat, tgllahir, tunjangan

FROM inserted; END;

Terlebih dahulu install AppServ atau MySQL. Kemudian buka MySQL Command Line Cli ent. Masukan password yang sesuai saat instalasi, apabila tidak menggunakan pass word maka langsung dienter.

Perintah melihat database : show databases;

(8)

Perintah membuat database :

Create database namadatabase; kemudian enter Contoh : create kuliah;

Perintah menggunakan database yang telah dibuat : Use namadatabase;

Contoh : create kuliah; Perintah membuat table :

Create table namatabel (namafield1 type(length),namafield2 type(length),primary key(namafield1));

Contoh : create table mahasiswa(npm char(9), nama_mahasiswa varchar(20),umur int (2),alamat text, primary key(npm));

create table mata_kuliah(kode_matkul char(5), nama_matkul varchar(30), primary k ey(kode_matkul));

create table krs(npm char(9), kode_matkul char(5), semester int(2), tahun_ajaran char(10), primary key (npm,kode_matkul,semester));

Perintah melihat table apa saja yang ada pada database : Show tables;

Perintah melihat deskripsi table/melihat kolom apa saja beserta type, length yan g ada pada table :

Desc namatabel;

Contoh : desc mahasiswa;

Perintah menambah field pada table :

Alter table namatabel add namafield type(length); kemudian enter Contoh : alter table mahasiswa add jenis_kelamin int(1);

Perintah menghapus table : drop table namatabel;

contoh : drop table mahasiswa;

Perintah mengganti nama field pada table :

Alter table namatabel change namafield_lama namafield_baru type(length);

Contoh : alter table mahasiswa change nama_mahasiswa name_student varchar(20); Perintah mengubah ukuran (length) dari suatu field :

Alter table namatabel modify namafield type(length) not null; Contoh : alter table mahasiswa modify name_student varchar(30); Perintah menghapus field pada table :

Alter table namatabel drop namafield;

Contoh : alter table mahasiswa drop jenis_kelamin;

Perintah menginput satu data pada table langsung untuk semua field : Insert into namatabel values( data1 , dataA );

Contoh : insert into mahasiswa values( G1A008023 , Wiwid KZ , 20 , Bengkulu ); Perintah menginput beberapa data pada table langsung untuk semua field :

Insert into namatabel values ( data1 , dataA ),( data2 , dataB );

Contoh : insert into mahasiswa values( A1F006010 , Sanity KZ , 23 , Bengkulu ),( G1A008023 , W engkulu );

Perintah menginput data pada table hanya untuk field tertentu : Insert into namatabel (namafield) values( data1),( data2 );

(9)

Contoh : insert into mahasiswa (npm) values( F1A006010 ),( GiA008023 ); Perintah melihat isi table keseluruhan :

Select * from namatabel;

Contoh : select * from mahasiswa;

Perintah menampilkan isi table hanya untuk field tertentu saja : Select namafield from namatabel;

Contoh : select npm from mahasiswa;

Perintah isi/data lengkap table pada baris tertentu saja : Select * from namatabel where namafield_key= data ;

Contoh : select * from mahasiswa where npm= G1A008023 ; Perintah mengubah isi dari field yang diinginkan :

Update namatabel set namafield= data_baru where namafield_key= data_baru ;

Contoh : update mahasiswa set name_student= Sanity Afsyawida KZ where npm= A1F006010 ; Perintah menghapus baris yang diinginkan:

Delete from namatabel where namafield_key= data ; Contoh : delete from mahasiswa where npm= G1A008023 ; Perintah menggabungkan beberapa tabel:

Alter table namatabel1 add foreign key(namafield_key) references namatabel2(nama field_key);

Contoh : alter table mahasiswa add foreign key(npm) references krs(npm);

Alter table mata_kuliah add foreign key(kode_matkul) references krs(kode_matkul) ;

Perintah memanggil beberapa data dari beberapa tabel :

Select namafield1,namafield2,namafield3 from namatabel1 inner join namatabel2 wh ere namatabel1.namafield_key=namatabel2.namafield_key;

Contoh : select a.npm,a.nama,b.nama_matkul,c.semester from mahasiswa a inner joi n mata_kuliah b inner join krs c where a.npm=c.npm and b.kode_matkul=c.kode_matk ul;

Perintah memanggil isi tabel yang dikelompokkan berdasarkan field tertentu: Select * from namatabel group by namafield;

Contoh : select * from mahasiswa group by npm;

Perintah memanggil isi tabel yang diurutkan secara ascending descending Select * from namatabel order by namafield;

Select * from namatabel order by namafield desc; Contoh : select * from mahasiswa order by npm desc;

Perintah mencari nilai maksimum pada suatu field pada tabel tertentu : Select max(namafield) from namatabel;

Contoh : select max(umur) from mahasiswa;

Perintah mencari nilai minimum pada suatu field pada tabel tertentu : Select min(namafield) from namatabel;

Contoh : select min(umur) from mahasiswa;

Perintah mencari banyaknya record/data dalam sebuah field pada sebuah tabel : Select count(namafield) from namatabel;

Contoh : select count(npm) from mahasiswa; Perintah menjumlahkan isi dari field: Select sum(namafield) from namatabel; Contoh : select sum(umur) from mahasiswa;

(10)

Perintah mencari rata2 nilai isi dari suatu field : Select avg(namafield) from namatabel;

Contoh : select avg (umur) from mahasiswa;

Perintah menentukan standard deviasi isi dari suatu field: Select std(namfield) from namatabel;

Referensi

Dokumen terkait

Dengan berlakunya Peraturan Walikota Probolinggo ini, maka Peraturan Walikota Probolinggo Nomor 28 Tahun 2009 tentang Petunjuk Teknis Penyaluran Kredit Lunak bagi

Kromatografi lapis tipis (KLT) adalah metode pemisahan fisika kimia, dimana lapisan pemisahnya berupa bahan berbutir-butir halus yang ditempatkan pada suatu penyangga yang

Menurut Arikunto dalam Iskandar dan Narsim (2015, hlm.48) tes yaitu “serentetan pertanyaaan atau latihan serta alat lain yang digunakan untuk mengukur keterampilan

Pemerintah Daerah Istimewa Yogyakarta secara aktif memanfaatkan potensi kakayaan budaya DIY yang khas, unik dan beragam melalui diplomasi budaya

Berdasarkan fenomena banyaknya jumlah pengunjung Hotel Mercure Palu dalam setahun maka perlu adanya penelitian yang bertujuan untuk pengaruh bauran pemasaran jasa yang

Karena dengan kepuasan kerja manajer yang tinggi maka akan diperoleh hasil kerja yang baik sehingga akan dapat mencapai tujuan yang diinginkan dan tujuan

Pada hasil pengujian statistik dengan PLS pada umur perusahaan memoderasi hubungan pemilik terhadap implementasi CSR (H7a) nilai T-statistik sebesar 3,722 yaitu lebih

Analisa dilakukan dengan mengeksplorasi teori-teori yang berkaitan dengan permukiman dari studi literatur dengan data yang ada. Data yang ada dikelompokkan dan