1 / 50

SQL Structured Query Language

SQL Structured Query Language. Daha Elle tutulur. Standart sorgu dilidir ve bircok RDBS tarfından kullanılır . Standart ??? Neden Çok fazla VTYS var paralı / ücretsiz Her birisi kendi dilini kullansa bir VT diğerine geçmek mümkün olmazdı .

bruno-munoz
Download Presentation

SQL Structured Query Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQLStructured Query Language

  2. Daha Elle tutulur • Standartsorgudilidirvebircok RDBS tarfındankullanılır. • Standart??? Neden • Çokfazla VTYS varparalı/ücretsiz • Her birisikendidilinikullansabir VT diğerinegeçmekmümkünolmazdı. • Buna rağmenufakfarklılıklar gene de vardır. • IBM tarafından R sistemiadıaltındageliştirildi. • Ilişkiselcebirilealakası YOKTUR. Amabenzerliklerivardır.

  3. SQL • VTYS den bağımsızdır. • DDL Data definition Language • Tables, Constraints, index vb. • DML Data Manupulation Language • CRUD işlemleri • SQL 2 standartıbir SCHEMA getirmiştir. • Create SCHEMA UnivAutherization dean; • Dean adındakikullnıcıyaUnivadındakişemayayetkiverilmiştir. • Güvenlikvegüvenlikamaçlıkullanılır.

  4. Catalog • Schema LAR kolleksiyonunaverilen ad • Referencilaintegraty

  5. Table Oluşturma • Create Table [schema.] Tablo_adı [{ sütüntanımları}] • Create Table Univ.Department;

  6. SQL2 nindesteklediğiVeriTipleriveDomainleri • Numeric (int, smallint, float, real, double precision) • Formatedsayılar( decimal(I,j), numeric(i,j)) • Karakterlerdizisi ( sabituzunluklta char(n) değişenuzunluklardavarchar(n) • Bit dizisi ( sabituzunlukta bit(n) veyadeğişenuzunlukta bit varying(n) • Date, time ve timestamp • Text …..

  7. Constraint ve Default Değerler • Not NULL .. Null değerialamaz • DEFAULT .. Değergirilmediğinealınmasıistenendeğeriifadeeder • PRIMARY KEY.. • UNIQUE • FOREIGHN KEY, refencailintegreteyiçin. Varolanbirkaydareferansverilmesi

  8. Örnek Create Table Create Table Muhasebe.Calisan( Tcno char(11) NOT NULL, UNIQUE CalNoint(6) NOT NULL, Ad varchar(40), Cinsiyet Char, DT Date, AdressVarchar(100), Maaş decimal(8,2), RaporVerirint(6) Primary Key (EMPNO), Foreign Key (RaporVerir) REFERENCES Muhasebe.Calisan(CalNo) );

  9. TablonunSilinmesi • DROP TABLE tabloadı [DEPENDENT {Cascade|Restrict}]; • CASCADE: foreign key kısıtaolantablovarise o da silinecektir. • RESTRICT: tablokimsetarafındanreferansedilmiyoriseancak o zamansilinmesineizinverir.

  10. SCHEMA silinmesi • Tabloyabenzer • DROP SCHEMA şema_adı [Cascade|Restrict}]; • Cascade: şemaiçindekielemanlarlabirlikte SİL • Restrict: ŞemaiçindeelemanyoksaSiL

  11. TabloyuDeğiştirmek • Tabloyudeğilaslındaonuntanımınıdeğiştiriyoruz • ALTER ALTER TABLE Muhasebe.Calisan ADD JOB varchar(20) ZateniçindeVerivarsa ??? JOB sütünunda ne değeriolur Eğer Not NULL kısıtıkullanarakyapmışşsam ne olur?

  12. DEğiştirme • Mutlaka DEFAULT değerleritanımlamak ZORUNDA KALIRIM • SutunSilmek • Alter Table Muhasebe.Calisan • Drop Tcno Cascade; • Restrict de kullanılabilirdi.

  13. DeğiştirmeDevam • Alter Table Muhasebe.Calisan • ALTER RaporVerir SET DEFAULT “007”; • Tüm NULL değerlergüncellenir. • Alter Table Muhasebe.Calisan • ALTER RaporVerir DROP DEFAULT;

  14. SQL Select işlemi • En Karmaşık SQL işlemidir • Çokfarlıformlardaolabilir • TemelgöreviVerilerialabilmektir. • Ilişkisel CEBİRDEKİ SELECT ile ALAKASI YOKTUR  • Select aynıkayıtlarınçoklukullnımınaizinverir.

  15. SELECT • SELECT FROM WHERE • Select <nitelik/alanlistesi> • FROM < tabloListesi> • WHERE <Şartlar> • Select CalNo, Ad From Muhasebe.Calisan • Where RaporVerir=‘007’;

  16. Select • SUPPLIES bölümününbaşındakikişininadınedir? SELECT Calisan.Name FROM Calisan, BOLUMLER WHERE EMPNO=HEAD AND BOLUMLER.NAME=‘SUPPLIES’ ;

  17. Select • Ahmet Çelikadlıçalışanınraporverdiğikişkimdir? SELECT calisan.Ad From Calisan, Calisan WHERE Calisan.Ad=‘Ahmet Çelik’ AND Calisan.RaporVerir=Calisan.CalNo ALLIASING gereklidir.

  18. Problem çözüldü SELECT calisan.Ad From Calisan, Calisan As BOSS WHERE Calisan.Ad=‘Ahmet Çelik’ AND Calisan.RaporVerir=BOSS.CalNo

  19. Where siz SELECT • İlişkiselcebirdeki PROJECT e benzer • Select AD, TCNo • From CALISAN • YabirdenFazlatabloadıverilirse ne olur? • Select Calisan.AD, Bolumler.AD • From Calısan, Bolumler • KARtezyenÇarpım

  20. Select • * : tum alanlarıgetirilecek. • Select * • From Calisan • Where Ad=“Ahmet Cakar” Select * from Calısan, Bolumlar

  21. TablolarVekümler • TablolarnasılGörülmektedir. • İlişkiselCebirtabloları KÜME olarakgörürken • SQL tablolara (ilişkilere) bags veyaçoklukümeşeklinedavranır. • Kayıtlarbirtablodaçokkezgörünebilir. Bu yüzden DISTINCT anahtarkelimesikullanılarakerişilebilir. • Çiftkayıtlarıihmaletme: • Select DISTINCT AD • From CALISAN

  22. Union, Intersection, Except • Bu teorikyaklaşımlarilişkilerin KÜME olarakdeğerlendirmektedir. • Select Distinct Ad • From Calisan • Where Maas>3000 • UNION • Select Distinct Ad • From Calisan • Where Maas<1500

  23. EğerÇiftkayıtlaraizinvarsa • Veonlarıdakullanmakistersem • UNION ALL ( disjoint union için • INTERSECT ALL ( bag kesişimiiçin • EXCEPT ALL ( bag farkıiçin

  24. Kıyaslama LIKE • % ve _ karakterlerini LIKE kıyaslayıcıanahtarkelimesiilebirliktekullanabilir • Select * • From calisan • Where Ad LIKE ‘%al%’ • … Where AD LIKE ‘_ALG__’

  25. Aritmetikişlemler • */-+ işlemler • Select 1.1*Maas as Result , Maas , Result-Maas • From Calisan • Anlamı 10% zamyapsaknasılgözükürdü

  26. Örnek Create Table Create Table Muhasebe.Calisan( Tcno char(11) NOT NULL, UNIQUE CalNoint(6) NOT NULL, Ad varchar(40), Cinsiyet Char, DT Date, AdressVarchar(100), Maaş decimal(8,2), RaporVerirint(6) Primary Key (EMPNO), Dnoint(6) Foreign Key (RaporVerir) REFERENCES Muhasebe.Calisan(CalNo) );

  27. ÖrnekTabloBolumler • Create Muhasebe.Bolumler ( Dnumberint(6) NOT NULL, Ad VarChar(20), AdresVarChar(60), Yoneticisiint(6), Primary KEY (Dnumber) Foreign Key Yoneticisi REFERENCES Calisan(CALNO) );

  28. Aritmetikişlemler • BETWEEN • Select * • From Calisan • Where Maas Between 3000 and 4000; • ORDER BY • Select * • From Calisan • Where Maas Between 3000 and 4000; • Order by Ad, CalNo;

  29. Explicit Set • Select Name • From Employee • Where ReportsTo in (‘007’, ‘008’, ‘009’)

  30. Checking NULL values • Select E.Name , E.Salary • From Employee as E • Where Exists ( Select Empno From Employee • Where E.ReportsTo=EmpNo AND • ReportsTo As NULL) • Raporvermeyenkimseler (Müdürlerin )

  31. ÖzniteliğinAdınıDeğiştirme • Select Name As [Employee Name] • From Employee, Eğerboşlukkonulmakistenrise […] işaretleriarasınaalınmalıdır.

  32. İçiçeSorgular Nested Query • IlişkiselCebirdeolduğugibibirilişkiüzerindekiişleminsonucu gene birlişkidir. • SQL de debirtabloileyapılanbirişleminsonucu gene birtablodur. • Select AD • From Bolumler • Where Dnumber In • ( Select DNO • From Calısan • Where Maas>3000);

  33. Içiçedevam • ALL • Select AD • From Calısan • Where Salary > ALL • ( Select Salary • From Calısan • Where RaporVerir=‘007’);

  34. Içiçesorgularda Alias

  35. Join (kartezyençarpım DEĞİLDİR) • Select AD, Adres • From Calisan JOIN Bolumler ON DNO=Dnumber • Where DepartmentName=‘Research’

  36. Join (Natural Join) m • Ikiilişki de deAynıadasahipnitelikolmalıdır • Select Calısan.Ad, Bolumler.Ad • From Calısan NATURAL JOIN BOLUMLER

  37. OUTER Join Left outer JOIN Right outer JOIN Full outer JOIN

  38. Aggregate Fonks. • Select Count(Salary), Min(salary), Max(salary), Sum(Salary), AVG(Salary ) • From Employee • Count(*) da kullanılabilir.

  39. Select E.Name • From Employee AS E • Where (Select Count(*) from DepartmentID where D.Head=E.EmpNo) >=2

  40. Group By • Select Dno, Count(*), Avg(salary) • From Employee • Group By Dno;

  41. Having • Select Dno, Count(*), Avg(salary) • From Employee • Group By Dno; • Having count(*)>20 • Having filitrelemesiaggrageteözelliğinegöre

  42. Having mi Where mi? • En büyükFark • Where : bağımsızkayıtlarüzerinde • Having : grupkayıtlarıüzerindeetkilidir.

  43. SELECT in yazılımı • Select • From • Where • Group by • Having • Order by

  44. INSERT • Insert into TabloAdı [( Alan adları )] • Values( Değerler) • Insert into Employee • Values (‘5001’, 004, ‘Ali Kasap’, ‘E’, ‘9-5-1980’, ‘Kadıköy’, 3000, 007, 3) • Alan adlarıbelirtildiğindealanlarınbirkısmınabilgigirişiyaplacakanlamıçıkmaktadır. • Insert into Employee(name, Addr, Dno) • Values (‘ hulyaK’, ‘üsküdar’, 5) • Girilmeyendeğerlere DEFAULT değerlervarsaatanır. Yoksa NULL atanır.

  45. Insert • Create table EMD( • EmployeeNo as int, • Manager as int, • DepartmentNo as int • ) • Insert into EMD • Select E.EmpNo as EmployeeNo, E.ReportsTo as Manager, D.Dno as DepartmentNo From Employee s E Join Department as D on E.Dno= D.Dno

  46. KayıtlarınSilinmesi • Delete From Where • Delete From Employee Where EmpNo=007; birkayıtsiler • Delete From Employee Where Dno in ( Select Dnumber From Department where Head =007); Birdenfazlakayıtsilebilir. DELETE FROM Employee Tümkayıtlarısiler

  47. KayıtlarıGüncelleme • Update Set Where • Update Employee • Set Salary=Salary *1.1 • Where Reports To=007

  48. View (sanalTablolar) • Fizikselolarak DB içindeolan TABLOLARA BASE TABLE adıverilir. • Bir View veyasanaltablobaşka BASE tablolardanveyagörünümlerdeneldeedilmektedir. • Görünümlerveritabanındakayıtlıolaraktutulmasınaihtiyaçyoktur. (fakatsorularıkaydedilir) • View üzerindeGüncellemeişlemisınırlıdıramaistenilensorgugerçekleştirilebilir.

  49. View Oluşturmak • Create View EMD(EMPL, MNGR, DEPT) • As • Select E.Name, M.Name, D.Name • From Employee as E, Employee as M, Department as D • Where E.Reportsto=M.Empno • AND • E.DNO=D.Number

  50. View Özellikleri • View sorguolaraksaklandığıiçin her zamangünceldir. • Karakterizasonusorgusırasındayapılır • View ler DROP komutuilesilinebilir. • Viewlerinetkinkullanımınadikkatetmekgereklidir.

More Related