0% menganggap dokumen ini bermanfaat (0 suara)
16 tayangan143 halaman

Panduan Lengkap Bahasa SQL dan Tabel

Dokumen ini adalah panduan untuk kursus pengantar bahasa SQL, mencakup definisi dan penggunaan SQL, serta cara membuat dan memanipulasi tabel dan batasan integritas. Terdapat juga penjelasan tentang objek lain dalam basis data seperti pandangan dan sinonim. Kursus ini bertujuan memberikan pemahaman dasar tentang struktur dan pengelolaan basis data relasional.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
16 tayangan143 halaman

Panduan Lengkap Bahasa SQL dan Tabel

Dokumen ini adalah panduan untuk kursus pengantar bahasa SQL, mencakup definisi dan penggunaan SQL, serta cara membuat dan memanipulasi tabel dan batasan integritas. Terdapat juga penjelasan tentang objek lain dalam basis data seperti pandangan dan sinonim. Kursus ini bertujuan memberikan pemahaman dasar tentang struktur dan pengelolaan basis data relasional.

Diterjemahkan oleh

ScribdTranslations
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Dibuat oleh: Nyonya YEKKEN Sabrine

Versi : 2012 -2013


2

Pendahuluan umum.

Untuk menginterogasi sebuah DB, kita harus menggunakan sebuah bahasa.


SQL adalah bahasa yang paling lengkap untuk berinteraksi dengan basis data.
4

Tujuan kursus (1/2)

Pengantar bahasa SQL


1èmeBagian: Presentasi bahasa LDD
1. Mendefinisikan 'LDD'

2. Jenis data

2èmeBagian: Pembuatan tabel/kontraint integritas


1. Buat tabel/dari tabel lainnya
2. Menambahkan batasan kunci utama, kunci asing
3. Menambahkan batasan (Saat dihapus cascade, saat dihapus set null)

4. Keterbatasan lainnya (tidak null, cek, unik)


5. Mengaktifkan / menonaktifkan suatu batasan
5

Tujuan kursus (2/2)

3èmeBagian: Manipulasi struktur tabel


1. Menambahkan, mengubah, menghapus kolom/kontraint
2. Menghapus tabel
3. Mengganti nama sebuah tabel

4èmePartie : Autres Objets


1. Definisi dan pembuatan :
i. pandangan

ii. Sinonim

iii. Indeks

iv. Urutan
6

Pengenalan bahasa SQL

Tujuan bagian ini:

Perkenalan dan definisi bahasa SQL.


7

Definisi SQL.

SQL (Structured Query Language), dalam bahasa Prancis bahasa kueri

terstruktur, terdiri dari sekumpulan subbahasa:

bahasa definisi data (LDD),


bahasa manipulasi data (LMD),
bahasa interogasi data (LID)
bahasa pengendalian data (LCD)

untuk basis data relasional.


8

1eraBagian :
Presentasi bahasa LDD

Tujuan bagian ini:

Definisi dan presentasi bahasa


definisi data serta yang
berbagai jenis data.
9

LDD.

Bahasa definisi data, itu adalah bahasa yang


memungkinkan untuk mendefinisikan dan memanipulasi struktur

data dan bukan data.

Struktur data: semua objek dalam BD yang ditujukan untuk


mengandung data : Contoh : TABEL.
10

Tipe data.
Tipe data Description
INT Utuh

CHAR [(ukuran [BYTE | CHAR])] Ukuran tetap antara 1 dan 2000

VARCHAR2 (ukuran) Ukuran bervariasi antara 1 dan 4000

NOMOR [ ( t , d ) ] Reel dari t angka di mana d adalah desimal.

PANJANG Data karakter dengan ukuran <= 2GO

TANGGAL Tanggal terdiri antara 1/1/4712 SM dan 31/12/999 M

STAMPI WAKTU Tahun, bulan, hari, jam, menit dan detik, fraksi detik

INTERVAL TAHUN(year_precision) Simpan periode waktu dalam tahun dan bulan, di mana year_precision
KE BULAN berada antara 0 dan 9. Nilai default adalah 2
11

2èmeet 3èmePartai :
Pembuatan tabel/konstraint integritas
Manipulasi struktur tabel

Tujuan bagian ini:

Cara membuat tabel dan mendefinisikan


kontraintsintegritas.
Cara menambah, mengubah atau
menghapus kolom atau
kontraints...
12

Buat tabel. Sintaksis

Sintaksis :
BUAT TABEL <nom_de_la_table>
(<nama_kolom1> <tipe_kolom1>,
<nom_colonne2> <type_colonne2>, …
<nom_colonne’> <type_colonne’>
);
Catatan: Untuk membuat tabel, Anda harus memiliki:
•Hak istimewa CREATE TABLE
•Ruang penyimpanan
13

Buat tabel. Contoh

. BUAT TABEL Mahasiswa


(Nomor Netudiant,
Nom varchar2(10)
Prenom varchar2(10)
);

. DESCRIBE(ou DESC) Mahasiswa ;--untuk melihat deskripsi tabel


14

Buatlah tabel. Tabel dari tabel lain

. BUAT TABEL EtudAS PILIH * DARI Etudiants ;

tabel Etud akan memiliki struktur yang sama dengan tabel Mahasiswa dengan semua
catatan tabel.

Tabel Etud akan memiliki struktur yang sama dengan tabel Mahasiswa dengan semua
rekaman tabel.

. BUAT TABEL EtudAS PILIH * DARI Etudiants DIMANA (0=1);

Tabel Etud akan memiliki struktur yang sama dengan tabel Etudiantssansles
catatan tabel.

. DESCRIBE(ou DESC) Etud ;--untuk melihat deskripsi tabel


15

Menambahkan batasan kunci primer - Sintaksis (1/3)


1ercas : kunci primer sederhana

Sintaksis 1: saat pembuatan tabel:

1eraMetode: Pembatasan tingkat KOLOM

BUAT TABEL <nom_de_la_table>

( <nom_col1 > <type_col1>KONSTRAN <nom_contrainte> KUNCI UTAMA,

<nom_col2 > <type_col2>, …

<nom_coln > <type_coln>


);
16

Menambahkan batasan kunci utama-Sintaksis(2/3)

Sintaksis 1: saat membuat tabel:

2èmeMetode : Kendala tingkat TABEL

BUAT TABLE <nom_de_la_table>

( <nom_col1 > <type_col1>,

<nom_col2 > <type_col2>, …

<nom_coln > <type_coln> ,

KONSTRAN <nom_contrainte> KUNCI UTAMA,


);
17

Menambahkan batasan kunci primer-Sintaksis(3/3)


2èmecas : kunci primer terkomposisi

Sintaksis 1: saat pembuatan tabel:

