MYSQL C# (C SHARP) GridControl ile Veri Listelemek

Bağlantı Kurmak İçin App.Config Dosyamızın içi:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
 
  <connectionStrings>
    <add name="MySQL" connectionString="SERVER=localhost;DATABASE=database_adi;UID=root;PASSWORD=" />
  </connectionStrings>
 
</configuration>

db.cs Dosyamız (db adında bir class oluşturduk) Okumaya devam et MYSQL C# (C SHARP) GridControl ile Veri Listelemek

Mysql 2 Hücreyi yada biren fazla sütunu Birleştirme

Örneğin uyeler tablosunda yer alan ad ve soyad sütunlarını birleştirip tek sütunda listelemek istiyoruz bunu CONCAT komutuyla yapabiliriz kodumuz aşağıdaki gibi olmalıdır:

SELECT CONCAT(ad, " ", soyad) as adsoyad FROM uyeler

Mysql / Sql Her Farklı Değerin Tekrar Sayısını Yazdırma

Her farklı değerin oluşum sayısını almam gerekiyordu. Kulladığım En basit SQL sorgusu şu şekilde:

SELECT kolonadi, COUNT(*) AS KayıtSayısı
FROM tabloadi
WHERE kolonadi IS NOT NULL
GROUP BY kolonadi

Tahmini Görünüm

kolonadı Tekrar Sayısı
A Seçeneği 5
B Seçeneği 15
C Seçeneği 20

Excel’den Mysql’e Veri Aktarma

Bu işlemi yaparken sıkıntı çekiyorsanız bu video işinizi görebilir;

Eğer türkçe karakter sorunu yaşarsanız, yani verilerinizde türkçe karakter varsa ve aktarırken veriler eksik geliyorsa, csv formatına çevirdiğiniz dosyasyı txt ile açıp kaydederken UTF-8 formatında kaydederek import etmeyi deneyebilirsiniz.

SQL Son 1 Yıl, 1 Ay, 7 Gün, 1 Gün, 30 dakika, 15 dakika vs veri çekmek

Üyelerin son aktif olduğu tarih saati üyeler tablosunda tarih sütununda datetime formatında tuttuğumuzu varsayalım aşağıdaki örnek kod ile son 30 dakikada aktif olanları listeleyebiliriz yada farklı ihtiyaçlar için kullanabilirsiniz Verileri çekmek için kullanacağımız sql sorgusu şöyle olacak:

son 1 yıl için:

SELECT * FROM veriler WHERE tarih >= NOW() - INTERVAL 1 YEAR

son 1 ay için:

SELECT * FROM veriler WHERE tarih >= NOW() - INTERVAL 1 month

son 1 gün için:

SELECT * FROM veriler WHERE tarih >= NOW() - INTERVAL 1 day

son 1 saat için:

SELECT * FROM veriler WHERE tarih >= NOW() - INTERVAL 1 hour

son 30 dakika için:

SELECT * FROM veriler WHERE tarih >= NOW() - INTERVAL 30 minute

gibi gibi örnekleri siz artırabilirsiniz.

Veriler veritabanı tablonuzda tarih sütunundaki zaman date formatında olmalıdır.

Mysql’de İki Tablodaki Ortak Sütunları Kullanarak Sorgulamak [Join Kullanımı]

Benim elimde okul isimli bir veritabanım var ve bu veritabanı içinde asinifi ve ogrenciler isimli tablolarım var diyelim.

asinifi tablosunda; id, okulno
ogrenciler tablosunda id, okulno, ad, soyad, cinsiyet isimli sütunlar mevcut örneğimizi bunlara göre yapacağız.

asinifi tablosu şu şekilde;

ogrenciler tablosu ise şöyle;

 

SELECT * from asinifi, ogrenciler

Sorgunun ekran çıktısı aşağıdaki gibi olacaktır.

Bu tablo yukarıdaki 2 tablonun kartezyen çarpımıdır.

Görmüş olduğunuz tabloda ortak iki sütun adı var bunlar id ve okulno sütunları. Bizim işimize ortak alanlardan okulno sütunu yarayacak çünkü asinifi tablosunu baz alarak bu tabloda yer alan öğrencilerin okul numaralarıyla ad soyad bilgilerini ogrenciler tablosu içinden çekebileceğiz.

Bunu yapmak için Şimdi sorgumuzu aşağıdaki gibi değiştirelim:

SELECT asinifi.okulno , ogrenciler.ad , ogrenciler.soyad FROM ogrenciler , asinifi WHERE asinifi.okulno = ogrenciler.okulno

