Kursus dasar bahasa SQL. Perpustakaan elektronik administrator sistem

25.03.2020 Windows dan disk
Sergei Vorobyov
Insinyur Uji Utama
SQL. Kursus dasar
www.aplana.ru

Isi
● Bagian 1: Pengenalan SQL
● Bagian 2. Bahasa Definisi Data
● Bagian 3. Bahasa Manipulasi Data
● Bagian 4. DRL. Pertanyaan sederhana.
● Bagian 5. Memilih data dari beberapa tabel.
● Bagian 6. Fungsi agregat. Mengelompokkan data.
● Bagian 7. Subkueri.
● Bagian 8. Fungsi untuk bekerja dengan string, tanggal dan angka.
23

SQL. Kursus dasar
Bagian 1: Pengantar SQL
www.aplana.ru

Pengantar SQL
SQL (Bahasa Kueri Terstruktur)
permintaan") – universal bahasa komputer, digunakan untuk
membuat, memodifikasi dan mengelola data dalam database relasional
data.
43

Pengantar SQL
Basis Data – daftar atau kumpulan daftar terkait Dengan
informasi
Sistem manajemen basis data (DBMS) – khusus
perangkat lunak yang mengelola daftar ini
53

Database relasional dan non-relasional
Basis data relasional – basis data berdasarkan model relasional
data:
Data dalam database adalah sekumpulan tabel;
Data memenuhi kondisi integritas tertentu;
Mendukung operator manipulasi tabel
(misalnya, memilih atau menyalin tabel).
Basis data non-relasional – hierarki, jaringan,
berorientasi objek, NoSQL.
63

Apa perbedaan database dengan spreadsheet?
1. Menyimpan baris dalam jumlah besar
DI DALAM spreadsheet jumlah barisnya terbatas.
Basis data menyimpan jutaan baris.
2. Layanan simultan untuk banyak pengguna
3. Keamanan.
Pengguna diberikan hak istimewa hanya untuk
tabel dan tindakan tertentu.
4. Sifat relasional.
Data disimpan dalam tabel yang berbeda, antar tabel
ada koneksi.
5. Kendala untuk menjamin kualitas data.
73

Meja
Baris (row) – baris horizontal sel yang dialokasikan untuk masing-masing sel
objek tabel.
Rekam – data dalam satu baris.
Kolom – berisi informasi dari satu jenis.
Bidang – perpotongan kolom dan baris.
83

Dasar-dasar Antarmuka SQL
DBMS
93
Nama
Penguraian kode
InterBase/FireBird
PSQL
SQL prosedural
IBM DB2
SQL PL
Bahasa Prosedural SQL
Ms SQL Server/Sybase ASE
T-SQL
Transaksi-SQL
MySQL
SQL/PSM
SQL/Tersimpan Terus-menerus
Modul
Peramal
PL/SQL
Bahasa Prosedural/SQL
(berdasarkan bahasa Ada)
PostgreSQL
PL/pgSQL
Prosedural
Bahasa/PostgreSQL
(sangat mirip dengan Oracle
PL/SQL)

10.

Perbedaan sintaks fungsi DBMS
MSSQL
DB2
NUMERIK
NOMOR
NUMERIK
TANGGALTAMBAHKAN
MONTH_ADD
(Tanggal + 10 HARI)
EOMONT
HARI TERAKHIR
HARI TERAKHIR
TANGGAL PERBEDAAN
BULAN_BETWEEN
TIMESTAMPDIFF
ATAS
ATAS
UCASE/ATAS
MENGUBAH
TO_CHAR
TO_CHAR
INITCAP
INITCAP
-
103
Peramal

11.

Sintaks SQL
Fungsi dan nama objek tidak peka huruf besar-kecil:
PILIH = PILIH.
Namun, saat mencari berdasarkan bidang teks hal - hal sensitif
SQL tidak sensitif terhadap jeda baris
Karakter pengakhiran baris yang diperlukan tidak ada
Mendukung --komentar satu baris dan
/*multibaris */
Merupakan kebiasaan untuk mengakhiri setiap transaksi dengan titik koma, tapi
Saat menjalankan perintah individual, tidak ada penggunaannya
Perlu
113

12.

Tipe data
CHAR(n) – string dengan panjang konstan (hingga 256 byte di MS SQL Server), mis.
memasukkan lebih sedikit data ke dalam baris - ukurannya tidak akan berubah
VARCHAR(n) – string dengan panjang variabel, mis. memerlukan begitu banyak memori
berapa banyak datanya
INTEGER – angka tanpa titik desimal
NUMERIK (m,n) – digunakan untuk menyimpan nol dan positif atau
bilangan fixed dan floating point negatif. MPRECISION (jumlah digit), n – SKALA (jumlah digit di sebelah kanan
titik desimal). m/n – parameter opsional
TANGGAL - tanggal dalam format yyyy-mm-dd (ISO), dd/mm/yyyy (ANSI), dd-MON-yy.
BOOLEAN tipe boolean data: benar/salah atau 1/0.
Selain itu, nilai bidangnya bisa NULL - artinya tidak ada nilai -
sel kosong.
123

13.

Tipe TANGGAL
Secara default, Anda dapat mewakili tanggal dalam database dalam format DD-MONYYYY (misalnya, '01-FEB-1900'):
MASUKKAN KE dalam tabel1 (id, date_work) nilai (1, '01-FEB-1900').
Anda juga dapat menggunakan kata kunci DATE. Apalagi sudah untuk
format tanggal YYYY-MM-DD (misalnya, '1900-02-01'):
MASUKKAN KE dalam tabel1 (id, date_work) nilai (1, TANGGAL '1900-02-01').
Anda juga dapat menggunakan tipe tanggal+waktu TIMESTAMP
untuk mengatur tidak hanya tanggal, tetapi juga waktu:
INSERT INTO table1 (id, date_work) nilai (1, '01-FEB-1900-10.50.01'),
itu.
1 Februari 1900 10 jam 50 menit 1 detik (format hh-SEN-yy
-hh.mm.ss.nnnnn)
133

14.

Mengonversi Tipe Data ke MSSQL
CONVERT(tipe data, string, gaya) – konversi satu
format data ke format lain
Dalam karakter:
KONVERSI(VARCHAR(20), GETDATE())
Pada tanggal
KONVERSI(DATETIME, "14-11-2015", 105)
Dalam jumlah
KONVERSI(NUMERIK, '1234657890")
143

15.

Mengonversi Tipe Data di Oracle
TO_CHAR(nilai masukan, format) – konversi tanggal,
angka, kali menjadi string.
Format: 'BULAN DD', 'BULAN DD, YYYY', 'DD/MM/YYYY', 'HARI SENIN, YY AD'
TAHUN
$9,999.00
Dll.
TO_CHAR(SYSDATE, "BULAN DD")
TO_DATE(nilai input, format) – mengonversi string menjadi
tanggal. Format: DD-SENIN-YYYY
Bulan dd, YYYY , HH:MI p.m.
Dll.
TO_DATE("02-JAN-2012", "DD-MON-YYYY")
TO_NUMBER(nilai masukan, format) – mengonversi string menjadi angka.
TO_NUMBER("123")
153

16.

Objek Basis Data Lainnya
Tampilan adalah objek database yang tidak berisi
tabel sendiri, tetapi isinya diambil dari tabel lain
atau tampilan dengan menjalankan kueri.
Skema adalah grup bernama objek database terkait.
Indeks – objek yang dibuat untuk ditingkatkan
Kinerja pencarian. Tabel tersembunyi berisi satu
atau beberapa kolom tabel dan penunjuk baris penting
tabel.
Kendala – kondisi yang harus dipenuhi
entri yang dimasukkan pengguna.
163

17.

Objek Basis Data Lainnya
Prosedur tersimpan – objek database,
yang merupakan sekumpulan instruksi SQL. Disimpan dalam database.
Memanggil suatu prosedur menyebabkan eksekusi konten yang terkandung di dalamnya.
instruksi.
Fungsi - mirip dengan prosedur tersimpan, tetapi kembali
nilai yang dapat digunakan secara lebih besar
operator
Pemicu - prosedur yang dilakukan secara otomatis,
ketika beberapa peristiwa tertentu terjadi.
Kursor – tautan ke area memori kontekstual. Menggunakan
kursor, Anda dapat memproses secara terpisah setiap baris yang terkait dengannya
pernyataan SQL nim.
173

18.

Bagian dari bahasa SQL
1. DDL - Bahasa Definisi Data (bahasa definisi objek database).
BUAT, UBAH, DROP, dll.
2. DCL - Bahasa Kontrol Data (bahasa kontrol data).
HIBAH, BATAL
3. DML - Bahasa Manipulasi Data
data). MASUKKAN, PERBARUI, HAPUS
4. Pengambilan Data - pengambilan data PILIH
5. Transaction Control (bahasa untuk menjaga proses transaksi).
KOMITMEN, KEMBALIKAN, SAVEPOINT.
183

19.

SQL. Kursus dasar
Bagian 2. Bahasa Definisi Data
www.aplana.ru

20.

Bahasa Definisi Data
1.
CREATE TABLE (membuat tabel)
Sintaks umum:
BUAT TABEL nama_tabel (
bidang1 Jenis bidang1,
bidang2 Jenis bidang2,
..., bidangN Jenis bidangN);
BUAT TABEL person_info (
person_id INTEGER BUKAN NULL,
nama_depan VARCHAR(15) BUKAN NULL,
nama_belakang VARCHAR(20) BUKAN NULL,
jenis kelamin CHAR(1),
tanggal lahir,
gaji NUMERIK(7,2));
203

21.

Bahasa Definisi Data
2. ALTER TABLE (mengganti tabel)
ALTER TABLE nama_tabel (TAMBAHKAN<имя столбца> <определение столбца>}|
(MEMODIFIKASI<имя столбца> <Определение столбца>)| (JATUHKAN KOLOM<имя
kolom>)
3. DROP TABLE (menghapus tabel)
DROP TABLE table_name (KENDALA CASCADE);
4. TRUNCATE TABLE (membersihkan meja)
TRUNCATE TABLE nama_tabel
213

22.

SQL. Kursus dasar
Bagian 3. Bahasa Manipulasi Data
www.aplana.ru

23.

Bahasa Manipulasi Data
1. INSERT - Menyisipkan satu catatan.
MASUKKAN KE NILAI nama_tabel (nilai bidang1, nilai bidang2,..,
nilai bidangN);
MASUKKAN KE nama_tabel (bidang1, bidang3,...) NILAI (nilai bidang1, nilai bidang2,...,
nilai bidangN);
MASUKKAN KE NILAI person_info (1, "John", "Smith", "M", "15-OCT-1973",
45568.56);
INSERT INTO person_info (person_id, first_name, last_name) VALUES (5, Sarah", 'Connor");
Berhasil.
MASUKKAN KE NILAI person_info (NULL, "Jane", "Smith", "F", "8-AUG-1987",
BATAL);
Kesalahan karena person_id tidak boleh NULL.
233

24.

Bahasa Manipulasi Data
Memasukkan sekelompok catatan
MASUKKAN KE nama_tabel
PILIH...;
BUAT TABEL t2 (
pertama_1 VARCHAR(15),
terakhir_1 VARCHAR(20),
ulang tahun_1 TANGGAL);
MASUKKAN KE t2
PILIH nama_depan, nama_belakang, tanggal lahir
DARI info_orang;
243

25.

Bahasa Manipulasi Data
MASUKKAN KE NILAI person_info (2, "Sara", "Doe", "F", "9-OCT-1986",
29789.56);

29789.56);
Berhasil.
MASUKKAN KE NILAI person_info (3, "Sara", "Doe", "F", "9-OCT-1986",
29789.56);
Sekarang mari kita hapus entri kedua dengan person_id=2
HAPUS DARI person_info DIMANA person_id = 2
253

26.

Bahasa Manipulasi Data
Integritas data
Integritas entitas - mendefinisikan baris tabel sebagai instance unik
beberapa entitas.
Kunci utama - kolom atau sekelompok kolom bersifat unik
mengidentifikasi setiap entri.
Kunci asing adalah cerminan hubungan antar tabel. Bawahan
tabel harus memiliki kolom (atau sekelompok kolom) yang identik untuk disimpan
nilai-nilai yang secara unik mengidentifikasi catatan master.
Integritas referensial - tidak boleh ada catatan di tabel bawahan
mereferensikan catatan tabel master yang tidak ada.
263

27.

Bahasa Manipulasi Data
273

28.

Bahasa Manipulasi Data
Kunci utama
ALTER TABLE nama_tabel
TAMBAHKAN KUNCI UTAMA(nama_kolom);
ALTER TABLE person_info
TAMBAHKAN KUNCI UTAMA(person_id);
Nilai kunci primer menyiratkan identifikasi unik
catatan, masing-masing, nilai tidak dapat diulang.
Dan sekali lagi kami akan mencoba menambahkan entri dengan person_id=2:
MASUKKAN KE person_info NILAI (2, "Rita", "Blow", "F", "9-OCT-1975",
29789.56);
283

29.

Kunci eksternal
ALTER TABLE nama_subtabel
TAMBAHKAN CONSTRAINT kendala_nama KUNCI ASING (nama_kolom
bawahan
tabel) REFERENSI main_table_name;
BUAT TABEL orang_alamat (
person_id BULAT INTEGER,
alamat VARCHAR(200));
ALTER TABLE orang_alamat
TAMBAHKAN KONSTRAINT person_fk_address
KUNCI ASING (person_id)
REFERENSI person_info;
293

30.

Bahasa Manipulasi Data
INSERT INTO person_address VALUES (1, "Moskow, jalan Arbat, 67-14");
INSERT INTO person_address VALUES (2, "Moskow, jalan Arbat, 67-14");
Berhasil.
INSERT INTO person_address VALUES (4, "Zelenograd, Jalan Hijau, 23");
Kesalahan. Mencoba memasukkan catatan bawahan ketika tidak ada
catatan master yang sesuai.
INSERT INTO person_address VALUES (3, "Zelenograd, Jalan Hijau, 23");
303

31.

Menghubungkan tabel selama pembuatan
Seperti yang telah kita bahas sebelumnya, ini banyak digunakan untuk membuat
kunci utama (PRIMARY KEY) dan kunci asing (FOREIGN KEY).
melalui perintah perubahan struktur tabel yang ada. Juga
Anda dapat menambahkan konstruksi berikut saat membuat tabel:
BUAT TABEL tab1(
id integer KUNCI UTAMA,
…..
313

32.

Bahasa Manipulasi Data
2. UPDATE - Mengubah nilai kolom tabel
A)Mengubah semua nilai kolom tabel
MEMPERBARUI
MENGATUR =
PERBARUI alamat_orang
SET alamat = "Volgograd, Jalan pertama, 15-20"
B) Mengubah nilai tabel tertentu
MEMPERBARUI
MENGATUR =
DI MANA =
UPDATE person_address SET alamat = "Volgograd, Jalan pertama, 15-20"
DIMANA orang_id = 3;
MEMPERBARUI
MENGATUR =
DI MANA = [operator]
UPDATE person_info SET gaji = gaji*2
DIMANA orang_id = 3;
323

33.

Bahasa Manipulasi Data
3. DELETE - Menghapus baris dari tabel
A) Menghapus semua nilai kolom tabel
HAPUS DARI
B) Menghapus nilai tabel tertentu
HAPUS DARI
DI MANA =
333

34.

