Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Data Manipulation Language Basis Data 2.

Presentasi serupa


Presentasi berjudul: "Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Data Manipulation Language Basis Data 2."— Transcript presentasi:

1 Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Data Manipulation Language Basis Data 2

2 DML

3 Data Manipulation Language  Pada aplikasi database, konsep CRUD:  Create  Insert  Read (Retrieve)  Select  Update (Edit)  Update  Delete  Delete  sama seperti konsep pada programming untuk user interface, Misalnya juga untuk user-permission level aplikasi (user-group/role)

4 Select  SELECT  Untuk mendapatkan baris-baris record dari suatu tabel atau beberapa tabel sekaligus dengan kondisi tertentu  SELECT-INTO digunakan untuk membuat tabel baru hasil dari query Select select * into ProductTemp from Products  UNION digunakan untuk menggabungkan 2 query dengan definisi kolom yang sama  DISTINCT digunakan untuk mencegah duplikasi sesuai kolom

5 Select  SELECT dengan kolom kalkulasi USE AdventureWorks2008R2; GO SELECT p.Name AS ProductName, NonDiscountSales = (OrderQty * UnitPrice), Discounts = ((OrderQty * UnitPrice) * UnitPriceDiscount) FROM Production.Product AS p INNER JOIN Sales.SalesOrderDetail AS sod ON p.ProductID = sod.ProductID ORDER BY ProductName DESC; GO

6 Select  SELECT dengan subquery USE AdventureWorks2008R2; GO SELECT DISTINCT Name FROM Production.Product AS p WHERE EXISTS (SELECT * FROM Production.ProductModel AS pm WHERE p.ProductModelID = pm.ProductModelID AND pm.Name LIKE 'Long- Sleeve Logo Jersey%'); GO SELECT DISTINCT p.LastName, p.FirstName FROM Person.Person AS p JOIN HumanResources.Employee AS e ON e.BusinessEntityID = p.BusinessEntityID WHERE 5000.00 IN (SELECT Bonus FROM Sales.SalesPerson AS sp WHERE e.BusinessEntityID = sp.BusinessEntityID); GO

7 Select  SELECT dengan menggunakan ROW_NUMBER (ISO SQL:2003) SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY ProductID ASC) AS row_number, ProductID,SaleDate,SalePrice FROM SalesHistory ) foo WHERE row_number <= 200  Bisa digunakan sebagai limit

8 Select  Baca lebih lanjut:  http://msdn.microsoft.com/en-us/library/ms187731.aspx http://msdn.microsoft.com/en-us/library/ms187731.aspx  Baca juga tentang JOIN

9 Insert  Insert  Untuk menambah baris pada suatu tabel  Menambahkan data langsung isinya (urut dengan kolomnya)  INSERT INTO table_name VALUES (value1, value2, value3,...)  Menambahkan data dimana isi sesuai kolomnya (bisa tidak urut dengan kolomnya, atau hanya kolom tertentu saja)  INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

10 Insert  Menambahkan baris pada suatu tabel melalui seleksi INSERT california_authors (au_id, au_lname, au_fname) SELECT au_id, au_lname, au_fname FROM authors WHERE State = 'CA‘  Baca lebih lanjut lagi: http://msdn.microsoft.com/en- us/library/aa933206(SQL.80).aspx

11 Delete  Delete  Digunakan untuk menghapus record atau himpunan record (sesuai kondisi yang ditentukan) USE AdventureWorks2008R2; GO DELETE FROM Production.ProductCostHistory WHERE StandardCost > 1000.00; GO

12 Delete: Subquery  SQL-2003 Standard subquery USE AdventureWorks2008R2; GO DELETE FROM Sales.SalesPersonQuotaHistory WHERE BusinessEntityID IN (SELECT BusinessEntityID FROM Sales.SalesPerson WHERE SalesYTD > 2500000.00); GO  Transact-SQL extension USE AdventureWorks2008R2; GO DELETE FROM Sales.SalesPersonQuotaHistory FROM Sales.SalesPersonQuotaHistory AS spqh INNER JOIN Sales.SalesPerson AS sp ON spqh.BusinessEntityID = sp.BusinessEntityID WHERE sp.SalesYTD > 2500000.00; GO

