VERİTABANI BOZULURMU

Gönderen Konu: VERİTABANI BOZULURMU  (Okunma sayısı 1467 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı f_doruk

  • Yeni Kullanıcı
  • *
  • Karma: 0
VERİTABANI BOZULURMU
« : 16.01.2012, 21:26 »
Arkadaşlar merhaba,
Ms Sql konusunda oldukça yeniyim. Tiger 1,88 kullanıyorum. Exceli açıp, veri bölümüden ordan ms query den girip, ordan raporlar hazırlıyorum. Sormak istediğim, bu şekilde yaptığım raporlara yazdığım, kodlarla veritabanını bozma olaslığı varmı? Ağ balantısıyla servera bağlıyım. Bişey yaparken bazı şeyleri bozmak istemiyorum.
Herkese teşekkürler

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: VERİTABANI BOZULURMU
« Yanıtla #1 : 16.01.2012, 22:16 »
Doğru sorgulari kullandın sürece sorun yok, herseyden önce yedek alınız

merek1983

  • Ziyaretçi
Ynt: VERİTABANI BOZULURMU
« Yanıtla #2 : 17.01.2012, 10:22 »
SQL Server 2000'de ve SQL Server 2005'te her bir veritabanı, en az bir veri dosyasına ve bir işlem günlüğü dosyasına sahiptir. SQL Server verileri fiziksel olarak veri dosyasında depolar. İşlem günlüğü dosyası, SQL Server veritabanınızda gerçekleştirdiğiniz tüm değişikliklerin ve her bir değişikliği gerçekleştiren işlemin ayrıntılarını depolar.

dilersen neden bozulmuş oraya bakarak anlayabilirsin

Çevrimdışı f_doruk

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: VERİTABANI BOZULURMU
« Yanıtla #3 : 17.01.2012, 21:38 »
SQL Server 2000'de ve SQL Server 2005'te her bir veritabanı, en az bir veri dosyasına ve bir işlem günlüğü dosyasına sahiptir. SQL Server verileri fiziksel olarak veri dosyasında depolar. İşlem günlüğü dosyası, SQL Server veritabanınızda gerçekleştirdiğiniz tüm değişikliklerin ve her bir değişikliği gerçekleştiren işlemin ayrıntılarını depolar.

dilersen neden bozulmuş oraya bakarak anlayabilirsin
Merhaba,
Bozuldu demiyorum, excelden girip yazdığımız kodlar veri tabanını bozar mı?

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: VERİTABANI BOZULURMU
« Yanıtla #4 : 17.01.2012, 22:27 »
Daha oncede acikladigim gibi yanlis kullanilan DDL ve DML komutlar Tabloları ve tablo yapisini ve dolayisiyla veritabanizi bozabilir

Çevrimdışı Koray Ü.

  • Logo Uzmanı
  • *****
  • Karma: 8
Ynt: VERİTABANI BOZULURMU
« Yanıtla #5 : 18.01.2012, 09:46 »

ister excel'den isterse management studio gibi başka bir yerden olsun, kodlar yanlış bile olsa SELECT sorguları veri tabanına asla zarar vermez.
çünkü bunlar seçme sorgularıdır.

ama diğer taraftan, UP DATE, INSERT  gibi kodlar içeren sorgular direk datayı değiştirdiğinden yanlış kullanımda sıkıntı yaratabilir.

kısacası SELECT sorgularını gönül rahatlığıyla kullanabilirsiniz...

merek1983

  • Ziyaretçi
Ynt: VERİTABANI BOZULURMU
« Yanıtla #6 : 18.01.2012, 11:55 »
pardon :( yanlıs anlamısın  veritabanının Kullandığın sorgular bozmaz   sadece birebir müdahale bozar alakası olmayabilir ama  sql komutlarının kullanım yerleri ve nasıl kullanıcıgını anlatan bir tablo
Not Alıntı Yapılmıştır (ozgurcakmak.) Em ege Saygı



Temel SQL Sorguları
/*Temel Select İşlemleri*/
--Personel tablosundaki tüm listeyi getirir
SELECT * FROM Personel
--Sadece istenilen sütündaki verileri gösterir.
SELECT Tcno, isim, soyisim, maas
FROM Personel
--Bölüm tablosundaki tüm verileri listeler
SELECT * FROM Bolum
--Sıralama (Alfabetik veya rakamsal sıralama)
SELECT * FROM Personel
ORDER BY Maas ASC --DESC
--Önce isme sonra aynı isimde olanları soyisime göre sıralar.
SELECT isim, soyisim FROM Personel
ORDER BY isim DESC , soyisim DESC
 
--Koşullu sorgu için WHERE anahtar kelimesi kullanılır.
--Maaşı binlira olanları getirir.
SELECT * FROM Personel
WHERE Maas=1000
--Maaşı 500den küçük olanları getirir.
SELECT * FROM Personel
WHERE Maas<500
--Maaşı 500den küçük olanları ve ismi kadir olanı getirir.
SELECT * FROM Personel
WHERE Maas<500 AND isim='kadir'
--İsminde ğ harfi olanlar
SELECT * FROM Personel
WHERE isim LIKE '%ğ%'
--İsmi k ile başlayanlar
SELECT * FROM Personel
WHERE isim LIKE 'k%'
--İsmi r ile bitenler
SELECT * FROM Personel
WHERE isim LIKE '%r'
--İkinci karakteri ‘h’ ve beşinci karakteri ‘t’  olan kayıtları getirir.
SELECT * FROM Personel
WHERE isim LIKE '_h__t'
--BAŞ HARFİ A VEYA K OLANLARI GETİRİR
SELECT * FROM Personel
WHERE isim LIKE '%[ak]%'
--Soy ismi s ile z arasındaki tüm harflerden herhangi biriyle
--başlayanları getirir.
SELECT * FROM Personel
WHERE soyisim LIKE '[s-z]%' AND soyisim LIKE '%a'
--Takma sütun adı as'le verilir.
-- Birden fazla kelime içeriyorsa tırnak arasına yazılmalı
SELECT isim AS Adlar, Maas AS 'Maaşlar Geliri'
FROM Personel
--Sütunları birleştirir.
SELECT isim + '  ' + soyisim AS AdSoyad
FROM Personel
--Soy ismi boş olanları getirir.
SELECT * FROM Personel
WHERE soyisim IS NULL
--Doğum tarihi boş olanları göstermesin
SELECT * FROM Personel
WHERE DogumTarihi IS NOT NULL --and soyisim is NULL
--Maaşı 1000 ile 2000 arasında olanlar
SELECT * FROM Personel
WHERE Maas BETWEEN 1000 AND 2000
--Baş harfi k ile z arasında olanları getirir.
SELECT * FROM Personel
WHERE isim BETWEEN 'k' AND 'z'
--İstenilen sayı kadar veri getirme
SELECT TOP 3 * FROM Personel
ORDER BY TcNo DESC
--Kayıtların %50sini ve soyadı ayan'dan farklı olanları getirir.
SELECT TOP 50 PERCENT  * FROM Personel
WHERE Soyisim <> 'Barlık'
ORDER BY TcNo ASC
--Tanımladığım 3 bölümde çalışan elemanları listele
SELECT * FROM Personel
WHERE BolumNo=1 OR BolumNo=2 OR BolumNo=4
SELECT * FROM Personel
WHERE BolumNo IN(1,2,4)
--Zamlı maaşları göster
SELECT Maas AS 'Asıl Maaş', Maas+1000 AS 'Zamlı Maaş'
FROM Personel
--İsme göre aynı olanları eler
SELECT DISTINCT isim FROM Personel
WHERE isim='Ahmet'
--İlk 3 harfi kad olan tüm verileri getirir.
SELECT * FROM Personel
WHERE LEFT(isim,3)='kad'
--Soyisminin son harfi y olanları getirir.
SELECT * FROM Personel
WHERE RİGHT(soyisim,1)='y'
/*Sistem Tanımlı Fonksiyonlar ile İşlemler*/
--Herhangi bir sütundaki veri sayısını getirir.
SELECT COUNT(TcNo) FROM Personel
--NULL olanları saymaz
SELECT COUNT(DogumTarihi) FROM Personel
--Toplam sayıyı getirir.
SELECT COUNT(*) FROM Personel
WHERE isim<>'Uğur'
--Toplam Maaşı Getirir.
SELECT SUM(Maas) FROM Personel
WHERE maas BETWEEN 1000 AND 2000
--Ortalama Maaşı getirir.
SELECT SUM(Maas)/COUNT(*) FROM Personel
SELECT AVG(Maas) FROM Personel
--BolumNosu en büyük olan kaydı getirir.
SELECT MAX(BolumNo) FROM Personel
--Bolumnosu en küçük olan kaydı getirir.
SELECT MIN(BolumNo) FROM Personel
--4tane 'a' yeni tek 'a' yazar yani veriyi değiştirip gösterir.
SELECT isim AS Ad, REPLACE(soyisim,'aaaa','a') AS Soyad
FROM Personel
--Len o sütunun karakter uzunluğunu getirir.
SELECT TcNo,İsim, Len(isim) AS 'İsim Uzunluğu' ,soyisim,
Len(soyisim) AS 'Soyisim Uzunluğu' FROM Personel
--Eğer cast edilmezse iki farklı tür birleştirilemez
--cast değişken tülerini değiştirmek için kullanılır.
SELECT CAST(Tcno as varchar) + '  ' + isim AS 'Olcakmi'
FROM Personel
--Yazı tipindeki verileri bölme. 2.parametre
--başlangıç harfinin sırası
--3.parametre kaç harf göstericeğini sorar.
SELECT SUBSTRİNG(isim,1,1) FROM Personel
--Soyisimlerin başındaki boşluklar silinir.
SELECT LTRİM(soyisim) FROM Personel
--Soyismin sonundaki boşlukları siler.
SELECT RTRİM(soyisim) FROM Personel
/*Gruplama İşlemleri*/
--Kesinlikle kullanılmaz yanlış bir ifadedir.
SELECT Adi,Soyadi FROM Personel
GROUP BY BolumNo
--having group by ile kullanılır.
--yani grouplama işleminden sonra da bir koşul konulacaksa
--having kullanılır.
SELECT BolumNo, COUNT(*) AS 'Çalışan Sayısı',
SUM(Maas) AS 'Toplam Maaş' --,AVG(Maas) AS 'Ortalama Maaş'
FROM Personel
WHERE Maas<2500
GROUP BY BolumNo
HAVİNG BolumNo IN(1,2,5)  -- AVG(Maas)>1000
ORDER BY AVG(Maas) ASC

Çevrimdışı Navigator- Hbv Software

  • Logo Uzmanı
  • *****
  • Karma: 5
Ynt: VERİTABANI BOZULURMU
« Yanıtla #7 : 24.01.2012, 18:00 »
Select 'le başlayan hiç bir sorgu veritabanını bozmaz. Neden? çünkü bir değişiklik yapmaz.

Değilmi. evet... :)

Ne yapmıyoruz ; delete , truncate , dbcc gibi kelimelerle başlayan ve özellikle çalıntı kodları
kullanmıyoruz.. :)

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: VERİTABANI BOZULURMU
« Yanıtla #8 : 24.01.2012, 18:09 »
Yada kullanmadan once mutlaka yedek alıyoruz ,hatda o yedeginde yedegini alıyoruz .

Çevrimdışı Navigator- Hbv Software

  • Logo Uzmanı
  • *****
  • Karma: 5
Ynt: VERİTABANI BOZULURMU
« Yanıtla #9 : 25.01.2012, 10:36 »
Yeni query yazarken hatta her yeni başlayan gibi query değilde quary dediğim zamanlarda bi Repair_Allow_Data_loss kullanmıştım hiç unutmam :D