Tugas Praktek No.1
1. Buat database seperti pada Gambar 1 (buat tabel dan kunci asing)
2. Masukkan data berikut ke dalam tabel.
Departemen: (1, "Pemasaran"), (2, "RD")
Contoh: (1, 1, "James", 1000), (2, 2, "Smith", 2000)
3. Buat tabel dept_arch dengan struktur yang sama dengan tabel dept.
4. Masukkan semua data dari tabel dept ke dalam tabel dept_arch.
343

35.

Tugas Praktek No. 1 (lanjutan)
5. Menaikkan gaji karyawan Smith sebesar 15%.
6. Pastikan bahwa catatan berikut tidak dapat dimasukkan ke dalam tabel departemen: (2, "Penjualan"). Mengapa?
7. Pastikan bahwa record berikut tidak dapat dimasukkan ke dalam tabel emp: (3, 4, "Hitam", 3000,
"Aktif"). Mengapa?
8. Ubah nama departemen RD menjadi RandD (tabel departemen).
9. Hapus entri dengan emp_id = 1 dari tabel emp.
12. Hapus semua entri dari tabel emp.
13. Jatuhkan tabel kosong.
353

36.

SQL. Kursus dasar
Bagian 4. DRL. Pertanyaan sederhana
www.aplana.ru

37.

Basis data pelatihan kami
373

38.

Bahasa Pengambilan Data
PILIH – pemilihan data. Bagian ini diperlukan dalam permintaan dan
memungkinkan:
PILIH field1,…fieldN FROM table1, .., tableN WHERE kondisi
383
Tentukan daftar kolom keluaran
Aktifkan kolom terhitung
Aktifkan Konstanta
Ganti nama kolom keluaran
Tentukan prinsip pemrosesan baris duplikat
Aktifkan fungsi agregat

39.

Bahasa Pengambilan Data
1.
Mendefinisikan Daftar Kolom Output
Daftar kolom keluaran dapat ditentukan dalam beberapa cara:
. Tentukan simbol * untuk menunjukkan penyertaan semua kolom dalam hasil kueri
permintaan dalam urutan alami.
. Cantumkan hanya yang Anda perlukan dalam urutan yang diinginkan<имена столбцов>.
PILIH kode_orang, nama_depan, nama_belakang DARI orang;
--Kita dapat mengubah urutan kolom
PILIH nama_depan, nama_belakang, kode_orang DARI orang;
393

40.

Rangkaian
Menghubungkan dua atau lebih bagian teks.
PILIH nama_produk + " dijual oleh " + tenaga penjual DARI pembelian;
403

41.