BUAT TABEL <nom_de_la_table>

( <nom_col1 > <type_col1>,


<nom_col2> <type_col2>,

<nom_coln> <type_coln>,
K <nom_contrainte> Kunci primer (nomCol1, nomCol2...));

Keterbatasan tingkat Tabel

Sintaksis 2:setelah pembuatan tabel:

ALTER TABLE <nama_tabel> TAMBAH batasan <nama_kontr> Kunci utama


(nomCol1,nomcol2…)
18

Menambahkan batasan kunci primer Contoh

Sintaksis :

ALTER TABLE <nom_de_la_table> ADD Constraint <nom_contrainte>


PRIMARY KEY(nama_kolom(s))

UBAH TABEL Etudiants TAMBAHKAN Batasan pk_nom_prenom KUNCI UTAMA


(nama, nama depan) ;
19

Menghapus sebuah kendala kunci utama.

Sintaksis :
ALTER TABLE <nama_tabel> HAPUS KETENTUAN
<nom_contrainte>;

ALTER TABLE Etudiants DROP CONSTRAINT pk_nom_prenom;


20

Menambahkan batasan kunci asing.

Sintaksis :
ALTER TABLE <nama_tabel> ADD constraint
KUNCI ASING (<nom_cols>) mengacu pada

(nama_kolom) ;

Buat tabel Etud seperti pilih * dari Etudiants;


Ubah tabel Etud TAMBAH batasan pk_nom_prenom KUNCI UTAMA (nom,
prenom) ;

UBAH TABEL Etud TAMBAH batasan fk_etud_etudiants KUNCI ASING


(nama,nama_depan)referensiMahasiswa (nama,nama_depan) ;
21

Menambahkan batasan kunci asing.

Keterbatasan<nom_constrainte>Kunci Asing(<kolom(s)>)
Referensi<TableReférencée>(<kolom(s)>)
PADA HAPUS KASKADE | SETEL NULL

. Klausul ON DELETE CASCADE memungkinkan untuk menghapus


secara otomatis nilai dari kunci asing yang bergantung pada sebuah
kunci primer jika salah satu nilainya baru saja dihapus.
. Klausul ON DELETE SET NULL memungkinkan untuk mengatur menjadi Nol
secara otomatis nilai dari sebuah kunci asing tergantung pada sebuah
kunci primer jika salah satu nilainya baru saja dihapus.
22

Tambahkan batasan <NOT NULL>.

Keterbatasan ini didefinisikan:


Saat membuat tabel, sintaksis:

<nama_kolom> <tipe_kolom> batasan<nama_batasan>TIDAK NOL

Setelah pembuatan tabel, sintaks:


Ubah tabel <nom_tab> ubah <nom_col> batasan <nom_contrainte> TIDAK NULL

Keterbatasan NOT NULL hanya dapat ditentukan pada tingkat


kolom, tidak di tingkat meja
23

Menambahkan batasan <UNIQUE>


- Définition

Integritas tidak terkendala tipe kunci unik mengharuskan setiap nilai


dalam satu kolom atau dalam sekumpulan kolom yang merupakan
sebuah kunci harus unik.

Catatan: Sebuah batasan unik mengizinkan nilai NULL untuk


kurang dari Anda menetapkan batasan NOT NULL
24

Menambahkan constraint <UNIQUE>


- Sintaksis

Keterbatasan ini didefinisikan:


Jadi saat pembuatan tabel, sintaksis:

<nom_colonne> <type_colonne> constraint<nom_de_contrainte>UNIQUE

Jadi setelah pembuatan tabel, sintaksis:

Ubah tabel <nom_table> tambahkan batasan <nom_de_contrainte>UNIQUE


(<nom_colonne>)
25

Tambahkan batasan <CHECK>.


Keterbatasan Check mendefinisikan sebuah kondisi yang harus dipenuhi oleh setiap baris

Keterbatasan ini ditentukan:


Saat membuat tabel, sintaksisnya:

<nom_colonne> <type_col> KONTRAK <nom_de_contr> CEK(kondisi)

Setelah pembuatan tabel, sintaksis:

Ubah tabel <nom_table> TAMBAH BATAS <nom_de_contr> PERIKSA(kondisi)


26

Mengelola kolom dan/atau batasan


Sintaksis

Sintaksis umum :

ALTER TABLE <nom_table> + ADD CONSTRAINT <Def _Contrainte>


+ HAPUSKONSTRAL

+ AKTIFKAN | <Nom contrainte>


MATIKANKONSTRAN

+ TAMBAH
<Def _Colonne>
+ UBAH
+ HAPUS <nom colonne>
27

Tambahkan satu/lebih kolom.


Contoh

Tambahkan 2 kolom ke tabel "Mahasiswa"

ALTER TABLE Etudiants ADD (nomor telepon, email varchar2(50));


28

Mengubah kolom. Contoh

Sintaksis :

ALTER TABLE <nama_tabel> MODIFY <definisi baru kolom>

ALTER TABLE Etudiants MODIFY ( email varchar2(100) );


29

Hapus kolom. Contoh

Sintaksis :
ALTER TABLE <nama_tabel> DROP <kolom>

UBAH TABEL Etudiants HAPUS( email, telepon);


30

Aktifkan/nonaktifkan suatu batasan.

Sintaksis :

UBAH TABEL <nom_de_la_table>

AKTIFKAN | NONAKTIFKAN KETERBATASAN<nom_de_la_contrainte>;


31

Hapus sebuah tabel. HAPUS / TRUNCATE

Sintaksis :

HAPUS TABEL<nom_de_la_table>;

Catatan:
Kita juga memiliki perintah "TRUNCATE" yang memungkinkan untuk mengosongkan tabel

TRUNCATE TABLE <nama_tabel>;


32

Mengganti nama sebuah tabel.

Sintaksis :

GANTI NAMA <ancien_nom> MENJADI <nouveau_nom>;

Exemple:
GANTINAMAEtudiantsKEEtudiants1;
33

4èmeBagian :
Objek Lain

Tujuan dari bagian ini:

Menyajikan pandangan, sinonim,


indeks, dan urutan
34

Apa itu pandangan?

Sebuah tampilan adalah tabel virtual, di mana dimungkinkan untuk


mengumpulkan informasi dari beberapa tabel.
Kita berbicara tentang "pandangan" karena ini hanyalah representasi dari
data untuk tujuan eksploitasi visual.
Data yang ada dalam tampilan didefinisikan melalui sebuah
klausalSELECT.

Catatan:
Tampilan ada sebagai objek dalam basis data. Perubahan yang dilakukan pada
struktur tabel dasar tidak tercermin dalam tampilan. Untuk menyertakan kolom
tambahan dalam sebuah tampilan, Anda harus mendefinisikan ulang tampilan.
35

