Sistem Basis Data Pendahuluan SQL Ika Menarianti SQL
Sistem Basis Data Pendahuluan SQL Ika Menarianti
SQL Language • SQL adalah bahasa komputer standar yang digunakan untuk komunikasi dengan sistem database relasional. • Karakteristik utama SQL adalah bahwa ia merupakan bahasa yang deklaratif atau nonprosedural. • SQL dibagi menjadi 2 kategori yaitu DDL (CREATE, ALTER dan DROP) dan DML (SELECT, INSERT, UPDATE dan DELETE).
Konvensi Penamaan Objek Database Objek database harus memenuhi aturan RDBMS, yaitu: • Nama database sebaiknya dibatasi 8 karakter. • Nama tabel berupa karakter sepanjang 1 sampai 30 karakter • Nama harus diawali dengan huruf, karakter selanjutnya dapat berupa kombinasi huruf, angka atau garis bawah.
Contoh • Terangkan apakah nama-nama berikut valid atau tidak jika mengikuti penamaan konvensi SQL! a. Nama database: Employee, Purchase. Order, Sales Data b. Nama Tabel: Parts, Employee_Birthdays, Vendor-Name c. Nama atribut: Computer_ID_Number, $_Amount_Paid, addresscitystatezip
Jawab a. Nama database: ü Employee – valid. ü Purchase. Order – tidak valid (database dibatasi 8 karakter) ü Sales Data – tidak valid (spasi tidak diperbolehkan) b. Nama Tabel: • • • c. PARTS – valid (besar kecil huruf tidak masalah) Employee_Birthdays – valid (nama tabel boleh sampai 30 karakter) Vendor-Name – tidak valid ( hanya garis bawah yang diperbolehkan) Nama atribut: Ø Computer_ID_Number - valid Ø $_Amount_Paid – tidak valid (karakter selain huruf, angka dan garis bawah tidak diperbolehkan) Ø Addresscitystatezip – valid (tapi berkesan tidak pintar)
Struktur SQL Statement • SQL statement merupakan kombinasi dari satu atau lebih klausal. • Klausal didahului oleh kata kunci (keyword). • Kata kunci ditulis dengan cetak tebal SELECT column-name-1, column-name-2, . . . Column-name-N FROM table-name WHERE Boolean_Condition ORDER BY column_name [ASC |DESC]; • Dua klausal pertama (SELECT dan FROM) adalah perintah (mandatory) dan dua yang terakhir (WHERE dan ORDER BY) adalah pilihan (optional).
Petunjuk SQL Statement • SQL Statement tidak tergantung besar kecilnya huruf. • SQL Statement dapat ditulis dalam satu baris atau lebih. • Kata kunci tidak dapat dipecah menjadi lintas baris dan tidak dapat disingkat. • SQL Statement diakhiri dengan tanda titik koma.
Pembuatan Tabel • Tabel menyimpan seluruh data yang diakses oleh user. • Nama tabel memberi identifikasi kepada tabel sebagai sebuah objek yang unik dalam RDBMS. • Nama kolom/atribut berfungsi membedakan atribut antara satu dengan yang lainnya. • Nama atribut harus unik dalam tabel. • Tabel dalam SQL dibuat menggunakan command CREATE TABLE • Jika sebuah tabel sudah ada, tabel tersebut ana didefinisikan ulang dengan DROP TABLE
CREATE TABLE table_name ( Column_name_1 data_type_1 [constraint], Column_name_2 data_type_2 [constraint], . . . Column_name_N data_type_N [constraint] ); • Saat mendeskripsikan syntax untuk command CREATE TABLE, akan memanggil sebuah baris definisi kolom untuk setiap baris dalam format. Column_name_1 data_type_1 [constraint]
Contoh • Tulislah SQL untuk membuat sebuah tabel bernama Sample Table dengan dua atribut: atribut 1 adalah text dengan panjang 15 karakter dan atribut 2 dengan tipe data currency. CREATE TABLE Sample_Table ( Atribut_1 Varchar 2 (15), Atribut_2 Currency (4, 2) );
Implikasi Constraint (Batasan) • SQL mensyaratkan sebuah batasan didefinisikan. • Constraint yang diberi nama oleh user disebut named constraint. • Constraint akan bergantung pada vendor disebut unnamed constraint. • Formatnya: CONSTRAINT table_name_column_name_suffix
• Klausal CONSTRAINT adalah perintah (mandatory) dan suffix adalah satu atau dua huruf sequence yang menunjukkan tipe constraint. Tabel Konvensi suffix untuk named constraint SUFFIX Arti PK Primary Key FK Foreign Key NN Not Null U Unique
• Constraint yang didefinisikan sebagai bagian dari definisi kolom disebut column constraint. Dasar column dan tabel constraint CONSTRAINT DEFINISI NOT NULL (*) Mencegah nilai NULL dimasukkan ke suatu kolom UNIQUE (**) Mencegah nilai sma (duplikat) dimasukkan ke suatu kolom PRIMARY KEY (***) Mengharuskan semua nilai yang dimasukkan ke kolom tersebut unik dan selain NULL
Contoh • Sebuah universitas mengizinkan mahasiswanya untuk membeli makanan menggunakan Flex Card. Buatlah tabel Flex Card dengan atribut dan asumsi sebagai berikut: • Atribut: student name, card number, starting value, value left dan pin number. • Asumsi: atribut student name memiliki panjang 25 karakter. Atribut value left starting value dihitung dalam dollar dan cent. Atribut card number memiliki panjang 15 digit dan sebagai primary key. Atribut pin number memiliki panjang 12 karakter serta unik.
Jawab CREATE TABLE Flex_Card ( Student_Name varchar 2(25), Card_Number varchar 2(15) Primary Key, Starting_value Number(4. 2), Value_left Number(4, 2), Pin_Number Char(12) Unique );
Pembuatan Tabel di Ms. Access
Mempopulasikan dan Mengelola Tabel • Proses menambahkan baris kedalam tabel disebut mempopulasikan tabel dengan menggunakan INSERT INTO. • Bentuk dasar: INSERT INTO tabel_ name Values (Value_1, Value_2, . . . Value_N);
Contoh • Sisipkan ke dalam tabel Flex card data dibawah ini: Student_name Card_number Starting_value Value_left Pin_number Diana 123654987 20. 00 12. 45 2010862010 Farid 764427964 15. 00 11. 37 1911841911 INSERT INTO Flex_Card (Student_Name, Card_Number, Starting_value, Value_left, Pin_Number ) VALUES (‘Diana’, ‘ 123654987’, 20. 00, 12. 45, ‘ 2010862010’); INSERT INTO Flex_Card (Student_Name, Card_Number, Starting_value, Value_left, Pin_Number ) VALUES (‘Farid’, ‘ 764427964’, 15. 00, 11. 37, ‘ 1911841911’);
Selection, Projection dan Join menggunakan SQL • Statement SELECT column_1, column_2, . . . Column_N FROM table-1, . . . table-n WHERE condition ORDER BY column_name[ASC | DESC]; • Klausal SELECT mendata sub himpunan atau kolom yang akan diambil. • Klausal FROM mendata tabel yang merupakan sumber data. • Klausal WHERE menandai kondisi yang harus dipenuhi • Klausal ORDER BY menunjukkan patokan/kriteria untuk menyortir baris klausal WHERE
• Tipe Kondisi yang menyertai klausal WHERE 1. Column-name: nama salah satu kolom dari tabel yang ditunjukkan dlam klausal FROM 2. comparison-operator: operator yang diperlihatkan dalam tabel. 3. single-value: sebuah kuantitas numerik atau string karakter. Comparison Operator Deskripsi = Sama dengan <> Tidak Sama dengan < Lebih kecil daripada <= Lebih kecil daripada atau sama dengan > Lebih besar daripada >= Lebih besar daripada atau sama dengan
Contoh 1 • Terdapat dua buah tabel yaitu: ID NAME DEPT TITLE 100 Smith Sales Clerk 200 Jones Marketing Clerk 300 Martin Acounting Clerk 400 Bell Acounting Sr. Accountant ID DEPARTMENT NAME EMPLOYEE LOCATION 100 Accounting Miami 200 Marketing New York 300 Sales Miami
• Tampilkan nama dan jabatan seluruh employee yang bekerja di Accounting Department! SELECT name, title, dept FROM employee WHERE dept=Accounting; NAME TITLE DEPT Martin Clerk Acounting Bell Sr. Accountant Acounting
• Tampilkan hasil dari query berdasarkan urutan abjad nama employee! SELECT name, title, dept FROM employee WHERE dept=Accounting ORDER BY name; NAME Bell Martin TITLE DEPT Sr. Accountant Acounting Clerk Acounting
• Tampilkan seluruh informasi mengenai employee yaitu Department Id, name dan location. SELECT department. id, department. dept, department. location, employee. id, employee. name, employee. title FROM department, employee WHERE department. dept=employee. dept; DEPT ID DEPARTMENT NAME LOCATION EMPLOYEE ID EMPLOYEE NAME TITLE 100 Accounting Miami 300 Martin Clerk 100 Accounting New York 400 Bell Sr. Accountant 200 Marketing Miami 200 Jones Clerk 300 Sales Miami 100 Smith Clerk
Himpunan Operasi di SQL • Operator UNION SELECT * FROM table-1 UNION SELECT * FROM table-2; • Operator INTERSECT SELECT * FROM table-1 INTERSECT SELECT * FROM table-2; • Operator DIFFERENCE SELECT * FROM table-1 MINUS SELECT * FROM table-2;
Contoh • Diberikan dua buah tabel yaitu C_PROGRAMMER Emp_id Last_Name First_Name Project Department 102 Venable Mark E-Commerce Sales Department 201 Cordani John Firewall Information Tecnology 302 Serrano Areant E-Commerce Sales Department JAVA_PROGRAMMER Emp_id Last_Name First_Name Project Department 202 Barnes James Web Application Information Tecnology 302 Serrano Areant E-Commerce Sales Department
• Tuliskan code SQL untuk melakukan UNION. SELECT * FROM C_Programmer UNION SELECT * FROM Java_Programmer; • Bagan hasil menunjukkan: Emp_id Last_Name First_Name Project Department 102 Venable Mark E-Commerce Sales Department 201 Cordani John Firewall Information Tecnology 202 Barnes James Web Application Information Tecnology 302 Serrano Areant E-Commerce Sales Department
• Tuliskan code SQL untuk melakukan INTERSECT. SELECT * FROM C_Programmer INTERSECT SELECT * FROM Java_Programmer; • Bagan hasil menunjukkan: Emp_id Last_Name First_Name Project Department 302 Serrano Areant E-Commerce Sales Department
• Tuliskan code SQL untuk melakukan DIFFERENCE. SELECT * FROM C_Programmer MINUS SELECT * FROM Java_Programmer; • Bagan hasil menunjukkan: Emp_id Last_Name First_Name Project Department 102 Venable Mark E-Commerce Sales Department 201 Cordani John Firewall Information Tecnology
- Slides: 31