13  Baca lebih lanjut  http://msdn.microsoft.com/en-us/library/ms189835.aspx http://msdn.microsoft.com/en-us/library/ms189835.aspx

14 Update  Update  Digunakan untuk mengubah record atau himpunan record (sesuai kondisi yang ditentukan) UPDATE authors SET state = 'PC', city = 'Bay City' WHERE state = 'CA' AND city = 'Oakland'

15  Baca lebih lanjut  http://msdn.microsoft.com/en- us/library/aa260662(SQL.80).aspx http://msdn.microsoft.com/en- us/library/aa260662(SQL.80).aspx

16 Constraint

17 Konsep Dasar Constraint  Entity Integrity  memastikan tidak ada entitas yg sama (duplikasi record/row) dalam satu tabel Primary Key constraint  Referential Integrity  Memastikan record tidak dapat dihapus, apabila digunakan di tabel lain Foreign Key constraint  Entity dan Referential Integrity bersamaan membentuk key integrity

18 Konsep Dasar Constraint  Domain Integrity  memastikan isi dari suatu kolom terbatas sesuai tipe, format, dan rentang yang dimungkinkan CHECK, UNIQUE, DEFAULT constraint Contoh: –Nama produk tidak boleh NULL. –Nama produk harus unik (unique). –Tanggal pemesanan tidak boleh hari esok. –Jumlah pemesanan produk harus lebih dari nol (0).  User-Defined Integrity  Digunakan untuk business-rule yang tidak masuk di entity, domain, referential integrity

19 Referential Integrity (lanjutan)  Referential Integrity Constraints  Mendefinisikan suatu aksi yang dilakukan apabila user menghapus atau memperbaharui primary key (dalam relationship primary key-foreign key)  Digunakan untuk menjaga konsistensi baris-baris data antara dua tabel yang saling mempunyai relasi

20 Referential Integrity (lanjutan)  Referential Integrity Constraints  NO ACTION aksi default bila tidak didefinisikan, bila ada penghapusan/ pengubahan maka akan dibatalkan dan error akan dibangkitkan  CASCADE Semua baris foreign key akan dihapus sesuai baris primary key yang dihapus  SET NULL Semua baris foreign key, nilainya akan berubah menjadi NULL. Syaratnya kolom foreign key harus memperbolehkan nilai NULL  SET DEFAULT Semua baris foreign key, nilainya akan berubah menjadi nilai default Syaratnya kolom foreign key harus mempunyai nilai default

21 Contoh CREATE TABLE Products ( ProductID TINYINT, ProductDescription VARCHAR(100), CONSTRAINT pk_ProductID PRIMARY KEY (ProductID) ) CREATE TABLE SalesHistory ( SaleID int IDENTITY(1,1) NOT NULL, ProductID TINYINT, SaleDate datetime NULL, SalePrice money NULL, CONSTRAINT pk_SaleID PRIMARY KEY (SaleID) CONSTRAINT fk_SalesHistoryProductID FOREIGN KEY (ProductID) REFERENCES Products(ProductID) ON DELETE CASCADE ON UPDATE CASCADE )

22 Contoh INSERT INTO Products (ProductID, ProductDescription) SELECT 1, 'BigScreen' UNION ALL SELECT 2, 'Computer' UNION ALL SELECT 3, 'PoolTable' GO DECLARE @i SMALLINT SET @i = 1 WHILE (@i <=100) BEGIN INSERT INTO SalesHistory(ProductID, SaleDate, SalePrice) VALUES(1, DATEADD(mm, @i, '3/11/1919'), DATEPART(ms, GETDATE()) + (@i + 57)) INSERT INTO SalesHistory(ProductID, SaleDate, SalePrice) VALUES(2, DATEADD(mm, @i, '3/11/1927'), DATEPART(ms, GETDATE()) + (@i + 13)) INSERT INTO SalesHistory(ProductID, SaleDate, SalePrice) VALUES(3, DATEADD(mm, @i, '3/11/1908'), DATEPART(ms, GETDATE()) + (@i + 29)) SET @i = @i + 1 END

