Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

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

Presentasi serupa


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

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

2 Function  3 macam function  Rowset function Fungsi ini mengembalikan sebuah objek yang dapat digunakan sebagai table reference dalam statement TSQL  Aggregate function Fungsi ini beroperasi dari sejumlah nilai tapi menghasilkan nilai ringkas, tunggal.  Scalar function Fungsi ini mengoperasikan suatu nilai dan menghasilkan nilai tunggal

3 Rowset Function  CONTAINSTABLE  untuk full text searching yg mengembalikan nilai relevansi ranking (RANK) berdasarkan ketepatan atau fuzzy (kurang ketepatan) yang cocok ke kata atau frasa tunggal CONTAINSTABLE  FREETEXTTABLE  untuk full text searching berdasarkan makna bukan kata FREETEXTTABLE  OPENDATASOURCE  untuk membuat koneksi datasource tanpa menggunakan nama linked server OPENDATASOURCE  OPENQUERY  untuk mengakses dan meng-query pada linked server OPENQUERY  Misal mengakses dan meng-query database Oracle (yang telah dibuat linked server) menggunakan OLE DB  OPENROWSET  untuk mengakses table di linked server, remote data menggunakan semua informasi koneksi OLE DB OPENROWSET  Misalnya mengakses dan meng-query file database access,excel lewat TSQL  OPENXML  untuk mengakses data pada XML OPENXML

4 CONTAINSTABLE USE Northwind GO SELECT FT_TBL.CategoryName, FT_TBL.Description, KEY_TBL.RANK FROM Categories AS FT_TBL INNER JOIN CONTAINSTABLE(Categories, Description, 'ISABOUT (breads weight (.8), fish weight (.4), beers weight (.2) )' ) AS KEY_TBL ON FT_TBL.CategoryID = KEY_TBL.[KEY] ORDER BY KEY_TBL.RANK DESC GO

5 FREETEXTTABLE USE Northwind SELECT FT_TBL.CategoryName, FT_TBL.Description, KEY_TBL.RANK FROM Categories AS FT_TBL INNER JOIN FREETEXTTABLE(Categories, Description, 'sweetest candy bread and dry meat') AS KEY_TBL ON FT_TBL.CategoryID = KEY_TBL.[KEY] GO

6 OPENDATASOURCE SELECT * FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=ServerName;User ID=MyUID;Password=MyPass' ).Northwind.dbo.Categories

7 OPENQUERY EXEC sp_addlinkedserver 'OracleSvr', 'Oracle 7.3', 'MSDAORA', 'ORCLDB' GO SELECT * FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles') GO

8 OPENROWSET USE pubs GO SELECT a.* FROM OPENROWSET('MSDASQL', 'DRIVER={SQL Server};SERVER=seattle1;UID=manager;PWD=My Pass', pubs.dbo.authors) AS a ORDER BY a.au_lname, a.au_fname GO

9 OPENXML int varchar(1000) =' ' --Create an internal representation of the XML document. EXEC -- Execute a SELECT statement that uses the OPENXML rowset provider. SELECT * FROM OPENXML '/ROOT/Customer',1) WITH (CustomerID varchar(10), ContactName varchar(20))

10 Aggregate Function  Fungsi Aggregate hanya diperbolehkan sebagai ekspresi di:  Pada statemen SELECT (baik subquery atau outer query).  Pada klausa COMPUTE atau COMPUTE BY.  Pada klausa HAVING.  Antara lain:  BINARY_CHECKSUM, CHECKSUM, CHECKSUM_AGG  COUNT, COUNT_BIG  GROUPING  AVG, MAX, MIN, SUM, STDEV,STDEVP, VAR, VARP

11 Scalar Function

12 Function  Berdasarkan hasilnya  Deterministic  selalu menghasilkan nilai yang sama tiap kali dipanggil dengan nilai input tertentu Semua fungsi built-in aggregate dan string deterministic (kecuali CHARINDEX atau PATINDEX) Contoh: SIN, COS, FLOOR, ISNULL, POWER, DAY, MONTH, YEAR,  Non Deterministic  bisa menghasilkan nilai yang berbeda tiap kali dipanggil dengan nilai input tertentu Semua fungsi configuration, cursor, metadata, security, sistem statistik Contoh: GETDATE, IDENTITY, DATENAME, USER_NAME

13 Determinisme Fungsi  Determinisme fungsi menentukan apakah mereka dapat digunakan dalam computed column dan indexed view.  Indeks harus selalu menghasilkan hasil yang konsisten. Jadi, hanya fungsi deterministik yg dapat digunakan untuk mendefinisikan computed column dan view yang diindeks.

14 User Defined Function (UDF)

15 User Defined Function  Fungsi yang dibuat user, berupa routine menggunakan TSQL atau CLR (Common Language Runtime) yang menerima parameter, melakukan aksi seperti kalkulasi kompleks, dan menghasilkan nilai balik.  Nilai balik dapat berupa nilai skalar (besaran tunggal) atau sebuah tabel  UDF dapat digunakan:  Dalam klausa SELECT  Dalam pendefinisian UDF lain  Untuk CHECK Constraint  Untuk mendefinisikan sebuah kolom  Untuk menggantikan Stored Procedure  Meningkatkan fungsionalitas Indexed View

16 Deklarasi Fungsi  Syntax singkat: CREATE FUNCTION nama_fungsi RETURNS tipe_data_hasil_balik BEGIN badan_fungsi RETURN nilai/variable scalar END

17 Contoh Fungsi  Contoh : CREATE FUNCTION INT) RETURNS INT BEGIN RETURN END

18 Contoh Fungsi: Kalkulasi ISO Week USE AdventureWorks2008R2; GO IF OBJECT_ID (N'dbo.ISOweek', N'FN') IS NOT NULL DROP FUNCTION dbo.ISOweek; GO CREATE FUNCTION dbo.ISOweek datetime) RETURNS int WITH EXECUTE AS CALLER AS BEGIN int; as CHAR(4))+'0104'); IF SET AS CHAR(4))+'12'+ AS CHAR(2)))+1; IF AND 28)) END; GO SET DATEFIRST 1; SELECT dbo.ISOweek(CONVERT(DATETIME,'12/26/2004',101)) AS 'ISO Week';

19 Contoh Fungsi: Hasil Balik Berupa Table USE AdventureWorks2008R2; GO IF OBJECT_ID (N'Sales.ufn_SalesByStore', N'IF') IS NOT NULL DROP FUNCTION Sales.ufn_SalesByStore; GO CREATE FUNCTION Sales.ufn_SalesByStore int) RETURNS TABLE AS RETURN ( SELECT P.ProductID, P.Name, SUM(SD.LineTotal) AS 'Total' FROM Production.Product AS P JOIN Sales.SalesOrderDetail AS SD ON SD.ProductID = P.ProductID JOIN Sales.SalesOrderHeader AS SH ON SH.SalesOrderID = SD.SalesOrderID JOIN Sales.Customer AS C ON SH.CustomerID = C.CustomerID WHERE C.StoreID GROUP BY P.ProductID, P.Name ); GO SELECT * FROM Sales.ufn_SalesByStore (602);


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

Presentasi serupa


Iklan oleh Google