SQL Structured Query Language

Slides:



Advertisements
Benzer bir sunumlar
T sql-diğer komutlar Metin Akbulut.
Advertisements

4 SQL- Yapısal Sorgulama Dili
Tablo oluşturma İlk olarak tabloları oluşturmamız gerekli..
III.Oturum: SQL ile Verileri İşlemek
MySQL Veritabanı Sunucusu ve MySQL Veritabanı Kullanımı
SQL (Structured Query Language)
SQL (Structured Query Language)
SQL Structured Query Language (Yapısal sorgulama dili)
SQL KOMUTLARI.
VERİ TABANI YÖNETİMİ Ders 10: Oracle Nesneleri
SQL Komutlar 5 Sibel SOMYÜREK.
İndeksler Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
Alt Sorgular Veritabanı 2.
Veri Tabanı Yönetim Sistemleri
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Veri Tabanı Yönetim Sistemleri
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
BÖLÜM 6 SQL SERVER KOMUTLARI.
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
SQL (STRUCTURED QUERY LANGUAGE)
11 ekim 2011 VTYS –II Dersi. Kalıp İfadelerle Sorgu (Pattern) Eğer bir sözel verinin sadece belli kriterlere uyanlarını seçeceksek sütun_adı LIKE kalıp.
VIEW (BAKIŞ) OLUŞTURMA
VIEW lerle çalışmak 11.BÖLÜM.
SQL Dili ve MySQL Komutları
SQL’e Giriş ve SELECT Komutu
GÖRÜNÜŞLER (VİEWS). Görünüş Temel tablolar üzerinde yeni bir tablo almak için yapılan işlemlerin sonucu Sanal tablo- gerçekten veri tabanında yoktur ve.
MySQL Operatörleri ve Fonksiyonları
SQL SERVER 2008 Yücel YILDIRIM.
VeriTabanı Uygulama.
SQL (Structured Query Language). MySQL de Temel Komutlar : CREATE DATABASE isim; verilen isimde bir veri tabanı oluşturur. SHOW DATABASES; Tüm yaratılan.
SQL Sibel SOMYÜREK.
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
SQL Komutları (2) Uzm. Murat YAZICI.
FONKSİYONLAR İbrahim Onur Sığırcı.
RAISE RECORD/CURSOR TRIGGER
Veri Tabanı Dersi 4. Laboratuvarı
Veritabanlarına ve SQL'e Giriş Devrim GÜNDÜZ Kivi Bilişim Teknolojileri -
SQL’ e Giriş Uzm. Murat YAZICI.
SİSTEM VERİTABANLARI. Sistem veritabanlarını tanıma. Kendi Login’imizi oluşturma Neler İşleyeceğiz?
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
K ıSıT -V ıEW -S EQUENCE U NıON -I NTERSECTıON -E XCEPT E XıSTS -I N İbrahim Onur Sığırcı.
Yeni Veritabanı Oluşturma
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
5. Temel SQL (Basic SQL) 5.1. SQL Veri Tanımlama ve Veri Tipleri (SQL Data Definition and Data Types) SQL de Şema ve Katalog Kavramı (Schema and.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Arş. Gör. Pınar CİHAN.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Constraint-View-Sequence Union-Intersection-Except Exısts-In Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
14.DERS Örnekler, Sorular BUKET DOĞAN.
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
DML ile veri ekleme, silme ve değiştirme
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-2
Sorgu / dml / ddl komutları
RAISE RECORD/CURSOR TRIGGER
SQL (STRUCTURED QUERY LANGUAGE)
SQL Server - Views.
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
Sunum transkripti:

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ı. Buna rağmen ufak farklılıklar gene de vardır. IBM tarafından R sistemi adı altında geliştirildi. Ilişkisel cebir ile alakası YOKTUR. Ama benzerlikleri vardır.

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 Univ Autherization dean; Dean adındaki kullnıcıya Univ adındaki şemaya yetki verilmiştir. Güvenlik ve güvenlik amaçlı kullanılır.

Catalog Schema LAR kolleksiyonuna verilen ad Referencila integraty

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

SQL2 nin desteklediği Veri Tipleri ve Domainleri Numeric (int, smallint, float, real, double precision) Formated sayılar( decimal(I,j), numeric(i,j)) Karakterler dizisi ( sabit uzunluklta char(n) değişen uzunluklarda varchar(n) Bit dizisi ( sabit uzunlukta bit(n) veya değişen uzunlukta bit varying(n) Date, time ve timestamp Text …..

Constraint ve Default Değerler Not NULL .. Null değeri alamaz DEFAULT .. Değer girilmediğine alınması istenen değeri ifade eder PRIMARY KEY.. UNIQUE FOREIGHN KEY, refencail integretey için. Var olan bir kayda referans verilmesi

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

Tablonun Silinmesi DROP TABLE tablo adı [DEPENDENT {Cascade|Restrict}]; CASCADE: foreign key kısıta olan tablo var ise o da silinecektir. RESTRICT: tablo kimse tarafından referans edilmiyor ise ancak o zaman silinmesine izin verir.

SCHEMA silinmesi Tablo ya benzer DROP SCHEMA şema_adı [Cascade|Restrict}]; Cascade: şema içindeki elemanlarla birlikte SİL Restrict: Şema içinde eleman yoksa SiL

Tabloyu Değiştirmek Tabloyu değil aslında onun tanımını değiştiriyoruz ALTER ALTER TABLE Muhasebe.Calisan ADD JOB varchar(20) Zaten içinde Veri varsa ??? JOB sütünunda ne değeri olur Eğer Not NULL kısıtı kullanarak yapmışşsam ne olur?

DEğiştirme Sutun Silmek Restrict de kullanılabilirdi. Mutlaka DEFAULT değerleri tanımlamak ZORUNDA KALIRIM Sutun Silmek Alter Table Muhasebe.Calisan Drop Tcno Cascade; Restrict de kullanılabilirdi.

Değiştirme Devam Alter Table Muhasebe.Calisan ALTER RaporVerir SET DEFAULT “007”; Tüm NULL değerler güncellenir. ALTER RaporVerir DROP DEFAULT;

SQL Select işlemi En Karmaşık SQL işlemidir Çok farlı formlarda olabilir Temel görevi Verileri alabilmektir. Ilişkisel CEBİRDEKİ SELECT ile ALAKASI YOKTUR  Select aynı kayıtların çoklu kullnımına izin verir.

SELECT SELECT FROM WHERE Select <nitelik/alan listesi> FROM < tablo Listesi> WHERE <Şartlar> Select CalNo, Ad From Muhasebe.Calisan Where RaporVerir=‘007’;

Select SUPPLIES bölümünün başındaki kişinin adı nedir? SELECT Calisan.Name FROM Calisan, BOLUMLER WHERE EMPNO=HEAD AND BOLUMLER.NAME=‘SUPPLIES’ ;

Select Ahmet Çelik adlı çalışanın rapor verdiği kiş kimdir? SELECT calisan.Ad From Calisan, Calisan WHERE Calisan.Ad=‘Ahmet Çelik’ AND Calisan.RaporVerir=Calisan.CalNo ALLIASING gereklidir.

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

Where siz SELECT İlişkisel cebirdeki PROJECT e benzer Select AD, TCNo From CALISAN Ya birden Fazla tablo adı verilirse ne olur? Select Calisan.AD, Bolumler.AD From Calısan, Bolumler KARtezyen Çarpım

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

Tablolar Ve kümler Tablolar nasıl Görülmektedir. İlişkisel Cebir tabloları KÜME olarak görürken SQL tablolara (ilişkilere) bags veya çoklu küme şekline davranır. Kayıtlar bir tabloda çok kez görünebilir. Bu yüzden DISTINCT anahtar kelimesi kullanılarak erişilebilir. Çift kayıtları ihmal etme: Select DISTINCT AD From CALISAN

Union, Intersection, Except Bu teorik yaklaşımlar ilişkilerin KÜME olarak değerlendirmektedir. Select Distinct Ad From Calisan Where Maas>3000 UNION Where Maas<1500

Eğer Çift kayıtlara izin varsa Ve onlarıda kullanmak istersem UNION ALL ( disjoint union için INTERSECT ALL ( bag kesişimi için EXCEPT ALL ( bag farkı için

Kıyaslama LIKE % ve _ karakterlerini LIKE kıyaslayıcı anahtar kelimesi ile birlikte kullanabilir Select * From calisan Where Ad LIKE ‘%al%’ … Where AD LIKE ‘_ALG__’

Aritmetik işlemler */-+ işlemler Select 1.1*Maas as Result , Maas , Result-Maas From Calisan Anlamı 10% zam yapsak nasıl gözükürdü

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

Örnek Tablo Bolumler Create Muhasebe.Bolumler ( Dnumber int(6) NOT NULL, Ad VarChar(20), Adres VarChar(60), Yoneticisi int(6), Primary KEY (Dnumber) Foreign Key Yoneticisi REFERENCES Calisan(CALNO) );

Aritmetik işlemler BETWEEN ORDER BY Select * From Calisan Where Maas Between 3000 and 4000; ORDER BY Order by Ad, CalNo;

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

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) Rapor vermeyen kimseler (Müdürlerin )

Özniteliğin Adını Değiştirme Select Name As [Employee Name] From Employee, Eğer boşluk konulmak istenrise […] işaretleri arasına alınmalıdır.

İç içe Sorgular Nested Query Ilişkisel Cebirde olduğu gibi bir ilişki üzerindeki işlemin sonucu gene bir lişkidir. SQL de de bir tablo ile yapılan bir işlemin sonucu gene bir tablodur. Select AD From Bolumler Where Dnumber In ( Select DNO From Calısan Where Maas>3000);

Iç içe devam ALL Select AD From Calısan Where Salary > ALL ( Select Salary From Calısan Where RaporVerir=‘007’);

Iç içe sorgularda Alias

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

Join (Natural Join) m Iki ilişki de de Aynı ada sahip nitelik olmalıdır Select Calısan.Ad, Bolumler.Ad From Calısan NATURAL JOIN BOLUMLER

OUTER Join Left outer JOIN Right outer JOIN Full outer JOIN

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

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

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

Having Select Dno, Count(*), Avg(salary) From Employee Group By Dno; Having count(*)>20 Having filitrelemesi aggragete özelliğine göre

Having mi Where mi? En büyük Fark Where : bağımsız kayıtlar üzerinde Having : grup kayıtları üzerinde etkilidir.

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

INSERT Insert into Tablo Adı [( 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ğinde alanların bir kısmına bilgi girişi yaplacak anlamı çıkmaktadır. Insert into Employee(name, Addr, Dno) Values (‘ hulya K’, ‘üsküdar’, 5) Girilmeyen değerlere DEFAULT değerler varsa atanır. Yoksa NULL atanır.

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

Kayıtların Silinmesi DELETE FROM Employee Tüm kayıtları siler Delete From Where Delete From Employee Where EmpNo=007; bir kayıt siler Delete From Employee Where Dno in ( Select Dnumber From Department where Head =007); Birden fazla kayıt silebilir. DELETE FROM Employee Tüm kayıtları siler

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

View (sanal Tablolar) Fiziksel olarak DB içinde olan TABLOLARA BASE TABLE adı verilir. Bir View veya sanal tablo başka BASE tablolardan veya görünümlerden elde edilmektedir. Görünümler veri tabanında kayıtlı olarak tutulmasına ihtiyaç yoktur. (fakat soruları kaydedilir) View üzerinde Güncelleme işlemi sınırlıdır ama istenilen sorgu gerçekleştirilebilir.

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

View Özellikleri View sorgu olarak saklandığı için her zaman günceldir. Karakterizasonu sorgu sırasında yapılır View ler DROP komutu ile silinebilir. Viewlerin etkin kullanımına dikkat etmek gereklidir.