Bahasa Pengambilan Data
2. Mengaktifkan kolom terhitung
Kolom kueri terhitung dapat berupa:
. Hasil ekspresi aritmatika sederhana (+, -, /, *_ atau
rangkaian string (+).
. Hasil fungsi agregasi (AVG|SUM|MAX|MIN|
MENGHITUNG)
413

42.

Bahasa Pengambilan Data
3. Mengaktifkan Konstanta
Kolom dapat berupa konstanta numerik dan
tipe karakter.
PILIH "Ada kode seperti itu",kode_orang, "untuk", nama_depan, nama_belakang
DARI orang
423

43.

Bahasa Pengambilan Data
4.
Mengganti nama kolom keluaran
Dihitung, serta kolom lainnya, jika diinginkan,
Anda dapat menetapkan nama unik menggunakan kata kunci
SEBAGAI:<выражение>SEBAGAI<новое имя>
PILIH nama_produk + " dijual oleh " + tenaga penjual SEBAGAI SOLDBY
DARI pembelian;
Anda dapat menyetel alias tanpa menggunakan kata kunci, namun dengan batasan:
PILIH nama_produk + " dijual oleh " + tenaga penjual SOLDBY
DARI pembelian;
PILIH nama_produk + " dijual oleh " + tenaga penjualan "Dijual Oleh"
DARI pembelian;
433

44.

Bahasa Pengambilan Data
5. Menunjukkan prinsip pemrosesan duplikat
DISTINCT – melarang munculnya garis duplikat pada output
banyak. Itu dapat ditentukan satu kali per pernyataan SELECT.
Dalam praktiknya, rangkaian keluaran awalnya dibentuk,
diatur, dan kemudian duplikatnya dihapus darinya
makna. Hal ini biasanya memakan waktu lama dan sebaiknya tidak dilakukan
melecehkan.
PILIH BERBEDA * DARI orang
SEMUA (default) – memastikan penyertaan dalam
hasil kueri dan nilai duplikat
443

45.

Bahasa Pengambilan Data
6.
Mengaktifkan fungsi agregat
Fungsi agregasi (kumpulan, statistik atau
basic) dirancang untuk menghitung beberapa nilai
sekumpulan string tertentu. Agregat berikut digunakan
Fitur:
Rata-rata|JUMLAH(<выражение) – подсчитывает среднее значение | сумму от
<выражение>.
Minimal|maks(<выражение>) – menemukan | maksimum nilai minimum.
JUMLAH(*|<имя столбца>) – menghitung jumlah baris
Tapi lebih dari itu nanti
453

46.

Bahasa Pengambilan Data
WHERE – pemilihan data yang memenuhi tertentu
kondisi.
PILIH bidang1,…bidangN DARI tabel1, .., tabelM DI MANA
kondisi1,…kondisiY
463

47.

Bahasa Pengambilan Data
Contoh:
PILIH * DARI produk DI MANA tanggal stok terakhir NULL;
PILIH * DARI produk DI MANA tanggal stok terakhir BUKAN NULL;
PILIH nama_produk, harga_produk, kuantitas_di tangan
DARI produk WHERE quantity_on_hand > 150;
PILIH nama_produk, harga_produk DARI produk
DIMANA nama_produk<>"Zinulator Persegi";
473

48.

Bahasa Pengambilan Data
Ada juga kondisi yang lebih kompleks:
Pukul banyak
<конструктор значений строки>DI DALAM (<подзапрос>|<набор конструкторов
nilai string>)
Seperangkat nilai ditentukan yang menjadi objek perbandingan yang ditulis sebelumnya
kata kunci IN, mungkin termasuk atau tidak. Jika subquery tidak
mengembalikan string, maka predikat bernilai FALSE.
Contoh untuk bekerja dengan set:
PILIH * DARI pembelian DI MANA penjual DI ("CA", "BB");
PILIH*DARI pembelian DIMANA penjual TIDAK ADA (“CA”, “BB”);
PILIH * DARI pembelian DIMANA (penjual + nama_produk) di (("CA" + "Kecil
Widget"), ("GA" + "Chrome Phoobar"))
483

49.

Bahasa Pengambilan Data
Berbagai aksesoris
<конструктор значений строки>DI ANTARA<конструктор
nilai baris 1>DAN<конструктор значений строки 2>
Predikat ANTARA mirip dengan predikat IN, namun bukan unsurnya
dari himpunan itu mendefinisikan batas-batas inklusif yang [seharusnya] tidak dicakupnya
tekan nilai yang sedang diperiksa.
DI MANA
harga_produk BUKAN ANTARA 1 DAN 80;
493

50.

Bahasa Pengambilan Data
Operator Boolean
<предикат>(DAN|ATAU|TIDAK)<предикат>
Catatan: Operator Boolean menghubungkan satu atau lebih predikat ke form
nilai logika tunggal TRUE|FALSE. Menggunakan predikat dengan
Operator Boolean, Anda dapat meningkatkan selektif secara signifikan
kemampuan untuk memilih baris ke dalam hasil kueri.
Saat menggunakan operator Boolean, khususnya BUKAN operator, sebaiknya
gunakan tanda kurung untuk membentuk kondisi dengan benar (DAN
dieksekusi sebelum OR).

"%Widget" ATAU harga_produk< 20;
PILIH nama_produk, harga_produk DARI produk DIMANA nama_produk SEPERTI
"%Widget" DAN harga_produk< 20;
503

51.

Bahasa Pengambilan Data

PILIH daftar bidang DARI daftar tabel WHERE nilai yang akan diperiksa LIKE
(pola) (ESCAPE (nama sandi));
Salah satu karakter - _
PILIH kode_orang, nama_depan, nama_belakang DARI orang DIMANA kode_orang SEPERTI "_A";
Substring apa pun - %
PILIH nama_produk DARI produk DIMANA nama_produk SEPERTI "%Chrome%";
Jika Anda perlu mencari teks dengan simbol % (misalnya nama produk
ab%cdef):
DIMANA nama_produk SEPERTI "ab$%c%" ESCAPE "$";
% pertama dibaca sebagai karakter dalam nama, yang kedua sebagai string apa pun.
513

52.

Bahasa Pengambilan Data
SEPERTI perkiraan operator pencarian
… dengan nama tengah seperti '%ov%'
… dengan patronimik seperti 'I%'
… dengan patronimik seperti '%vich'
… di mana Nama Belakang seperti '____ov'
523

53.

Bahasa Pengambilan Data
SEPERTI perkiraan operator pencarian

pilih nama_produk dari pembelian
di mana nama_produk seperti "%Widget"
pilih nama_produk dari pembelian
di mana nama_produk seperti "%$%Widget"
melarikan diri dari "$"
533

54.

Bahasa Pengambilan Data
Penyortiran
PILIH daftar kolom DARI daftar tabel kondisi WHERE
ORDER BY kolom daftar ASC (DESC);
Menurun:
PILIH nama_produk, harga_produk DARI produk
ORDER BERDASARKAN harga_produk DESC;
Menaik:
PILIH nama_produk, harga_produk DARI produk
ORDER BERDASARKAN nama_produk ASC;
543

55.

Tugas Praktek No.2
1. Tulis kueri yang memperlihatkan seluruh tabel pembelian.
2. Tulis kueri yang memilih kolom nama_produk dan kuantitas
Tabel pembelian.
3. Tulis kueri yang memilih kolom-kolom ini dalam urutan terbalik.
4. Tulis query yang mencetak orang untuk setiap baris dalam tabel
teks berikut:
mulai bekerja *. Kolom yang dihasilkan
tetapkan alias "Mulai Bekerja".
5. Tulis query yang menampilkan nama produk nama_produk
(produk tabel), yang harganya belum ditentukan (NULL).
6. Tulis query yang menampilkan nama produk nama_produk
(meja pembelian), yang dijual 3 hingga 23 buah.
* MSSQL tidak mendukung penggabungan kolom dengan tipe data varchar dan tanggal. Gunakan operatornya
konveksi: CONVERT(VARCHAR, sewaan)
3

56.

Tugas Praktek No. 2 (lanjutan)
7. Tulis query yang menampilkan nama karyawan yang
dipekerjakan pada tanggal 1, 15 dan 28 Februari 2010.
8. Tulis query yang menampilkan nama produk
product_name (tabel pembelian) yang dijual oleh karyawan yang nama belakangnya dimulai dengan “B”.
9. Tulis query yang menampilkan nama produk
product_name (tabel pembelian) yang dijual oleh karyawan yang nama belakangnya tidak diawali
"B".
10. Tulis query yang menampilkan nama belakang dan tanggal perekrutan
karyawan yang nama belakangnya dimulai dengan "B" dan diterima
untuk bekerja sebelum 1 Maret 2010.
11. Tulis query yang menampilkan nama produk
nama_produk dan tanggal pengiriman terakhir tanggal stok terakhir (tabel
produk), yang namanya Widget Kecil, Widget Sedang, dan Besar
Widget atau yang tanpa tanggal pengiriman terakhir.
Urutkan berdasarkan tanggal pengiriman terakhir dalam urutan menurun.
563

57.

SQL. Kursus dasar
Bagian 5. Mengambil data dari beberapa tabel
www.aplana.ru

58.

Mengambil data dari beberapa tabel
PILIH nama_tabel_1.nama_kolom, nama_tabel_2.
nama kolom
DARI nama_tabel_1, nama_tabel_2;

DARI pembelian, orang;
Produk Cartesian - kombinasi tanpa
Klausa WHERE, yang menghasilkan setiap baris
satu tabel digabungkan dengan setiap baris tabel lainnya
tabel.
583

59.

Mengambil data dari beberapa tabel dengan syarat
PILIH nama_tabel_1.nama_kolom, nama_tabel_2. nama kolom
DARI nama_tabel_1, nama_tabel_2
WHERE main_table_name.primary_key =
subtabel_nama.kunci_asing;
PILIH pembelian.nama_produk, orang.nama_depan, orang.nama_akhir
DARI pembelian, orang
WHERE person.person_code = pembelian.penjual;
593

60.

Jenis koneksi
Ada juga cara lain untuk menghubungkan tabel dengan kunci:
<таблица А> [<тип соединения>] BERGABUNG<таблица B>PADA<предикат>
<тип соединения>mewakili salah satu argumen: INNER|(LEFT|RIGHT|
PENUH)
INNER – mencakup baris yang memiliki kolom dengan data yang cocok
tabel yang digabungkan. Digunakan secara default.
LEFT – mencakup semua baris tabel A (tabel kiri) dan semua yang cocok
nilai dari tabel B. Kolom baris yang tidak cocok diisi dengan nilai NULL.
KANAN – mencakup semua baris tabel B (tabel kanan) dan semua yang cocok
nilai tabel A. opsi terbalik untuk gabung kiri.
FULL – mencakup semua baris dari kedua tabel. Kolom Baris yang Cocok
diisi dengan nilai riil, dan baris yang tidak cocok diisi dengan nilai NULL.
OUTER (eksternal) – kata yang memenuhi syarat yang berarti garis yang tidak cocok
dari tabel terdepan disertakan bersama dengan tabel yang cocok.
603

61.

Opsi penggabungan tabel
alamat
telepon
GABUNG DALAM
PILIH * DARI alamat INNER JOIN telepon PADA alamat.ClientID=telepon.ClientID
613

62.

Opsi penggabungan tabel
alamat
telepon
PILIH * DARI alamat, telepon DIMANA alamat.clientID=telepon.ClientID
623

63.

Opsi penggabungan tabel
alamat
telepon
KIRI GABUNG
PILIH * DARI alamat KIRI GABUNG telepon PADA alamat.ClientID=telepon.ClientID
633

64.

Opsi penggabungan tabel
alamat
telepon
BENAR BERGABUNG
PILIH * DARI alamat KANAN GABUNG telepon PADA alamat.ClientID=telepon.ClientID
643

65.

Opsi penggabungan tabel
alamat
telepon
GABUNG LENGKAP
PILIH * DARI alamat LENGKAP GABUNG telepon PADA alamat.ClientID=telepon.ClientID
653

66.

Bergabunglah dengan Operator
UNION mengembalikan semua baris dari kedua pernyataan SELECT; berulang-ulang
nilainya dihapus.
UNION ALL mengembalikan semua baris dari kedua pernyataan SELECT; berulang-ulang
nilai-nilai ditampilkan.
INTERSECT mengembalikan baris yang dikembalikan pertama dan kedua
dengan pernyataan SELECT.
KECUALI mengembalikan baris yang dikembalikan oleh pernyataan SELECT pertama,
tidak termasuk yang dikembalikan oleh pernyataan kedua.
Jumlah dan urutan kolom yang dikembalikan oleh SELECT dari kedua tabel harus
bertepatan.
663

67.

Bergabunglah dengan Operator
PILIH nama_produk
DARI pembelian
ORDER BERDASARKAN nama_produk
673
PILIH nama_produk
DARI pembelian_arsip
ORDER BERDASARKAN nama_produk
PILIH nama_produk
DARI pembelian
PERSATUAN
PILIH nama_produk
DARI pembelian_arsip
ORDER BERDASARKAN nama_produk

68.

Bergabunglah dengan Operator
PILIH nama_produk
Pembelian FRO M
PBB PADA SEMUANYA
PILIH nama_produk
FRO M pembelian_arsip
HAI RD ER OLEH 1
683
PILIH nama_produk
Pembelian FRO M
KECUALI
PILIH nama_produk
FRO M pembelian_arsip
HAI RD ER OLEH 1
PILIH nama_produk
Pembelian FRO M
TERSANGAT
PILIH nama_produk
FRO M pembelian_arsip
HAI RD ER OLEH 1

69.

Alias ​​​​​​di area DARI
Menggunakan database besar diterima dengan diagram
penggunaan alias:
PILIH nama_produk.purc., tanggal stok terakhir, nama_pers.pertama,
pers.nama_belakang
DARI pembelian sebagai purc,
Orang sebagai pribadi,
Produk produk
WHERE pers.person_code = purc.salesperson DAN
prod.nama_produk = purc.nama_produk;
693

70.

Tugas Praktek No.3
1. Tulis query yang menampilkan produk Cartesian dari tabel produk
dan pembelian.
2. Tulis query yang menampilkan nama produk yang dijual
nama_produk, jumlah (tabel pembelian) dan
quantity_on_hand (tabel produk).
3.Tulis kueri yang menampilkan nama produk nama_produk
(tabel pembelian), tanggal pengiriman terakhir tanggal stok terakhir (tabel
produk) dan nama belakang penjual (tabel orang).
4. Tulis query yang menampilkan kolom nama_produk, nama_depan,
last_name dari gabungan luar tabel pembelian dan orang. Gunakan untuk tabel
nama panggilan pendek.
703

71.

Tugas Praktek No. 3 (lanjutan)
5. Tulis kueri yang menampilkan semua kode pembelian yang tidak berulang
penjual
tenaga penjualan dari tabel purchase_archive.
6. Tulis kueri yang hanya menampilkan kode tenaga penjualan tersebut
tabel pembelian, yang juga terdapat dalam tabel arsip_pembelian.
7. Tulis query yang menampilkan semua (termasuk duplikat) kode
penjual tenaga penjualan dari tabel pembelian dan arsip_pembelian.
713

72.

SQL. Kursus dasar
Bagian 6. Fungsi agregat. Pengelompokan
data.
www.aplana.ru

73.

Operator matematika
Operator matematika – simbol yang menunjukkan operasi (+, -, *, /)
Perhitungan menggunakan data dari tabel.
PILIH nama_produk, harga_produk * 1,07 DARI produk;
PILIH nama_produk, harga_produk * kuantitas_di tangan
DARI produk;
PILIH nama_produk, harga_produk * 1,07 * kuantitas_di_tangan_harga_produk * kuantitas_di_tangan
DARI produk;
PILIH nama_produk, harga_produk * (jumlah_di tangan + 10)
DARI produk;
733

74.

Operator matematika
Fungsi agregasi (fungsi himpunan, statistik atau dasar)
dirancang untuk menghitung nilai tertentu untuk himpunan tertentu
garis.
1. SUM - menjumlahkan nilai dan mengembalikan totalnya.
PILIH JUMLAH(kuantitas)
DARI pembelian;
2. AVG – mengembalikan nilai rata-rata untuk yang ditentukan
kolom.
PILIH AVG(harga_produk)
DARI produk;
743

75.

Operator matematika
3. MIN – mengembalikan nilai minimum dari kolom yang ditentukan.
PILIH MENIT(harga_produk)
DARI produk;
4. MAX - mengembalikan nilai maksimum dari kolom yang ditentukan.
PILIH MAKS(harga_produk)
DARI produk;
753

76.

Operator matematika
5. COUNT – menghitung catatan.
PILIH JUMLAH(*)
DARI pembelian; --jumlah baris termasuk nilai NULL
PILIH JUMLAH(nama_produk)
DARI pembelian;--nilai di kolom, mengabaikan NULL
763

77.

KELOMPOK OLEH
Bagian ini dimaksudkan untuk menggabungkan hasil query ke dalam kelompok dan menghitung
untuk masing-masing nilai statistiknya. Terkadang istilah ini digunakan
"meja yang dikelompokkan"
PILIH nama_produk, SUM(jumlah)
DARI pembelian
KELOMPOK BERDASARKAN nama_produk;
Anda dapat memasukkan beberapa fungsi grup dalam pernyataan SELECT.
PILIH nama_produk, SUM(jumlah) "Total Terjual", JUMLAH(jumlah) Transaksi
DARI pembelian
KELOMPOK BERDASARKAN nama_produk;
773

78.

MEMILIKI
HAVING – adalah subbagian yang dirancang untuk membatasi jumlahnya
baris dalam tabel yang dikelompokkan dan merupakan bagian dari klausa GROUP BY.
Predikat bagian ini dibangun menurut aturan semantik yang sama dengan
dalam klausa WHERE, tapi hanya
kolom-kolom yang ditentukan dalam klausa GROUP BY. Sisanya bisa
Gunakan hanya di dalam fungsi agregasi. Bagian ini
membatasi komposisi kelompok (subgrup) garis yang menjadi pembagiannya
hasil kueri. Grup (subgrup) hanya mencakup grup dari
kumpulan kemungkinan string yang nilainya memenuhi kondisi
MEMILIKI predikat bagian. Di dalam bagian HAVING yang dapat Anda gunakan
kueri bersarang dengan fungsi agregasi, serta terkait
subkueri.
783

79.

MEMILIKI
Artinya, dengan menyimpulkan apa yang telah dijelaskan di atas, kita dapat mempersempitnya
penugasan subbagian ke:
Dengan konstruksi HAVING Anda bisa
grup filter.
HAVING bekerja dengan cara yang sama untuk grup seperti halnya WHERE untuk rekaman individual.
PILIH nama_produk, SUM(jumlah) "Total Terjual",
COUNT(kuantitas) Transaksi
DARI pembelian
KELOMPOK BERDASARKAN nama_produk
MEMILIKI JUMLAH (kuantitas)< 5;
793

80.

Tugas Praktek No.4
1. Tulis kueri yang menunjukkan harga produk product_price setelahnya
meningkat sebesar 15%.
2. Tulis query yang menunjukkan berapa banyak produk yang ada di tabel produk.
3.Tulis kueri yang menunjukkan berapa jumlah produk (tabel produk)
harga ditunjukkan.
4. Tulis query yang menampilkan harga minimum dan maksimum produk product_price.
5. Tuliskan query yang menunjukkan berapa banyak yang diterima dari penjualan setiap produk
nama.
6. Tuliskan query yang menunjukkan berapa banyak yang diterima dari penjualan setiap produk
nama. Tampilkan hanya rekaman yang jumlah penjualannya lebih besar dari 125.
803

81.

SQL. Kursus dasar
Bagian 7. Subkueri
www.aplana.ru

82.

Subkueri
Subkueri adalah kueri SELECT reguler yang bersarang di dalam pernyataan
PILIH
MEMPERBARUI
atau
MENGHAPUS.
Ini digunakan sebagai sumber data untuk klausa FROM atau
WHERE dari operator induk.
823

83.

Subkueri
Ada beberapa batasan dalam menggunakan subkueri:
833
Subkueri harus memilih hanya satu kolom (kecuali subkueri dengan
predikat EXISTS), dan tipe data hasilnya harus sesuai dengan tipenya
nilai data yang ditentukan dalam predikat.
Dalam beberapa kasus, Anda dapat menggunakan kata kunci DISTINCT untuk menjamin
mendapatkan satu nilai.
Anda tidak dapat memasukkan klausa ORDER BY atau UNION dalam subkueri.
Subkueri dapat ditempatkan di sebelah kiri atau kanan kondisi pencarian.
Subkueri dapat menggunakan fungsi agregasi tanpa mempartisi
KELOMPOK OLEH

84.

Subkueri Baris Tunggal
Subkueri baris tunggal adalah subkueri yang hanya mengembalikan 1 nilai.
Simbol perbandingan digunakan dengan hasil subquery (=,<>, <, <=,
>, >=)
PILIH * DARI produk
WHERE tanggal stok terakhir = (PILIH tanggal stok terakhir
DARI produk WHERE nama_produk = "Widget Kecil");
Contoh (menggunakan fungsi agregat dalam subkueri satu baris):
PILIH * DARI produk DIMANA harga_produk >
(PILIH AVG(harga_produk) DARI produk);
843

85.

Subkueri multi-baris
Subkueri multi-baris adalah subkueri yang hanya mengembalikan >=1
arti.
Untuk subkueri seperti itu, Anda tidak dapat membandingkannya
menggunakan tanda sama dengan/tidak sama; fungsi harus digunakan
DI DALAM.
PILIH * DARI produk
DIMANA nama_produk DI
(PILIH BEDA nama produk DARI pembelian);
UPDATE SET produk product_price = product_price * 0.9
DIMANA nama_produk TIDAK DALAM (PILIH Nama_produk BERBEDA
DARI pembelian);
853

86.

ADA
EXISTS menggunakan subquery sebagai argumen dan
mengevaluasi ke true jika subkueri berisi
keluaran, jika tidak maka akan salah.
Subkueri dijalankan satu kali dan mungkin berisi
beberapa kolom karena nilainya tidak dicentang,
tetapi hasil dari kehadiran baris-baris tersebut dicatat secara sederhana.
Catatan mengenai predikat EXISTS:
EXISTS adalah predikat yang mengembalikan TRUE atau FALSE, dan
itu dapat digunakan sendiri atau bersama dengan boolean lainnya
ekspresi.
863

87.

ADA
PILIH * DARI produk
DIMANA ADA
(PILIH * DARI pembelian
WHERE nama_produk.produk = pembelian.nama_produk);
873

88.


SEMUA - perbandingan akan dilakukan dengan semua catatan itu
mengembalikan subkueri (atau hanya dengan semua nilai dalam kumpulan). BENAR
akan kembali hanya jika semua catatan dikembalikan
subquery akan memenuhi kondisi yang Anda tentukan.
PILIH * DARI produk
WHERE harga_produk >= SEMUA (PILIH harga_produk.produk
DARI pembelian, produk


Kueri akan mengembalikan semua produk dari tabel produk yang harganya lebih besar dari atau
sama dengan harga setiap barang yang dijual oleh seorang pegawai dengan kode “GA”.
883

89.

Kondisi grup (operator perbandingan).
APAPUN - perbandingan akan menghasilkan nilai benar jika kondisi dipenuhi oleh setidaknya satu
catatan dari subquery (atau set).
PILIH * DARI produk WHERE product_price > APAPUN (PILIH
produk.harga_produk
DARI pembelian, produk
DIMANA pembelian.nama_produk = nama_produk
DAN pembelian.penjual = "GA");
Kueri akan mengembalikan semua catatan dari tabel produk yang berisi harga produk
lebih dari harga produk apa pun yang dijual oleh karyawan dengan kode "GA".
BEBERAPA - melakukan hal yang sama seperti APAPUN. Benar-benar dapat dipertukarkan.
893

90.

Tugas Praktek No.5
1. Tulis kueri yang mengembalikan semua karyawan yang dipekerjakan pada waktu yang sama
pada hari yang sama dengan karyawan John Smith.
2. Tulis kueri yang mengembalikan semua produk yang harganya di bawah harga rata-rata.
3. Tulis kueri yang mengembalikan semua produk yang terjual lebih dari satu kali
waktu.
4. Cetak harga barang yang terjual lebih dari satu kali, naik sebesar 15%.
5. Dengan menggunakan kondisi EXISTS, tulis kueri yang mengembalikan semua karyawan
yang telah menjual sesuatu setidaknya sekali.
6. Tulis query yang mengembalikan semua produk dari tabel produk yang harganya
kurang dari harga barang apa pun yang dijual oleh karyawan dengan kode "GA".
7. tulis query yang akan mengembalikan semua produk dari tabel produk yang harganya lebih murah
harga minimal satu produk yang dijual oleh seorang karyawan dengan kode “GA”. Pastikan bahwa
Operator SOME dan ANY dapat dipertukarkan.
903

91.

SQL. Kursus dasar
Bagian 8. Fungsi untuk bekerja dengan string, tanggal dan
angka
www.aplana.ru

92.

Fungsi untuk bekerja dengan angka
ROUND - membulatkan angka ke presisi tertentu.
ROUND(nilai_input, jumlah tempat desimal)
PILIH nama_produk, ROUND(harga_produk, 0)
DARI produk;
PILIH PUTARAN(1234.5678, 3) --MSSQL
PILIH PUTARAN(1234.5678, 3) DARI GANDA;
fungsi PUTARAN
PUTARAN(1234.5678,4)
PUTARAN(1234.5678, 3)
PUTARAN(1234.5678, 2)
PUTARAN(1234.5678,1)
PUTARAN(1234.5678,0)
PUTARAN(1234.5678, -1)
PUTARAN(1234.5678,-2)
PUTARAN(1234.5678,-3)
923
Nilai kembalian
1234.5678
1234.568
1234.57
1234.6
1235
1230
1200
1000
--Peramal

93.

Fungsi untuk bekerja dengan angka
TRUNC - memotong angka, mengurangi presisinya.
fungsi TRUNC
Nilai kembalian
TRUNC(1234.5678,4)
1234.5678
TRUNC(1234.5678,3)
1234.567
TRUNK(1234.5678, 2) 1234.56
TRUNC(1234.5678,1)
1234.5
TRUNC(1234.5678,0)
1234
TRUNK(1234.5678,-1)
1230
TRUNK(1234.5678, -2) 1200
TRUNK(1234.5678, -3) 1000
933

94.

Tabel bantu
Tabel bantu (dummy).
Untuk menjalankan fungsi tanpa terikat pada tabel tertentu di sejumlah DBMS
perlu untuk menentukan tabel layanan, karena SQL menyiratkan
pilih...dari konstruksi.
Oracle - GANDA
DB2-SYSDUMMY1
SYBASE – BODOH
MySQL - GANDA
MSSQL – hilang. MSSQL mengenali permintaan layanan tanpa
perlu menentukan tabel boneka.
943

95.

Fungsi untuk bekerja dengan tanggal
GETDATE – mengembalikan tanggal saat ini.
pilih getdate();
DATEADD – Mengembalikan tanggal yang diperoleh sebagai jumlah dari tanggal aslinya
tanggal dan interval yang ditambahkan ke bagian tanggal tertentu
tanggal.
ADD_MONTHS(nilai, kuantitas, tanggal mulai)
PILIH TANGGAL(bulan, 1, GETDATE());
PILIH TANGGALADD(tahun, -2, GETDATE());
953

96.

Fungsi untuk bekerja dengan tanggal
EOMONTH – mengembalikan hari terakhir pada bulan yang ditentukan
pada tanggal yang diteruskan ke sana (MSSQL 2012+).
EOMONTH(tanggal)
PILIH EOMONTH(GETDATE());
PILIH EOMONTH("15-03-2015");
PILIH nama_depan, nama_belakang, tanggal perekrutan, EOMONTH(tanggal perekrutan)+1
DARI orang;
963

97.

Fungsi untuk bekerja dengan tanggal
DATEDIFF – Mengembalikan jumlah unit yang memisahkan dua tanggal.
DATEDIFF(nilai, tanggal mulai, tanggal akhir)
PILIH DATEDIFF(milidetik, GETDATE(), SYSDATETIME());
PILIH TANGGAL(BULAN, "17-Agustus-2012", GETDATE());
973

98.

Fungsi untuk bekerja dengan teks
UPPER – menempatkan semua karakter dalam string dalam huruf besar.
LOWER - menempatkan semua karakter dalam string dalam huruf kecil.
INITCAP (Oracle) – mengubah huruf besar-kecil string menjadi campuran (huruf pertama dari masing-masing string
kata akan menggunakan huruf besar, sisa kata akan menggunakan huruf kecil).
PILIH ATAS(nama_produk) DARI produk;
PILIH RENDAH(nama_produk) DARI produk;
SELECT INITCAP("TEKS ini mempunyai kasus yang tidak dapat diprediksi") DARI DUAL;
983

99.

Fungsi untuk bekerja dengan teks
LEN – mendefinisikan panjang garis.
PILIH nama_produk, LEN(nama_produk) PANJANG
DARI produk
DIMANA LEN(nama_produk) > 15;
993

100.

Fungsi untuk bekerja dengan teks
SUBSTRING – memotong nilai dalam parameter.
SUBSTRING(teks_sumber, posisi karakter awal,
Karakter)
SUBSTRING(baris 1, a, [,b])
Mengembalikan bagian "Baris 1" yang dimulai dengan karakter nomor a,
dan memiliki karakter panjang b. Jika a = 0, ini setara dengan
a = 1 (awal baris) jika b adalah karakter positif yang dikembalikan
dari kiri ke kanan. Jika b negatif maka dimulai dari ujung garis dan
dihitung dari kanan ke kiri! Jika b tidak ada, maka default
semua karakter dikembalikan hingga akhir baris
100
3

101.

Fungsi untuk bekerja dengan teks
PILIH SUBSTRING(item_id, 1, 3) LOKASI,
SUBSTRING(id_item, 5, 3) ITEM_NUMBER
DARI barang_lama;
101
3

102.

Fungsi untuk bekerja dengan teks
CHARINDEX - menemukan posisi elemen pemisah karakter (atau karakter).
garis
CHARINDEX(baris 1, baris 2, [,a])
Mengembalikan lokasi "baris 1" ke "baris 2". "baris 2" dilihat
di sebelah kiri, dimulai dari posisi a. Jika a negatif, maka "garis 2" dilihat
di sebelah kanan. Nilai default untuk a adalah 1, yang menghasilkan posisi
kemunculan pertama, "baris 1", di "baris 2". Jika diberi a, "baris 1" tidak
ditemukan, mengembalikan 0
102
3

103.

Fungsi untuk bekerja dengan teks
CHARINDEX(karakter_pencarian, teks_pencarian, posisi
_karakter_awal)
PILIH item_desc, CHARINDEX(",",item_desc, 1)
DARI barang_lama;
103
3

104.

Fungsi Bersarang
PILIH item_desc, SUBSTRING(item_desc, 1, CHARINDEX(",", item_desc, 1))
KATEGORI
DARI barang_lama;
104
3

105.

Fungsi Bersarang
105
3
PILIH item_desc,
SUBSTRING(item_desc, 1, CHARINDEX(",",item_desc, 1)-1) KATEGORI,
SUBSTRING(item_desc, CHARINDEX(",",item_desc, 1)+2, 99) ITEM_SIZE
DARI barang_lama;

106.

Tugas Praktek No.6
1. Saya menggunakan fungsi untuk bekerja dengan tanggal dan angka, menghitung,
Berapa usiamu?
2. Cetak baris "SAYA TAHU FUNGSI TEKS" di bagian atas dan
huruf kecil.
3. Carilah panjang tali tersebut.
4. Bekerja dengan kolom pembelian.nama_produk, keluaran:
tiga karakter pertama
semua karakter yang tersisa mulai dari yang keempat
garis penuh
106
3

107.

Sumber daya yang berguna
http://sqlfiddle.com/ - alat yang mengemulasi database kosong:
memungkinkan Anda melakukan sebagian besar DML, DDR, dan DR
permintaan. Mendukung 5 dialek utama
http://www.sql-tutorial.ru/ - tutorial interaktif tentang SQL aktif
Rusia
http://www.sql-ex.ru/ - portal interaktif untuk solusi
tugas SQL
https://dev.mysql.com/downloads/mysql/ - SQL gratis
server untuk berbagai OS
https://www.mysql.com/products/workbench/ - gratis
alat untuk bekerja dengan server MySql
107
3

108.

Terima kasih atas perhatian Anda!
Pertanyaan Anda?
Perusahaan Aplana
Sergei Vorobyov
Insinyur Uji Utama
+7-917-556-13-49
www.aplana.ru

SQL (biasa diucapkan "SEQUEL") adalah singkatan dari "Structured Query Language". Ini adalah bahasa yang memberi Anda kemampuan untuk membuat dan bekerja dalam database relasional, yang merupakan kumpulan informasi terkait yang disimpan dalam tabel. Jika Anda bertanya-tanya di mana harus mulai belajar SQL, datanglah kepada kami. Perusahaan kami menawarkan kursus SQL, serta pelajaran SQL untuk pemula, setelah mempelajarinya Anda akan dapat membuat database SQL sendiri. Belajar SQL merupakan kegiatan yang sangat menjanjikan. Ini mencakup kuliah SQL, kursus database SQL, dan kursus query SQL. Dimungkinkan untuk mengambil kursus bahasa SQL dan melakukan pelatihan SQL dari awal, serta mengikuti kursus pemrograman SQL menggunakan pelatihan SQL online, menerima latihan eksklusif

Dunia database menjadi semakin terpadu, yang menyebabkan perlunya menciptakan bahasa standar yang dapat digunakan untuk berfungsi di sejumlah besar jenis lingkungan komputer yang berbeda. Bahasa standar akan memungkinkan pengguna dengan pelatihan SQL atau kursus SQL Server yang mengetahui serangkaian perintah untuk menggunakannya untuk membuat, menemukan, memodifikasi, dan mengkomunikasikan informasi, di mana pun mereka bekerja.

Dalam dunia komputer kita yang semakin saling terhubung, pengguna yang dilengkapi dengan bahasa seperti itu mempunyai keuntungan luar biasa dalam menggunakan dan merangkum informasi dari berbagai sumber dengan berbagai cara. Oleh karena itu, pelatihan SQL Server dan pelatihan query SQL sangat penting.

Keanggunan dan kemandiriannya dari teknologi komputer, serta dukungannya dari para pemimpin industri dalam teknologi basis data relasional, telah menjadikan SQL, dan kemungkinan besar akan tetap ada di masa mendatang, sebagai bahasa standar yang dominan. Oleh karena itu, siapa pun yang ingin bekerja dengan database harus mengetahui SQL, mengikuti kursus SQL dasar, atau mempelajari SQL dari awal dan mengikuti kursus SQL dasar.

Standar SQL ditentukan oleh ANSI (American National Standards Institute) dan waktu yang diberikan juga diterima oleh ISO (Organisasi Internasional untuk Standardisasi). Namun, sebagian besar program database komersial memperluas SQL tanpa pemberitahuan ANSI, menambahkan berbagai fitur lain ke bahasa yang mereka yakini akan sangat berguna. Terkadang mereka agak melanggar standar bahasa ide bagus cenderung berkembang dan segera menjadi standar “pasar” karena kegunaan kualitasnya. Dan Anda dapat mempelajari semua fitur ini dengan mengikuti kursus pelatihan SQL di kantor kami atau mengikuti pelatihan SQL online.

Sebelum Anda dapat menggunakan SQL, Anda harus memahami apa itu database relasional dan bagaimana pengembangannya, serta mengikuti kursus pelatihan SQL dan mempelajari pelajaran SQL Server sehingga mengembangkan database SQL tidak tampak seperti tugas yang sulit.

Seperti yang kami tekankan sebelumnya, SQL adalah singkatan dari Structured Query Language. Mempelajari Kueri SQL dan membuat kueri basis data mungkin merupakan aspek SQL yang paling umum digunakan. Faktanya, untuk kategori pengguna SQL, kecil kemungkinannya ada orang yang akan menggunakan bahasa tersebut untuk hal lain. Oleh karena itu, kita akan memulai studi kita tentang bahasa SQL dengan pembahasan tentang query dan bagaimana query tersebut dieksekusi dalam bahasa tersebut.

Kueri adalah perintah yang Anda berikan kepada program basis data Anda yang memerintahkannya untuk mencetak informasi tertentu dari tabel ke dalam memori. Informasi ini biasanya dikirim langsung ke layar komputer atau terminal yang Anda gunakan, meskipun dalam banyak kasus informasi ini juga dapat dikirim ke printer, disimpan dalam file (sebagai objek di memori komputer), atau diberikan sebagai input ke perintah lain. atau proses.

Kueri umumnya dianggap sebagai bagian dari bahasa DML. Namun, karena kueri tidak mengubah informasi dalam tabel, tetapi hanya menampilkannya kepada pengguna, kami akan menganggap kueri sebagai kategori terpisah di antara perintah DML yang melakukan suatu tindakan, dan bukan sekadar menampilkan konten database.

Semua kueri SQL terdiri dari satu perintah. Struktur perintah ini tampak sederhana karena Anda harus memperluasnya untuk melakukan evaluasi dan manipulasi data yang sangat kompleks. Perintah ini disebut PILIH.

bahasa SQL. Kursus dasar.

Tutorial ini, yang ditulis oleh Evgeny Morgunov, menguraikan dasar-dasar bahasa SQL - ini adalah kursus dasar. Selain itu, bahasa tersebut dipertimbangkan dalam kaitannya dengan sistem manajemen basis data tertentu (DBMS) - PostgreSQL. Implementasi bahasa SQL di setiap DBMS sesuai dengan standar sampai tingkat tertentu, namun selain fungsi dan kemampuan standar, setiap DBMS juga menawarkan ekstensi bahasa tambahannya sendiri. PostgreSQL memberikan dukungan yang sangat baik untuk standar bahasa SQL dan juga menyediakan fitur tambahan yang menarik dan berguna secara praktis. Salah satu keunggulan utama PostgreSQL adalah ekstensibilitas. Artinya, misalnya, pengguna (yang tentunya ahli database) dapat mengembangkan tipe datanya sendiri. Tipe data ini akan memiliki semua properti tipe data bawaan dan dapat dioperasikan tanpa menghentikan server. Selain itu, PostgreSQL adalah produk sumber terbuka dan gratis. Kode sumber, yang tersedia di banyak platform.

Tutorial ini tidak hanya mencakup semua perintah dasar SQL, tetapi juga topik lain seperti indeks dan transaksi. Buku pedoman ini ditulis sedemikian rupa sehingga dapat digunakan baik di bawah bimbingan seorang guru maupun secara mandiri. Diasumsikan bahwa siswa mempunyai akses terhadap DBMS yang sudah terinstal, sehingga prosedur instalasi PostgreSQL tidak dibahas secara rinci, namun hanya diberikan petunjuk dimana menemukan instruksi instalasi. Tutorial ini dirancang untuk memberi Anda keterampilan praktis dalam menggunakan bahasa SQL. Materi pendidikan disajikan sedemikian rupa sehingga pembaca dapat memperoleh banyak pengetahuan penting sebagai hasil menyelesaikan tugas-tugas yang terletak di akhir setiap bab.

Pengetahuan ini mungkin tidak disajikan dalam teks utama bab-bab tersebut. Diasumsikan bahwa sebagian besar tugas akan dilakukan oleh pembaca secara mandiri menggunakan dokumentasi DBMS PostgreSQL, tetapi instruksi untuk implementasinya sering diberikan.

Manual ini ditujukan untuk siswa yang belajar di bidang 03/09/01 - “Informatika dan Ilmu Komputer”, 03/09/02 - “Sistem dan Teknologi Informasi”, 03/09/03 - “Informatika Terapan”, 03/ 09/04 - "Rekayasa Perangkat Lunak" dan 02/03.03 - "Dukungan matematika dan administrasi sistem informasi." Ini mungkin berguna bagi banyak pelajar dan profesional yang ingin mengenal dasar-dasar bahasa SQL di lingkungan sistem manajemen database PostgreSQL.

Penerbit - Profesional Postgres

Tahun terbitnya adalah 2017

Format buku - PDF

Salinan

2 Perusahaan Profesional Postgres E.P. Morgunov BAHASA SQL. PELATIHAN KURSUS DASAR DAN PANDUAN PRAKTIS Moskow 2017

3 UDC BBK M79 M79 Morgunov, bahasa E.P.SQL. Kursus dasar: pendidikan-praktis. tunjangan / E.P. Morgunov; diedit oleh E.V.Rogova, P.V.Luzanova; Profesional Postgres. M., hal. Panduan pendidikan dan praktis ini mewakili bagian pertama, dasar, dari kursus pelatihan bahasa SQL yang ditawarkan oleh perusahaan Rusia Profesional Postgres. Materi pelatihan disajikan berdasarkan penggunaan sistem manajemen database PostgreSQL. Manual ini dapat digunakan baik di bawah bimbingan seorang guru maupun untuk Belajar sendiri bahasa SQL. Panduan ini ditujukan bagi siswa yang belajar di bidang “Ilmu Informatika dan Komputer”, “Sistem dan Teknologi Informasi”, “Informatika Terapan”, “Rekayasa Perangkat Lunak” dan “Dukungan Matematika dan Administrasi Sistem Informasi”. Ini mungkin berguna bagi banyak pelajar dan profesional yang ingin mengenal dasar-dasar bahasa SQL di lingkungan sistem manajemen database PostgreSQL. UDC BBK Postgres Professional, 2017 E.P. Morgunov, 2017

4 Daftar Isi Pendahuluan 5 1 Pengenalan database dan SQL Apa itu database dan mengapa diperlukan Konsep dasar model relasional Apa itu bahasa SQL Deskripsi bidang studi dan database pelatihan Soal tes dan tugas Membuat lingkungan kerja Menginstal Program DBMS psql terminal interaktif PostgreSQL Menyebarkan database lingkungan pelatihan Pertanyaan dan tugas pengujian Operasi dasar dengan tabel 22 Pertanyaan dan tugas pengujian Tipe data DBMS PostgreSQL Tipe numerik Tipe karakter (string) Tipe tanggal/waktu Tipe Boolean Array Tipe JSON Pertanyaan dan tugas pengujian Dasar-dasar bahasa definisi data Default nilai dan batasan integritas Membuat dan menghapus tabel Memodifikasi tabel Tampilan Skema database Pertanyaan dan tugas kuis Kueri Fitur tambahan dari perintah SELECT Bergabung dengan Agregasi dan pengelompokan Subkueri Pertanyaan dan tugas kuis Mengubah data Memasukkan baris ke dalam tabel Memperbarui baris dalam tabel Menghapus baris dari tabel Kuis pertanyaan dan tugas

5 8 Indeks informasi Umum Indeks multi-kolom Indeks unik Indeks berbasis ekspresi Indeks parsial Kuis dan latihan Transaksi Tingkat isolasi BACA TIDAK TERKOMITASI Tingkat isolasi BACA BERKOMITMEN Tingkat isolasi BACA BERULANG Tingkat isolasi SERIALIZABLE Contoh transaksi Pemblokiran Kuis dan latihan Meningkatkan kinerja Konsep Teknik pemindaian tabel Menggabungkan teknik rowset Mengelola penjadwal Mengoptimalkan pertanyaan Tes pertanyaan dan tugas Sumber yang direkomendasikan 255 4

6 Pendahuluan Saat ini istilah “database” sudah dikenal banyak orang, bahkan mereka yang jauh dari pengembangan profesional program komputer . Basis data telah menjadi teknologi yang tersebar luas, yang pada gilirannya memerlukan lebih banyak orang untuk merancang dan memeliharanya. Dalam perjalanan evolusi teori dan praktik basis data, model data relasional telah menjadi standar de facto, dan dalam kerangka model ini, bahasa pemrograman khusus telah dibentuk yang memungkinkan semua operasi yang diperlukan dilakukan dengan Structured Query Language ( SQL) data. Dengan demikian, komponen penting dari kualifikasi profesional database adalah kemahiran dalam bahasa SQL. Tutorial ini mencakup dasar-dasar bahasa SQL dan merupakan kursus dasar. Selain itu, bahasa tersebut dipertimbangkan dalam kaitannya dengan sistem manajemen basis data tertentu (DBMS) PostgreSQL. Implementasi bahasa SQL di setiap DBMS sesuai dengan standar sampai tingkat tertentu, namun selain fungsi dan kemampuan standar, setiap DBMS juga menawarkan ekstensi bahasa tambahannya sendiri. PostgreSQL memberikan dukungan yang sangat baik untuk standar bahasa SQL dan juga menyediakan fitur tambahan yang menarik dan berguna secara praktis. Salah satu keunggulan utama PostgreSQL adalah ekstensibilitas. Artinya, misalnya, pengguna (yang tentunya ahli database) dapat mengembangkan tipe datanya sendiri. Tipe data ini akan memiliki semua properti tipe data bawaan dan dapat dioperasikan tanpa menghentikan server. Selain itu, PostgreSQL adalah produk sumber terbuka dan gratis yang tersedia di banyak platform. Tutorial ini tidak hanya mencakup semua perintah dasar SQL, tetapi juga topik lain seperti indeks dan transaksi. Buku pedoman ini ditulis sedemikian rupa sehingga dapat digunakan baik di bawah bimbingan seorang guru maupun secara mandiri. Diasumsikan bahwa siswa mempunyai akses terhadap DBMS yang sudah terinstal, sehingga prosedur instalasi PostgreSQL tidak dibahas secara rinci, namun hanya diberikan petunjuk dimana menemukan instruksi instalasi. Tutorial ini dirancang untuk memberi Anda keterampilan praktis dalam menggunakan bahasa SQL. Materi pendidikan disajikan sedemikian rupa sehingga pembaca dapat memperoleh banyak pengetahuan penting sebagai hasil menyelesaikan tugas-tugas yang terletak di akhir setiap bab. Pengetahuan ini mungkin tidak disajikan dalam teks utama bab-bab tersebut. Diasumsikan bahwa sebagian besar tugas akan dilakukan oleh pembaca secara mandiri menggunakan dokumentasi DBMS PostgreSQL, tetapi instruksi untuk implementasinya sering diberikan. Tugas-tugas yang diberikan dalam manual ini bervariasi tingkat kesulitannya. Yang paling sulit, serta yang membutuhkan banyak waktu untuk menyelesaikannya, ditandai dengan tanda bintang. Tugas dapat diselesaikan sambil belajar materi pendidikan bab tertentu. Namun, beberapa di antaranya bersifat kompleks, sehingga untuk menyelesaikannya Anda perlu mempelajari keseluruhan bab atau setidaknya beberapa bagiannya. 5

7 Meskipun manual ini memiliki orientasi praktis dan bukan merupakan kursus teoritis, bab pertama secara singkat, pada tingkat dasar, menguraikan konsep dasar teori database dan model relasional. Hal ini dilakukan agar mahasiswa dapat mulai menguasai bahasa SQL secara praktis tanpa penundaan, mulai dari hari-hari pertama semester akademik, bahkan sebelum konsep-konsep tersebut dibahas secara menyeluruh dalam perkuliahan. Di fakultas teknologi Informasi Di universitas-universitas Rusia, database secara tradisional dipelajari pada tahun kedua atau ketiga. Apalagi disiplin ini biasanya diberikan satu semester. Namun, jumlah jam belajar akademik dapat berbeda-beda. Jika kurikulum mengalokasikan 36 jam untuk kelas praktik dalam disiplin ini, maka kami merekomendasikan alokasi waktu berikut untuk mempelajari materi dalam manual. Bab 1. Pengenalan Database dan SQL Bab 2. Membuat Meja Kerja Bab 3. Operasi Dasar Tabel Bab 4. Tipe Data PostgreSQL Bab 5. Dasar-Dasar Bahasa Definisi Data Bab 6. Query Bab 7. Memodifikasi Data Bab 8. Indeks Bab 9. Transaksi Bab 10: Meningkatkan Produktivitas 1 jam 1 jam 4 jam 4 jam 4 jam 8 jam 4 jam 2 jam 4 jam 4 jam Bab 1 dan 2 dapat diselesaikan dalam satu kelas dua jam karena PostgreSQL harus sudah terinstal di kelas terlebih dahulu. Bab 3 memberikan gambaran singkat tentang fitur-fitur dasar bahasa SQL, dan setelah menyelesaikannya, siswa diharapkan dapat memahaminya cara sederhana penggunaan semua perintah bahasa dasar. Bab ini tidak terlalu sulit, tetapi sangat banyak, jadi empat jam diberikan untuk mempelajarinya. Bab 4 membahas tipe data dasar yang digunakan di PostgreSQL. Ini adalah bab yang panjang, namun sebagian besar terdiri dari tugas dan latihan. Siswa diharapkan hanya mempelajari konsep dasar penggunaan tipe data dalam empat jam. Dan untuk mengkonsolidasikan pengetahuan, disarankan untuk merujuk pada materi dalam bab ini (termasuk latihan) dalam proses mempelajari bab-bab selanjutnya dari manual ini, jika perlu, untuk memperjelas fitur-fitur tertentu dari penggunaan spesifik. jenis. Kami merekomendasikan membagi waktu yang dialokasikan untuk mempelajari bab ini sebagai berikut: dua jam untuk empat paragraf pertama pada tipe numerik dan string, tipe tanggal/waktu dan tipe logika, dua jam lagi untuk array dan tipe json/jsonb. Untuk menjalankan kueri pada database, Anda harus memiliki pemahaman yang baik tentang struktur dan hubungan tabelnya. Oleh karena itu, Bab 5 yang memuat dasar-dasar bahasa definisi data sangat penting ditinjau dari kajian mendalam terhadap tabel-tabel database Transportasi Udara dan persiapan untuk menguasai Bab 6. Karena materi dalam bab tersebut didasarkan pada pada kenyataan bahwa database sudah disebarkan di komputer siswa, masukkan Tidak ada perintah yang diperlukan untuk membuat tabel. Hal ini memungkinkan Anda mengurangi waktu yang dihabiskan untuk mempelajari bab tersebut. Manual ini mengadopsi pendekatan yang pertama mencakup perintah definisi data dan kemudian perintah manipulasi data. Oleh karena itu, Bab 5, Dasar-Dasar Bahasa Definisi Data, mendahului Bab 6

8 Bab 6 “Pertanyaan”. Namun, pendekatan yang dipilih tidak diterapkan terlalu kaku: gambaran umum Bab 3 mencakup perintah dasar, termasuk kueri sederhana. Dan kueri sudah menjadi bahasa untuk manipulasi data. Empat jam dialokasikan untuk Bab 5. Selama kelas dua jam pertama, Anda harus mempelajari dua paragraf pertama, yang mencakup isu-isu seperti batasan integritas dan membuat serta menghapus tabel. Pelajaran dua jam kedua harus dikhususkan untuk mempelajari tiga paragraf sisanya. Mereka berbicara tentang cara mengubah tabel, serta tampilan dan skema database. Bab 6 adalah bab utama dari manual ini, jadi delapan jam dialokasikan untuk mempelajarinya, lebih banyak daripada mempelajari bab-bab lainnya. Terdiri dari empat paragraf. Yang pertama didedikasikan untuk berbagai fitur tambahan perintah PILIH. Ini mencakup hal-hal seperti klausa LIMIT dan OFFSET, operator LIKE, dan ekspresi reguler dalam kondisi klausa WHERE, di antara fitur-fitur lainnya. Namun materi pada bagian ini tidak sulit, cukup menghabiskan waktu satu jam untuk mempelajarinya. Paragraf kedua membahas tentang cara menggabungkan tabel. Ini adalah topik yang lebih kompleks dan membutuhkan dua jam untuk mempelajarinya. Paragraf ketiga adalah tentang agregasi dan pengelompokan. Ini juga mencakup topik penting dan menarik seperti fungsi jendela. Bagian ini juga membutuhkan pelajaran dua jam. Bagian tersulit dari bab ini adalah bagian keempat. Ini tentang subkueri. Secara khusus, ini mencakup topik penting dan menarik seperti Common Table Expressions CTE. Untuk mempelajari materi dalam paragraf ini, Anda perlu mengalokasikan waktu tiga jam. Bab 7 berisi semua perintah untuk mengubah data: menyisipkan baris, memperbarui baris, dan menghapus baris. Karena bab-bab sebelumnya telah menggunakan perintah-perintah ini untuk memecahkan masalah sederhana, bab ini membahas cara-cara yang lebih kompleks untuk menggunakannya. Ada banyak latihan di dalamnya, jumlahnya setengah dari volumenya. Disarankan agar Anda menghabiskan dua jam mempelajari cara menyisipkan baris ke dalam tabel, dan dua jam lagi mempelajari cara memperbarui dan menghapus baris. Bab 8 membahas tentang indeks dan singkat, sehingga dapat diselesaikan dalam satu pelajaran berdurasi dua jam. Karena indeks berkaitan erat dengan masalah kinerja, yaitu kecepatan eksekusi kueri, disarankan, setelah mempelajari bab terakhir, untuk kembali ke Bab 8 dan melihat perintah dan kueri yang disajikan di sana, sudah mengetahui tentang perintah EXPLAIN . Bab 9 dikhususkan untuk transaksi, mekanisme pelaksanaannya memiliki banyak kehalusan, sehingga ketika mempelajari bab ini perlu dilakukan eksperimen dan mencoba menjelaskan hasil yang diperoleh. Bab 10 terakhir membahas peningkatan produktivitas. Bab ini mungkin tampak terlalu abstrak dan rumit untuk kursus SQL pemula, namun tetap saja ini sangat penting. Siswa harus belajar membaca rencana eksekusi kueri dan memahami tujuan setiap operasi yang diwakili dalam rencana tersebut. Dan menguasai seni pengoptimalan kueri akan membutuhkan banyak waktu dan pengalaman, hal itu tidak akan terjadi begitu saja. Dalam hal untuk kelas praktek dalam disiplin “Database” di kurikulum 54 jam dialokasikan, Anda dapat mengubah usulan distribusi jam pelatihan. Secara khusus, Bab 4 dapat menghabiskan lebih banyak waktu pada tipe data 7

9 json/jsonb dan array. Bab 6 membahas lebih dekat fungsi jendela dan ekspresi tabel umum. Saat mempelajari Bab 9 tentang transaksi, akan berguna untuk mengembangkan aplikasi sederhana yang menggunakan transaksi dan bereksperimen dengan aplikasi tersebut dengan menjalankan beberapa sesi secara paralel sambil memvariasikan tingkat isolasi transaksi. Sebagai bagian dari Bab 10, masuk akal untuk kembali ke perintah dan pertanyaan di Bab 8 dan memeriksa rencana eksekusinya menggunakan perintah EXPLAIN. Karena waktu tambahan, Anda dapat mempertimbangkan semua tugas dan latihan dengan kompleksitas yang meningkat (ditandai dengan tanda bintang). Dengan demikian, pembagian waktunya bisa sebagai berikut: Bab 1. Pengenalan Database dan SQL Bab 2. Menciptakan Lingkungan Kerja Bab 3. Operasi Tabel Dasar Bab 4. Tipe Data PostgreSQL Bab 5. Dasar-Dasar Bahasa Definisi Data Bab 6. Query Bab 7 Mengubah Data Bab 8. Indeks Bab 9. Transaksi Bab 10. Meningkatkan Produktivitas 1 jam 1 jam 4 jam 6 jam 6 jam 12 jam 6 jam 4 jam 8 jam 6 jam Tutorial menggunakan berbagai jenis font untuk menyorot fragmen teks bergantung pada tujuan mereka. Perintah yang dimasukkan pengguna seperti di lingkungan sistem operasi, dan di lingkungan utilitas psql, disorot dalam font monospace tebal. Misalnya: psql -d demo -U postgres atau SELECT avg(total_amount) FROM pemesanan; Hasil perintah sistem operasi dan perintah SQL yang dijalankan di lingkungan utilitas psql dicetak dalam font monospace. Misalnya, sebagai respons terhadap perintah EXPLAIN SELECT * FROM pesawat; Berikut ini akan ditampilkan di layar: QUERY PLAN Seq Scan di pesawat (biaya= baris=9 lebar=52) (1 baris) Kami berharap mempelajari materi yang disajikan dalam buku teks akan membantu meningkatkan tingkat keterampilan Anda dan memperluas wawasan profesional Anda . 8

10 1 Pengantar Database dan SQL Bab ini adalah pengantar. Di dalamnya kita akan membahas tentang dasar-dasar database, apa itu model relasional dan mengapa bahasa SQL diperlukan. Topik yang sangat penting dalam bab ini adalah deskripsi bidang studi yang menjadi dasar perancangan database pelatihan, yang akan berfungsi sebagai platform untuk mempelajari bahasa SQL. Manual ini ditujukan terutama untuk penguasaan praktis bahasa SQL, dan bukan untuk mempelajari teori database, oleh karena itu, untuk mempelajari teori tersebut, Anda harus mengacu pada sumber resmi, yang daftarnya diberikan di akhir manual. 1.1 Apa itu database dan mengapa dibutuhkan Teknologi database tidak selalu ada. Namun, bahkan sebelum penerapannya, masyarakat juga mengumpulkan dan mengolah data. Salah satu cara untuk menyimpan data adalah apa yang disebut file datar, yang memiliki banyak sekali struktur sederhana: Data disimpan sebagai catatan yang dibagi menjadi bidang dengan panjang tetap. Dalam kehidupan nyata, sering kali muncul hubungan kompleks antara elemen data yang perlu ditransfer ke database elektronik. Saat menggunakan file datar, hubungan ini sulit diatur, dan bahkan lebih sulit dipertahankan ketika elemen data individual diubah atau dihapus. Salah satu konsep utama dalam teori basis data adalah model data. Kita dapat mengatakan bahwa ini mencirikan cara data diorganisasikan dan metode utama untuk mengaksesnya. Pertama, model data hierarki dan jaringan diusulkan. Namun, seiring dengan evolusi teori dan gagasan, model data relasional dikembangkan, yang kini dominan. Oleh karena itu, database tipe relasional saat ini mendominasi. Ciri khasnya adalah kenyataan bahwa data dianggap oleh pengguna sebagai tabel. Pengguna memiliki operator untuk mengambil data dari tabel, serta untuk memasukkan data baru, memperbarui dan menghapus data yang ada. Salah satu keuntungan dari database relasional adalah kemampuannya untuk memelihara hubungan antar elemen data, sehingga pemrogram tidak perlu melakukan pekerjaan rutin dan sangat memakan waktu ini. Pada masa ketika teknologi basis data relasional belum tersebar luas, pemrogram harus mengimplementasikan operasi secara manual dalam bahasa prosedural, yang sekarang disebut pembaruan berjenjang kunci asing atau penghapusan berjenjang catatan dari tabel (file) bawahan. Di sini kata “secara manual” berarti bahwa untuk melakukan operasi ini perlu menulis kode yang terdiri dari perintah-perintah dasar untuk mengakses setiap record yang diperbarui atau dihapus. Pendekatan untuk bekerja dengan database disebut navigasi; pemrogram menunjuk ke program tersebut algoritma tertentu mencari catatan. Mari kita ambil contoh situasi sederhana: dalam database yang dibangun berdasarkan file, informasi tentang siswa dan nilai ujiannya disimpan, dan data pribadi siswa disimpan dalam satu file, sebut saja “Siswa”, dan nilai ujian di file lain, yang akan kami gunakan sebut “Nilai”. Jika Anda perlu menghapus informasi tentang siswa tertentu dan kertas ujiannya 9

11 nilai, maka Anda tidak hanya harus melakukan operasi menghapus catatan tertentu dari file "Siswa", tetapi juga mengatur siklus untuk mencari dan menghapus catatan tersebut dari file "Nilai" yang bidang kuncinya memiliki nilai yang sama dengan bidang dalam catatan yang dihapus dari file "Siswa". Ketika bekerja dengan database relasional, pemrogram dibebaskan dari pemrograman pada tingkat "atom", karena bahasa modern untuk "berkomunikasi" dengan database ini bersifat deklaratif. Artinya untuk memperoleh suatu hasil cukup dengan menunjukkan apa yang perlu diperoleh, tetapi tidak perlu menentukan cara memperoleh hasil, yakni bagaimana memperolehnya. Sistem basis data adalah sistem terkomputerisasi yang dirancang untuk menyimpan, memproses, dan mengeluarkan informasi atas permintaan pengguna. Sistem seperti itu mencakup perangkat lunak dan perangkat keras, data itu sendiri, dan pengguna. Sistem database modern biasanya multi-pengguna. Dalam sistem seperti itu, beberapa pengguna dapat mengakses database secara bersamaan. Perangkat lunak utama adalah sistem manajemen basis data. Dalam bahasa Inggris disebut sistem manajemen basis data (DBMS). Selain DBMS, sistem basis data dapat mencakup utilitas, alat untuk mengembangkan aplikasi (program), alat desain basis data, pembuat laporan, dll. Pengguna sistem basis data dibagi menjadi beberapa kategori. Kategori pertama adalah pemrogram aplikasi. Kategori kedua adalah pengguna akhir, untuk siapa seluruh pekerjaan dilakukan. Mereka dapat mengakses database menggunakan program aplikasi atau aplikasi universal yang disertakan di dalamnya perangkat lunak DBMS itu sendiri. Kebanyakan DBMS memiliki apa yang disebut pemroses bahasa kueri, yang memungkinkan pengguna memasukkan perintah bahasa tingkat tinggi (seperti SQL). Kategori pengguna ketiga adalah administrator basis data. Tanggung jawab mereka meliputi: membuat database, memilih mode akses yang optimal, menggambarkan kekuasaan pengguna yang berbeda untuk mengakses informasi ini atau itu dalam database, lakukan Salinan cadangan database, dll. Sistem database dapat dibagi menjadi dua komponen utama: server dan sekumpulan klien (atau antarmuka eksternal). Servernya adalah DBMS. Klien adalah berbagai aplikasi yang ditulis oleh pemrogram aplikasi atau aplikasi bawaan yang disertakan dengan DBMS. Satu server dapat melayani banyak klien. DBMS modern menyertakan kamus data. Ini adalah bagian dari database yang menggambarkan data itu sendiri yang tersimpan di dalamnya. Kamus data membantu DBMS menjalankan fungsinya. 1.2 Konsep dasar model relasional Setiap bidang teknologi mempunyai terminologi tersendiri. Ada istilah-istilah dasar yang menjadi dasar semua diskusi lebih lanjut. Istilah-istilah seperti itu digunakan

12 juga hadir di sektor database. Sekarang kita akan membicarakannya secara singkat. Di era sebelum lahirnya teori relasional, database secara tradisional dipandang sebagai kumpulan file yang terdiri dari catatan, dan catatan tersebut pada gilirannya dibagi lagi menjadi beberapa bidang tersendiri. Bidang adalah unit data dasar. Dalam database relasional, pengguna melihat data dalam bentuk tabel. Oleh karena itu, istilah "file" sama dengan istilah "tabel", istilah "baris" digunakan sebagai pengganti istilah "catatan", dan istilah "kolom" (atau "kolom") digunakan sebagai pengganti istilah "bidang". digunakan. Jadi, tabel terdiri dari baris dan kolom, yang pada perpotongannya harus terdapat nilai “atom” yang tidak dapat dipecah menjadi elemen-elemen yang lebih kecil tanpa kehilangan makna. Dalam teori formal database relasional, tabel-tabel ini disebut relasi, itulah sebabnya database disebut relasional. Rasio adalah istilah matematika. Saat menentukan sifat-sifat hubungan tersebut, teori himpunan digunakan. Dalam teori ini, baris tabel disebut tupel, dan kolom disebut atribut. Suatu relasi mempunyai kepala yang terdiri dari atribut-atribut, dan badan yang terdiri dari tupel. Jumlah atribut disebut derajat hubungan, dan jumlah tupel disebut bilangan pokok. Selain teori himpunan, salah satu landasan teori relasional adalah cabang logika matematika seperti kalkulus predikat. Jadi, dalam teori dan praktik database, ada tiga kelompok istilah. Terkadang istilah dari kelompok yang berbeda digunakan sebagai sinonim, misalnya record dan string. Seperti yang kami katakan di atas, dalam database relasional, pengguna melihat data dalam bentuk tabel. Mari kita pertimbangkan sistem sederhana, yang hanya memiliki dua tabel. “Siswa” pertama: buku nilai Nama lengkap Seri dokumen Nomor dokumen Ivanov Ivan Petrovich Klimov Andrey Ivanovich Novikov Nikolay Yuryevich Dan “Prestasi” kedua: Buku Nilai Mata Pelajaran Tahun Akademik Penilaian Semester Fisika 2016 / Matematika 2016 / Fisika 2016 / Fisika 2016 / Kapan bekerja dengan database, sering kali Anda harus mengikuti berbagai batasan yang mungkin ditentukan oleh spesifik bidang subjek tertentu. Untuk menyederhanakan situasi sebenarnya, kami menerima batasan berikut: 11

13, nomor buku nilai terdiri dari lima digit dan tidak boleh negatif (universitas yang berbeda menggunakan skema yang berbeda untuk menetapkan nomor buku nilai; skema ini bisa jauh lebih kompleks daripada yang telah kita adopsi dan dapat memperhitungkan, misalnya, tahun mahasiswa tersebut masuk universitas); seri dokumen identitas berjumlah empat angka, dan nomor dokumen identitas berjumlah enam digit; nomor semester hanya dapat mengambil dua nilai: 1 (semester musim gugur) dan 2 (semester musim semi); nilai hanya dapat mengambil tiga nilai: 3 (memuaskan), 4 (baik) dan 5 (sangat baik): nilai lain tidak diterima untuk dimasukkan dalam buku nilai. Untuk mengidentifikasi baris dalam tabel dan menghubungkan tabel satu sama lain, digunakan apa yang disebut kunci. Kunci kandidat adalah kombinasi atribut tabel yang secara unik mengidentifikasi baris-baris di dalamnya. Kunci juga dapat terdiri dari hanya satu atribut tabel. Misalnya, dalam tabel “Siswa”, pengenal tersebut dapat berupa atribut “Nomor Buku Nilai”. Dua atributnya yang digabungkan juga dapat berfungsi sebagai kunci potensial untuk tabel ini: “Seri dokumen identitas” dan “Nomor dokumen identitas”. Tak satu pun dari mereka dapat digunakan sebagai pengenal unik. Dalam hal ini, kuncinya adalah komposit. Penting bahwa kunci potensial tidak boleh berlebihan, yaitu. tidak ada subset atribut yang termasuk di dalamnya yang memiliki sifat unik. Kunci kandidat yang mencakup dua atribut yang disebutkan tidak berlebihan. Kunci diperlukan untuk pengalamatan tingkat baris (catatan). Jika ada lebih dari satu kunci kandidat dalam sebuah tabel, salah satunya dipilih sebagai kunci utama, dan sisanya akan menjadi kunci pengganti. Mari kita lihat tabel “Siswa” dan “Prestasi”. Misalkan pada tabel “Siswa” tidak ada baris dengan nomor buku nilai 55900, maka tidak ada gunanya memasukkan baris dengan nomor buku nilai tersebut pada tabel “Kemajuan”. Dengan demikian, nilai kolom “Nomor Buku Nilai” pada tabel “Prestasi” harus sesuai dengan nilai kolom yang sama pada tabel “Siswa”. Atribut Nomor Buku Nilai pada tabel Kemajuan Akademik adalah contoh dari apa yang disebut dengan kunci asing. Tabel yang berisi kunci asing disebut tabel referensi. Tabel yang berisi kunci kandidat yang sesuai disebut tabel referensi. Dalam kasus seperti ini, kunci asing dikatakan merujuk pada kunci kandidat dalam tabel referensi. Kunci asing dapat berupa komposit, artinya dapat mencakup lebih dari satu atribut. Kunci asing tidak harus unik. Masalah untuk memastikan bahwa database tidak berisi nilai kunci asing yang tidak valid dikenal sebagai masalah integritas referensial. Batasan dimana nilai kunci asing harus sesuai dengan nilai kunci kandidat disebut batasan integritas referensial. DBMS bertanggung jawab untuk menerapkan batasan integritas referensial, dan pengembang hanya diminta untuk menentukan atribut yang berfungsi sebagai eksternal.

14 kunci. Desain basis data sering kali mengharuskan ketika sebuah baris dihapus dari tabel yang direferensikan, baris terkait dalam tabel yang direferensikan juga harus dihapus, dan ketika nilai kolom yang direferensikan oleh kunci asing berubah, nilai kunci asing di tabel referensi tabel yang direferensikan harus diubah. Pendekatan ini disebut penghapusan kaskade (perbarui). Terkadang pendekatan lain digunakan. Misalnya, alih-alih menghapus baris dari tabel referensi, baris tersebut hanya diganti dengan nilai atribut yang disertakan dalam kunci asing dengan apa yang disebut nilai NULL. Ini arti khusus, artinya "tidak ada" atau tidak ada nilai, keduanya tidak sama dengan "null" atau "string kosong". Nilai NULL digunakan dalam database dan sebagai nilai default ketika pengguna belum memasukkan nilai tertentu. Kunci utama tidak boleh berisi nilai NULL. Transaksi adalah salah satu konsep terpenting dalam teori basis data. Artinya serangkaian operasi pada database, dianggap sebagai satu unit kerja tunggal dan tidak dapat dibagi, dilakukan secara lengkap atau tidak dilakukan sama sekali jika terjadi kegagalan selama transaksi. Dengan demikian, transaksi merupakan sarana untuk memastikan konsistensi data. Dalam database kita, sebuah transaksi dapat berupa, misalnya, dua operasi: menghapus baris dari tabel “Siswa” dan menghapus baris terkait kunci asing dari tabel “Prestasi”. 1.3 Apa itu bahasa SQL Bahasa SQL adalah bahasa non-prosedural sarana standar bekerja dengan data di semua DBMS relasional. Operator (perintah) yang ditulis dalam bahasa ini hanya menunjukkan kepada DBMS hasil apa yang harus diperoleh, tetapi tidak menjelaskan prosedur untuk memperoleh hasil tersebut. DBMS sendiri menentukan metode pelaksanaan perintah pengguna. Bahasa SQL secara tradisional membedakan sekelompok operator definisi data (Data Definition Language DDL), sekelompok operator manipulasi data (Data Manipulation Language DML) dan sekelompok operator yang mengelola hak akses ke objek database (Data Control Language DCL). Pernyataan bahasa definisi data (DDL) mencakup perintah untuk membuat, memodifikasi, dan menghapus tabel, tampilan, dan objek database lainnya. Bab 5 dan 8 membahas perintah-perintah ini secara rinci.Pernyataan bahasa manipulasi data (DML) mencakup perintah untuk mengambil baris dari tabel, memasukkan baris ke dalam tabel, memperbarui baris, dan menghapus baris. Perintah-perintah ini dibahas secara rinci di Bab 6 dan 7. Pernyataan DCL tidak dibahas dalam tutorial, karena PostgreSQL memungkinkan Anda melakukannya tanpa menggunakannya pada tahap awal pembelajaran bahasa SQL. 13

15 1.4 Deskripsi bidang studi dan database pelatihan Untuk menunjukkan semua kemampuan utama bahasa SQL, kita memerlukan database. Basis data ini tidak boleh terlalu rumit sehingga tidak memerlukan terlalu banyak waktu untuk mempelajarinya. Namun, pada saat yang sama, permintaan tersebut harus cukup beragam sehingga permintaan terhadapnya terlihat masuk akal, hampir sama seperti di pekerjaan nyata . Kami akan memilih transportasi udara penumpang sebagai bidang studi kami. Deskripsi aslinya dan deskripsi database Transportasi Udara dapat ditemukan di ru/docs/postgrespro/current/demodb-bookings.html. Kami berharap area ini familier bagi banyak pembaca tutorial kami. Tentu saja, untuk tujuan pendidikan, situasi sebenarnya sengaja disederhanakan, tetapi semua hal mendasar tetap dipertahankan. Jadi, maskapai penerbangan Rusia tertentu mengoperasikan transportasi udara penumpang. Ia memiliki armada pesawat sendiri dengan berbagai model. Setiap model pesawat memiliki kode khusus yang ditetapkan oleh International Air Transport Association (IATA). Dalam hal ini kita asumsikan bahwa pesawat dengan model yang sama mempunyai tata letak kabin yang sama, yaitu urutan penempatan kursi dan penomoran kursi pada kabin kelas bisnis dan kelas ekonomi. Misalnya, jika model Sukhoi SuperJet-100, maka kursi 2A adalah kelas bisnis, dan kursi 20D adalah kelas ekonomi. Kelas bisnis dan kelas ekonomi merupakan jenis dari apa yang disebut kelas layanan. Maskapai kami mengoperasikan penerbangan antar bandara Rusia. Setiap bandara diberi kode tiga huruf unik, hanya menggunakan huruf kapital alfabet Latin. Kode-kode ini diberikan bukan oleh maskapai penerbangan itu sendiri, tetapi oleh organisasi khusus yang mengelola transportasi udara penumpang. Seringkali nama bandara tidak sesuai dengan nama kota tempat bandara tersebut berada. Misalnya, di kota Novosibirsk bandaranya disebut Tolmachevo, di kota Yekaterinburg Koltsovo, dan di St. Petersburg Pulkovo. Selain itu, beberapa kota memiliki lebih dari satu bandara. Sebagai contoh, saya langsung teringat Moskow dengan bandara Domodedovo, Sheremetyevo, dan Vnukovo. Mari tambahkan satu detail penting lagi: setiap bandara dicirikan oleh koordinat geografis, garis bujur dan lintang, serta zona waktu. Rute penerbangan antar kota sedang dibentuk. Tentu saja, setiap rute tersebut memerlukan indikasi tidak hanya kotanya, tetapi juga bandaranya, karena, seperti telah kami katakan, mungkin terdapat lebih dari satu bandara dalam satu kota. Untuk menyederhanakan kenyataan, kami akan memutuskan bahwa rute tersebut tidak akan memiliki persinggahan, yaitu hanya akan memiliki bandara keberangkatan dan bandara tujuan. Setiap rute memiliki enam digit nomor, termasuk angka dan huruf alfabet Latin. Berdasarkan daftar rute, jadwal penerbangan (atau penerbangan) dibuat. Jadwal tersebut menunjukkan jadwal waktu keberangkatan dan jadwal waktu kedatangan, serta jenis pesawat yang mengoperasikan penerbangan tersebut. Pada saat penerbangan benar-benar beroperasi, perlu diperhatikan informasi tambahan, yaitu: waktu keberangkatan sebenarnya dan waktu kedatangan sebenarnya, serta status penerbangan. Status penerbangan dapat memiliki beberapa nilai: 14

16 Terjadwal (kemungkinan pemesanan dibuka sebulan sebelumnya); Tepat Waktu (pendaftaran dibuka satu hari sebelumnya); Tertunda (penerbangan tertunda); Almarhum; Tiba (tiba); Dibatalkan. Sekarang mari kita beralih ke penumpang. Penerbangan dimulai dengan pemesanan tiket. Saat ini, penerbitan tiket elektronik sudah menjadi hal yang lumrah. Setiap tiket tersebut memiliki nomor unik yang terdiri dari 13 digit. Beberapa tiket dapat diterbitkan dalam satu prosedur pemesanan, tetapi setiap prosedur tersebut memiliki enam digit nomor pemesanan (sandi) yang unik, yang terdiri dari huruf kapital Alfabet Latin dan angka. Selain itu, untuk setiap prosedur pemesanan, tanggal pemesanan dicatat dan dihitung total biaya tiket yang diterbitkan. Setiap tiket, selain nomor tiga belas digitnya, berisi pengenal penumpang, serta nama depan dan belakangnya (dalam transkripsi Latin) dan informasi kontak. Nomor dokumen identifikasi penumpang digunakan sebagai identitas penumpang. Tentu saja, seorang penumpang dapat mengubah dokumennya, dan terkadang bahkan nama belakang dan nama depannya, selama selang waktu antara pemesanan tiket pada hari yang berbeda, sehingga tidak mungkin untuk mengatakan dengan pasti bahwa tiket tertentu diterbitkan untuk penumpang yang sama. Lebih dari satu penerbangan dapat disertakan dalam setiap e-tiket. Para ahli menyebut segmen catatan penerbangan ini. Contoh kehadiran beberapa segmen adalah sebagai berikut: Krasnoyarsk Moscow, Moscow Anapa, Anapa Moscow, Moscow Krasnoyarsk. Pada saat yang sama, dimungkinkan untuk menerbitkan beberapa tiket untuk penumpang berbeda dalam satu pemesanan. Untuk setiap penerbangan, nomor penerbangan, bandara keberangkatan dan tujuan, waktu keberangkatan dan kedatangan, serta biaya penerbangan ditunjukkan. Selain itu, apa yang disebut kelas layanan ditunjukkan: ekonomi, bisnis, dll. Ketika penumpang tiba di bandara keberangkatan dan check-in untuk mendapatkan tiket, apa yang disebut boarding pass dikeluarkan. Kupon ini dikaitkan dengan tiket pesawat: kupon tersebut menunjukkan nomor yang sama dengan yang dimiliki tiket elektronik penumpang tersebut. Selain itu, tiket tersebut mencantumkan nomor penerbangan dan nomor kursi di pesawat. Nomor boarding pass juga ditunjukkan, nomor urut yang diberikan selama proses check-in untuk tiket penerbangan tertentu. Izinkan kami mengingatkan Anda bahwa setiap kursi di kabin pesawat sesuai dengan kelas layanan tertentu. Informasi ini diperhitungkan saat mendaftarkan tiket dan mengeluarkan boarding pass. Misalnya, jika seorang penumpang membeli tiket kelas ekonomi, maka boarding pass-nya akan mencantumkan nomor kursi di kabin kelas ekonomi, tetapi tidak di kabin kelas bisnis. Mengikuti deskripsi bidang studi yang diberikan, Anda dapat merancang model database yang dimaksudkan untuk mempelajari bahasa SQL. Karena tutorial kami terutama ditujukan untuk mempelajari bahasa SQL, dan bukan untuk menguasai seni desain database, kami hanya akan menampilkan diagram 15

17 Pemesanan Pemesanan Bandara Bandara # book_ref * tanggal_buku * total_jumlah # kode_bandara * nama_bandara * kota * garis bujur * garis lintang * zona waktu Tiket Tiket # tiket_no * buku_ref * penumpang_id * nama_penumpang kontak_data Tiket_penerbangan Penerbangan # ticket_no # flight_id * fare_conditions * jumlah Penerbangan Penerbangan # flight_id * flight_no * jadwal_keberangkatan * jadwal_kedatangan * bandara_keberangkatan * bandara_kedatangan * status * kode_pesawat aktual_keberangkatan aktual_kedatangan Pesawat Pesawat # kode_pesawat * model * rentang Boarding_passes Boarding pass Kursi Kursi # ticket_no # flight_id * boarding_no * seat_no # plane_code # seat_no * fare_conditions skema data yang menunjukkan entitas yang disorot di area subjek , serta koneksi dan atributnya. Kami akan menunjukkan tipe data spesifik, kunci primer dan asing, serta batasan yang dikenakan pada atribut dan tabel di bab selanjutnya sambil meninjau perintah SQL yang ditujukan untuk penciptaan fisik tabel dalam database. Diagram di atas dapat ditemukan di situs web Postgres Professional di alamat yang tertera di awal bagian ini. Soal dan tugas tes 1. Kelompok operator apa yang dibedakan dalam bahasa SQL? 2. Memberikan definisi informal tentang konsep dasar model data relasional: relasi, tupel, atribut. 3. Mengapa kunci asing diperlukan dalam tabel relasional? 4. Apa yang dimaksud dengan kunci kandidat? 5.* Berikan contoh kunci kandidat yang berlebihan untuk salah satu tabel di database Maskapai Penerbangan dan jelaskan mengapa kunci tersebut akan menjadi berlebihan. 16

18 6.* Implementasi database Transportasi Udara saat ini mengasumsikan bahwa pesawat dengan model yang sama hanya dapat memiliki satu tata letak kabin. Bayangkan manajemen memutuskan bahwa perlu mempertimbangkan kemungkinan memiliki tata letak yang berbeda untuk setiap model. Tabel mana yang harus dimodifikasi dalam kasus ini dan bagaimana caranya? Apakah saya perlu membuat tabel tambahan? 17

19 2 Menciptakan lingkungan kerja Sebelum Anda mulai mempelajari bahasa SQL secara langsung, Anda perlu mendapatkan akses ke server PostgreSQL. Hal ini dapat dilakukan, misalnya, di laboratorium komputer atau dengan mengakses server jarak jauh melalui terminal. Namun, Anda dapat menciptakan lingkungan kerja untuk diri Anda sendiri dan di komputer lokal Anda dengan menginstal versi lengkap DBMS PostgreSQL, yaitu server dan program klien. Dalam hal ini, Anda akan memiliki lebih banyak kekuatan untuk mengonfigurasi dan menggunakan PostgreSQL. Di bagian akhir bab ini, kami akan menunjukkan kepada Anda cara menerapkan database pelatihan Pengangkutan Udara yang diisi dengan data yang dapat dipercaya dan disiapkan secara khusus. 2.1 Menginstal DBMS Karena tutorial ini dimaksudkan untuk mempelajari bahasa SQL, dan bukan dasar-dasar administrasi DBMS PostgreSQL, kami akan membatasi diri hanya pada instruksi singkat tentang di mana menemukan petunjuk pemasangan. Anda harus mulai dengan memilih distribusi DBMS yang ingin Anda instal. Anda dapat memilih opsi PostgreSQL asli atau yang ditawarkan oleh Postgres Professional. Ini disebut Postgres Pro dan tidak hanya berisi semua fungsi dan modul yang termasuk dalam distribusi standar, tetapi juga pengembangan tambahan yang dibuat oleh Postgres Professional. Distribusi ini juga cocok untuk mempelajari dasar-dasar bahasa SQL. Namun, dokumentasi dalam bahasa Rusia hanya disertakan dengan PostgreSQL. Setelah Anda memutuskan distribusi DBMS tertentu, Anda perlu memilih sistem operasi. PostgreSQL mendukung banyak sistem, termasuk versi yang berbeda Linux dan juga Windows. Disarankan untuk menginstal DBMS versi stabil terbaru. Jika Anda memutuskan untuk menggunakan distribusi PostgreSQL asli, maka Anda dapat menemukan petunjuk untuk menginstalnya di berbagai sistem operasi di alamat berikut.Jika Anda memilih distribusi PostgreSQL, maka Anda harus pergi ke sini: terbaru. Setelah menginstal PostgreSQL dan PostgreSQL Lingkungan Windows tindakan tambahan harus diambil untuk memastikan bahwa penggunaan alfabet Rusia di terminal psql interaktif tidak menimbulkan masalah. Utilitas psql dibahas di bagian selanjutnya. Selama proses instalasi, akun pengguna DBMS bernama postgres akan dibuat. Anda tidak perlu membuat akun tambahan untuk mempelajari manual ini. 18

20 Setelah menginstal satu atau beberapa distribusi PostgreSQL, Anda perlu mempelajari cara memulai server database, karena jika tidak, maka tidak mungkin untuk bekerja dengan data. Cara melakukan ini dijelaskan secara rinci dalam dokumentasi di bagian 18.3 “Memulai server database”. Anda dapat menemukan bagian ini di current/server-start.html. Saat menginstal DBMS di lingkungan Windows, layanan dibuat untuk memulai server PostgreSQL secara otomatis saat sistem operasi melakukan booting. Setelah selesai bekerja dengan server, Anda harus menghentikannya (mematikan) dengan benar. Prosedur untuk menghadapi situasi seperti ini dijelaskan dalam dokumentasi di bagian 18.5 “Mematikan server”. Anda dapat menemukan bagian ini di postgresql/9.6/server-shutdown.html. 2.2 Program terminal interaktif psql PostgreSQL Untuk mengakses server database, paket PostgreSQL menyertakan terminal interaktif psql. Untuk menjalankannya, Anda perlu memasukkan perintah psql.Saat menjalankan utilitas psql di lingkungan Windows, huruf alfabet Rusia mungkin tidak ditampilkan dengan benar. Untuk menghilangkan ini, Anda perlu mengubah font pada Konsol Lucida di properti jendela tempat psql berjalan dan menggunakan perintah chcp untuk mengubah font saat ini. halaman kode pada CP1251: chcp 1251 Di lingkungan utilitas psql, Anda tidak hanya dapat memasukkan perintah bahasa SQL, tetapi juga berbagai perintah layanan yang didukung oleh utilitas itu sendiri. Untuk mendapatkan informasi singkat Untuk semua perintah layanan, Anda harus memasukkan \? Banyak perintah seperti itu dimulai dengan karakter \d. Misalnya, untuk melihat daftar semua tabel dan tampilan yang dibuat dalam database yang saat ini Anda sambungkan, masukkan perintah \dt Jika Anda tertarik dengan definisi (dengan kata lain, struktur) tabel database tertentu, misalnya Misalnya, siswa, Anda perlu memasukkan perintah \d siswa Untuk mendapatkan daftar semua perintah SQL, Anda perlu menjalankan perintah \h Untuk menampilkan deskripsi perintah SQL tertentu, misalnya CREATE TABLE, Anda perlu melakukan ini : \h BUAT TABEL 19

21 Utilitas ini memungkinkan Anda mengurangi jumlah input manual dengan menyelesaikan perintah yang dimasukkan menggunakan psql. Misalnya, saat memasukkan perintah SQL, Anda dapat menggunakan tombol Tab untuk melengkapi kata kunci perintah yang dimasukkan atau nama tabel database. Misalnya, saat memasukkan perintah CREATE TABLE..., Anda dapat memasukkan karakter "cr" dan menekan tombol Tab.psql akan melengkapi kata ini menjadi "create". Anda dapat melakukan hal yang sama dengan kata TABLE. Untuk memasukkannya, cukup masukkan huruf “ta” dan tekan tombol Tab. Jika Anda memasukkan terlalu sedikit huruf agar psql dapat mengidentifikasi kata kunci secara unik, penyelesaian tidak akan terjadi. Namun dalam kasus ini, Anda dapat menekan tombol Tab dua kali dan mendapatkan daftar semua kata kunci yang dimulai dengan kombinasi huruf yang Anda masukkan. 2.3 Menyebarkan basis data pelatihan Setelah menyelesaikan instalasi server basis data, kita dapat langsung beralih ke pertanyaan tentang bagaimana menerapkan basis data pelatihan Pengangkutan Udara yang disiapkan oleh Postgres Professional di cluster PostgreSQL Anda. Situs web perusahaan memiliki bagian yang didedikasikan untuk database ini, yang dapat ditemukan dengan mengikuti tautan. Ini disediakan dalam tiga versi, hanya berbeda dalam jumlah data: versi paling ringkas berisi data selama satu bulan, versi berukuran sedang mencakup jangka waktu tiga bulan, dan versi terlengkap mencakup data selama setahun penuh. Semua data dihasilkan menggunakan algoritma khusus untuk memastikan “masuk akalnya”. Kami menyarankan Anda memulai dengan versi ringkas dari database Transportasi Udara, dan setelah mendapatkan beberapa pengalaman dalam menulis kueri SQL, Anda akan menginstal versi lengkap dan dengan itu Anda akan dapat lebih "merasakan" berbagai seluk-beluk bekerja dengan skala besar. volume data, misalnya, mengevaluasi dampak indeks terhadap kecepatan akses ke data. Langkah pertama untuk menyebarkan database adalah mengunduh formulir arsipnya. salinan cadangan ikuti tautan zip. Maka Anda perlu mengekstrak file dari arsip: unzip demo_small.zip File yang diekstraksi disebut demo_small.sql. Kami sekarang akan membuat database bernama demo di cluster PostgreSQL Anda. Versi terpendek dari perintahnya adalah: psql -f demo_small.sql -U postgres Jika Anda ingin mengarahkan output pesan yang dihasilkan DBMS selama operasi dari layar ke file, maka Anda dapat melakukan ini: psql -f demo_small .sql -U postgres > demo.log 2>demo.err Anda dapat memisahkan keluaran standar dan keluaran kesalahan standar. Pesan biasa akan dialihkan ke file demo.log, dan pesan kesalahan ke file demo.err. Perhatikan bahwa tidak boleh ada spasi antara angka 2, yang menunjukkan pegangan perangkat keluaran kesalahan standar, dan tanda ">", yang menunjukkan pengalihan keluaran. 20

22 Jika lebih mudah bagi Anda untuk mengumpulkan semua pesan ke dalam satu file umum, maka Anda perlu melakukan ini: psql -f demo_small.sql -U postgres > demo.log 2>&1 Harap dicatat bahwa seluruh ekspresi 2>&1 di akhir perintah ditulis tanpa spasi. Ini memberitahu sistem operasi bahwa pesan kesalahan harus dikirim ke tempat yang sama di mana pesan normal dikeluarkan. Jika file SQL kita sangat besar, maka kita dapat menjalankan perintahnya latar belakang, letakkan di akhir garis komando simbol “&”, dan pantau kemajuan proses secara real time menggunakan perintah tail. psql -f demo_small.sql -U postgres > demo.log 2>&1 & tail -f demo.log Pilih salah satu opsi perintah yang disarankan untuk menyebarkan database dan jalankan perintah. Semuanya sudah siap! Anda dapat terhubung ke database baru: psql -d demo -U postgres Pertanyaan dan tugas pengujian 1. Selesaikan prosedur untuk menginstal DBMS PostgreSQL di lingkungan sistem operasi pilihan Anda. 2. Biasakan diri Anda dengan utilitas psql menggunakan bantuan bawaan, serta menggunakan bantuan yang dipanggil menggunakan perintah psql --help 3. Selain utilitas psql, ada utilitas lain program universal untuk bekerja dengan server database PostgreSQL, misalnya pgadmin. Ini utilitas yang kuat dengan antarmuka grafis. Instal sendiri program pgadmin dan pelajari teknik dasar untuk bekerja dengannya. 4. Menyebarkan database sampel. Coba sambungkan menggunakan utilitas psql. Untuk keluar dari utilitas, gunakan perintah \q. 21

23 3 Operasi dasar dengan tabel Bahasa SQL sangat beragam, mencakup sejumlah perintah, yang terkadang memiliki banyak parameter dan kata kunci. Tapi kita akan mulai dengan gambaran singkat fitur dasar bahasa SQL. Dalam bab ini, Anda akan mempelajari cara memasukkan data ke dalam database, mempelajari cara dasar mengambil informasi dari database, yaitu pengambilan sampel, dan juga mempelajari bagaimana Anda dapat mengubah informasi yang disimpan dalam database dan menghapus data yang ada. tidak diperlukan lagi. diperlukan. Dalam praktek belajar bahasa asing ada tradisi yang baik. Sudah di pelajaran pertama, siswa mempelajari beberapa struktur tata bahasa dasar dan kata-kata yang memungkinkan dia mengucapkan beberapa frasa yang paling sederhana namun berguna secara praktis. Kami akan mengikuti tradisi ini. Di bagian tutorial kami ini, Anda akan terbiasa dengan perintah dasar SQL yang memungkinkan Anda melakukan operasi dasar. Anda akan mempelajari perintah yang lebih kompleks (dan menarik) di bab-bab berikutnya. Katakanlah beberapa patah kata tentang pendekatan kami terhadap pekerjaan. Pada prinsipnya, ada dua cara yang mungkin untuk mengatur pekerjaan siswa. Metode pertama adalah: siswa menggunakan database yang sudah berisi semua tabel yang diperlukan dan objek database lainnya yang disiapkan sebelumnya oleh penulis buku teks atau spesialis lain yang berkualifikasi. Pada saat yang sama, sekumpulan data tertentu yang diperlukan juga telah dimasukkan ke dalam tabel, sehingga Anda dapat segera melanjutkan mengeksekusi kueri terhadap tabel tersebut. Metode yang dijelaskan nampaknya sangat menarik karena membutuhkan sedikit usaha pada tahap awal penguasaan bahasa SQL. Namun menurut kami, cara lain lebih tepat. Ini mungkin lebih memakan waktu, tetapi ketika Anda menggunakannya, seperti yang mereka katakan, Anda akan lebih memahami proses pembuatan tabel dan memasukkan catatan ke dalam tabel ini. Dan dengan menjalankan berbagai query database, akan lebih mudah bagi Anda untuk mengevaluasi kebenaran hasil query, karena Anda memasukkan semua data sendiri dan oleh karena itu dapat menebak secara wajar hasil apa yang Anda harapkan untuk dilihat di layar. Tentu saja, metode pertama bisa sangat berguna ketika mempelajari fitur-fitur bahasa SQL yang lebih kompleks dan canggih, yang sulit dipahami tanpa menggunakan data dalam jumlah besar, dan tidak masuk akal untuk memasukkan data dalam jumlah besar ke dalam database secara manual. Akan jauh lebih rasional jika membuatnya secara otomatis menggunakan perangkat lunak. Di Bab 1, kita telah menjelaskan area subjeknya, jadi sekarang kita bisa langsung mulai membuat tabel di database. Untuk melakukan semua perintah dan operasi selanjutnya, kita akan menggunakan utilitas psql, yang disertakan dalam pengiriman standar DBMS PostgreSQL. Basis data demo seharusnya sudah diterapkan di komputer Anda. Proses pembuatannya dijelaskan di Bab 2. Sekarang jalankan utilitas psql dan sambungkan ke database ini dengan akun pengguna postgres: psql -d demo --U posting baru Untuk membuat tabel di SQL, gunakan perintah CREATE TABLE. Sintaks lengkapnya disajikan dalam dokumentasi PostgreSQL, tetapi sintaksis yang disederhanakan adalah: 22


Perusahaan Profesional Postgres E.P. Morgunov PostgreSQL. Dasar-dasar SQL tutorial Petersburg "BHV-Petersburg" 2018 UDC 004.655 BBK 32.973.26-018.2 M79 Morgunov, E. P. M79 PostgreSQL. Dasar-dasar

Kuliah Bahasa SQL 6 Indeks E. P. Morgunov Universitas Sains dan Teknologi Negeri Siberia dinamai Akademisi M. F. Reshetnev Institut Informatika dan Telekomunikasi Krasnoyarsk [dilindungi email]

Bratchikov I.L. 41. Dasar-dasar desain database. Metode untuk membangun DBMS. SQL, contoh implementasi. Dasar-dasar database modern. 1. Definisi dasar. Terminologi. Dalam literatur Anda dapat menemukannya

Topik 10. Dasar-dasar teknologi basis data Teknologi basis data adalah salah satu pencapaian utama ilmu komputer, yang digunakan untuk membangun sistem informasi komputer dan aplikasi yang mengimplementasikan informasi

KONSEP DASAR DATABASE 1. Pilih prosedur yang benar saat merancang database a) Memecahkan masalah transfer data b) Analisis area subjek, dengan mempertimbangkan kebutuhan pengguna akhir c)

Pendahuluan Buku ini ditujukan bagi pengembang yang menggunakan Oracle sebagai sistem manajemen basis data (DBMS). Oleh karena itu, buku ini tidak memberikan banyak ruang untuk membahas permasalahan tersebut

Opsi 1 Pilih jawaban yang benar. Hanya ada satu jawaban yang benar yang mungkin. 1. Sistem Informasi adalah a) Setiap sistem pemrosesan informasi b) Sistem pemrosesan informasi teks