Keuntungandaripandangan.

Tampilan adalah suatu tampilan antara basis data dan


pengguna.
Sebuah tampilan memungkinkan demikian:

Pemilihan data yang akan ditampilkan


–Pembatasan akses ke tabel untuk pengguna, jadi sebuah
keamanan data
–Sebuah representasi data dalam beberapa bentuk
36

Jenis tampilan.
Vue Sederhana :

. gunakan satu tabel


. tidak mengandung fungsi atau kelompok data
. memungkinkan untuk melaksanakan operasi LMD
Vue Kompleks
. gunakan beberapa tabel
. mengandung fungsi atau kelompok data
. tidak selalu memungkinkan operasi LMD
37

Pembuatan tampilan.
BUAT TAMPILAN
(<kolomA>, <kolomB>, <kolomC>, <kolomD>…)

SELEKSI(<kolom1>, <kolom2>, <kolom3>, <kolom4>)


DARI<Nom_tabel(s)>
DI MANAH (<kondisi(s)>)
DENGAN HANYA BACA | DENGAN OPSI PERIKSA

. Opsi DENGAN HANYA BACA menunjukkan bahwa tidak mungkin melakukan pembaruan pada
hari di pandangan.
. Opsi WITH CHECK OPTION mencegah pengguna untuk menambahkan atau
memodifikasi dalam tampilan baris yang tidak sesuai dengan definisi tampilan.
38

Penghapusan tampilan.

Sebuah tampilan dapat dihancurkan dengan perintah:

HAPUS VIEW <nama view>

Daftar tampilan :

PILIH * DARI USER_VIEWS


39

Contoh tampilan.

Buatlah tampilan yang memungkinkan untuk menampilkan :

[Link] karyawan departemen 50,


[Link] yang dipekerjakan sebelum tahun 2000,
[Link] karyawan departemen 10

1:BUAT ATAU GANTI TAMPILAN vue1 (nama, nama_depan) SEBAGAI

PILIH nama_belakang, nama_depan dari karyawan


DIMANA department_id = 50
40

Apa itu SINONIM?

. Ini adalah objek dari basis data, atau sebuah


jalan pintas.
. Objek dapat berupa Tabel, Tampilan, sebuah Urutan, sebuah
Prosedur, sebuah Fungsi, sebuah Paket.
. SYNONIM dapat berupa Publik atau Pribadi.

Itu akan dapat diakses dari semua skema


Anda pengguna.
Pribadi: itu akan dapat diakses hanya dari skema
di mana ia diciptakan.
41

Minat dari sebuah SINONIM.

. Sembunyikan nama asli objek dan lokasinya.


. Menyederhanakan nama-nama objek.
. Hindari pemakaian prefiks dalam permintaan dengan nama Anda
pemilik.
( contoh : HR. Karyawan )
Contoh:
42

Pembuatan SINONIM.

Pertama-tama Anda harus memiliki privilese


. Buat SYNONIM untuk membuat SYNONIM Pribadi dalam
skema Anda,
. SoitCREATE ANY SYNONYM untuk membuat SYNONYM Pribadi
dalam skema apa pun,
. Jadilah CREATE PUBLIC SYNONYM untuk membuat SYNONYM
Umum.

BUAT [UMUM | APA SAJA] SINONIM <sinonim> UNTUK <objek>


HAPUS SINONIM <sinonim>
43

Apa itu Indeks?

Indeks adalah objek basis data yang memungkinkan untuk mempercepat


pencarian garis.
Indeks dapat dibuat secara otomatis atau manual.

. Sebuah indeks unik dibuat secara otomatis saat


definisi dari sebuah kunci utama

Tampilan USER_INDEXES berisi nama-nama indeks


Tampilan USER_IND_COLUMNS berisi nama-nama indeks, tabel
dan kolom
44

Manipulasi Indeks.
Pembuatan indeks:
BUAT [UNIK] INDEKS <Nom_index> PADA tabel (col1, col2, …)

Contoh:
BUAT INDEKS idx_employees_lastname PADA employees
(last_name)

Penghapusan indeks :
HAPUS INDEKS <Nama_indeks>

Contoh:
HAPUS INDEKS idx_employees_lastname
45

Apa itu Urutan?

. Sebuah urutan adalah objek basis data Oracle, di


judul yang sama dengan tabel, tampilan, dll...

. Sebuah urutan memungkinkan untuk menghasilkan secara otomatis


nomor unik
. Ia dapat dibagikan di antara beberapa pengguna dan antara
beberapa tabel

Ia memungkinkan untuk membuat nilai kunci utama


46

Pembuatan Sebuah Urutan.

BUAT SEKUENS
[MENINGKATKAN OLEH n]
[MULAI DENGANn ]
[ {MAXVALUEn |NOMAXVALUE} ]
[ {MINVALUEn |NOMINVALUE} ]
[ {SIKLUS|TANPA_SIKLUS} ] [ {CACHE_n|TANPA_CACHE} ]

. INCREMENT BY n: mendefinisikan interval antara nomor


. MULAI DENGAN : nomor pertama dari urutan
. {MAXVALUEn |NOMAXVALUE} : valeur maximale
. {MINVALUEn |NOMINVALUE} : valeur minimale
. {CYCLE|NOCYCLE} : la séquence peut continuer à générer ou non des
nilai
. {CACHEn |NOCACHE} : nombre de valeurs pré-allouées et
disimpan dalam ingatan.
47

Interogasi Sebuah Urutan.


Interogasi dari suatu urutan dilakukan dengan menggunakan "pseudo-
kolom CURRVAL dan NEXTVAL. Kita berbicara tentang pseudo-kolom
karena ini dapat dimanipulasi sedikit seperti sebuah kolom tabel, tetapi ini

bukanlah sebuah kolom tabel.

. Pseudo-kolom CURRVAL mengembalikan nilai saat ini dari urutan.


. Pseudo-kolom NEXTVAL menginkremen urutan dan mengembalikan yang baru
nilai.

. Kita dapat mengubah atau menghapus sebuah urutan:


ALTER SEQUENCE<nom_sequence>…
HAPUS SEQUENCE <nom_sequence>
49

Tujuan kursus

1. Definisikan bahasa "LMD"


2. Penyisipan data
[Link] data
[Link] data
50

Menentukan bahasa LMD


LMD: Bahasa Manipulasi Data (DML, Data)
Bahasa Manipulasi

i. Ini memungkinkan manipulasi tabel, baik penyisipan,


pembaruan dan penghapusan data.
ii. Ia terdiri dari 3 Permintaan:
PERBARUI, SAMBUNGKAN, HAPUS.
51

Penyisipan data – Syntaxe IMPLICITE (1/2)

1ercas: Penyisipan ke dalam semua kolom

