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’