Bahasa SQL Kuliah 3 Dasar-dasar bahasa definisi data E. P. Morgunov Universitas Sains dan Teknologi Negeri Siberia dinamai Akademisi M. F. Reshetnev Institut Informatika dan Telekomunikasi Krasnoyarsk

Bahasa SQL Kuliah 5 Mengubah data E.P. Morgunov Universitas Sains dan Teknologi Negeri Siberia dinamai Akademisi M.F. Reshetnev Institut Informatika dan Telekomunikasi Krasnoyarsk [dilindungi email]

➀ Sistem informasi dan bank data. Kondisi paling penting untuk memastikan berfungsinya organisasi secara efektif adalah adanya sistem informasi yang dikembangkan. Sistem informasi adalah sebuah sistem

Bab 1. Memulai Cara kerja basis data Microsoft Access Merancang struktur data Tahapan bekerja dengan database Mari kita mulai Antarmuka pengguna Access 2007 Menyiapkan elemen

Bab 3. Menginstal dan meluncurkan versi multi-pengguna Persyaratan dan ketentuan...1 Prosedur untuk menginstal SbiS++ di jaringan...2 Menginstal dan mengkonfigurasi server dan klien Pervasive.SQL...3 Menginstal program...4 Persiapan

BANK TUGAS UJI Disiplin akademik Arah Tingkat pelatihan Jurusan B1.B.12 Manajemen data 03/09/02 Sistem dan teknologi informasi gelar sarjana dalam Metode dan sarana pengukuran dan otomasi

