Sayfalar

TSql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
TSql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

9 Eylül 2019 Pazartesi

SQL View Tablolar


View Özellikleri:
- Genellikle karmaşık sorguların tekbir sorgu haline getirilip kullanılmasıdır.
- Bu amaçla raporlama işlemlerinde kullanılmaktadırlar.
- Aynı zamanda güvenlik amacı ile orjinal VT 3. kişilerden korunması amacı ile de kullanılmaktadırlar.

-Herhangi bir sorguyu tablo haline getirirek , bu tablo üzerinden işlemler yapabiliriz.
-ÖNEMLİ!: Insert, Update, Delete sorguları ile bu tabloda değişiklikler yapılabilir fakat bu değişiklikleri fiziksel tabloya yani gerçek verinin çekildiği tabloya yansıtılar. 
-View yapıları fiziksel yani VT'ınına kaydedilen tablolardır.
-View'lar normal tablolara göre daha yavaş çalışırlar.
-View içinde OrderBy kullanılamaz! Ancak View üzerinden Select alınırsa kullanılır.
    SELECT * FROM  VW_SATISTOPLAMI  ORDER BY Total vb...


CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition




ÖRNEK 1:

CREATE VIEW SampleViewOfPersoneller AS
SELECT * FROM Personeller

----------------------------------------------------------- 

Önemli!! Eğer View üzerinde bir alan değiştrilirse Personeller tablosunda da bu alanlar değişecektir!!
UPDATE SampleViewOfPersoneller SET Adres='Şişli 19 Mayıs Mah.'  

WHERE komutunu UNUTTUNUZ Orjinal Personeller Tablosunda ki tüm tablo verileri değişti!! Yedek almadıysanız Geçmiş olsun!!

Ana Tabloda bir değişiklik yapıldığında Örn bir kolon tipi değiştiğinde bu tabloyu kullanan View'larda hata alarız. Bunu önleme için oluşturulan view'lar With Schemabinding komutu ile yaratılırsa, Ana tabloda bir değişiklik yapılırken etkilenen tablolar için bir uyarı alabiliriz. Creat sırasında Ana tablo çağırılıken dbo. namespace'i ile çağrılmalıdır.


CREATE VIEW SampleViewOfPersoneller AS
WITH SCHEMABINDING
SELECT * FROM dbo.Personeller


-------------------------------------------------------------- 


ÖRNEK2:

CREATE VIEW VW_SATISTOPLAMI AS

SELECT P.Adi,P.SoyAdi, SUM(SD.BirimFiyati*SD.Miktar) Total FROM Personeller P
JOIN Satislar S ON S.PersonelID= P.PersonelID
JOIN [Satis Detaylari] SD ON SD.SatisID= S.SatisID
GROUP BY P.Adi,P.SoyAdi



 

TSql - Constraints


CONSTRAINTS

Contraints tablolarda ki kısıtlamaları, kuralları belirlemek için kullanılırlar. Genellilke tablo yaratılırken yada alter komutu ile kullanılırlar.

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
);



ALTER TABLE TableName
ADD CONSTRAINT ConstraintName TYPE  Value  FOR ColumnName


  • DEFAULT - Varsayılan bir değer atar.
  • CHECK - Veri işlenmeden önce belirtilen şarta uygunluğunu kontrol eder.
  • NOT NULL - Kolonun mutlaka bir değer alacağını belirtir.
  • UNIQUE - Kolondaki tüm değerlerin tekil olacağını belirtir.
  • PRIMARY KEY -Kolonda yer alacak her bir satır için özel bir anahtar üretir.
  • FOREIGN KEY -Diğer tablodaki bir primary keyîn ilişkisel olarak bu tabloya eklenmesini sağlar
  • INDEX - Daha hızlı veri çekilmesini sağlar.


Örnek:
DEAFULT***********

ALTER TABLE CUSTOMERS
ADD CONSTRAINT TitleConstDF DEFAULT ('Mr') FOR Title


Örnek:
CHECK***********

ALTER TABLE CUSTOMERS
ADD CONSTRAINT AgeConst CHECK (Age>=18)

**Önemli Not: Eğer Check Constrait oluşturulurken ilgilil tabloda bu şarta uymayan veriler varsa Check Constrait oluşturulmayacaktır. Bunu aşmak içinse With NoCheck ile kullanılmalıdır.

Hata Kodu:
Msg 547, Level 16, State 0, Line 38
The ALTER TABLE statement conflicted with the CHECK constraint "AgeConstBelow". The conflict occurred in database "TESTDB", table "dbo.Customers", column 'Age'.


ALTER TABLE CUSTOMERS 
WITH NOCHECK ADD CONSTRAINT AgeConstBelow CHECK (Age<=18)

Örnek:
UNIQUE*************

ALTER TABLE Customers
ADD CONSTRAINT TCUniConst UNIQUE (TCKimlik); 






TSQL- DDL (DATA DEFINATION LANGUAGE)


-----------------------------------------------------*--------------------------------------------------------------------

CREATE 

Yeni bir Veri tabanı ekler.

CREATE DATABASE testDB;

-----------------------------------------------------*--------------------------------------------------------------------

DROP

Mevcut veritabanını siler.
DROP DATABASE testDB;


Mevcut tabloyu siler.
DROP TABLE testTable;

Mevcut Constrainti Siler
ALTER TABLE TableName
DROP CONSTRAINT MyConnstraits


 
-----------------------------------------------------*--------------------------------------------------------------------

TRUNCATE

Mevcut  tablo içerisndeki verileri siler.
TRUNCATE TABLE testDB;



-----------------------------------------------------*--------------------------------------------------------------------

BACKUP

Mevcut veritabanını belirtilen yola yedekler
.
BACKUP DATABASE databasename
TO DISK = 'filepath'



BACKUP DATABASE databasename
TO DISK = 'filepath'
WITH DIFFERENTIAL;  



USE MotherShip
BACKUP DATABASE MotherShip
TO DISK ='C:\Users\HABILGUR\Desktop\Cat\MotherShip.bak'



 -----------------------------------------------------*--------------------------------------------------------------------

CREATE TABLE

Mevcut Veritabanına tablo ekler.........................

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
); 




CREATE TABLE Customers (

CustomerID int Primary Key Identity(1,1) ,
FirstName nvarchar(40) NOT NULL,
LastName nvarchar(50),
Title varchar(4),
[Last Visit] datetime,



-----------------------------------------------------*--------------------------------------------------------------------

ALTER TABLE

Mevcut Tabloya yeni bir kolon eklemek ,değiştirmek yada silmek için kullanılır.

ALTER TABLE table_name
ADD column_name datatype


ALTER TABLE CUSTOMERS
ADD Email nvarchar(50)


 ---------

ALTER TABLE table_name
DROP COLUMN column_name;

ALTER TABLE CUSTOMERS
DROP COLUMN Email 


 --------------------


ALTER TABLE table_name
ALTER COLUMN column_name datatype;


ALTER TABLE CUSTOMERS
ALTER COLUMN Email nvarchar(50)



--------------------

Mevcut Constrainti Siler 

ALTER TABLE TableName
DROP CONSTRAINT MyConstraits





MVC LOADING TOO SLOW ISSUE