DATABASE' E SPATİAL TYPE VERİ EKLEME VE İLGİLİ İŞLEMLER YAPMA
1.) Proje Microsoft Sql Server Management Studio kullanacağız.
2.) İlk olarak
MARİNE_TAKİP adında bir database olusturalım:
CREATE
DATABASE MARİNE_TAKİP
USE
MARİNE_TAKİP
3.)
Olusturduğumuz bu database' e " tekne " adında bir table olusturalım:
CREATE
TABLE tekne (id int primarykey, tekne_ad nvarchar(20), marine nvarchar(20), konum geography)
4.)
Olusturduğumuz bu tablonun Column Name leri sırasıyla id, tekne_ad, marine,
konum olarak belirleyelim.Data Type' larını sırasıyla int, nchar, nchar ve söz
konusu ödevimizin yapılış amacı olan Spatial Type olan geography.Her column Not
Allow nulls yapılarak değer girilmesini zorunlu hale getirelim.
5.) Bu yeni
tablomuza değerler girelim.Bunu için şu iki komutu kullanalım:
INSERT INTO tekne(id, tekne_ad, marine, konum) VALUES(1,
'seabird', 'canakkale',geography::STGeomFromText('POINT(40.123 26.123)', 4326);
INSERT INTO tekne(id, tekne_ad, marine, konum) VALUES(2,
'tansever', 'antalya',geography::STGeomFromText('POINT(36.123 30.123)', 4326);
Böylece tablomuzun iki satırı doldurulmuş
olacak.Burada önemli olan konu database
Spatial type verinin nasıl atandığını görmektir. Görüldüğü üzere konum
bilgisini girmek amcıyla kullandığımız komutta geometry spatial type
tanımlanmaktadır.Geometry türünde POINT örneği tanımladık.POINT' le
bulunduğumuz konumlar enlem ve boylam olarak verilmektedir, parantez içlerine
bu değerleri giriyoruz. Devamında yer alan 4326
ise bulunduğumuz konumun uluslararası çoğrafya sisteminde tanımlı olduğu
alanı göstermektedir.POINT yanında LINESTRING, POLYGON, MULTIPOINT,
MULTILINESTRING, MULTIPOLYGON gibi türlerde tanımlanmaktadır.
ÇALIŞTIRILAN KOMUTLAR:
SELECT *
FROM tekne;
SELECT konum.STAsText()
FROM tekne;
SELECT tekne_ad,konum.STAsText() as konum
FROM tekne;
SELECT tekne_ad,konum.STAsText() as konum
FROM tekne
WHERE id='1';
DECLARE @marine geography
SELECT @marine = tekne.konum
FROM tekne
WHERE id= '1'
SELECT t2.*,t2.konum.STAsText() as konum
FROM tekne t1, tekne t2
WHERE
t1.tekne_ad='seabird' and
t1.konum.STDistance(t2.konum)<200*1000
ORDER BY t1.konum.STDistance(t2.konum)
DESC
SELECT t2.*,t1.konum.STDistance(t2.konum)
as mesafe
FROM tekne t1, tekne t2
WHERE
t1.tekne_ad='tansever' and
t1.konum.STDistance(t2.konum)<200*1000
ORDER BY mesafe DESC
Hiç yorum yok:
Yorum Gönder