Basis Data Perkembangan teknologi komputer dilakukan dalam dua arah utama: pemanfaatan teknologi komputer untuk melakukan perhitungan numerik; penggunaan teknologi komputer

Universitas Teknik Negeri Moskow dinamai N. E. Bauman cabang Kaluga Yu. E. Gagarin, S. V. Ponomarev APLIKASI BAHASA SQL DALAM MS ACCESS Manual pendidikan dan metodologi UDC 681.3.06 BBK 32.973

1. Informasi dan data 2. Konsep dasar sistem basis data Informasi sistem komputer dengan database ini adalah sistem informasi, matematika, perangkat lunak, bahasa, organisasi

PDM STEP SUITE versi 5.0 Petunjuk instalasi untuk PDM STEP Suite Petunjuk untuk pemrogram sistem. Bagian 1 Pusat Penelitian JSC "Logistik Terapan" 2019 PDM STEP Suite v.5.0. Petunjuk untuk pemrogram sistem

1 dari 6 Kuliah 1. Arsitektur sistem basis data. Fungsi administrator sistem basis data dalam sistem informasi perusahaan. Objek basis data. 1.1. Arsitektur sistem basis data ANSI/SPARC...1

DAFTAR ISI PENDAHULUAN... 3 1 PENELITIAN DOMAIN SUBJEK DAN PERNYATAAN MASALAH... 4 2 MEMBANGUN MODEL INFOLOGI... 5 3 DESAIN DATABASE DATALOGIS... 6 3.1 Pemilihan sistem kendali