Sorgunun çıktısı şöyle olacaktır;

Görmüş olduğunuz gibi asinifi tablosunda zaten 2 kayıt vardı ve ad soyad bilgiler yoktu o bilgileri ogrenciler tablosundan çekerek birleştirmiş olduk.

Eğer okul numarasından sorgu yapıp ögrencinin ad soyad bilgisi yazmaya dayalı bir senaryomuz olduğunu varsayarsak örnek veritabanımızda yer alan 123321 olarak girilen okul numarasını veri tabanı içinde aratıp öğrencinin ad soyad bilgisi yazmak için kullanacağımız sorgu mantığı şöyle olacaktır;

SELECT asinifi.okulno , ogrenciler.ad , ogrenciler.soyad FROM ogrenciler , asinifi WHERE asinifi.okulno = ogrenciler.okulno AND asinifi.okulno=123321

Sorgu Sonucu şöyle gelecektir:

Umarım işinize yaramıştır, konuyla alakalı ilave etmek yada sormak istediğiniz bir şey varsa yorumlarınızı bekliyor olacağım iyi çalışmalar

Büyük Sql Dosyalarını Açmak Kaydetmek

Büyük verilerle uğraşırken mutlaka sorunlar yaşayabilirsiniz, küçük boyutlu sql dosyalarını açarken notepad++ , sublimetext gibi editörler iş görürken büyük veritabanlarını görüntülemek için yeterli olmayacaktır bu noktada ben SQLite Expert Professional aracını kullandım görüntülerken herhangi bir sıkıntı yaşamadım ama dosyada değişiklik yapıp kaydetmek istediğimde birkaç GB olan veri tabanı 250mb olarak kaydetme sorunu yaşadım, bu noktada EmEditor.Professional.17.6.1 kullanarak sorunu çözdüm ve diğer sql görüntüleme programlarına göre daha hızlı sonuçlar veriyor bu programı da buradan indirebilirsiniz. Ayrıca bu programla sql,php asp,xml,css,html, java,java script türündeki dosyaları görüntüleyebilirsiniz.

Workbench ERROR 1214 (HY000) at line FULLTEXT indexes Hatası Çözümü

Workbench yada benzeri bir araçla veritabanını ubuntu 14.04 sunucu içerisine import ederken karşılaştığım bir hata şöyle görünüyordu:

ERROR 1214 (HY000) at line 207: The used table type doesn't support FULLTEXT indexes

Veritabanı tablo türüyle alakalı olan bu hatanın çözümüne gelecek olursak;

1) İlgili sql dosyasını açın (Eğer boyutu büyükse SQLite, EmEditör vb. programlar kullanın büyük değilse notepad++, sublimetext kullanabilirsiniz.)
2) ENGINE=InnoDB değerini bulun ve ENGINE=MyISAM şeklinde değiştirin
3) CTRL+S yapıp kaydedi.
4) Tekrar import etmeyi deyebilirsiniz.

Eğer açıp düzenlemeye çalıştığınız veritabanı GB boyutlarındaysa ve değişiklik yapmada sorun yaşıyorsanız Büyük Sql Dosyalarını Açmak Kaydetmek yazısını mutlaka incelemenizi öneririm.

Php Mysql İki Tarih/Zaman Arasını Sorgulama

Veritabanına eklenen veriler tablosundan eklenme_tarihi sütununda yer alan türü DATE olarak eklenmemiş, varchar türünde yer alan d.m.Y H:i formatında kayıtlı verileri listelemek için aşağıdaki örnekteki gibi BETWEEN kullanarak sorguyu kullanabilirsiniz.

SELECT * FROM veriler WHERE eklenme_tarihi BETWEEN '01.01.2018 00:00' and '01.05.2018 23:59'

Projelerde Kullandığım Veri Tabanı Bağlantı Dosyası baglanti.php

Veri ekleme çıkarma listeleme güncelleme vb. veritabanı işleri için öncelikle bir veritabanına bağlanmamız lazım değil mi : )  benim de mutlaka kullandığım veri tabanı bağlantı kodlarım genellikle baglanti.php içinde yer alıyor:

$db_connect=mysql_connect("localhost","kullanici_adi","parola") or die ('hata: '.mysql_error());
$db_select_1=mysql_select_db("veritabani_adi",$db_connect);
 
 
if (!$db_select_1)
{
	die ('hata:1'.mysql_error());
}
 
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");

***Veritabanıyla alakalı Türkçe karakter hataları almamak için en alta türkçe karakter set tanımlamaları yaptım.