Anda di halaman 1dari 19

[BASIS DATA]

BAHAN AJAR - PENGAYAAN

Mata Pelajaran : BASIS DATA


Kelas : XI RPL
Waktu : 60 jam
Pertemuan ke- :-
Guru Mata Pelajaran : R. Rista Wulansari, ST

MATERI : MENGENAL DAN MEMAHAMI PENGOLAHAN DATABASE

DEFINSI SQL

SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam software DBMS.
Bahasa ini merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua
server basis data mendukung bahasa ini untuk melakukan pengelolaan datanya.
Instruksi – instruksi atau pernyataan SQL dapat dikelompokkan menjadi 5 kelompok :
1. DDL
2. DML
3. DCL
4. pengendali transaksi
5. pengendali programatik.

DDL ( Data Definition Language )


DDL merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atributdatabase, table, atribut (kolom),
batasan-batasan terhadap suatu atribut serta hubunganantar table.
Yang termasuk dalam kelompok DDL ini adalah :
 CREATE untuk menciptakan table ataupun indeks
 ALTER untuk mengubah struktur table
 DROP untuk menghapus table ataupun indeks

DML ( Data Manipulation Language )


Adalah kelompok perintah yang berfungsi untuk memanipulasi data, misalnya untuk pengambilan, penyisipan pengubahan
dan penghapusan data.
Yang termasuk DML adalah instruksi:
 SELECT untuk memilih data (retrieving data)
 INSERT untuk menambah data
 DELETE untuk menghapus data
 UPDATE untuk mengubah data

DCL ( Data Control Language )


Berisi perintah-perintah untuk mngendalikan pengaksesan data.
Yang termasuk DCL diantaranya adalah :
 GRANT untuk memberikan kendali pada pengaksesan data.
 REVOKE untuk mencabut kemampuan pengaksesan data
 LOCK TABLE untuk mengunci tabel

Transaction Control Language (TCL) atau Pengendali transaksi


TCL adalah perintah-perintah yang berfungsi untuk mengendalikan pengeksekusian transaksi.
Yang termasuk kelompok TCL ini adalah :
 COMMIT untuk menyetujui rangkaian perintah yang berhubungan erat yang telahberhasil dilakukan
ROLLBACK untuk membatalkan transaksi yang dilakukan karena adanya kesalahanatau kegagalan pada salah satu
rangkaian perintah

1|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

MEMULAI MySQL

Untuk memulai mysql ikuti langkah-langkah berikut :


1. Dari taskbar windows pilih menu start program
2. Pilih menu run – cmd
3. Rubah folder C:\ Documents and Settings> ke dalam C dengan cara :
C:\ Documents and Settings>cd\
4. Di direktori C: masuk kedalam folder appserv/mysql/bin dengan cara :
CD appserv/mysql/bin
5. Dalam folder appserv/mysql/bin> ketik program mysql.exe nya
appserv/mysql/bin> mysql.exe –u root
6. Program siap dijalankan

Beberapa perintah SQL yang harus diingat ketika akan membuat database :
 Membuat database baru (jika belum ada)
create database nama_database;
 Menampilkan semua database yang ada
show databases;
 Memilih/menggunakan database yang aktif
Use nama_database;
 Membuat tabel