DI DALAM kondisi modern Saat mengotomatisasi perusahaan, seseorang harus menghadapi persyaratan akuntansi yang berbeda dan seringkali bertentangan secara diametral untuk bagian akuntansi yang sama. Menurut dokumentasi

Disiplin akademik “Database dan pengelolaannya” untuk mahasiswa spesialisasi Informatika Terapan (gelar sarjana) 080800.62 Kuliah 15 MODEL PENYELENGGARAAN AKSES DATABASE Soal pendidikan: 1. Arsitektur

Bahasa SQL Kuliah 7 Transaksi E.P. Morgunov Universitas Sains dan Teknologi Negeri Siberia dinamai Akademisi M.F. Reshetnev Institut Informatika dan Telekomunikasi Krasnoyarsk [dilindungi email]

Teknologi informasi komputer Modul 13. Ciri-ciri umum Akses DBMS 1 TUJUAN MODUL Setelah mempelajari modul ini anda akan mampu: membicarakan tentang Kegunaan Akses DBMS; mengetahui fitur-fiturnya

Sistem Manajemen Dokumen Elektronik Panduan Instalasi A r h i v a ru s Moskow, 2008 2 ABSTRAK Dokumen ini memberikan penjelasan tentang delivery kit produk perangkat lunak"Aliran Dokumen EUPHRATS"

