Untitled
unknown
plain_text
3 years ago
9.3 kB
1
Indexable
use E_Commerce select Colors.ColorName,Sizes.SizeName from Colors cross join Sizes select convert(varchar,ct.ContractDate,103),ct.Subject,ct.Details, u.Fullname as 'imzalayan',u2.Fullname as 'Onaylayan' from Contracts ct join Users u on ct.imzalayan= u.ID join Users u2 on u2.ID= ct.onaylayan use Northwind select e.LastName, e.FirstName,e.EmployeeID, e.ReportsTo,er.FirstName from Employees e left join Employees er on e.ReportsTo=er.EmployeeID select LastName, FirstName, convert(varchar,BirthDate,103) as BirthDate, case when datepart(year,Birthdate)<1950 then 'Silent Generation' when datepart(year,Birthdate)>=1950 and datepart(year,Birthdate)<1970 then 'Baby Boomers' when datepart(year,Birthdate)>=1970 and datepart(year,Birthdate)<1980 then 'X Gen' when datepart(year,Birthdate)>=1980 and datepart(year,Birthdate)<1995 then 'Y Gen' when datepart(year,Birthdate)>=1995 then 'Z Gen' end as Generation from Employees order by Generation --insert komutu tabloya satır ekler /*insert into tabloadı (alan1,alan2,alan3,...,alanx) values(değer1,değer2,değer3,...,değerx) insert ifadelerinde into kelimesi opsiyoneldir alan adlarının tamamı yazılmak zorunda değildir ama zorunlu alanlar yazılmalıdır Autoidentity özelliği olan alanlara değer yazılmaz alan sayısı ile gönderilen değerlerin sayısı eşit olmalı ve değerler aynı sıra ie eşleşmelidir */ INSERT INTO Categories (CategoryName) VALUES ('Akşam') /* UPDATE komutu, satır veya satırlardaki değerleri güncelleme işlemi yapar UPDATE tabloadı SET alan1=deger1, alan2=deger2..... WHERE koşul UPDATE ifadelerinde where kısmı opsiyoneldir, olmasa da çalışabilir ama dikkat edilmelidir alan adı seçiminde özgürüz, istediğimiz kadar alanı değer belirtmek suretiyle değiştirebiliriz. autoidentity alanların değerleri değiştirilemez */ UPDATE Categories SET CategoryName='Akşamcılar' WHERE CategoryID=18 --DELETE DELETE Categories WHERE CategoryID=18 DBCC CHECKIDENT('Categories',RESEED,8)-- İÇİNDE VERİ OLAN TABLODA EN YÜKSEK ID VERİLİR, --1FAZLASINDAN DEVAM EDER DBCC CHECKIDENT('Categories',RESEED,0)-- İÇİNDE VERİ OLAN TABLODA 0 VERİLİR, --1'den DEVAM EDER SELECT IDENT_CURRENT('Categories') ---Alter komutu nesnelerde(tabloi view, stored proc., function, role, user, login, database) değişiklik yapar USE BigKahunaBurger ALTER TABLE Customers ADD Notes varchar(100) ALTER TABLE Customers DROP COLUMN Notes ALTER TABLE Customers ALTER COLUMN Notes varchar(1200) --veri türünü değiştirir DROP TABLE Customers --bağlantılı(referanslı) tablolar silinemez /* GRANT REVOKE DENY*/ GRANT INSERT ON Customers TO bekir; REVOKE SELECT ON Customers TO bekir; DENY SELECT ON Customers TO bekir; grant select on Orders to AA grant select on Customers to StandartCalisan grant select on Foods to StandartCalisan /* sql'e yeni bir kişi gelecek adı sezen bu kişi Northwind veritabanında sadece categories ve employees tablolarında select işlemi yapabilecek ek olarak bi grup(şarkıcılar) kullanıcıya tüm tablolar için insert ve update yetkisi verilecek bi kullanıcı daha tanımlanacak adı nilüfer, kendi yetkilerini direkt şarkıcıar olarak alacak ama suppliers tablosunda işlem yapamayacak bi de kayahan olacak bu kişi tüm yetkilerini şarkıcılardan alacak ve ek olarak tüm tablolara select yapabilecek */ grant select on Categories to Sezen grant select on Employees to Sezen deny delete on Suppliers to Nilüfer deny update on Suppliers to Nilüfer deny select on Suppliers to Nilüfer revoke select on CustomerCustomerDemo to sarkicilar revoke select on CustomerDemographics to sarkicilar revoke select on Customers to sarkicilar revoke select on Employees to sarkicilar revoke select on EmployeeTerritories to sarkicilar revoke select on [Order Details] to sarkicilar revoke select on Orders to sarkicilar revoke select on Products to sarkicilar revoke select on Region to sarkicilar revoke select on Shippers to sarkicilar revoke select on Suppliers to sarkicilar revoke select on Territories to sarkicilar grant select on CustomerCustomerDemo to Kayahan grant select on CustomerDemographics to Kayahan grant select on Customers to Kayahan grant select on Employees to Kayahan grant select on EmployeeTerritories to Kayahan grant select on [Order Details] to Kayahan grant select on Orders to Kayahan grant select on Products to Kayahan grant select on Region to Kayahan grant select on Shippers to Kayahan grant select on Suppliers to Kayahan grant select on Territories to Kayahan -- Login->user -->Role deny select on Categories to Alex grant update on Employees to Alex --tüm kullanıcılar başlangıçta 0 yetkiye sahiptir, hiçbir işlem yapamazlar -- kullanıcılara direkt kendilerine veya roller üzerinden roller verilebilir --örneğin db_datawriter rolüne atanan bir kullanıcı tüm tablolarda insert, update,delete --yapabilir --özel olarak bir kullanıcıda rodle verilen yetkiyi ezen yetki verilebilir, örneğin ek bir --select hakkı tanınabilir --deny işlemi diğer bütün işlemleri ezer ve yetkiyi tamamen kaldırır, yok eder create view vw_ProductWCategories as select ProductName, isnull(CategoryName,'-') as CategoryName from Products as p left join Categories c on c.CategoryID=p.CategoryID alter view vw_ProductWCategories as select ProductName, isnull(CategoryName,'-') as CategoryName, p.UnitPrice from Products as p left join Categories c on c.CategoryID=p.CategoryID drop view [vw_ProductWCategories] select * from vw_ProductWCategories grant select on vw_ProductWCategories to student --scalar fonksiyon bir şey hesaplayıp değer döndürür /*create*/alter function dbo.CalculatedRisk(@ProductID int) RETURNS varchar(50) as begin declare @ToplamSatis AS int, @ToplamStok AS int, @myReturn AS varchar(50) select @ToplamStok=UnitsInStock from Products where ProductID=@ProductID select @ToplamSatis=sum(Quantity) from [Order Details] where ProductID= @ProductID if @ToplamSatis/20 > @ToplamStok begin SET @myReturn = 'Risksiz' end else begin set @myReturn = 'Riskli' end return @myReturn end select ProductID,ProductName, dbo.CalculatedRisk(ProductID) as 'Risk Durumu' from Products order by ProductID SELECT SUM(Quantity) FROM [Order Details] WHERE ProductID=5 SELECT p.ProductID, p.ProductName, SUM(od.Quantity) FROM Products p LEFT JOIN [Order Details] od ON p.ProductID=od.ProductID GROUP BY p.ProductName,p.ProductID CREATE FUNCTION dbo.SumSales(@ProductID int) RETURNS int AS BEGIN DECLARE @toplam AS int SELECT @toplam=SUM(Quantity) FROM [Order Details] WHERE ProductID=@ProductID RETURN @toplam END select ProductName, dbo.SumSales(ProductID) from Products --rezervasyon /* oda ve masalar -> kaynak tipleri (kat bilgisi/ oda mı masa mı/no ) kullanıcılar (çalışanlar/ üyeler) rezervasyon yap/ iptal et*/ select convert(varchar, r.StartDateofStay,103) as 'StartDateofDay', convert(varchar, r.StartDateofStay,108) as 'StartTimeofStay',s.Status,m.MemberFullName,a.AreaNo from Reservations r join Areas a on r.AreaId=a.ID join Members m on m.ID=r.MemberId join Statuses s on s.ID=r.StatusId set dateformat dmy select a.AreaNo, s.Status , f.KatNo, a.AreaNo from Areas a join Reservations r on r.AreaId=a.ID join Members m on m.ID=r.MemberId join Statuses s on s.ID=r.StatusId join Floors f on f.ID=a.FloorId where a.ID not in (select ID from Reservations where convert(varchar, StartDateofStay,103) = '11/12/2021' and StatusId=1) select count(a.AreaNo) as sayı, f.KatNo, at.AreaTypeName from Areas a join Floors f on a.FloorId= f.ID join AreaTypes at on at.ID=a.AreaTypeId where a.ID not in ( select ID from Reservations where convert(varchar, StartDateofStay,103) = '11/12/2021') group by AreaTypeName, f.KatNo select top 1 count (StatusId) as adet, m.MemberFullName from Reservations r join Members m on r.MemberId= m.ID group by m.MemberFullName order by count(StatusId)Desc -------------------------!!!!!!!!!!!!!!!!!!!!!!!!!!-------------------------- select MemberFullName, 0 as Adet from Members where ID not in (select MemberId from Reservations) union select m.MemberFullName, count(*) as Adet from Reservations r join Members m on m.ID= r.MemberId group by m.MemberFullName Having Count(*)<2 -----------------------!!!!!!!!!!!!!!!!!!!!!!!!!!!!-------------------------- /* use Northwind select t.CompanyName, t.CompanyType from (select CompanyName, 'Shipper' as CompanyType from Shippers union select CompanyName, 'Supplier' as CompanyType from Suppliers) as t order by t.CompanyType, t.CompanyName */ select MemberId,StartDateofStay,EndDateofStay, DATEDIFF(d,StartDateofStay,EndDateofStay) from Reservations where DATEDIFF(hour,StartDateofStay,EndDateofStay)>20 select * from Reservations select MemberId,sum(DATEDIFF(hour,StartDateofStay,EndDateofStay)) as 'toplam saat' from Reservations group by MemberId having sum(DATEDIFF(hour,StartDateofStay,EndDateofStay))>20
Editor is loading...