create table nama_tabel (nama_field1 tipe_data(banyaknya)........... n, primary key (nama field);
 Menampilkan semua tabel yang ada/yang pernah dibuat
show tables;
 Mengisi tabel
insert into nama_tabel values (’data1’, ’data2’,......... ’n’);

INSERT
Perintah INSERT pada DML digunakan untuk memasukkan data ke dalam tabel. Sintaks yang dipakai adalah :

INSERT INTO Nama_Tabel(Daftar_Kolom) Values(Daftar_Nilai)


UPDATE
Perintah UPDATE digunakan untuk melakukan perubahan pada data.Update berfungsi untuk mengubah data
dalam tabel. Beberapa kegunaan update adalah : mengubah data dalam tabel, mengisi field yang masih kosong
datanya, mengosongkan field yang sudah ada datanya.Sintaks yang digunakan adalah:

UPDATE Nama_Tabel
SET Nama_Kolom = Nilai_baru
WHERE Kondisi

DELETE
DELETE digunakan untuk menghapus dan menggunakan perintah DELETE.Sintaks yang digunakan adalah:

DELETE from Nama_Tabel


Where Kondisi

2|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

MEMBUAT TABEL

Dalam memberikan nama tabel dan kolom terdapat beberapa aturan yang haris diikuti, yaitu :
1. Nama tabel dan kolom mempunyai panjang karakter 1-30 karakter dan karakter pertma harus berupa huruf abjad
2. Nama harus berisi karakter, seperti A-Z, a-z, 0-9, underscore/garis bawah.
3. Nama tabel tidak boleh memakai kata-kata yang sudah dipakai oleh perintah SQL, misalnya : select, where dan
lain-lain.
4. Nama tabel tidak boleh merupakan nama objek lain yang dimiliki oleh user yang sama
5. Nama tabel dengan huruf besar atau kecil tidak mempunyai perbedaan

Pemberian nama kolom juga mempunyai aturan yang sama dengan pemberian nama tabel. Dalam dua buah tabel
yang berbeda boleh diberikan nama kolom yang sama. Misalnya dalam tabel PEGAWAI dan tabel GAJI terdapat
kolom yang bernama NOPEG. Namun kolom dari satu tabel tidak boleh mempunyai nama yang sama.

Sintaks SQL untuk pembuatan suatu tabel yaitu :


CREATE TABLE nama_tabel (nama_kolom tipe_data [not null], ......, n);

Contoh :
Mysql> create table penjualan (nopen char(3) not null, nama varchar(20), merk varchar(20));

MENAMPILKAN DATA

Sintaks untuk Perintah Query


Menurut kamus, query berarti pernyataan . Namun istilah query dalam database berarti permintaan untuk
menampilkan data.
Dengan menggunakan SQL kita dapat menampilkan data dari database dengan berbagai macam cara.
Bila perintah SQL yang ditulis salah, ada 2 kemungkinan :
1. tidak menghasilkan informasi sama sekali
2. menghasilkan informasi namun bukan yang kita inginkan

Perintah SQL menggunakan Select


Yang akan dipelajari adalah perintah :
 SELECT
 FROM
 WHERE

Sintaks dari perintah SELECT adalah :


SELECT <NAMA KOLOM> FROM <TABEL> ;

Contoh :
Agar memudahkan penulisan perintah SQL, pertama-tama misalnya kita buat dulu sebuah tabel yang berisi data
pegawai dengan nama tabel ”PEGAWAI”

NOPEG NAMA JABATAN GAJI


----- ----------- ------------ --------
001 SUDIRMAN DIRUT 10000000
002 BASUKI DIRKEU 9000000
003 WAWAN MANAGER 5000000
004 CHINTYA SALESMAN 2000000
005 HASAN CLERK 1000000
006 FRANS PRESDIR 20000000
007 DENNY KOMISARIS 50000000
009 ZAINUDIN PROGRAMMER 3000000
019 PUTRI MANAGER 4500000

9 rows selected

3|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

 Perintah SQL untuk mencari nama dan jabatan orang yang bernama WAWAN dari tabel PEGAWAI :
Mysql> select nama, jabatan from pegawai where nama=’WAWAN’;
Notes:
Perintah SQL dapat ditulis dalam huruf besar maupun huruf kecil, namun data yang ingin ditampilkan
harus sama dengan data yang ada di database.
Nama ‘WAWAN’ dengan ‘Wawan’ akan berbeda hasilnya.
Tanda titik koma (;) yang terletak di akhir perintah menandakan bahwa perintah SQL telah selesai dan
siap dijalankan.

 Perintah SQL untuk menampilkan semua data dari kolom nama :


Mysql> select nama from pegawai;

 Perintah SQL untuk menampilkan semua elemen data yang ada dalam tabel :
Mysql> select * from pegawai;
Notes :
Tanda * (Asterisk) dalam perintah SELECT berfungsi untuk menampilkan semua data pada semua
kolom yang ada dalam tabel.

 Perintah SQL untuk menampilkan data dengan urutan kolom yang berbeda (mengubah urutan kolom) :
Mysql> select nama,gaji,jabatan,nopeg from pegawai;

 Perintah SQL yang hanya menampilkan kolom NAMA dan JABATAN saja (Menampilkan kolom tertentu) :
Mysql> select nama,jabatan from pegawai;

 Perintah SQL untuk menampilkan yang urut berdasarkan NAMA :


Mysql> select nama,jabatan from pegawai order by nama;
Notes :
Perintah order by digunakan untuk mengurutkan data berdasarkan sebuah kolom.

 Perintah SQL untuk mengelompokkan data dari tabel PEGAWAI berdasarkan kolom GAJI :
Mysql> select distinct gaji from pegawai ;
Notes :
Fungsi distinct digunakan bila hendak menampilkan data yang hanya sekali muncul/ mengelompokkan
data berdasarkan jenisnya.

KONDISI
Jika ingin mencari sebuah atau sekelompok data dari database, diperlukan satu atau lebih kondisi. Dengan kata lain
bila kita memberikan suatu kondisi pada perintah SQL, maka hanya database tertentu yang akan tampil. Sebagai kata
kuncinya (keyword) adalah kata WHERE yang disisipkan setelah menyebut nama tabelnya.
Sintaks SQL :
SELECT nama-kolom FROM nama_tabel WHERE (kondisi);

Perintah Where dengan Satu Kondisi


Terdiri atas 2 macam :
1. setelah perintah where hendak ditampilkan data yang mengandung suatu karakter tertentu
2. menggunakan ekspresi aritmetika

Menampilkan Data yang Mengandung Sebuah Karakter Tertentu


 Perintah SQL untuk menampilkan data seseorang dari tabel PEGAWAI yang jabatannya PRESDIR
Mysql> select * from pegawai where jabatan=’PRESDIR’ ;

 Perintah SQL untuk menampilkan data gaji dari tabel PEGAWAI yang bernama FRANS
Mysql> select nama,gaji from pegawai where nama=’FRANS’ ;

Menampilkan Data dengan Menggunakan Ekspresi Aritmetika

4|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

 Perintah SQL untuk mencari jabatan yang gajinya dibawah 5000000 :


Mysql> select jabatan from pegawai where gaji < 5000000 ;

 Perintah SQL untuk menampilkan data pegawai dengan gaji sebesar 9000000
Mysql> select * from pegawai where gaji=9000000 ;

Perintah Where dengan Satu atau Lebih Kondisi


Bila kondisinya lebih dari satu, maka digunakan ekspresi AND dan OR.
 Ekspresi AND digunakan bila semua kondisi harus terpenuhi
 Ekspresi OR boleh salah satu kondisi yang terpenuhi

Menampilkan Data dengan Dua Kondisi yang Harus Terpenuhi ( Ekspresi ’AND’ )
 Perintah SQL untuk mencari pegawai yang gajinya 9000000 dan nomor pegawainya 002
Mysql> select * from pegawai where gaji = 9000000 and nopeg=’002’ ;

Menampilkan Data dengan Salah satu Kondisi Dapat Terpenuhi ( Ekspresi ’OR’ )
 Perintah SQL untuk menampilkan pegawai yang gajinya 9000000 atau nomor pegawainya 001
Mysql> select * from pegawai where gaji = 9000000 or nopeg=’001’ ;

OPERATOR
Operator adalah sebuah elemen yang digunakan dalam mengekspresikan suatu kondisi dalam pencarian data.
Operator dibagi dalam 6 group :
 Aritmetika
 Perbandingan
 Karakter
 Logika
 Himpunan
 Operator lainnya

OPERATOR ARITMETIKA
Yang termasuk Operator Aritmetika adalah tanda :
 plus (+)
 minus ( - )
 bagi ( / )
 kali ( * )
Semua perhitungan dapat dillakukan bila tipe datanya adalah number.
Bila dilakukan perhitungan secara bersamaan maka urutannya adalah :
perkalian, pembagian, penjumlahan dan pengurangan .
Contoh :
2 + 7 * 8 / 2 = 25
Urutannya adalah sebagai berikut :
1. 7 * 8 = 56 lalu
2. 56 / 2 = 23 kemudian
3. 23 + 2 = 25

 Tanda Plus ( + )
Tanda ini digunakan untuk menjumlahkan suatu kolom dengan kolom lain atau kolom dengan konstanta tertentu.

 Tanda Minus ( - )
Tanda ini digunakan untuk mengurangkan suatu kolom dengan kolom lain, kolom dengan konstanta tertentu dan
dapat juga untuk memberi nilai minus pada suatu kolom tertentu

 Tanda Bagi ( / )
Tanda ini digunakan untuk membagi sustu kolom dengan kolom lain atau kolom dengan konstanta tertentu

 Tanda Kali ( * )

5|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

Tanda ini digunakan untuk mengalikan sustu kolom dengan kolom lain atau kolom dengan konstanta tertentu.

OPERATOR PERBANDINGAN
Yang termasuk dalam operator perbandingan adalah bila data bersifat benar (true) atau salah (false). Sebelum masuk
kedalam operator perbandingan perlu diketahui tentang konsep nilai null.
Sebuah data dalam database dianggap null bila salah satu kolom yang ada dalam tabel tidak terdapat datanya. Jadi
bila data tersebut bersifat null maka operator perbandingan bersifat false atau data yang dipakai adalah is null.

 Tanda Sama Dengan ( = )


Kondisi sesudah tanda sama dengan ( = ) harus terpenuhi dahulu baru dapat ditampilkan datanya.

 Tanda Lebih Besar Dari ( > ) dan Lebih Besar Sama Dengan ( >= )
Kondisi terpenuhi jika datanya > atau >= banyaknya data yang ditentukan

 Tanda Lebih Kecil Dari ( < ) dan Lebih Kecil Sama Dengan ( <= )
Kondisi terpenuhi jika datanya < atau <= banyaknya data yang ditentukan

 Tanda Tidak Sama Dengan ( < > atau ! = )


Kedua tanda ini mempunyai fungsi yang sama dan digunakan untuk mencari data dengan kondisi tidak sama
dengan suatu data tertentu

OPERATOR KARAKTER
Digunakan bila ingin menampilkan data yang hanya kita ingat sebagian atau beberapa bagian tertentu saja dari data
tersebut.
Operator yang digunakan :
 Kata Like
Digunakan bila hendak mencari data tertentu tapi kita hanya ingat satu atau beberapa karakter saja dari data
tersebut
Tanda bantu untuk like menggunakan tanda % yang mewakili beberapa karakter sekaligus dan underscore ( _ )
yang mewakili satu karakter
 Tanda concat ( || )
Digunakan untuk menggabungkan dua buah kolom yang tipe datanya karakter.

OPERATOR LOGIKA
Digunakan untuk memisahkan dua atau lebih kondisi yang menggunakan kata WHERE didalam SQL.
Ekspresi yang digunakan adalah
 AND
 OR
 NOT
Digunakan untuk mencari data yang tidak sama dengan karakter tertentu dan mempunyai tipe karakter.

OPERATOR SET
Digunakan untuk menggabungkan atau mengurangkan dua buah tabel yang berbeda.
Ekspresi yang digunakan adalah :
 Union
Menggabungkan dua buah tabel , namun yang datanya sama hanya disebut satu kali
 union all
Menggabungkan dua buah tabel, semua data akan dimasukkan
 intersect
irisan dari dua buah tabel. Jadi data tersebut ada di dalam tabel pertama dan juga di dalam tabel kedua
 minus
digunakan untuk mencari data yang ada dalam tabel pertama dikurangi dengan data pada tabel pertama yang
ada pada tbel kedua.

OPERATOR LAIN
Adalah operator selain dari yang telah disebutkan sebelumnya.
Ekspresi yang dipakai adalah

6|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

 IN
Untuk menyederhanakan operator OR
 BETWEEN
Digunakan untuk mencari data yang berada di antara dua buah nilai tertentu.

7|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

Perintah ALTER TABLE pada MySql


Bentuk umum perintahnya adalah sebagai berikut :

ALTER TABLE nama_tabel alter_options;

dimana :
 ALTER TABLE merupakan perintah dasar untuk mengubah tabel.
 nama_tabel merupakan nama tabel yang akan diubah strukturnya.
 alter_options merupakan pilihan perubahan tabel.

Contoh Option yang bisa digunakan adalah sebagai berikut:

Nama Option Fungsi Option


ADD nama_field/kolom_baru untuk menambahkan field/kolom baru.
ADD PRIMARY KEY (nama_field/kolom) untuk menambahkan primary key pada tabel
untuk mengubah nama_field_lama menjadi
CHANGE nama_field_lama
nama_field_baru_definisi_field_baru
nama_field_baru_definisi_field_baru
definisi_field_baru artinya adalah type data.
MODIFY nama_field type_data untuk mengubah type_data suatu field
DROP nama_field untuk menghapus field nama_field
RENAME TO nama_tabel_baru untuk mengganti nama tabel

Contoh tabel sederhana


Nama Kolom Type data Panjang Data Keterangan
bukan primary key
NIS integer 8
bukan auto increment
Nama varchar 30
Y
Perintah untuk membuat tabel (tanpa primary key dan tidak auto increament):

CREATE TABLE Siswa (NIS int(8) NOT NULL, Nama varchar(30) NOT NULL);

DESC peserta;
maka hasilnya adalah sebagai berikut :
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

8|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

Perintah alter table terdapat banyak sekali variasinya, diantaranya mencakup :


 Tambah Field/Kolom Baru
 Tambah/hapus Primary Key
 Hapus Field/Kolom
 Ubah Nama Field/Kolom
 Ubah Type Data Suatu Field/Kolom
 Ganti Nama Tabel

Tambah Field/Kolom Baru.


Untuk menambah Field/Kolom alamat pada table di atas, maka perintahnya adalah :

ALTER TABLE peserta ADD alamat varchar(30);

Setelah itu, ketik lagi perintah “DESC peserta;”, hasilnya adalah sebagai berikut:
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

Field/Kolom alamat sudah terbentuk.


Untuk menambah filed telepon di tengah-tengah antara kolom nama dan alamat.
Maka perintahnya adalah :
ALTER TABLE peserta ADD telepon varchar(30) AFTER nama;

AFTER bisa digunakan untuk membantu menambahkan kolom sesuai dengan yang diinginkan.
Kata BEFORE tidak bisa digunakan.

Hasilnya adalah sebagai berikut setelah ketik perintah ” DESC peserta; “


+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| telepon | varchar(30) | YES | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

Terlihat bahwa kolom telepon sudah berhasil ditambahkan.

9|hal [r.rista.wulansari@gmail.com]
[BASIS DATA]

Tambah/hapus Primary Key

Untuk menambah Primary Key pada table, perintahnya adalah:

ALTER TABLE nama_table ADD PRIMARY KEY (nama_kolom);

Contoh dan hasilnya adalah sebagai berikut :

mysql> ALTER TABLE peserta ADD PRIMARY KEY (NIP);


Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc peserta;


+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | PRI | NULL | |
| nama | varchar(30) | NO | | NULL | |
| telepon | varchar(30) | YES | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

Untuk hapus Primary Key pada table, perintahnya adalah:

ALTER TABLE nama_table DROP PRIMARY KEY;

Contoh dan hasilnya adalah sebagai berikut :

mysql> ALTER TABLE peserta DROP PRIMARY KEY;


Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc peserta;


+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| telepon | varchar(30) | YES | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

10 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

Hapus Field/Kolom
Bentuk perintahnya adalah sebagai berikut :

ALTER TABLE nama_tabel DROP COLUMN nama_kolom;

Misalnya kita ingin menghapus kolom telepon, maka contohnya bisa dilihat seperti di bawah ini:
mysql> desc peserta;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| telepon | varchar(30) | YES | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

mysql> ALTER TABLE peserta DROP COLUMN telepon;


Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc peserta;


+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

11 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

Ubah Nama Field/Kolom


Mengubah nama kolom/field dapat menggunakan option change.
Sebelumnya, kita buat kolom baru dulu bernama jenis_kelamin dengan jenis data “char” yang berjumlah 1 dan diletakkan
setelah kolom alamat.

mysql> alter table peserta add jenis_kelamin char(1) after alamat;


Query OK, 0 rows affected (0.10 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc peserta;


+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
| jenis_kelamin | char(1) | YES | | NULL | |
+---------------+-------------+------+-----+---------+-------+
4 rows in set (0.07 sec)
Setelah berhasil, kita rubah kolom jenis_kelamin tersebut menjadi sex.Berikut ini contoh perintahnya:
mysql> alter table peserta change jenis_kelamin sex char(1);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc peserta;


+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

12 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

Ubah Type Data Field/Kolom


Tadi kita sudah membuat kolom/field baru bernama sex. Kita ingin membuat kolom/field tersebut hanya terisi oleh karakter
“L” untuk laki-laki dan “P” untuk perempuan. Jadi kita merubah dari type data char(1) menjadi enum (‘L’,’P’).
Kita bisa mengubah hal tersebut dengan perintah MODIFY.
Berikut ini adalah contohnya :

mysql> desc peserta;


+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

mysql> alter table peserta modify sex enum('L','P') not null;


Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc peserta;


+--------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
| sex | enum('L','P') | NO | | NULL | |
+--------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

Selanjutnya ingin merubah NIP menjadi auto_increment.


Hal tersebut bisa kita lakukan dengan option modify dengan catatan yang di-auto_increment-kan harus sebagai primary
key.
Langkahnya ada 2 tahap, yaitu :

1. Ubah kolom NIP menjadi primary key

mysql> desc peserta;


+--------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| NIP | int(5) | NO | | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
| sex | enum('L','P') | NO | | NULL | |
+--------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

mysql> alter table peserta add primary key (NIP);


Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0

13 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

mysql> desc peserta;


+--------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| NIP | int(5) | NO | PRI | NULL | |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
| sex | enum('L','P') | NO | | NULL | |
+--------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

2. Setting kolom NIP menjadi auto_increment

mysql> alter table peserta modify NIP int(5) not null auto_increment;
Query OK, 1 row affected (0.05 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> desc peserta;


+--------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+
| NIP | int(5) | NO | PRI | NULL | auto_increment |
| nama | varchar(30) | NO | | NULL | |
| alamat | varchar(30) | YES | | NULL | |
| sex | enum('L','P') | NO | | NULL | |
+--------+---------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

Untuk men-SET auto_increment menjadi 11111 sebagai angka awal, karena kita sudah set auto_increment sebelumnya,
kita bisa melakukannya sebagai berikut :

mysql> alter table peserta auto_increment=11111;


Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> insert into peserta values ('','testing','klaten bersinar','L');


Query OK, 1 row affected, 1 warning (0.05 sec)

mysql> select * from peserta;


+-------+---------+-----------------+-----+
| NIP | nama | alamat | sex |
+-------+---------+-----------------+-----+
| 11111 | testing | klaten bersinar | L |
+-------+---------+-----------------+-----+
1 row in set (0.00 sec)

Karena sudah auto_increment, maka kolom NIP bisa dikosongkan dan akan terisi otomatis sesuai angka yang kita SET
sebelumnya.

14 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

Ganti Nama Tabel


mengganti nama table bisa memakai perintah alter table
Syntax-nya adalah sebagai berikut ini :

ALTER TABLE nama_table_lama RENAME TO nama_table_baru;

berikut ini contoh before-afternya

mysql> show tables;


+----------------+
| Tables_in_coba |
+----------------+
| peserta |
+----------------+
1 row in set (0.00 sec)

mysql> alter table peserta rename to percobaan;


Query OK, 0 rows affected (0.01 sec)

mysql> show tables;


+----------------+
| Tables_in_coba |
+----------------+
| percobaan |
+----------------+
1 row in set (0.00 sec

15 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

TABEL : tb_data_pegawai

BENTUK UMUM VIEW TABLE :

Create view NamaTabelView as select NamaField From NamaTabel;

Select *, 0.3 * Gaji as pajak from tb_pegawai;


Select NIP, Nama, Jabatan, Gaji, 0.3 * Gaji as pajak from
tb_pegawai;

PERINTAH UNTUK MEMBUAT TABEL VIEW vpajak :

Create view vpajak as Select NIP, Nama, Jabatan, Gaji, 0.3 *


Gaji as pajak
from tb_pegawai;

16 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

RANGKUMAN

 SQL adalah suatu akronim dari Structured Query Language yaitu bahasa perintah yang tersetruktur yang
digunakan untuk membuat, memanipulasi, mengakses pada suatu database.
 SQL yang tergolong dalam pemrograman database, antara lain MySQL, SQLite PostgreSQL dll

 Cara mengakses mysql pada cmd


Run ->ketik “cmd” -> ok
Cd\
[drive tempat penginstalan xampp]:
cd\xampp\mysql\bin\mysql –u [username mysql default nya= root ] –p [password defaultnya kosong]
Ex : cd\xampp\mysql\bin\mysql –u root p

 Melihat database
Show databases;

 Menggunakan database
Use [nama database];
Ex : use test;

 Membuat database
Create database [nama database];
Ex : create database sekolah;

 Membuat table
Create table [nama table]( [nama field] [tipe data]([ukuran]] [attribute]);
Ex : create table mahasiswa (
nim varchar(8) primary key,
nama varchar(25),
alamat varchar(30),
kodepos varchar(8)
);

 Melihat struktur tabel


Desc [nama tabel];
Ex : desc mahasiswa;

 Untuk mengganti nama tabel


Rename table [nama tabel lama] to [nama tabel baru];
Ex : rename table mahasiswa to siswa;

 Mengganti nama field pada tabel


Alter table [nama_tabel] change [nama_field_lama] [nama_field_baru];
Ex : alter table siswa change nim nis;

 Merubah struktur field


Alter table [nama_tabel] modify [nama field yang akan di rubah][deskripsi tabel berupa type data dan panjang
karangter];
Ex : alter table siswa modify nis varchar(10);

 Menambah field
Alter table [nama_tabel] add [nama field yang di tambahkan];
Ex : alter table siswa add tgllahir date;

17 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

 Menghapus atribut
Primary key
Alter table [nama_tabel] drop primary key;
Foreign key
Alter table [nama_tabel] drop foreign key;
Ex : Alter table siswa drop primary key;
Alter table siswa drop foreign key;

 Menambahkan atribut
Primary key
Alter table [nama_table] add primary key ([nama_field]);

Foreign key
Alter table [nama_table] add foreign key ([nama_field yang di gunakan untuk foreign key]) references
[nama_table](nama field dari tabel yang jadi sumber);
Ex :alter table siswa add primary key(nis);
alter table siswa add foreign key (kodepos) references kodepos(kodepos);

 Menghapus table
drop table [nama_table];
ex : drop table siswa;

 Menghapus database
drop database [nama_database];
ex : drop database sekolah;

 Melihat daftar tabel pada database


show databases;

 Mengubah nama Tabel


cara mengubah Nama Tabel dan Field (kolom) pada MYSQL.
Adapun syntax dalam mengubah nama Tabel dan Field pada mysql adalah sebagai berikut.
Syntax untuk mengubah nama Tabel:

Alter table nama_tablelama rename nama_tablebaru;


Contoh:
Alter tabel Penjualan rename Pelanggan

Syntax untuk mengubah nama Field atau kolom:


Alter tabel nama_tabel change field_lama field_baru tipe data;
Contoh:
Alter table Penjualan change Nama_Pembeli Nama_Pelanggan Char;

MySQL adalah salah satu produk RDBMS yang sangat populer juga bersifat open source. Seperti kebanyakan database
server lainnya, MySQL dapat diakses oleh aplikasi klien dengan bahasa standar, yaitu SQL (Structure Query Language).
SQL dapat digolongkan menjadi tiga:
Data Definition Language, yang termasuk golongan ini adalah:
 Membuat database
 Menghapus database
 Menciptakan tabel
 Menghapus tabel
 Mengubah tabel

18 | h a l [r.rista.wulansari@gmail.com]
[BASIS DATA]

Data Manipulation Language, yang termasuk golongan ini adalah:


 Menambah record
 Melihat isi tabel
 Menganti isi record
 Menghapus record
Data Control Language, yang termasuk golongan ini adalah perintah untuk mengatur kewenangan user, misalnya
perintah:
 CREATE USER
 DROP USER
 GRANT
 REVOKE

19 | h a l [r.rista.wulansari@gmail.com]

Anda mungkin juga menyukai