DATABASE (DB). SISTEM KONTROL OBD Ketentuan umum Tujuan dari setiap sistem informasi adalah untuk memproses data tentang objek dunia nyata. Dalam arti luas, database adalah kumpulan informasi tentang

Pengenalan database. Pengantar SQL. Sumy Educational Center Software Quality Assurance (QA) Netcracker 2016 1 Anda akan mempelajari hal berikut Apa itu database Klasifikasi database DBMS Klien DBMS

1.1. Dasar-dasar bekerja dengan database 1.1.1. Basis data dan sistem manajemen basis data. Model data Basis data (DB) adalah kumpulan data terstruktur bernama yang terkait dengan suatu hal tertentu

Tampaknya hal ini baru saja terjadi, namun perubahan signifikan telah terjadi sejak saat itu! Sementara penulis sedang mempersiapkan penerbitan buku Pemrograman Profesional SQL Server 7.0 pada awal tahun 1999

Pengantar teori database Kuliah 1 Garis besar kuliah Konsep dasar Organisasi data dalam database Jenis model data Arsitektur database Klasifikasi database Server 2008. Kuliah 1 2 Konsep dasar Server 2008. Kuliah

Lampiran 4 Subsistem Manajemen Proses dan Perhitungan DAFTAR ISI 1. Informasi Umum... 2 2. Status pemodelan dan proses kerja... 2 2.1. Mengelola daftar kelompok negara... 2 2.2. Penciptaan