23 Contoh  Apa yang terjadi bila pada tabel Products, baris dengan ProductID=1 diganti menjadi ProductID=4?  Apa yang terjadi bila pada tabel Products, baris dengan ProductID=4 dihapus?  Bila ON DELETE CASCADE diubah menjadi ON DELETE SET NULL atau SET DEFAULT atau NO ACTION apa yang terjadi?

24 Domain Integrity: Unique Constraint  Unique constraint menggunakan index untuk memastikan suatu kolom (atau himpunan kolom) tidak mempunyai isi yang sama (terduplikasi)  Column constraint CREATE TABLE Products_2 ( ProductID int PRIMARY KEY, ProductName nvarchar (40) Constraint IX_ProductName UNIQUE )  Table constraint CREATE TABLE Products_2 ( ProductID int PRIMARY KEY, ProductName nvarchar (40), CONSTRAINT IX_ProductName UNIQUE(ProductName) )

25 Domain Integrity: Unique Constraint  Untuk menambahkan constraint menggunakan alter table: CREATE TABLE Products_2 ( ProductID int PRIMARY KEY, ProductName nvarchar (40) ) ALTER TABLE Products_2 ADD CONSTRAINT IX_ProductName UNIQUE (ProductName)  Contoh error ketika ada pelanggaran constraint Server: Msg 1505, Level 16, State 1, Line 1 CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 2. Most significant primary key is 'Hamburger'. Server: Msg 1750, Level 16, State 1, Line 1 Could not create constraint. See previous errors. The statement has been terminated.

26 Domain Integrity: Check Constraint  Check Constraint berisi ekspresi yang akan dievaluasi ketika menambah atau mengubah suatu record  Jika evaluasi ekspresi bernilai false, maka record tidak akan disimpan dalam database  Membuat check constraint sama seperti dlm membuat klausa WHERE  Dapat menggunakan operator (, =,<>,=) serta BETWEEN, IN, LIKE, NULL dan kombinasi AND, OR  Terdiri dari dua bagian:  Name  nama dari constraint  Predicate  kondisi aktual yang digunakan dalam pengecekan

27 Domain Integrity: Check Constraint  Column constraint CREATE TABLE Products_2 ( ProductID int PRIMARY KEY, UnitPrice money CHECK(UnitPrice > 0 AND UnitPrice < 100) )  Table constraint CREATE TABLE Customers_2 ( CustomerID int, Phone varchar(24), Fax varchar(24), CONSTRAINT CK_PhoneOrFax CHECK(Fax IS NOT NULL OR PHONE IS NOT NULL) )

28 Batasan Check Constraint  Ada batasan dalam check constraint:  Tidak bisa mereferensi/merujuk ke row yang berbeda dalam satu tabel  Tidak bisa mereferensi/merujuk ke kolom pada tabel yang berbeda

29 Domain Integrity: Default Constraint  Default constraint digunakan sebagai nilai default pada suatu kolom ketika dalam statement INSERT isi nilainya tidak ditetapkan CREATE TABLE Orders_2 ( OrderID int IDENTITY NOT NULL, EmployeeID int NOT NULL, OrderDate datetime NULL DEFAULT(GETDATE()), Freight money NULL DEFAULT (0) CHECK(Freight >= 0), ShipAddress nvarchar (60) NULL DEFAULT('NO SHIPPING ADDRESS'), EnteredBy nvarchar (60) NOT NULL DEFAULT(SUSER_SNAME()) ) INSERT INTO Orders_2 (EmployeeID, Freight) VALUES(1, NULL) ???


Download ppt "Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Data Manipulation Language Basis Data 2."

Presentasi serupa


Iklan oleh Google