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

E-R(ENTITY RELATIONSHIP MODEL) MODELİ

Veritabanı tasarımında kullanılan ilişkisel veritabanı yönetim sistemlerinin (RDBMS) temelini oluşturur.

E-R Modelinin temel yapıları

1-Varlık (Entity) = Veritabanında oluşturulacak nesneleri temsil eden yapılardır. Veritabanı üzerinde bulunan tablolar ER diyagramlar için Varlık olarak kabul edilir.


2-Nitelik (Attiribute) = ER varlıklarının sahip olduğu her bir alana verilen yapılardır. Veritabanı alanında örnek olarak tablo sütünları verilebilir.


3-İlişki (Relationship) = Varlıklar arasında kurulan fiziksel ve mantıksal bağlantıları temsil eden yapılara denir.

E-R DİYAGRAMLARI

Bu diyagramlara bir örnek üzerinde göz atalım.E-R diyagramı ile tasarlanmış bir veritabanını yorumlayalım...



Yukarıda Hasta Kartı ve Sağlık verileri bizim tablolarımız yani varlıklarımız..Yanda görülen hastaKartiID primary key niteliği diğerleri nitelik.Ortadaki ilişkimiz 1'e 1 ilişki yani okuyacak olursak.Bir hasta kartı,bir sağlık verisi barındırır.Diyelim ki sizin hasta kartınızın id'si 15.Bu id Primary key olduğundan diğer tüm niteliklerinize erişim sağlanacaktır.15 Nolu hasta Gökhan hasta Id'si 123123 diye...Şimdi biraz daha karışık bir örneğe bakalım...


Bakın bir önceki örneğimizin neredeyse aynısı burada kitaplar ile ilgili bilgiler verilmiş.N-N (Çoğa çok) ilişkilerden birkaç tanesini okuyup bir diğer örneğe geçelim.Örneğin N kitabın 1 yazarı olabilir.Yani bir yazarın birkaç kitabı olabilir.Uyeler birden fazla kitabı sepete ekleyebilir.1 yayınevi birden fazla kitap yayınlayabilir gibi gördüğünüz gibi yapı çok basit.Sizlerde böyle örnekleri çizip anlamaya çalışırsanız bu modeli veritabanlarınızın giriş aşamalarında kullanabilirsiniz.



   E-R model örnekleri ile ilgili görsel sonucu

İşte gerçek bir örnek.Belki de bunun çok daha büyüklerine iş hayatınızda rastlayacak.Veya sizde böyle bir modeli tasarlamanız istenecektir.Göz korkutucu olduğunun farkındayım fakat gerçekten göründüğü kadar zor değil.Şu ISA bağlantısına bir göz atalım.ISA bağlantısı varlıklara Primary Key atamak için kullanılır Primary Key'i olmayan tablolar PK'yi olan tabloya bu şekilde bağlanır.İlişkiler de köşeli oklar ile gösterilmiş.Yani N-N değil de I<= şeklinde.Size tavsiyem bir sürü örnek çözmeniz.Anlattığı konular hakkında bir sürü örnek çözün.Kendi kafanızdan örnekler uydurun.Böylece bunları 10 yıl sonra bile görseniz kolaylıkla hatırlarsınız.


İYİ ÇALIŞMALAR...