Panduan Instalasi Softacom CRM Versi 2.1. 1 "Panduan Instalasi Softacom CRM". Berisi penjelasan proses instalasi sistem. Daftar Isi 1 PENDAHULUAN... 3 1.1 Informasi umum tentang sistem... 3 1.2 Fitur

Pekerjaan laboratorium 4 “Membuat koneksi antar tabel” Tujuan pekerjaan: mempelajari teknologi untuk membuat struktur database relasional di Microsoft Office Akses 2007 1. Informasi teoretis singkat Word

Pencadangan logis Topik Pencadangan logis dan fisik Menyalin tabel individual Mencadangkan dan memulihkan database dan cluster 2 Jenis pencadangan Pencadangan logis

AKSES MICROSOFT: HUBUNGAN, BIDANG PERHITUNGAN, PEMBUATAN FORMULIR TOMBOL DB I. HUBUNGAN TABEL Database modern biasanya terdiri dari banyak tabel yang saling berhubungan. Salah satu tujuan menciptakan struktur yang baik

UNIVERSITAS PENERBANGAN NASIONAL Jurusan Informatika Terapan Topik Kursus: Microsoft DBMS Akses Penciptaan dan pengolahan database Tujuan kerja: menguasai teknik dasar kerja secara teoritis dan praktis

Transaksi dan akses bersamaan: perbandingan implementasi di PostgreSQL dan Oracle Egor Rogov, Postgres Professional Mengapa semua ini? hasil permintaan Mengapa semua ini? hasil request Transaksi Atomicity semua

@DB, DBMS 1. Struktur data, yang ditandai dengan subordinasi objek tingkat rendah ke objek level tertinggi, disebut A. tabular B. relasional *C. hierarki D. jaringan 2. Khas

Panduan Instalasi VOGBIT 2010 Daftar Isi Pendahuluan... 4 Persyaratan perangkat lunak dan perangkat keras... 5 Urutan instalasi... 6 Menginstal program... 7 Meminta dan mendapatkan lisensi...

Tahapan pengembangan database Biasanya, non-profesional bekerja dengan database, sehingga persyaratan database berikut dapat dirumuskan. Pengembang, ketika membuat database, harus fokus pada hal ini

Akses sistem manajemen basis data Dilakukan oleh Nazlygul Niyazovna Chibinova, mahasiswa Fakultas Bahasa Asing di Institut Yelabuga Universitas Federal Kazan (Privozhsky). Ilmiah

Ilmu Komputer Kuliah 5 MS Access Sistem Informasi Aplikasi untuk menyimpan, mengisi ulang, mengedit dan menggunakan data dalam jumlah besar Dalam kasus yang paling sederhana, penggunaan berarti akses

Daftar Isi Kata Pengantar...3 Bagian I. Basis Data, DBMS dan Model Data Bab 1. Tujuan Teknologi Basis Data. Fungsi dan komponen utama sistem manajemen basis data.................................. ..........

Laboratorium pemantauan dan otomasi proses pendidikan. Panduan Administrator Situs Penunjang Proses Pendidikan Versi 3 tanggal 18/12/15. Korotkov D.S., Zhuchok I.O. Aktifkan/nonaktifkan

Bab 6 Teori Basis Data 6.1. Konsep umum 6.2. Model data 6.3. Basis data relasional 6.4. Model dan database pasca-relasional 6.5. Desain basis data Sistem informasi modern,

Pekerjaan laboratorium 9 Investigasi kemampuan Microsoft Access 2007 untuk menghasilkan query menggunakan SQL. Tujuan: 1. Mempelajari cara membuat query menggunakan SQL di Microsoft Access

Kompleks penyiapan dokumen informasi aeronautika Pembuatan database aeronautika Ketentuan umum Sumber utama informasi aeronautika kompleks ini adalah database relasional informasi aeronautika

1. Perkiraan cara pengendalian saat ini. Pertanyaan diajukan untuk survei (untuk diskusi) ke bagian disiplin akademik: Bagian 1. Pengenalan bank data 1. Konsep bank data (DB). komponen BnD. 1.1. Informasional

Kuliah 2 1 Menurut kamus: Arsitektur sistem informasi Sistem informasi adalah kumpulan dokumen (array dokumen) dan teknologi informasi yang tertata secara organisasi, termasuk penggunaannya

J. Bowman, S. Emerson, M. Darnovsky PANDUAN PRAKTIS SQL Buku ini akan membantu bahkan ketika panduan pengguna terbaik tidak berguna. Topik-topik yang sering terlewatkan dibahas di sini.

Sistem manajemen dokumen elektronik A r h i v a r i s Manual instalasi Moskow, 2009 2 ABSTRAK Dokumen ini memberikan penjelasan tentang paket pengiriman produk perangkat lunak “EUFRAT-Document Flow”.