MASUKKAN KE <nom_de_la_table> NILAI

(<nilai_kolom1>,
<nilai_kolom2>,…
<valeur_colonne’>

);

Catatan: jumlah nilai kolom harus sama dengan jumlah


kolom tabel dan sesuai dengan tipe mereka
52

Pemasukan data – Sintaksis EXPLICITE (2/2)

2èmepenyisipan ke dalam beberapa kolom

MASUKKAN KE<nom_de_la_table>

( <kolom1>,

<kolom2>

<colonne3> )

NILAI
( <valeur_colonne1>,

<valeur_colonne2>,

<valeur_colonne3> );
53

Pemasukan data – Latihan - Pernyataan (1/2)

Soit le schéma relationnel suivant :


CLIENTS (CodeClient, NomClient, AdrClient, TelClient)
COMMANDES (NumCommande, Date, CodeClient#)

Pertanyaan:

1. Buat 2 tabel dengan batasan integritas (kunci


primer dan asing)
54

Pemasukan data -Latihan - Pernyataan (2/2)

[Link] garisnya:
KLIEN
CodeClient NomClient PenggunaAdr KlienTelepon
C01 Bensalem Ali 3 rue tunis 2080 tunis 71123800
C02 Toumi salma - 71129870

PERINTAH
NumCommande Tanggal KodeKlien
110 03/04/2011 C01
111 09/07/2011 C02
55

Pembaruan data
Sintaksis:

PERBARUI <nom_table> SET <colonne_a_modifié> = <nouvelle_valeur>

DIMANA(<kondisi_perbarui>);

Contoh:
Pelanggan Bensalem Ali baru saja mengganti alamat dan tinggal bersama pelanggan.

Toumi Salma di "15 rue Basra Bizerte 7000", harap perbarui


dua alamat.
56

Penghapusan data
Sintaksis:

HAPUS DARI <nom_table> DI MANA (<condition>);

Contoh:
[Link] pesanan dari pelanggan "Toumi salma"
[Link] tabel klien
58

Tujuan kursus.

[Link] LID

[Link] cara menyusun Permintaan sederhana "SELECT"

[Link] fungsi baris tunggal/baris banyak


[Link] Join, Operator himpunan dan
sous-interrogations
59

1eraPartie :
Permintaan sederhana "klausa SELECT"

Tujuan bagian ini:

Menentukan «LID», mengetahui cara memilih


kolom dengan atau tanpa duplikat, dengan atau tanpa
syarat mengetahui Ekspresi
aritmetika, Nilai « NULL », Alias
dari kolom, operator logika dan operator lainnya
perbandingan.
60

LID. (1/2)

Bahasa LID memungkinkan, seperti namanya, untuk mengajukan pertanyaan

Sebuah BD. Ini digunakan untuk mencari, mengekstrak, menyortir, memformat

data dan menghitung data lain dari data


yang ada.

Struktur dari sebuah interogasi terdiri dari 3 klausa


berikutnya :

PILIH*|<daftar kolom> DARI<nama_tabel>


DIMANAd(condition(s));
61

LID. (2/2)

. Klausul SELECT: menunjukkan kolom yang akan diambil. (atau


masih ada bidang yang diproyeksikan).

. Klausul FROM menunjukkan nama tabel atau tabel-tabel yang ada


terlibat dalam interogasi.
. Klausul WHERE sesuai dengan kondisi pemilihan
lapangan.
. Setiap nama kolom atau tabel dipisahkan oleh sebuah
tanda koma.
62

Pemilihan kolom. Semua kolom

PILIH* Tampilkan semua bidang


dari meja
DARI karyawan;

Résultat:
63

Pemilihan kolom. Satu/beberapa kolom

Tampilkan kolom:
PILIH nama_depan, nama_belakang
"last_name" dan
DARI karyawan; « first_name »

Hasil:
64

Ekspresi aritmetika. Definisi

[Link] des données de typeNUMBER,


Tanggal dan operator aritmatika.

Operator Deskripsi
+ Addition
- Pengurangan
* Perkalian
/ Divisi
65

Ekspresi aritmatika. Contoh 1

SELECT min_salary + max_salary, min_salary - max_salary,


min_gaji * max_gaji, min_gaji / max_gaji
DARIpekerjaan;

Hasil:
66

Ekspresi aritmatika. Contoh 2

Tulis permintaan yang memungkinkan menampilkan nama, nama depan dari

semua karyawan serta gaji tahunan mereka dengan sebuah


peningkatan 50 dinar per bulan.
67

Nilai "NULL". Definisi

. NULL adalah nilai yang tidak tersedia, tidak ditetapkan, atau tidak diketahui.
. NULL berbeda dari nol, ruang, atau string kosong

Contoh 1:

PILIH employee_id, commission_pct


DARI karyawan ;

Hasil:
68

Nilai «NULL». Dalam ekspresi aritmatika.

Contoh 2:

PILIH Employee_id, (1+persentase_komisi)*gaji


DARI karyawan;

Hasil:
69

Alias kolom. (1/2)

. Ganti nama kolom kepala


. Ikuti nama kolom
. Dapat menggunakan kata kunci "as"
. Harus diikutsertakan dalam tanda kutip jika
mengandung spasi, karakter khusus atau jika ada
huruf kapital dan huruf kecil
70

Alias kolom. Contoh (2/2)

PILIH nama_depan sebagai nom, nama_belakang prenom

DARIpegawai;

Résultat:

SELECTfirst_nameas "nom del’employee",last_name "prenom del’employee"


DARI ;

Hasil:
71

Operator penggabungan.

. Menggabungkan kolom dan/atau rangkaian karakter


. Dilambangkan dengan simbol ||
Exemple:

PILIH 'nama adalah '||first_name||', nama belakang adalah '||last_name sebagai 'nama dan

prenomde l’employe"
DARI karyawan;

Résultat:
72

Hapus duplikat

. kata kunci DISTINCT menghilangkan duplikat.

Contoh:

PILIH DISTINCT(komisi_pct)
DARI karyawan;

Résultat:
73

Pembatasan dengan klausa «WHERE»

Sintaksis :
PILIH <nama_kolom> DARI <nama_tabel>
DIMANA<kondisi>;

Contoh: daftar karyawan departemen 20

PILIH last_name, first_name DARI employees


DIMANAkode_departemen=20;

Hasil:
74

Operator perbandingan. (1/2)

OPERATOR DESCRIPTION
= Sama dengan

< Kurang dari


<= Kurang dari atau sama dengan

> Lebih besar dari

>= Lebih besar dari atau sama dengan

Ou != Berbeda
ANTARA val1 DAN val2 val1 <= val <= val2

Dalam (daftar nilai) Nilai daftar


SUKA Seperti
( _ :karakter, %=beberapa karakter)

NULL Berkaitan dengan nilai NULL


75

Operator logika. (2/2)

OPERATOR DESCRIPTION

DAN Kembalikan TRUE jika kedua kondisi adalah BENAR

Kembali TRUE jika setidaknya salah satu dari kondisi adalah


ATAU
NYATA
Balikkan nilai dari kondisi
TIDAK BENAR jika kondisi adalah SALAH
SALAH jika kondisinya BENAR
76

Urutkan dengan "ORDER by".


Definisi

Urutkan baris-baris sesuai dengan urutan yang tepat menggunakan klausa


URUTKAN MENURUT:

. ASC :urutkan secara meningkat (secara default)


. DESC :ordredécroissant

Catatan: Klausul ORDER BY datang terakhir dalam


perintah PILIH
77

Urutkan dengan "ORDER by".


Contoh

PILIH nama_belakang, id_pekerjaan, id_departemen, tanggal_rekrutmen

DARI karyawan
URUTKAN BERDASARKAN hire_date DESC;

Résultat:
78

Latihan aplikasi. (1/2)

( kami akan menggunakan tabel « karyawan » di bawah skema HR )

. Tampilkan daftar semua karyawan.


. Tampilkan nama, nama depan, tanggal perekrutan semua karyawan dan
renommer les colonnes comme suit: « nom del’employe », « prenom de
l’employe » et « date dembauche »
. Tampilkan nama dan nama belakang karyawan yang diurutkan berdasarkan tanggal perekrutan.
. Tampilkan karyawan yang dipekerjakan pada tahun 1990.
. Tampilkan daftar karyawan dengan gaji > 2800.
. Tampilkan daftar karyawan dari departemen 10, 30, dan 50.
2èmePartie : Fungsi Satu Baris

Tujuan bagian ini:

Menentukan dan mengetahui cara menggunakan :

i. Fungsi karakter
ii. Fungsi manipulasi karakter
iii. Fungsi manipulasi tanggal
iv. Fungsi numerik
v. Fungsi konversi
vi. Autres fonctions
81

Fungsi karakter. Konversi Huruf Kecil/Huruf Kapital (1/2)

Ada tiga fungsi utama:

. konversikan karakter « M » menjadi « m »


. UPPER: mengubah karakter « m » menjadi « M »
. INITCAP: mengubah huruf pertama dari setiap kata menjadi "M" dan les
karakter berikutnya dalam « m »

. Catatan: Fungsi satu baris adalah fungsi yang diterapkan


pencatatan demi pencatatan.
82

Fungsi karakter. Konversi Huruf Kecil/Huruf Besar (2/2)

PILIH LOWER(nama_belakang) sebagai "prénom" DARI karyawan;

PILIH UPPER(nama_belakang) sebagai "prénom" DARI karyawan;

PILIH INITCAP(nama_belakang) sebagai "prénom" DARI karyawan;


83

Fonctionsde manipulation des caractères.Définitions (1/2)

. CONCAT(chaine1,chaine2): menggabungkan 2 string = ||


. SUBSTR(chaine, pos, taille) : mengekstrak sebuah sub-string dari string lain
rantai
. LENGTH(ch): panjang suatu string dalam karakter
. INSTR(ch,sch): posisi dari sebuah rangkaian karakter dalam sebuah
saluran lain
. TRIM(ch): menghapus spasi di kiri dan kanan
. LTRIM(ch): menghapus spasi di sebelah kiri
. RTRIM(ch): menghapus spasi di sebelah kanan
84

Fungsi manipulasi karakter. Definisi (2/2)

. LPAD(chaine, nbr, carac): melengkapi sebuah string dengan


gaucheavec une autre chaîne pour avoir n caractères.

. RPAD(chaine, nbr, carac): melengkapi sebuah string pada


kanan dengan rantai lain untuk memiliki n karakter.

. ASCII(chaine):mengembalikan kode ascii dari karakter pertama dari


rantai.
. CHR(nbr): mengembalikan karakter (kebalikan dari ascii).
85

Fungsi manipulasi karakter. Contoh

PILIH 'stasiun' ch1, 'agil' ch2,


stasiun 1 agil "stasiun"
Substr('station 1',9,1) "numéro station",
Panjang('agil') "panjang ch1"
Instr('agil','i') "posisi de i"
Panjang (Trim(' agil ')) "trim",
Length (Rtrim(' agil ')) "Rtrim",
Length (Ltrim(' agil ')) "Ltrim",
Rpad('agil',8,'*') "RPAD", Lpad('agil',8,'-') "LPAD",
ASCII('test') " kode ascii " ,CHR(75)
Dari Dual;
86

Fungsi numerik.
Presentasi

. ROUND(x, n): Arrondir la valeur de x à la précision spécifiée n


. TRUNC(x, n): Memotong nilai x pada presisi yang ditentukan n
. LANTAI(x): jika n<x<n+1 maka LANTAI(x)=n
. CEIL(x): jika n<x<n+1 maka CEIL(x)=n+1
. MOD(x, y): sisa dari pembagian x dengan y
. REMAINDER(m, n): sisa dari pembagian yang dihitung sebagai berikut :
m-(n*q) dengan q sama dengan bagian bulat dari hasil bagi
87

Fungsi numerik.
Putar (1/2)

SELECTround(123.646,0) "0 chiffres" ,round(123.646,1) "1 chiffres",


round(123.646,2) "2 chiffres",round(123.646,3) "3 chiffres"
DARI Dual;

Hasil:
88

Fungsi numerik.
Bulat (2/2)

SELECTround(123.646,-1) "1 chiffres" ,round(123.646,-2) "2 chiffres",


round(123.646,-3) "3 chiffres"
DARI Dual;

Hasil:
89

Fungsi numerik.
POTONG

PILIH TRUNC(123.646,0) "n=0",TRUNC(123.646,1) "n=1",


TRUNC(123.646,2) "n=2",TRUNC(123.646,3) "n=3",TRUNC(123.636,-1)
"n=-1",TRUNC(123.646,-2) "n=-2",TRUNC(123.646,-3) "n=-3"
Dari Dual;

Hasil:
90

Fungsi numerik.
FLOOR/ CEIL

PILIH lantai(-2.56), lantai(-2.02), lantai(-2.8),


ceil(-2.56),ceil(-2.02),ceil(-2.8)
DARI dual;

Hasil:

PILIH lantai(2.56),lantai(2.02),lantai(2.8),
ceil(2.56),ceil(2.02),ceil(2.8)
DARI dual;

Résultat:
91

Fungsi numerik.
MOD/ SISA

PILIHMOD(12, 4),MOD(16, 6)
DARI Dual;

Résultat:

PILIH sisa (15, 6), sisa (15, 5)


remainder(15, 4), remainder(-15,4)
DARI Dual;

15-(2*6) =3/ 15-(3*5) =0/ 15-(4*4) =-1/ -15-(-4*4) =1


Résultat:
92

Fungsi manipulasi tanggal.


(1/3)

. MONTHS_BETWEEN(date1,date2):nombre de mois entre deux dates


. ADD_MONTHS(tanggal, nb_bulan): Menambahkan bulan kalender ke sebuah tanggal
. HARI_SELANJUTNYA(tanggal, hari): hari berikutnya
. LAST_DAY(date):le dernier jour du mois
. ROUND(date, précision): membulatkan sebuah tanggal
. TRUNC(tanggal, presisi): memotong sebuah tanggal
. EKSTRAK(hari/bulan/tahun/jam/menit/detik dari tanggal): ekstraksi dari
jour, mois, année, heure, minute et seconde
93

Fungsi manipulasi tanggal.


(2/3)

PILIH sysdate "tanggal hari ini"


sysdate+2"Tanggal jr ditambah 2 jam",

to_date ('10/09/2012','dd/mm/yyyy')-10"tanggal hari ini kurang 10"


Trunc (sysdate - to_date('01/05/2012','dd/mm/yyyy'),0)
memotong tanggal
DARI dual;

Résultat:
94

Fungsi manipulasi tanggal.


(3/3)

PILIH
Trunc (bulan_antara(to_date ('2012/01/01', 'yyyy/mm/dd'), to_date
(‘2012/03/15’, ‘yyyy/mm/dd’) ),2) "jumlah bulan"
next_day(to_date ('2012/03/01', 'yyyy/mm/dd'), 'Monday') "lundi suivant",
last_day(to_date ('2012/03/01', 'yyyy/mm/dd')) "dernier jr du mois mars12" ,
tambah_bulan (ke_tanggal ('2012/03/01', 'yyyy/mm/dd'),3) "tambahkan 3 bulan"
DARI Dual;

Hasil:
95

Fungsi konversi.

. TO_DATE : Mengonversi Sebuah String ke format Tanggal


. TO_NUMBER : Mengubah Sebuah String ke Format Numerik
. TO_CHAR : Mengonversi Tanggal / angka menjadi Sebuah String
96

Fungsi konversi. Opsi dengan To_char

OPSIONAL DESCRIPTION
yyyy tahun (empat digit)
bulan nama lengkap bulan dalam huruf kecil
senin abrv nama bulan dalam huruf kecil (tiga karakter)
hari nom complet du jour en minuscule
DD hari dalam bulan (01-31)

D hari dalam seminggu (dari 1 hingga 7, Minggu adalah 1)


dy singkatan nama hari dalam huruf kecil (3 karakter)
ddd hari dalam setahun (001-366)
q trimestral
w nomor minggu dalam bulan (dari 1 hingga 5) (minggu pertama dimulai
hari pertama bulan ini.
ww nomor minggu dalam tahun (dari 1 hingga 53) (minggu pertama
mulailah hari pertama tahun ini.
97

FungsiLainnya. (1/5). definisi1

. NVL (nom_col, nilai) : menggantikan nilai nol

. NVL2 (expr,val1,val2) : jika expr tidak null, maka ia akan digantikan


par val1 sinon par val2.

. NULLIF (val1,val2) : jika val1= val2 maka nilai NULL dikembalikan jika tidak
val1

. Kasus: mengevaluasi daftar kondisi dan mengembalikan hasil di antara kasus-kasus.


kemungkinan
98

FungsiLainnya. (2/5). Latihan1

. Tulis kueri SELECT yang memungkinkan untuk:


. Gantikan « commission_pct » dengan 0 di tingkat tabel
« karyawan » jika nilainya null
. Ganti « commission_pct » dengan 0 di tingkat tabel
« karyawan » jika null, jika tidak maka 1
. Tampilkan daftar karyawan dengan menambahkan kolom
« nom_departement » qui affiche :
. Si department_id=10 , nom_departement=‘depart_10’
. Si department_id=20 , nom_departement=‘depart_20’
. Si department_id=30 , nom_departement=‘depart_30’
.…
99

FungsiLainnya. (3/5). Definisi2

. ROW_NUMBER: mengembalikan nomor urut dari sebuah baris


partisi dari sekumpulan hasil, dimulai dari 1 untuk yang pertama
garis dari setiap partisi. Tidak mempertimbangkan duplikat

. RANK: mengembalikan peringkat setiap baris dalam partisi dari sebuah


kumpulan hasil. Hitung duplikat tetapi tinggalkan celah

. DENSE_RANK :retourne le rang des lignes à l'intérieur de la partition


dari sekumpulan hasil, tanpa adanya kekosongan dalam peringkat.
Hitung duplikat tetapi jangan biarkan celah
100

FungsiLain. (4/5). Sintaksis

PILIH
Row_number() di atas (partisi oleh <kol x> urutkan oleh <kol_y>

DESC/ASC),Kol1,…kolN
DARI <nom_table> ;

Untuk diingat:

Klausul <order by> adalah wajib.


Klausul <partition by> bersifat opsional, digunakan untuk membuat urutan berdasarkan
sekumpulan garis menurut<colx>.
- Peringkat etdense_rankont sintaksis yang sama.
101

FungsiLainnya. (5/5). Latihan2

Tulis kueri SELECT yang memungkinkan untuk:

. Tampilkan daftar karyawan yang terurut berdasarkan "department_id".


. Tampilkan daftar karyawan yang diberi nomor berdasarkan departemen dan sesuai dengan
salairedécroissant:
. Gunakan « row_number »
. Gunakan "rank"
. Gunakan « dense_rank »
3èmeBagian :
Fungsi Multi garis (atau fungsi kelompok)

Tujuan kursus:

Menentukan klausa "GROUP BY"


klausa « HAVING »
103

Fungsi Multi garis. Definisi


(1/3)

Fungsi monoline adalah fungsi yang diterapkan dengan menyimpan per


pencatatan.
Fungsi multi line atau fungsi grup diterapkan pada sebuah grup
d’enregistrementset memberikan hasil per kelompok.

. ClauseGROUP BY: Menetapkan kriteria pengelompokan untuk fungsi


. Klaus HAVING: Memungkinkan untuk menetapkan syarat pada kelompok
perekaman
104

Fungsi Multi garis. Definisi


(2/3)

. COUNT: Nombre de lignes,


. JUMLAH: Jumlah nilai,
. AVG: Moyenne des valeurs,
. MIN: Minimum,
. Maks: Maksimum
. STDDEV: Ecart type,
. VARIANCE: Variance
105

Fungsi Multi Baris. Definisi


(3/3)

. COUNT: Nombre de lignes,


. JUMLAH: Jumlah nilai,
. AVG: Rata-rata nilai
. MIN: Minimum,
. MAX: Maximum,
. STDDEV: Ecart type,
. VARIANCE: Variance
106

Fungsi Multi Baris. Contoh 1

PILIH COUNT(gaji) sebagai jumlah,


Trunc (SUM(gaji),2) sebagai jumlah,

MIN(gaji) sebagai min,


MAX(gaji) sebagai max,
Trunc (AVG(gaji),2) sebagai rata-rata,

Trunc (VARIANCE(gaji),2) sebagai varians,


Trunc (STDDEV(gaji),2) sebagai ecart
DARI karyawan;

Résultat:
107

Fungsi Multi-lini. Sintaksis klausa GROUP BY

PILIH<kolom>, <fungsi grup>


DARI tabel
DIMANA<kondisi>
GROUP BY<col>|<expr>
MEMILIKI<syarat>
URUTKAN DENGAN<kol>|<ekspresi>
$SDLWX6,121,0"

,QL DGDODK
REMHN
GDUL
EDVLV
GDWDDWDX
VHEXDK
MDODQSLQWDV
2EMHNGDSDW
EHUXSD7DEHO7DPSLODQVHEXDK8UXWDQVHEXDK
3URVHGXU
VHEXDK
)XQJVLVHEXDK
3DNHW
6<121,0 GDSDW
EHUXSD
3XEOLN
DWDX
3ULEDGL

,WXDNDQGDSDW
GLDNVHV
GDUL
VHPXDVNHPD
$QGDSHQJJXQD
3ULEDGL
LWX
DNDQ
GDSDW
GLDNVHV
KDQ\DGDUL
VNHPD
GLPDQDLDGLFLSWDNDQ
4èmeBagian : LesJointures

Tujuan dari bagian ini:


i. Equijointure dan jointure internal, Jointure alami
[Link] eksternal
iii. Non équijointure
iv. Produk Kartesian
110

[Link].

. Sebuah penggabungan memungkinkan untuk mengekstrak data dari beberapa

meja sekaligus.

. Kondisi penggabungan dapat dinyatakan dalam klausa


« DI MANA » atau « DI ».

. Précédez le nom de la colonne par le nom de la table ketika

yang ini terdapat di beberapa tabel


111

Jenis-Jenis Gabungan.

. Equijointure atau jointure internal

. Persatuan alami

. Gabungan eksternal

. Non équijointure

. Produk Kartesius
112

[Link]

. Sebuah join internal atau join adalah sebuah join dengan


sebuah kondisi penggabungan yang mengandung operator kesetaraan.

. Ini adalah yang paling umum, menggabungkan garis yang memiliki


nilai yang setara untuk kolom gabungan.

. Umumnya dalam jenis gabungan ini, itu adalah Primary


Kunci dan Kunci Asing yang digunakan.
113

[Link] (1/2)

PILIH [Link], [Link]

DARI tabel1

INNER JOIN tabel2

ON(table1.nama_kolom=table2.nama_kolom) ;
114

[Link] (2/2)

T1 :Alias de la table : table1


PILIH T1.Kolom1, …[Link],
T2 :Alias de la table : table2
T2.Kolom1, …[Link]
C1 :kolom yang memungkinkan
DARI tabel1T1GABUNGAN tabel2T2
penggabungan antara 2 tabel
ONT1.C1=T2.C1
(kunci utama + kunci asing)
DIMANA<Kondisi(s)>

Setara dengan :

PILIH T1.Kolom1, …[Link],


T2.Kolom1, …[Link]
DARI T1, T2
DIMANAT1.C1=T2.C1DAN<Keadaan(s)>
115

[Link]

Contoh1:

PILIH nama, [Link], nama dep


DARIempeINNER JOINdeptd
[Link]=[Link];

Contoh2:

SELECT nomE, [Link], nomdept


DARIempeINNER JOINdeptd
[Link]=[Link]
DIMANA [Link]=11;
116

Penyatuan alami. Definisi

. Gabungan alami adalah gabungan setara.


. Klausul NATURAL JOIN didasarkan pada semua kolom
dari dua tabel yang memiliki nama yang sama.

. Dia memilih baris dari dua tabel yang nilainya adalah


identik di semua kolom yang sesuai.

. Jika kolom yang memiliki nama yang sama memiliki tipe dari
data yang berbeda, sebuah kesalahan dikembalikan.
117

Persatuan alami. Sintaksis

PILIH kolom1, kolom2…


DARI Tabel1
NATURAL JOINTabel2
Kondisi WHERE(s);

Kondisi selain kondisi


perpecahan
118

Persatuan alami. Exemple

Contoh 1:

SELECT nomE, numdept,nomdept


DARI emp NATURAL JOIN dept;

Contoh 2:

PILIH nomE, numdept, nomdept


DARI emp GABUNG ALAMIAH dept
WHEREnumdept=11;
119

Non équijointure. Definisi

. Ini adalah menggunakan kondisi gabungan apa pun


antara dua tabel, kecuali untuk kesetaraan yang ketat. Ini bisa menjadi

syarat-syarat berikut:
120

Gabungan eksternal.
Definisi

. JOINTURES EKSTERNAL = OUTER JOINS.


. Sebuah join eksternal memperluas hasil dari sebuah join internal
(INNER JOINS) dan memungkinkan untuk mengekstrak catatan yang
tidak memenuhi kriteria penggabungan.
. Une jointure externe renvoietoutes les lignesqui satisfont la
kondisi penggabungan dan juga mengembalikan sebagian dari ini
garis-garis tabel untuk mana tidak ada dari garis lainnya
tidak memenuhi kondisi penggabungan.
121

Gabungan eksternal.
Types de jointures externes

PILIH [Link], [Link]..


DARI tabel1 t1
KIRI | KANAN | JOIN LUAR PENUH tabel2 t2 ON
(t1.nama_kolom = t2.nama_kolom) ;

. Makna dari gabungan luar KIRI atau KANAN dari klausa


OUTER JOIN menunjuk pada tabel dominan.

. FULL= INNER + LEFT + RIGHT


122

Penggabungan eksternal.
Kiri

Contoh:

PILIH namaE, [Link], nama_dept

DARI deptd LEFT JOIN empe


[Link]=[Link]
123

Gabungan eksternal.
Kanan

Contoh:

PILIH namaE, [Link], nama dept

DARI deptd RIGHT JOIN empe


[Link]=[Link]
124

Gabungan eksternal.
lengkap

Contoh:

PILIH nama, [Link], nama_dept

DARIdeptdFULL JOINempe
[Link]=[Link]
125

Produk Kartesian. Definisi

Kita mendapatkan produk kartesian ketika :


. Sebuah kondisi penggabungan diabaikan
. Syarat penggabungan tidak tepat
. Setiap baris di tabel 1 dihubungkan dengan semua baris dari
meja 2.
. Jumlah baris yang dikembalikan sama dengan n1 * n2 di mana
n1 adalah jumlah baris di tabel 1
n2 adalah jumlah baris dari tabel 2
126

Produk Kartesian Sintaksis

PILIH « nom_colonne1 », « nom_colonne2 »…


DARI tabel1 t1
CROSS JOIN table2 t2

Contoh:
Pilih * dari karyawan CROSS JOIN departemen

Kita akan memiliki 107*27 baris = 2889 baris


127

Produk Kartesius. Contoh

PILIH * DARI emp e


INNER JOIN dept d
[Link]=[Link]
. OU
PILIH * DARI emp, dept

Kita akan memiliki 9*4 baris


128

Perkawinan.
Ringkasan
5èmeBagian: Para Operator
ensemblis

[Link]
[Link] ALL
iii. IRISAN
[Link]
130

Operator himpunan.

OPERATOR DESCRIPTION
Bawa semua baris yang sama untuk keduanya
IRISAN
permintaan
Semua baris yang berbeda dibawa oleh keduanya
UNIA
perintah
Semua baris yang dikembalikan oleh kedua permintaan tersebut
UNION ALL
menghapus duplikat
Semua baris yang diambil oleh kueri pertama
MINUS
kecuali baris yang dibawa oleh permintaan kedua
131

Union(SEMUA).Contoh

. Buat tabel arsip yang berisi informasi tentang


karyawan yang dipekerjakan setelah tahun 2009.

. Tuliskan permintaan yang akan menampilkan semua karyawan:

PILIH * dari emp


Gabungan(SEMUA)

PILIH * dari emp2


132

Irisan/[Link]

Tulis permintaan yang memungkinkan untuk:

. Tampilkan karyawan yang telah diarsipkan.


. Tampilkan karyawan yang belum diarsipkan.

PILIH * dari emp


Irisan/minus
PILIH * dari emp2 ;
133

Latihan aplikasi.

. Tulis sebuah permintaan yang memungkinkan untuk menampilkan hasil ini dari
tabel 'dept' :
6èmeBagian :
Pertanyaan-pertanyaan yang lebih kecil

[Link] satu baris


[Link] dengan beberapa baris
135

Di bawah interogasi. Definisi

. Sous-interrogation (permintaan internal) dieksekusi satu-satunya


sebelum permintaan utama
. Hasil dari sub-interogasi digunakan oleh kueri
utama (permintaan eksternal)

. Sebuah sub-interogasi digunakan dalam klausul berikut:


. DIMANA
. MEMILIKI
. DARI
136

Di bawah interogasi satu garis. Definisi

Sebuah sub-interogasi dapat menghasilkan satu hasil saja


Anda memanggil di bawah interogasi satu baris.

Les opérateurs de comparaison mono lignesont :


=, !=, <, >, <=, >=
137

Sous interrogations mono lignes. Contoh1

Contoh Pembaruan dengan sub interogasi :


karyawan nomor 112 ditempatkan pada posisi yang sama dan sama

departemen yang karyawan nomor 111

UPDATE employee_id SET (job_id, department_id)


(PILIH job_id, department_id
DARI karyawan
DIMANAmployee_id=111)
DIMANAmployee_id=112 ;
138

Di bawah pertanyaan satu baris. Contoh2

Contoh Penghapusan dengan interogasi tambahan:


Hapus semua karyawan dari departemen 'PENJUALAN'

HAPUS DARI karyawan


DIMANADepartment_id=
(PILIH department_id
DARI departemen
DIMANA department_name=‘PENJUALAN’);
139

Di bawah interogasi satu baris. Contoh

Tuliskan permintaan yang memungkinkan untuk:

. Tampilkan nama departemen karyawan 'Benafia'


tarek’.
. Tampilkan daftar karyawan yang menerima gaji
lebih tinggi dari pegawai 'Benafia tarek'.

. Tampilkan nama dan tanggal perekrutan karyawan yang


tidak dipekerjakan pada tahun yang sama dengan karyawan

‘Benafia tarek’.
140

Di bawah interogasi multi garis. Definisi (1/3)

. Sebuah sub-interogasi dapat membawa beberapa baris ke


kondisi apa operator perbandingan yang diterima pada
kanan sekumpulan nilai.
. Operator yang memungkinkan membandingkan nilai dengan
sekumpulan nilai adalah:
. operatorINet
. operator yang diperoleh dengan menambahkan ANYouALL pada
lanjutan operator perbandingan klasik :
=, !=, <, >, <=, >=.
141

Di bawah interogasi multi garis. Definisi (2/3)

. ANY: perbandingan akan benar jika itu benar untuk


kurang satu elemen dari himpunan (jadi itu salah jika
himpunan tersebut kosong).

. SEMUA: perbandingan akan benar jika benar untuk semua


elemen dari himpunan (itu benar jika himpunan adalah
vide).
. Operator IN setara dengan = ANY,
. Operator NOT IN setara dengan != ALL.
142

Di bawah interogasi multi garis. Definisi (3/3)

Operator perbandingan Hasil


GAJI harus sama dengan salah satu nilai
DIMANA salaireIN(1200,1600,2000,2900) dalam daftar
GAJI tidak boleh sama dengan salah satu dari
DIMANA salaire TIDAK DALAM (1200,1600,2000,2900)
nilai dalam daftar
SALAIRE harus lebih tinggi dari setidaknya satu
DIMANA gaji>SESIAPA(1200,1600,2000,2900) nilai-nilai.
Jadi lebih dari minimum (+ dari 1200).
SALAIRE harus lebih rendah dari setidaknya satu
DIMANA salaire<ANY(1200,1600,2000,2900) nilai-nilai.
Jadi kurang dari maksimum (- dari 2900).
GAJI harus lebih tinggi dari maksimum
DI MANA salaire>SEMUA(1200,1600,2000,2900) dari semua nilai.
Jadi lebih dari maksimum (+ dari 2900).
GAJI harus kurang dari minimum
DIMANA gaji<SEMUA(1200,1600,2000,2900) semua nilai.
Jadi kurang dari minimum (- dari 1200).
143

Di bawah interogasi multi-lini. Contoh

Menuliskan permintaan yang memungkinkan untuk:

. Tampilkan daftar karyawan yang menerima gaji


lebih tinggi dari semua karyawan departemen 11.

. Tampilkan nama dan tanggal perekrutan karyawan yang


tidak dipekerjakan pada tahun yang sama dengan karyawan

‘Benflen ali’etl’employé ‘Hamidali’

Anda mungkin juga menyukai