APARTMAN AİDAT OTOMASYONU(C#-MsSQL PROJE-1)



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ApartmanYonetim
{
    public partial class Giris : Form
    {
        public Giris()
        {
            InitializeComponent();
        }
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Yeni Şifrenizi almak için uygulama programcısını arayın...");
        private void Giris_Load(object sender, EventArgs e)
        {

        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Aidat a = new Aidat();
            if (kullaniciAdi.Text == "Gokhan" && sifre.Text == "123456")
            {
                a.Show();
            }
        }
    }
}



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;

namespace ApartmanYonetim
{
    public partial class Aidat : Form
    {
        public Aidat()
        {
            InitializeComponent();
        }
        void griddoldur()
        {
           SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
           SqlDataAdapter da = new SqlDataAdapter("Select *FROM aidat order by blok,daireNo", con);
           DataSet ds = new DataSet();
           con.Open();
           da.Fill(ds, "aidat");
           dataGridView1.DataSource = ds.Tables["aidat"];
           con.Close();
        }
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void Aidat_Load(object sender, EventArgs e)
        {
           
        }

        private void veriGirisi_Click(object sender, EventArgs e)
        {
            ListeyeEkle l = new ListeyeEkle();
            l.Show();
        }

        private void sil_Click(object sender, EventArgs e)
        {
            ListedenSil sil = new ListedenSil();
            sil.Show();
       
        }

        private void yazdir_Click(object sender, EventArgs e)
        {
            griddoldur();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            Guncelle g = new Guncelle();
            g.Show();

        }

        private void ode_Click(object sender, EventArgs e)
        {
            ekleOde ek = new ekleOde();
            ek.ShowDialog();
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class ListeyeEkle : Form
    {
        public ListeyeEkle()
        {
            InitializeComponent();
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            string sorgu = "insert into aidat(blok,kat,daireNo,borc,borcSahibi) values (@blok,@kat,@daireNo,@borc,@borcSahibi)";
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            SqlCommand cmd = new SqlCommand(sorgu,con);
            cmd.Parameters.AddWithValue("@blok", tBlok.Text);
            cmd.Parameters.AddWithValue("@kat", tKat.Text);
            cmd.Parameters.AddWithValue("@daireNo", tDaire.Text);
            cmd.Parameters.AddWithValue("@borc", tBorc.Text);
            cmd.Parameters.AddWithValue("@borcSahibi", tBorcSahibi.Text);
            con.Open();
            cmd.Connection = con;
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex) {
                MessageBox.Show("Bu daire dolu!!!");
            }
            con.Close();
        }
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class ListedenSil : Form
    {
        public ListedenSil()
        {
            InitializeComponent();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            string sorgu = "Delete From aidat Where daireNo=@no";
            SqlCommand cmd = new SqlCommand(sorgu, con);
            cmd.Parameters.AddWithValue("@no", Convert.ToInt32(tdaireNo.Text));
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class ekleOde : Form
    {
        public ekleOde()
        {
            InitializeComponent();
        }

        private void groupControl1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {

            string sorgu = "update aidat set borc=borc+@eklenecek";
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            SqlCommand cmd = new SqlCommand(sorgu, con);
            int aidat=Convert.ToInt32(tBekle.Text);
            cmd.Parameters.AddWithValue("@eklenecek",aidat);
            con.Open();
            cmd.Connection = con;
            cmd.ExecuteNonQuery();
            con.Close();
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            string sorgu = "update aidat set borc=borc-@odenecek where daireno=@daireNo";
            SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            SqlCommand cmd = new SqlCommand(sorgu, con);
            int aidat = Convert.ToInt32(tOdenecek.Text);
            cmd.Parameters.AddWithValue("@odenecek", aidat);
            cmd.Parameters.AddWithValue("@daireNo", tDaireNo.Text);
            con.Open();
            cmd.Connection = con;
            cmd.ExecuteNonQuery();
            con.Close();
        }
    }
}


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ApartmanYonetim
{
    public partial class Guncelle : Form
    {
        public Guncelle()
        {
            InitializeComponent();
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
             SqlConnection con = new SqlConnection("server=LOCALHOST; Initial Catalog=ApartmanYonetim;Integrated Security=SSPI");
            
            if(cKayit.Text=="Borc"){
               
                int cevir = Convert.ToInt32(tDeger.Text);
                string sorgu="Update aidat set borc=@borc where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@borc",cevir);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();

        }
            else if (cKayit.Text=="BorcSahibi")
            {
             
                string sorgu="Update aidat set borcSahibi=@borcSahibi where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@borcSahibi",tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
            else if (cKayit.Text == "Blok")
            {

                string sorgu = "Update aidat set blok=@blok where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@blok", tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
            else if (cKayit.Text == "Kat")
            {

                string sorgu = "Update aidat set kat=@kat where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@kat", tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
            else if (cKayit.Text == "DaireNo")
            {

                string sorgu = "Update aidat set daireNo=@daireNoo where daireNo=@daireNo";
                SqlCommand cmd = new SqlCommand(sorgu, con);
                con.Open();
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@daireNoo", tDeger.Text);
                cmd.Parameters.AddWithValue("@daireNo", tdaireNO.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
        }
    }
}






T-SQL TABLO OLUŞTURMA DML DDL DCL KOMUTLARI

use ISTEKutuphane
GO
CREATE TABLE OduncAl(
YapilanIslemSayisi INT IDENTITY(1,1),
ISTE_no int PRIMARY KEY NOT NULL,
Ad varchar(25) NOT NULL,
Soyad varchar(25) NOT NULL,
AlinanKitapNo int NOT NULL,
AlisTarihi date NOT NULL,
SonIadeTarihi date NOT NULL,
Ceza bit NOT NULL,
KitapYorumu varchar(300) NULL
)
GO
/*ALTER DATABASE ISTEKutuphane
MODIFY FILE
(
NAME=Kitaplik,
SIZE=250MB
);
*/
ALTER TABLE OduncAl --TABLOMUZA SÜTUN EKLEDİK...
ADD
CezaSuresi int DEFAULT(0)

ALTER TABLE OduncAl --TABLOMUZA SÜTUN EKLEDİK...
ADD
CezaSuresiSilinecek int DEFAULT(0)
SELECT *FROM OduncAl
--DROP TABLE OduncAl tablomuzu siler

INSERT INTO OduncAl VALUES(10101,'Gokhan','Guzelkokar',143,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10105,'Hasan','Selvi',123,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10145,'Selen','Bakmaz',132,'2018-01-07','2018-01-27',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10112,'Merve','Soylu',42,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10162,'Şinasi','Şaşmaz',53,'2018-01-01','2018-01-21',0,NULL,NULL,NULL)
INSERT INTO OduncAl VALUES(10117,'Tahir','Gürsoy',35,'2018-01-06','2018-01-26',0,NULL,NULL,NULL)

--TABLOMUZA VERİLERİMİZİ EKLEDİK

UPDATE OduncAl SET Ceza=1,CezaSuresi=10
WHERE ISTE_no=10101 --GUNCELLEME YAPTIK

/*CREATE LOGIN ISTEKutuphane WITH PASSWORD='LOGIN_SIFRESI'
CREATE USER KutuphaneUser FOR LOGIN ISTEKutuphane;
VERİTABANIMIZA DIŞARIDAN ERİŞEBİLMEK İÇİN

YETKİLENDİRME
GRANT ALL TO KutuphaneUser
GRANT CREATE TABLE TO KutuphaneUser --TABLO YARATMA YETKİSİ
AYNI ŞEKİLDE
DENY CREATE TABLE TABLO OLUŞTURMA YETKİSİNİ KALDIRMA
REVOKE ALL TO PUBLİC --PUBLİC'E VERİLEN TÜM YETKİLERİ KALDIRMA
*/

T-SQL İLE VERİTABANI OLUŞTURMA

CREATE DATABASE ISTEKutuphane
ON PRIMARY --Bu veritabanına ait birincil d
osya grubumuz
(
NAME='Kitaplik',--DOSYAMIZIN ADI
FILENAME='C:\ISTE\Kitaplik.mdf',--DOSYAMIZIN FİZİKSEL ADI
SIZE=15MB,--VERİTABANI BOYUTU
MAXSIZE=30MB,--MAX VERİTABANI BOYUTU
FILEGROWTH=5MB --VERİTABANIMIZIN GENİŞLETİLMESİ GEREKİYORSA 5 ER MB GENİŞLETİLİR
)
LOG ON
(
NAME='ISTELog',
FILENAME='C:\ISTE\Log.ldf',
SIZE=2048KB,
MAXSIZE=500GB,
FILEGROWTH=5MB
)
EXEC sp_helpdb ISTEKutuphane

SQL DİSTİNCT KOMUTU

DİSTİNCT KOMUTUMUZ TEKRARLI KAYITLARIMIZIN GÖSTERİLMEMESİNİ SAĞLIYOR.

ÖRNEĞİN VERİ TABLOMUZDA AHMET ADINDAN YÜZLERCE KİŞİ VAR VE BİZ SADECE

BİR TANESİNİN GÖSTERİLMESİNİ İSTİYORUZ O ZAMAN DİSTİNCT KOMUTUNU

KULLANMAMIZ GEREKECEKTİR.

SQL DELETE (SİLME) KOMUTU

SON DML KOMUTUMUZ OLAN DELETE...



SQL UPDATE KOMUTU

SQL UPDATE KOMUTU

KOMUTLARIMIZIN ANLATIMI BİTİNCE BİR SÜRÜ ÖRNEK ÇÖZECEĞİZ İYİ

ÇALIŞMALAR.

SQL İNSERT (EKLEME) KOMUTU



Verilen alanlardan herhangi birini doldurmak istemiyorsak,örneğin kitabın yazarını bilmiyoruz,onun yerine NULL değerini atayabiliriz.

SQL OPERATÖRLER (AND,İN,OR,LİKE)















AND OPERATÖRÜMÜZ



OR OPERATÖRÜMÜZ (veyalar arttırılabilir örneğin buna ek olarak or KitapFiyat>40 ta eklenirse
görüntülenecek veri sütunlarımız değişir.)




İN OPERATÖRÜMÜZ



BİR ÖRNEK DAHA...











SQL WHERE KOMUTU


Her zamanki gibi SQL1 veri tabanımızda kitaplik adında bir tablo oluşturup o tabloyu doldurduk.
Sonra select komutu ile tablomuzdaki verileri çağırdık en sonunda da where komutumuz ile işlemler yaptık.


























İYİ ÇALIŞMALAR

SQL SELECT KOMUTU

SQL DROP VE TRUNCATE KOMUTLARI

Drop komutumuzu tablo veya sütun silmede kullanıyoruz.
Truncate komutumuzu ise tablomuzda girdiğimiz verileri silmek için kullanıyoruz.































ARKADAŞLAR ŞİMDİYE KADAR GÖRDÜĞÜMÜZ KOMUTLAR DDL(DATA DEFİNİTİON LANGUAGE) YANİ SQL VERİ TANIMLAMA DİLİ.ÖNÜMÜZDEKİ YAYINLARIMIZDA DML(SQL VERİ İŞLEME DİLİ) KOMUTLARIMIZA GEÇECEĞİZ...

SQL (KODLAMA KISMINA GİRİŞ) CREATE (OLUŞTURMA) KOMUTU



Öncelikle New Query den boş bir sayfa açtık daha sonra create komutumuzla bir veri tabanı oluşturduk bir sonraki görselimizde de tablo oluşturup tablo başlıklarına isim verdikten sonra veri tiplerini belirleyeceğiz.iş,






C# TA VERİ TABANI GÖRÜNTÜLEME (SQL)





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient; //SQL KÜTÜPHANEMİZİ EKLEDİK
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }
       
        SqlConnection baglan = new SqlConnection("Buraya project kısmından new data source database next dataset next diyip orada connection yazan yerdeki + işaretindeki linki kopyalıyoruz");
        private void verilerimiGoster(){
            baglan.Open();
            SqlCommand komut = new SqlCommand("Select *from Bilgiler"); //Bilgiler tablomuzun ismi
            SqlDataReader oku = komut.ExecuteReader();
            while (oku.Read())
            {
//TABLOMUZU OKUYUP LİSTVİEW İMİZE AKTARIYORUZ
                ListViewItem ekle = new ListViewItem();
                ekle.Text = oku["AdSoyad"].ToString();
                ekle.SubItems.Add(oku["Sehir"].ToString());
                ekle.SubItems.Add(oku["Okul"].ToString());
                listView1.Items.Add(ekle);
            }

    }
        private void button1_Click(object sender, EventArgs e)
        {
            verilerimiGoster();
        }

SQL GİRİŞ (VERİ TİPLERİ-1)

1-bigint 8 byte uzunluktaki tam sayılar için ve büyük sayılar kullanılır.Ondalıklı sayılarda kullanımı uygun değildir.

2-binary(50) ikili sistemde kullanılır.8000 byte.

3-bit 0 veya 1 olarak düşünülebilir.Örneğin evli veya bekar gibi.

4-char sabit uzunlukta ve üzerinde aritmetik işlem yapılmayacak değerler için kullanılır.Burada dikkat edilmesi gereken konu char yerine varchar da kullanılabiliyor olmasıdır.bu ikisinin arasındaki farkı küçük bir örnekle pekiştirelim Mehmet diye bir verimiz olsun ve biz char(10) veri tipini kullanalım burada Mehmet in kaydı için 6 karakterlik bir alana ihtiyacımız var kalan 4 karakter de bellekte ayrılacak ve belleği boşu boşuna kullanmış olacağız işte böyle durumlarda varchar veri tipini kullanmamız daha uygun olacaktır.

5-date 3 byte lık bir alan kaplayan bir veri tipidir.GÜN AY VE YIL.

6-datetime 8 byte lık bir alan kaplayan bir veri tipidir.GÜN AY YIL SAAT DAKİKA VE SANİYE

7-datetime2(7) aynı şekilde gün ay yıl saat dakika saniye ve daha ileri zamanlar için kullanılır.Örneğin 100 metre veya daha kısa koşularda derece belirlemek için kullanılabilir.

8-datetimeoffset(buradaki değerler kullanıcı tarafında değiştirilebilir) farklı ülkelerdeki zaman dilimleri için kullanılan veri tipidir.

9-decimal ondalıklı değerler tutan veri türüdür 10 ^+-38


VERİTABANI OLUŞTURMA VE VERİ EKLEME (SQL E GİRİŞ)







SQL SERVER 2012 Yİ BURAYA TIKLAYARAK İNDİREBİLİRSİNİZ

SQL SERVER 2012 KURULUMU İÇİN BURADAN YARDIM ALABİLİRSİNİZ





SQL NEDİR ? 

VERİ TABANI OLUŞTURMA VE VERİ EKLEME


DATABASE KISMINDAN NEW DATABASE YE TIKLAYIP VERİ TABANIMIZA İSMİNİ VERDİK.









SONRA KURDUĞUMUZ VERİ TABANINA TIKLAYIP ORADAN YENİ BİR TABLO OLUŞTURDUK.BU TABLO VERİ TABANIMIZA GİRECEĞİMİZ BİLGİLERİ İÇİN GEREKLİ.
DAHA SONRA VERİ BAŞLIKLARIMIZI GİRDİK VERİ TİPLERİNİ BİR SONRAKİ YAYINLARDA GÖRECEĞİZ.






 
VE SON OLARAK TA VERİ EKLEMESİ YAPTIK BÖYLECE SQL İ KURUP KÜÇÜK BİR GİRİŞ YAPTIK DAHA SONRAKİ YAYINLARDA VERİ TİPLERİNİ VE KODLAR İLE VERİ TABANI OLUŞTURMA GİBİ YAYINLAR PAYLAŞACAĞIM...

Spring Boot Uygulamasını Heroku üzerinde Deploy Etme

Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...