Ms sql sunucusu yazma sorguları. Management Studio'da SQL sorgularını yürütme. Ortalama hesaplanan alan ekleme

Tablo ifadeleri bir tablonun varlığının beklendiği durumlarda kullanılan alt sorgular olarak adlandırılır. İki tür tablo ifadesi vardır:

    türetilmiş tablolar;

    genelleştirilmiş tablo ifadeleri.

Tablo ifadelerinin bu iki biçimi aşağıdaki alt bölümlerde tartışılmaktadır.

Türetilmiş tablolar

Türetilmiş tablo bir sorgunun FROM yan tümcesinde yer alan bir tablo ifadesidir. Türetilmiş tablolar, SQL çeviricisinin takma ad bilinmeden önce başka bir ifadeyi işlemesi nedeniyle sütun takma adlarının kullanılmasının mümkün olmadığı durumlarda kullanılabilir. Aşağıdaki örnek, takma ad bilinmeden önce başka bir cümlenin işlendiği bir durumda sütun takma adını kullanma girişimini göstermektedir:

SampleDb'yi KULLANIN; AY(EnterDate)'i enter_month olarak SEÇİN Works_on'dan GROUP BY enter_month;

Bu sorguyu çalıştırmayı denemek aşağıdaki hata mesajını üretecektir:

Msg 207, Seviye 16, Durum 1, Satır 5 Geçersiz sütun adı "enter_month". (Mesaj 207: Seviye 16, Durum 1, Satır 5 Geçersiz sütun adı enter_month)

Hatanın nedeni, SELECT ifadesinin karşılık gelen listesi işlenmeden önce GROUP BY deyiminin işlenmesi ve grup işlenirken enter_month sütununun takma adının bilinmemesidir.

Bu sorun, önceki sorguyu içeren türetilmiş bir tablo kullanılarak çözülebilir (GROUP BY yan tümcesi olmadan), çünkü FROM yan tümcesi GROUP BY yan tümcesinden önce yürütülür:

SampleDb'yi KULLANIN; SELECT enter_month FROM (SELECT MONTH(EnterDate) as enter_month FROM Works_on) AS m GROUP BY enter_month;

Bu sorgunun sonucu şu şekilde olacaktır:

Tipik olarak bir tablo ifadesi, SELECT deyiminde tablo adının görünebileceği herhangi bir yere yerleştirilebilir. (Bir tablo ifadesinin sonucu her zaman bir tablo veya özel durumlarda bir ifadedir.) Aşağıdaki örnek, bir SELECT ifadesinin seçim listesinde bir tablo ifadesinin kullanımını gösterir:

Bu sorgunun sonucu:

Genel tablo ifadeleri

Ortak Tablo İfadesi (OTB) Transact-SQL dili tarafından desteklenen adlandırılmış bir tablo ifadesidir. Ortak tablo ifadeleri aşağıdaki iki sorgu türünde kullanılır:

    yinelemeli olmayan;

    yinelemeli.

Bu iki tür istek aşağıdaki bölümlerde ele alınmaktadır.

OTB ve özyinelemeli olmayan sorgular

OTB'nin yinelemeli olmayan biçimi, türetilmiş tablo ve görünümlere alternatif olarak kullanılabilir. Tipik olarak OTB şu şekilde belirlenir: İLE cümlecikler ve With yan tümcesinde kullanılan isme başvuran ek bir sorgu. Transact-SQL'de, With anahtar sözcüğünün anlamı belirsizdir. Belirsizliği önlemek için, With deyiminden önceki ifade noktalı virgülle sonlandırılmalıdır.

AdventureWorks2012'Yİ KULLANIN; Sales.SalesOrderHeader'dan SalesOrderID'yi SEÇİN WHERE TotalDue > (Sales.SalesOrderHeader'dan AVG(TotalDue) WHERE YEAR(OrderDate) = "2005") VE Navlun > (Sales.SalesOrderHeader'dan AVG(TotalDue) WHERE YEAR(OrderDate) = "2005'İ SEÇİN ")/2.5;

Bu örnekteki sorgu, toplam vergileri (TotalDue) tüm vergilerin ortalamasından büyük olan ve navlun ücretleri (Freight) ortalama vergilerin %40'ından fazla olan siparişleri seçer. Bu sorgunun ana özelliği uzunluğudur çünkü alt sorgunun iki kez yazılması gerekir. Biri olası yollar sorgu yapısının boyutunu azaltmak, bir alt sorgu içeren bir görünüm oluşturmak olacaktır. Ancak bu çözüm biraz karmaşık çünkü bir görünüm oluşturmayı ve sorgunun yürütülmesi bittikten sonra onu silmeyi gerektiriyor. Daha iyi bir yaklaşım bir OTB oluşturmak olacaktır. Aşağıdaki örnek, yukarıdaki sorgu tanımını kısaltan yinelemeli olmayan OTB kullanımını göstermektedir:

AdventureWorks2012'Yİ KULLANIN; Price_calc(year_2005) OLARAK ( Sales.SalesOrderHeader'dan AVG(TotalDue) SEÇİN WHERE YEAR(OrderDate) = "2005") Sales.SalesOrderHeader'dan SalesOrderID'yi SEÇİN WHERE TotalDue > (price_calc'tan yıl_2005 SEÇİN) VE Navlun > (price_cal c'DEN YIL_2005 SEÇİN ) /2,5;

Özyinelemeli olmayan sorgulardaki YOUR yan tümcesinin sözdizimi aşağıdaki gibidir:

cte_name parametresi, ortaya çıkan tabloyu tanımlayan OTB adını temsil eder ve sütun_list parametresi, tablo ifadesinin sütunlarının listesini temsil eder. (Yukarıdaki örnekte, OTB'ye fiyat_hesap adı verilmiştir ve yıl_2005 adında bir sütunu vardır.) inner_query parametresi, karşılık gelen tablo ifadesinin sonuç kümesini belirten bir SELECT ifadesini temsil eder. Tanımlanan tablo ifadesi daha sonra dış_sorguda kullanılabilir. (Yukarıdaki örnekteki dış sorgu, çift iç içe geçmiş sorguyu basitleştirmek için OTB Price_calc ve onun Year_2005 sütununu kullanır.)

OTB ve özyinelemeli sorgular

Bu bölüm artan karmaşıklığa sahip materyali sunmaktadır. Bu nedenle ilk kez okurken atlayıp daha sonra geri dönmeniz önerilir. OTB'ler özyinelemeleri uygulamak için kullanılabilir çünkü OTB'ler kendilerine referanslar içerebilir. Özyinelemeli bir sorgu için temel OTB sözdizimi şuna benzer:

Cte_name ve Column_list parametreleri, yinelemeli olmayan sorgular için OTB'dekiyle aynı anlama sahiptir. Bir With yan tümcesinin gövdesi, operatör tarafından birleştirilen iki sorgudan oluşur. BİRLİK TÜMÜ. İlk sorgu yalnızca bir kez çağrılır ve özyinelemenin sonucunu toplamaya başlar. UNION ALL operatörünün ilk işleneni OTB'ye referans vermiyor. Bu sorguya referans sorgusu veya kaynağı denir.

İkinci sorgu OTB'ye bir referans içerir ve onun özyinelemeli kısmını temsil eder. Bu nedenle buna özyinelemeli üye denir. Özyinelemeli kısma yapılan ilk çağrıda OTB referansı, referans sorgusunun sonucunu temsil eder. Özyinelemeli üye ilk sorgu çağrısının sonucunu kullanır. Bundan sonra sistem özyinelemeli kısmı tekrar çağırır. Özyinelemeli bir üyeye yapılan çağrı, ona yapılan önceki bir çağrı boş bir sonuç kümesi döndürdüğünde durur.

UNION ALL operatörü, mevcut birikmiş satırların yanı sıra geçerli çağrı tarafından özyinelemeli üyeye eklenen ek satırları birleştirir. (UNION ALL operatörünün varlığı, yinelenen satırların sonuçtan kaldırılmayacağı anlamına gelir.)

Son olarak, external_query parametresi, OTB'nin her iki üyenin birleşimine yapılan tüm çağrıları almak için kullandığı dış sorguyu belirtir.

OTB'nin özyinelemeli biçimini göstermek için aşağıdaki örnekte gösterilen kodla tanımlanan ve doldurulan Airplane tablosunu kullanıyoruz:

SampleDb'yi KULLANIN; CREATE TABLE Uçak(İçeren Montaj VARCHAR(10), İçerilen Montaj VARCHAR(10), Miktarİçerilen INT, Birim Maliyet DECIMAL(6,2)); Uçak DEĞERLERİNE EKLEYİN ("Uçak", "Gövde", 1, 10); Uçak DEĞERLERİNE EKLEYİN ("Uçak", "Kanatlar", 1, 11); Uçak DEĞERLERİNE EKLEYİN ("Uçak", "Kuyruk", 1, 12); Uçak DEĞERLERİNE EKLEYİN ("Gövde", "Salon", 1, 13); Uçak DEĞERLERİNE EKLEYİN ("Gövde", "Kokpit", 1, 14); Uçak DEĞERLERİNE GİRİN ("Gövde", "Burun",1, 15); Uçak DEĞERLERİNE INSERT ("Kabin", NULL, 1,13); Uçak DEĞERLERİNE INSERT ("Kokpit", NULL, 1, 14); Uçak DEĞERLERİNE EKLEYİN ("Burun", NULL, 1, 15); Uçak Değerlerine Ekle ("Kanatlar", NULL,2, 11); Uçak DEĞERLERİNE EKLEYİN ("Kuyruk", NULL, 1, 12);

Uçak tablosunun dört sütunu vardır. ContainingAssembly sütunu montajı tanımlar ve ContainedAssembly sütunu karşılık gelen montajı oluşturan parçaları (tek tek) tanımlar. Aşağıdaki şekilde olası bir uçak tipinin ve bileşen parçalarının grafiksel gösterimi gösterilmektedir:

Uçak tablosu aşağıdaki 11 satırdan oluşur:

Aşağıdaki örnek, her yapının toplam maliyetini hesaplayan bir sorgu tanımlamak için With yan tümcesini kullanır:

SampleDb'yi KULLANIN; İLE list_of_parts(assembly1, miktar, maliyet) AS (SELECT ContainingAssembly, QuantityContained, UnitCost FROM Airplane WHERE ContainedAssembly IS NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityContained, CAST(l.quantity * l.cost AS DECIMAL(6,2) ) Parça Listesinden l, Uçak a NEREDE l.montaj1 = a.İçerilen Montaj) Parça listesinden montaj1 "Parça", miktar "Miktar", maliyet "Fiyat" SEÇİN;

With yan tümcesi, üç sütundan oluşan list_of_parts adlı bir OTB listesini tanımlar: montaj1, miktar ve maliyet. Örnekteki ilk SELECT ifadesi, özyineleme işleminin ilk adımının sonuçlarını depolamak için yalnızca bir kez çağrılır. Örneğin son satırındaki SELECT ifadesi aşağıdaki sonucu görüntüler.

SQL veya Yapılandırılmış Sorgu Dili, ilişkisel veritabanı sistemindeki (RDBMS) verileri yönetmek için kullanılan bir dildir. Bu makale yaygın olarak kullanılanları kapsayacaktır SQL komutları Her programcının aşina olması gereken. Bu materyal, iş görüşmesi öncesinde SQL bilgilerini tazelemek isteyenler için idealdir. Bunu yapmak için makalede verilen örneklere bakın ve veritabanlarını çiftler halinde çalıştığınızı unutmayın.

Bazı veritabanı sistemlerinin her ifadenin sonunda noktalı virgül gerektirdiğini unutmayın. Noktalı virgül standart işaretçi SQL'deki her ifadenin sonunda. Örneklerde MySQL kullanıldığı için noktalı virgül gereklidir.

Örnekler için bir veritabanı oluşturma

Ekiplerin nasıl çalıştığını göstermek için bir veritabanı oluşturun. Çalışmak için iki dosyayı indirmeniz gerekecek: DLL.sql ve InsertStatements.sql. Bundan sonra, bir terminal açın ve aşağıdaki komutu kullanarak MySQL konsolunda oturum açın (makale, MySQL'in sistemde zaten kurulu olduğunu varsayar):

MySQL -u kök -p

Daha sonra şifrenizi girin.

Aşağıdaki komutu çalıştırın. Veritabanına “üniversite” adını verelim:

VERİTABANI üniversitesi OLUŞTURUN; Üniversiteyi KULLANIN; KAYNAK ; KAYNAK

Veritabanlarıyla çalışma komutları

1. Mevcut veritabanlarını görüntüleyin

VERİTABANLARINI GÖSTER;

2. Yeni bir veritabanı oluşturun

VERİTABANI YARAT;

3. Kullanılacak veritabanını seçme

KULLANMAK ;

4. SQL komutlarını bir .sql dosyasından içe aktarın

KAYNAK ;

5. Veritabanını silin

DAMLA VERİTABANI ;

Tablolarla çalışma

6. Veritabanındaki mevcut tabloları görüntüleyin

TABLOLARI GÖSTER;

7. Yeni bir tablo oluşturun

TABLO OLUŞTUR ( , , BİRİNCİL ANAHTAR ( ), YABANCI ANAHTAR ( ) REFERANSLAR ());

CREATE TABLE Kullanılırken Bütünlük Kısıtlamaları

Bir tablodaki belirli sütunlar üzerinde kısıtlamalar oluşturmanız gerekebilir. Bir tablo oluştururken aşağıdaki kısıtlamaları ayarlayabilirsiniz:

  • bir tablo hücresinin NULL değeri olamaz;
  • birincil anahtar - BİRİNCİL ANAHTAR (sütun_adı1, sütun_adı2, ...) ;
  • yabancı anahtar - YABANCI ANAHTAR (sütun_adıx1, …, sütun_adıxn) REFERANSLAR tablo_adı(sütun_adıx1, …, sütun_adıxn) .

Birden fazla birincil anahtar belirtebilirsiniz. Bu durumda bileşik bir birincil anahtar elde edersiniz.

Örnek

Bir "eğitmen" tablosu oluşturun:

CREATE TABLE eğitmeni (ID CHAR(5), ad VARCHAR(20) NOT NULL, bölüm_adı VARCHAR(20), maaş NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERANSLAR departmanı(dept_name));

8. Tablo bilgileri

Tablo sütunlarına ilişkin çeşitli bilgileri (değer türü, anahtar veya değil) aşağıdaki komutla görüntüleyebilirsiniz:

BETİMLEMEK ;

9. Tabloya veri ekleme

TAKIN (, , , ...) DEĞERLER ( , , , …);

Bir tablodaki her sütuna veri eklediğinizde sütun adlarını belirtmenize gerek yoktur.

TAKIN DEĞERLER ( , , , …);

10. Tablo verilerinin güncellenmesi

GÜNCELLEME AYARLAMAK = , = , ... NEREDE ;

11. Tablodan tüm verilerin kaldırılması

SİL ;

12. Bir tabloyu silin

DAMLA TABLO ;

Sorgu oluşturmaya yönelik komutlar

13. SEÇ

SELECT belirli bir tablodan veri almak için kullanılır:

SEÇME , , … İTİBAREN ;

Aşağıdaki komut tablodaki tüm verileri görüntüleyebilir:

* İÇİNDEN SEÇİN ;

14. FARKLI SEÇİN

Tablo sütunları yinelenen veriler içerebilir. Yalnızca yinelenmeyen verileri almak için SELECT DISTINCT'i kullanın.

FARKLI SEÇİN , , … İTİBAREN ;

15. NEREDE

Bir sorgudaki koşulları belirtmek için SELECT'te WHERE anahtar sözcüğünü kullanabilirsiniz:

SEÇME , , … İTİBAREN NEREDE ;

Talepte aşağıdaki koşullar belirtilebilir:

  • metin karşılaştırması;
  • sayısal değerlerin karşılaştırılması;
  • mantıksal operatörler VE (ve), VEYA (veya) ve DEĞİL (olumsuzlama).

Örnek

Aşağıdaki komutları deneyin. WHERE bölümünde belirtilen koşullara dikkat edin:

SEÇ * FROM ders WHERE bölüm_adı='Comp. Bilim.'; SEÇİN * NEREDE dersten kredi>3; SELECT * FROM course WHERE dept_name="Bilgisayar Bilimi." VE kredi>3;

16. GRUPLAMA ŞARTI

GROUP BY operatörü sıklıkla şununla kullanılır: toplama işlevleriÇıkış değerlerini gruplandırmak için COUNT, MAX, MIN, SUM ve AVG gibi.

SEÇME , , … İTİBAREN GRUPLANDIRMA ŞEKLİ ;

Örnek

Her fakültenin ders sayısını görüntüleyelim:

COUNT(kurs_id), bölüm_adı DERS GRUPTAN bölüm_adı'na göre SEÇİN;

17. SAHİP OLMAK

HAVING anahtar sözcüğü SQL'e eklendi çünkü WHERE toplama işlevleriyle kullanılamıyor.

SEÇME , , ... İTİBAREN GRUPLANDIRMA ŞEKLİ SAHİP OLMAK

Örnek

Birden fazla dersi olan fakültelerin listesini görüntüleyelim:

SEÇ COUNT(kurs_id), bölüm_adı FROM kurs GROUP BY bölüm_adı HAVING COUNT(kurs_id)>1;

18. SİPARİŞ VEREN

ORDER BY sorgu sonuçlarını azalan veya artan düzende sıralamak için kullanılır. ORDER BY, ASC veya DESC belirtilmediği sürece artan sırada sıralayacaktır.

SEÇME , , … İTİBAREN TARAFINDAN SİPARİŞ , , …ASC|DESC;

Örnek

Derslerin listesini artan ve azalan kredi sırasına göre görüntüleyelim:

Dersten * SEÇİN KREDİYE GÖRE SİPARİŞ EDİN; SEÇ * KURSTAN KREDİYE GÖRE SİPARİŞ TANIM;

19. ARASINDA

BETWEEN belirli bir aralıktaki veri değerlerini seçmek için kullanılır. Sayısal ve metin değerleri ve tarihler.

SEÇME , , … İTİBAREN NEREDE ARASINDA VE ;

Örnek

Maaşı 50.000'den fazla, 100.000'den az olan eğitmenlerin listesini görüntüleyelim:

* Eğitmen'DEN MAAŞIN 50000 İLA 100000 ARASINDA OLDUĞUNU SEÇİN;

20. BEĞEN

LIKE operatörü, WHERE'de benzer bir değer için bir arama modeli belirtmek amacıyla kullanılır.

LIKE'ta kullanılan iki ücretsiz operatör vardır:

  • % (yok, bir veya daha fazla karakter);
  • _ (bir karakter).
SEÇME , , … İTİBAREN NEREDE BEĞENMEK ;

Örnek

İsimleri "to" içeren derslerin listesini ve isimleri "CS-" ile başlayan derslerin listesini görüntüleyelim:

SEÇİN * FROM kurs başlığının NEREDE GİBİ '%'den %'ye; SELECT * FROM course WHERE course_id LIKE "CS-___";

21. İÇİNDE

IN kullanarak WHERE yan tümcesi için birden fazla değer belirtebilirsiniz:

SEÇME , , … İTİBAREN NEREDE İÇİNDE ( , , …);

Örnek

Bilgisayar bölümlerindeki öğrencilerin listesini görüntüleyelim. Bilim, Fizik ve Seç. İngilizce:

SELECT * FROM öğrenci WHERE bölüm_adı IN ('Bilgisayar Bilimleri', 'Fizik', 'Elek. Müh.');

22. KATILIN

JOIN, iki veya daha fazla tabloyu, içlerindeki ortak özellikleri kullanarak birbirine bağlamak için kullanılır. Aşağıdaki resimde gösterilmektedir çeşitli yollar SQL'e katılır. Sol dış birleştirme ile sağ dış birleştirme arasındaki farka dikkat edin:

SEÇME , , … İTİBAREN KATILMAK AÇIK = ;

örnek 1

Fakültelerle ilgili tüm derslerin ve ilgili bilgilerin bir listesini görüntüleyeceğiz:

SEÇ * DERSTEN KATILIN departman AÇIK kurs.dept_name=department.dept_name;

Örnek 2

Gerekli tüm kursların bir listesini ve bunlarla ilgili ayrıntıları görüntüleyeceğiz:

önkoşul.kurs_id'sini, başlığı, bölüm_adı, krediyi, önkoşuldan önkoşul kimliğini SEÇİN SOL OUTER kursa katılın ON önkoşul.kurs_id=kurs.kurs_id;

Örnek 3

Zorunlu olup olmadığına bakılmaksızın tüm derslerin bir listesini görüntüleyeceğiz:

kurs.kurs_id'sini, başlığı, bölüm_adı, krediyi, önkoşuldan önkoşul kimliğini SEÇİN SAĞ DIŞTAN kursa katılın önkoşul.kurs_id=kurs.kurs_id;

23. Görünüm

Görünüm, bir ifadenin yürütülmesinin sonucu olarak oluşturulan sanal bir SQL tablosudur. Satırları ve sütunları içerir ve normal bir SQL tablosuna çok benzer. Görünüm her zaman veritabanındaki en son bilgileri gösterir.

Yaratılış

GÖRÜNÜM OLUŞTUR SEÇİM OLARAK , , … İTİBAREN NEREDE ;

Kaldırma

BIRAKMA GÖRÜNÜMÜ ;

Örnek

3 kredilik derslerden oluşan bir görünüm oluşturalım:

24. Toplama fonksiyonları

Bu işlevler, söz konusu verilere ilişkin toplu bir sonuç elde etmek için kullanılır. Aşağıdakiler yaygın olarak kullanılan toplama işlevleridir:

  • COUNT (sütun_adı) - satır sayısını döndürür;
  • SUM (sütun_adı) - bu sütundaki değerlerin toplamını döndürür;
  • AVG (sütun_adı) - belirli bir sütunun ortalama değerini döndürür;
  • MIN (sütun_adı) - belirli bir sütunun en küçük değerini döndürür;
  • MAX (sütun_adı) - Belirli bir sütunun en büyük değerini döndürür.

25. İç içe geçmiş alt sorgular

İç içe geçmiş alt sorgular, başka bir sorgu içinde yuvalanmış SELECT, FROM ve WHERE yan tümcelerini içeren SQL sorgularıdır.

Örnek

2009 sonbaharında ve 2010 baharında verilen dersleri bulalım:

DISTINCT course_id FROM bölümünden WHERE dönemi = 'Güz' VE yıl= 2009 VE course_id IN SEÇİN (SELECT course_id FROM bölümünden WHERE dönemi = 'Bahar' VE yıl= 2010);

SQL- Yapılandırılmış sorgu dili.
İÇİNDE bu degerlendirme En yaygın SQL sorgu türlerine bakacağız.
SQL standardı tanımlandı ANSI(Amerikan Ulusal Standartlar Enstitüsü).
SQL, özellikle ilişkisel veritabanlarını hedefleyen bir dildir.

SQL bölümleme:


DDL
(Veri Tanımlama Dili) - ANSI'deki Şema Tanımlama Dili olarak adlandırılan dil, veritabanında nesneler (tablolar, dizinler, görünümler vb.) oluşturan komutlardan oluşur.
DML(Veri işleme dili), herhangi bir zamanda tablolarda hangi değerlerin temsil edileceğini belirleyen bir komutlar kümesidir.
DCD(Veri Yönetimi Dili) bir kullanıcının belirli eylemleri gerçekleştirmesine izin verilip verilmeyeceğini belirleyen olanaklardan oluşur. ANSI DDL'nin bir parçasıdırlar. Bu isimleri unutmayın. Bunlar farklı diller değil, işlevlerine göre gruplandırılmış SQL komutlarının bölümleridir.

Veri tipleri:

SQL Server - Veri Türleri

Tanım

büyük (dahili 8)

büyük (dahili 8)

ikili(N)

ikili(n) veya resim

karakter
(eşanlamlı sözcük karakter)

ulusal karakter veya metin

karakter değişen(eşanlamlı sözcük char değişen varchar)

ulusal karakter değişiyor veya metin

Tarihsaat

tarihsaat

ondalık

diğer adıyla sayısal

çift ​​hassasiyet

çift ​​hassasiyet

tamsayı (dahili 4) (eşanlamlı sözcük: int)

tamsayı (dahili 4)

Ulusal karakter(eşanlamlı sözcük: Ulusal karakter, nchar)

Ulusal karakter

Sayısal(eş anlamlı: ondalık, aralık)

ulusal karakter değişiyor(eş anlamlı: ulusal karakter değişiyor, Nvarchar)

Ulusal karakter değişiyor

Küçük tarihsaat

tarihsaat

küçük (dahili 2)

küçük (dahili 2)

Küçük para

sql_variant

Artık desteklenmiyor

Nmetin
SQL Server 2005'ten başlayarak kullanılması önerilmez.

Zaman damgası

Desteklenmiyor

minik (dahili 1)

minik (dahili 1)

Benzersiz tanımlayıcı

benzersiz tanımlayıcı

değişken ikili(N)

değişken ikili(n) veya resim

küçük tarihsaat

tarihsaat

küçük (dahili 2)

küçük (dahili 2)

küçük para

sql_variant

Desteklenmiyor

zaman damgası

Desteklenmiyor

minik (dahili 1)

minik (dahili 1)

benzersiz tanımlayıcı

benzersiz tanımlayıcı

değişken ikili(N)

değişken ikili(n) veya resim

SQL Server 2000'deki Veri Türü Tablosu

İSTEK NEDİR?

Rica etmek veritabanı programınıza verdiğiniz bir komuttur. Sorgular DML dilinin bir parçasıdır. Tüm SQL sorguları tek bir komuttan oluşur. Bu komutun yapısı aldatıcı derecede basittir çünkü onu oldukça karmaşık değerlendirmeler ve veri manipülasyonları gerçekleştirmek için genişletmeniz gerekir.

SEÇ komutu:

SEÇME“Seç” en sık kullanılan komuttur; tablodan veri seçmek için kullanılır.
SELECT kullanarak sorgu türü:

Kullanıcı_tabanından kimlik, kullanıcı_adı, şehir, doğum_günü SEÇİN;

Böyle bir sorgu, user_base tablosundan, belirtilen sütunların tüm değerlerini virgülle ayrılmış olarak görüntüleyecektir. komutları seç. Ayrıca tüm sütunları tek karakterle görüntüleyebilirsiniz, örneğin * Kullanıcı_tabanından SEÇİN *; - böyle bir sorgu tablodaki tüm verileri gösterecektir.

Komut yapısını SEÇİN:

SELECT (Sorguda görüntülenmesi gereken, virgülle ayrılmış sütun adları) FROM (veritabanındaki tablo adı)
- Bu en basit istek türüdür. Verilerin uygun şekilde alınması için ek komutlar mevcuttur (aşağıdaki “İşlevler”e bakın)

DML komutları:

Üç DML (Veri İşleme Dili) komutu kullanılarak alanlara değerler yerleştirilebilir ve alanlardan kaldırılabilir:
SOKMAK(Sokmak)
GÜNCELLEME(Güncelleme, değişiklik),
SİLMEK(Silmek)

INSERT komutu:

INSERT INTO user_base (kullanıcı_adı, şehir, doğum_günü) VALUES ('İskender', 'Rostov', '06/20/1991');

INSERT komutu INTO (in to) ön ekiyle birlikte gelir, ardından parantez içinde veri eklememiz gereken sütunların adları bulunur, ardından VALUES komutu (değerler) gelir ve parantez içinde değerler sırayla gelir (bu Sütunlardaki değerlerin sırasına dikkat etmek gerekir, değerler belirttiğiniz sütunlarla aynı sırada olmalıdır).

GÜNCELLEME komutu:

GÜNCELLEME user_base SET user_name = 'Alexey';

UPDATE komutu bir tablodaki değerleri günceller. Önce UPDATE komutunun kendisi gelir, ardından SET komutundan (set) sonra tablo adı gelir, ardından sütun adı ve tırnak içindeki değeri gelir (değer dize biçimindeyse tırnak işaretleri, sayısal bir değerse ve sütun vchar veri türüne veya başka herhangi bir dize türüne bağlı değildir; tırnak işaretlerinin hiçbir anlamı yoktur.)

SİL komutu:

User_base'DEN SİL WHERE kullanıcı_adı = 'Vasily';

DELETE komutu satırın tamamını siler ve WHERE kriterini kullanarak satırı tanımlar. Bu durumda bu sorgu, user_name sütun değerinin Vasily olduğu tüm satırları siler. WHERE kriteri ve diğerlerinden biraz sonra bahsedeceğiz.

Kriterler, işlevler, koşullar vb. SQL'de bize ne yardımcı olur:

WHERE yan tümcesi, SELECT komutunun ve diğer DML komutlarının bir yan tümcesidir ve tablodaki herhangi bir satır için koşulu doğru veya yanlış olabilen tahminleri ayarlamanıza olanak tanır. Komut, tablodan yalnızca bu ifadenin doğru olduğu satırları alır.
Örnek:
user_base'den kimlik, şehir, doğum_günü SEÇİN WHERE kullanıcı_adı = 'Alexey';- böyle bir sorgu yalnızca WHERE koşuluyla eşleşen satırları, yani kullanıcı_adı sütununun Alexey değerine sahip olduğu tüm satırları görüntüler.

ORDER BY - seçilen satırları sıralama koşulu. ASC ve DESC olmak üzere 2 kriteri vardır. ASC (A'dan Z'ye veya 0'dan 9'a sıralama)

DESC (ASC'nin tersi).
Örnek:
user_base'DEN ID, şehir, doğum_gününü SEÇİN kullanıcı_adı ASC'YE GÖRE SİPARİŞ VERİN; - böyle bir sorgu, kullanıcı_adı sütununa göre A'dan Z'ye (A-Z; 0-9) sıralanan değerleri gösterecektir.

Bu koşul WHERE deyimiyle birlikte de kullanılabilir.
Örnek:
user_base'den kimlik, şehir, doğum_gününü SEÇİN WHERE kullanıcı_adı = 'Alexey' ORDER BY id ASC;

DISTINCT, SELECT yan tümcenizden çift değerleri ortadan kaldırmanın bir yolunu sağlayan bir argümandır. Onlar. bir sütunda yinelenen değerler varsa, diyelim kullanıcı_adı, o zaman DISTINCT size yalnızca bir değer gösterecektir, örneğin, veritabanınızda Alexey adında 2 kişi varsa, o zaman DISTINCT işlevini kullanan bir sorgu size yalnızca 1 değer gösterecektir. ilk karşılaşılan şey...
Örnek:
Kullanıcı_tabanından DISTINCT kullanıcı_adı SEÇİN;- böyle bir sorgu bize user_name sütunundaki tüm kayıtların değerlerini gösterecektir, ancak bunlar tekrarlanmayacak, yani. sonsuz sayıda yinelenen değeriniz varsa, bunlar gösterilmeyecektir...

VE - iki Boolean'ı (A VE B biçiminde) argüman olarak alır ve her ikisinin de doğru olup olmadığını gerçeğe göre değerlendirir.
Örnek:
SEÇİN * FROM user_base WHERE şehir = 'Rostov' VE kullanıcı_adı = 'İskender';- şehrin adının tek satırda göründüğü tablodaki tüm değerleri gösterecektir (bu durumda Rostov ve kullanıcı adı Alexander.

VEYA - bağımsız değişken olarak iki Boolean (A VEYA B biçiminde) alır ve bunlardan birinin doğru olup olmadığını değerlendirir.

SEÇİN * FROM user_base WHERE şehir = 'Rostov' VEYA kullanıcı_adı = 'İskender';- Rostov şehrinin adının veya Alexander kullanıcı adının satırda göründüğü tablodaki tüm değerleri gösterecektir.

NOT - bağımsız değişken olarak tek bir Boolean (NOT A biçiminde) alır ve değerini false'tan true'ya veya true'dan false'a değiştirir.
SEÇİN * FROM user_base WHERE şehir = 'Rostov' VEYA DEĞİL kullanıcı_adı = 'İskender';- Rostov şehrinin adının tek satırda göründüğü veya kullanıcı adının tam olarak Alexander olmadığı tablodaki tüm değerleri gösterecektir.

IN - belirli bir değerin dahil edilebileceği veya edilemeyeceği bir değerler kümesini tanımlar.
SELECT * FROM user_base NEREDE şehir IN ('Vladivostok', 'Rostov');- böyle bir sorgu, şehir sütununda belirtilen şehirlerin adlarını içeren tablodaki tüm değerleri gösterecektir.

Arasında IN operatörüne benzer. IN'in yaptığı gibi, bir kümedeki sayılarla tanımlamanın aksine BETWEEN, yüklemin doğru olması için değerlerinin azalması gereken bir aralığı tanımlar.
* user_base'DEN 1 VE 10 ARASINDA NEREDE id SEÇİN;- id sütununda 1 ile 10 arasında olacak tablodaki tüm değerleri görüntüler

COUNT - Sorgunun seçtiği alanların satır numaralarını veya NULL olmayan değerlerini üretir.
user_base'DEN COUNT (*) SEÇİN;- bu tablodaki satır sayısını gösterecektir.
user_base'den COUNT (DISTINCT kullanıcı_adı) SEÇİN;- kullanıcı adlarının bulunduğu satır sayısını gösterecektir (tekrarlanmaz)

SUM - belirli bir alan için seçilen tüm değerlerin aritmetik toplamını üretir.
user_base'DEN TOPLAM (id) SEÇİN;- kimlik sütununun tüm satırlarının değerlerinin toplamını gösterecektir.

AVG - bu alanın seçilen tüm değerlerinin ortalamasını alır.
user_base'DEN AVG (id) SEÇİN;- kimlik sütununun seçilen tüm değerlerinin ortalamasını gösterecektir

MAX - bu alan için seçilen tüm değerlerin en büyüğünü üretir.

MIN - bu alan için seçilen tüm değerlerin en küçüğünü üretir.

Tablolar oluşturmak:

CREATE TABLE user_base (id tamsayı, kullanıcı_adı metni, şehir metni, doğum_günü tarihsaat);- böyle bir komutun çalıştırılması, örneklerini verdiğim tablonun oluşmasına yol açacaktır... Burada her şey basit, CREATE TABLE komutunu yazıyoruz, ardından oluşturmak istediğimiz tablonun adını yazıyoruz, ardından parantez içinde, virgüllerle ayrılmış olarak sütunların adları ve veri türleri. Bu, SQL'de tablo oluşturmanın standart yoludur. Şimdi SQL Server 2005'te tablo oluşturmanın bir örneğini vereceğim:

ANSI_NULLS'U AÇIK AYARLAYIN
GİTMEK
QUOTED_IDENTIFIER'I AÇIK AYARLA
GİTMEK
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") VE (N"U") yazın)
BAŞLAMAK
TABLO OLUŞTURUN.(

GEÇERSİZ DEĞİL,
GEÇERSİZ DEĞİL,
GEÇERSİZ DEĞİL,
BİRİNCİL ANAHTAR KÜMELENMİŞ
A.S.C.


SON
GİTMEK
ANSI_NULLS'U AÇIK AYARLAYIN
GİTMEK
QUOTED_IDENTIFIER'I AÇIK AYARLA
GİTMEK
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") VE (N"U") yazın)
BAŞLAMAK
TABLO OLUŞTURUN.(
KİMLİK(1,1) BOŞ DEĞİL,
HÜKÜMSÜZ,
HÜKÜMSÜZ,
BİRİNCİL ANAHTAR KÜMELENMİŞ
A.S.C.
) (IGNORE_DUP_KEY = KAPALI) AÇIK İLE
) TEXTIMAGE_ON'DA
SON
GİTMEK
ANSI_NULLS'U AÇIK AYARLAYIN
GİTMEK
QUOTED_IDENTIFIER'I AÇIK AYARLA
GİTMEK
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") VE (N"U") yazın)
BAŞLAMAK
TABLO OLUŞTURUN.(
KİMLİK(1,1) BOŞ DEĞİL,
HÜKÜMSÜZ,
HÜKÜMSÜZ,
BİRİNCİL ANAHTAR KÜMELENMİŞ
A.S.C.
) (IGNORE_DUP_KEY = KAPALI) AÇIK İLE
) AÇIK
SON

SQL Server 2005'te sözdizimi başka bir konu, sadece SQL programlamanın temellerini anlattığımı göstermek istedim, temelleri bilerek kendiniz zirveye ulaşabilirsiniz.

Bu konuyla ilgili sorularınız varsa lütfen bana yazın

MS SQL Server gibi bir veritabanındaki veriler üzerinde temel işlemleri gösteren bir uygulama geliştirin:

  • veritabanını uygulamaya bağlamak;
  • veritabanı tablolarının formda görüntülenmesi;
  • ek Yeni giriş veritabanına;
  • bir kaydı düzenlemek;
  • bir girişi silme.

Oluşturulma süreci detaylı olarak anlatılan Education.dbo veritabanı esas alınmıştır.

Şekil 1 Education.dbo veritabanının yapısını göstermektedir. Şekilden de görülebileceği gibi veritabanının adı:

sasha-pc\sqlexpress.Education.dbo

Burada “sasha-pc” ağdaki bilgisayar tanımlayıcısıdır, “sqlexpress” veritabanı sunucusunun adıdır, “Education.dbo” veritabanının adıdır.

Pirinç. 1. Education.dbo veritabanı

Veritabanı iki tablo içerir: Öğrenci ve Oturum. Tabloların yapısı aşağıdaki gibidir.

Öğrenci masası.

Oturum tablosu.

Verim

1. MS Visual Studio'da Windows Forms Uygulaması olarak yeni bir proje oluşturun.

Windows Forms Uygulaması türünde yeni bir proje oluşturun. Yeni bir proje oluşturmanın bir örneği ayrıntılı olarak açıklanmıştır

2. Öğrenci tablosundaki verileri görüntülemek için yeni bir görünüm oluşturun.

Veritabanı tablolarındaki verileri görüntülemek için kullanabilirsiniz. Farklı yollar. Bunlardan biri MS Visual Studio kullanılarak oluşturulan görünümlerin oluşturulmasıdır.

Bizim durumumuzda tablo verileri formda DataGridView tipinin bir kontrolünde görüntülenecektir. Görünümleri oluşturduktan sonra bunları DataGridView öğeleriyle ilişkilendirmek çok uygundur.

Görünüm oluşturmak için Education.dbo veritabanının “Görünümler” öğesine sağ tıklayarak çağrılan içerik menüsünden “Yeni Görünüm Ekle” komutunu çağırmanız gerekir (Şekil 2).

Pirinç. 2. Yeni bir görünüm eklemek için komutun çağrılması

Sonuç olarak “Tablo Ekle” penceresi açılacaktır (Şekil 3). Pencerede görünüme eklenen tabloları seçmeniz gerekir.

Pirinç. 3. Yeni görünümün temel alınacağı tabloların seçilmesi

Bizim durumumuzda Öğrenci tablosunu seçin ve Ekle düğmesine tıklayarak seçiminizi onaylayın. Bir sonraki adım Kapat butonunu seçerek pencereyi kapatmaktır.

Adımları tamamladıktan sonra, görünümde (formda) görüntülenmesi gereken alanları seçmeniz gereken bir pencere oluşturulacaktır. Tüm alanları seçin (Şekil 4).

Alanları seçtiğinizde Öğrenci tablosunun alanları çalışma alanının üst kısmında görüntülenir. Fareyi kullanarak sunum için istediğiniz alanları seçebilirsiniz.

Buna göre, pencerenin orta alanı seçilen alanların adlarını, bunların bulunduğu tabloyu (bkz. Şekil 4), sıralama, filtreleme vb. yeteneğini görüntüler.

Alanın alt kısmında görünümü oluşturmak için kullanılan ilgili SQL sorgu metni görüntülenir.

Pirinç. 4. Görünümde görüntülenecek Öğrenci tablosu alanlarını seçme

Takım seçtikten sonra

Dosya->Tümünü Kaydet Dosya->Görünümü Kaydet1

Görünümün adını belirtmeniz gereken bir pencere açılacaktır. “Öğrenciyi Görüntüle” adını ayarlayın (Şekil 5).

Pirinç. 5. Görünüm için bir ad belirleme

Adımları tamamladıktan sonra sunum penceresi Şekil 6’daki gibi görünecektir.

Pirinç. 6. Veritabanındaki Öğrenci temsilini görüntüleyin

Artık bir DataGridView denetimini barındırabilir ve onu bir görünümle ilişkilendirebilirsiniz.

3. DataGridView kontrolünü yerleştirin ve veritabanıyla bağlantıyı yapılandırın.

DataGridView kontrolünü yerleştirmeden önce "Form1.cs" form tasarım moduna girmeniz gerekir.

DataGridView öğesi, verileri görüntüleyebilen bir tablodur. Bu kontrol ToolBox panelinde bulunur. Öncelikle formun boyutunu biraz ayarlayıp üzerine DataGridView kontrolünü yerleştiriyoruz (Şekil 7). Bu, varsayılan olarak dataGridView1 adında bir nesne örneği oluşturacaktır.

Pirinç. 7. DataGridView kontrolü ve veri kaynağı seçim penceresi

DataGridView kontrolünü forma yerleştirdikten sonra sağ üst köşeden veri kaynağını yapılandırmayı seçebilirsiniz. Buna göre “DataGridView Görevleri” penceresi açılacaktır. Bu pencerede “Veri Kaynağını Seç” açılır menüsünü seçmeniz gerekir.

Açılan menüde “Proje Veri Kaynağı Ekle...” komutunu seçin (Şek. 7). Bundan sonra veri kaynağının sırayla seçildiği bir sihirbaz penceresi açılır.

Şekil 8'de " Veri Kaynağı Yapılandırma Sihirbazı“, veri kaynağı türünün seçildiği yer. Bizim durumumuzda “Veritabanı” kurulumunu yapıyoruz.

Pirinç. 8. Veri kaynağı türünün seçilmesi

Bir sonraki pencerede (Şekil 9) veri kaynağı modeli seçilir. DataSet'i seçmeniz gerekir.

Pirinç. 9. Veri kaynağı modelinin seçilmesi

Şekil 10'da gösterilen pencerede veritabanına bağlanmak için kullanmak istediğiniz veri bağlantısını belirtmeniz gerekmektedir. Bizim durumumuzda veritabanını seçmemiz gerekiyor " sasha-pc\sqlexpress\Education.dbo«.

Pirinç. 10. Veri bağlantısı seçme

Sonraki pencere (Şekil 11), Bağlantı Dizesi'nin uygulama yapılandırma dosyasına kaydedilmesini önerir. Her şeyi olduğu gibi bırakıp bir sonraki pencereye geçiyoruz.

Pirinç. 11. Veritabanı bağlantı dizesi Bağlantı Dizesi'nin uygulama yapılandırma dosyasına kaydedilmesine ilişkin öneri

Veritabanı bağlantısı oluşturulduktan sonra çeşitli veritabanı nesneleri görüntülenir (Şekil 12). Bizim durumumuzda “Öğrenciyi Görüntüle” görünümünü ve buradaki tüm alanları seçmemiz gerekiyor. İşaretlenen alanlar DataGridView türü bileşeninde görüntülenecektir.

Pirinç. 12. DataGridView'da Görüntülenecek Veritabanı Nesnelerinin Seçilmesi

Bitir butonunu seçtikten sonra Education.dbo veritabanının seçilen nesneleri (Öğrenciyi Görüntüle görünümü) görüntülenecektir (Şekil 13).

Pirinç. 13. Seçilen Öğrenciyi Görüntüle alanları ile DataGridView kontrolü

Benzer şekilde, herhangi bir veritabanı tablosundaki herhangi bir alanı içeren görünümleri yapılandırabilirsiniz. Ayrıca farklı tablolardaki alanlar tek bir görünümde görüntülenebilir.

4. DataGridView kontrolünün görünümünü ayarlama.

Uygulamayı çalıştırdığınızda veritabanındaki Öğrenci tablosuna karşılık gelen Öğrenciyi Görüntüle görünümünden veri alacaksınız (Şekil 14).

Pirinç. 14. Uygulamanın yürütülmesi için başlatılması

Şekil 14'ten görebileceğiniz gibi dataGridView1 tablosundaki veriler normal şekilde görüntülenmektedir ancak tasarım ayarlanabilmektedir.

DataGridView türünün kontrolü, görüntülenen alanların görünümünü ayarlamanıza olanak tanır.

Alanları düzenlemeye yönelik komutları çağırmak için, dataGridView1 kontrolüne sağ tıklayarak bağlam menüsünü çağırmanız yeterlidir.

Menüde çeşitli faydalı komutlar DataGridView'ın görünümünü ve çalışmasını kontrol etmenize olanak tanır:

  • kontrolü engelleme komutu (Kontrolleri Kilitle);
  • görünümde görüntülenen alanları düzenleme komutu (Sütunları Düzenle...);
  • hesaplanmış alanlar (Sütun Ekle) gibi yeni alanlar ekleme komutunu kullanın.

Bizim durumumuzda “Sütunları Düzenle…” komutunu seçmeniz gerekiyor (Şekil 15).

Pirinç. 15. Bağlam menüsünden “Sütunları Düzenle...” komutunu verin

Sonuç olarak, sunum alanlarının görünümünü beğeninize göre özelleştirebileceğiniz “Sütunları Düzenle” penceresi açılacaktır (Şekil 16).

Pirinç. 16. "Öğrenciyi Görüntüle" görünümündeki alanların görünümünü ayarlama penceresi

Şekil 16'daki pencerede herhangi bir alan için adı, hizalamayı, genişliği, verileri düzenleme yeteneğini vb. yapılandırabilirsiniz.

5. Bağlantı Dizesi

Veritabanında değişiklik yapmak için, veritabanına Bağlantı Dizesi'ne bir bağlantı dizesi almanız gerekir.

Veritabanı bağlantı dizesini almanın farklı yolları vardır. Bunlardan biri, Education.dbo veritabanının Özellikler penceresindeki bu satırı okumaya dayanmaktadır (Şekil 17).

Pirinç. 17. Bağlantı Dizesi Tanımlama

Dizeyi programa kaydetmek için türün dahili bir değişkeni sicim. Panoyu kullanarak Bağlantı Dizesi'ni açıklanan dize değişkenine kopyalayın.

Form1 sınıfının açıklamasının başındaki "Form1.cs" dosyasının metninde değişkeni tanımlamanız gerekir:

string conn_string = ;

Şu anda Form1 sınıfının metni aşağıdaki gibidir:

genel kısmi sınıf Form1 : Form { dize conn_string = @"Veri Kaynağı=(yerel)\SQLEXPRESS;İlk Katalog=Eğitim;Entegre Güvenlik=Doğru;Havuzlama=Yanlış"; genel Form1() { Bileşeni Başlatma(); } özel void Form1_Load(nesne göndereni, EventArgs e) { // YAPILACAKLAR: Bu kod satırı verileri "educationDataSet.View_Student" tablosuna yükler. Yapabilirsiniz gerektiği gibi taşıyın veya kaldırın. } }

6. Yaratılış yeni form veri işleme komutlarını göstermek için.

Mevcut kaydın verilerini işleyebilmek için yeni bir form oluşturmanız gerekmektedir. MS Visual Studio - C#'ta yeni bir form oluşturma süreci ayrıntılı olarak anlatılmaktadır.

Yeni bir form eklemek şu komutla yapılır:

Proje -> Windows Formu Ekle...

Açılan “Yeni Öğe” penceresinde “Windows Form” öğesini seçmeniz gerekmektedir.

Yeni form dosyası adını varsayılan "Form2.cs" olarak bırakın.

Şekil 18 yeni formun bir görünümünü göstermektedir.

Forma aşağıdaki kontrol türlerini yerleştiriyoruz:

  • iki Düğme kontrolü (Tamam ve İptal düğmeleri). Buna göre buton1 ve buton2 isimli iki nesne alınacaktır;
  • bilgilendirici mesajlar oluşturmak için dört Etiket kontrolü;
  • Num_book, Name, Group, Year alanlarına veri girmek için TextBox türünün dört kontrolü.

Kontrollerin aşağıdaki özelliklerini yapılandırmanız gerekir:

  • kontrol butonu1 özelliğinde Text = “OK”;
  • Button2 kontrol özelliğinde Text = “İptal”;
  • kontrol butonu1 özelliğinde DialogResult = "OK ";
  • kontrol butonu2 özelliğinde DialogResult = "İptal";
  • kontrol label1 özelliğinde Text = "Num_book";
  • kontrol label2 özelliğinde Text = "Ad";
  • kontrol label3 özelliğinde Text = "Grup";
  • label4'te Text = "Yıl" özelliğini kontrol edin.

Ayrıca TextBox kontrollerinin görünürlüğünü de yapılandırıyoruz. Bunu yapmak için, tüm textBox1, textBox2, textBox3, textBox4 kontrollerinde Değiştiriciler = “public” özellik değerini kullanın.

Pirinç. 18. Yeni oluşturulan formun görünümü

7. Öğrenci tablosundaki verileri değiştirmek için komut çağırmaya yönelik düğmeler ekleme.

Daha fazla çalışma için, Form1 ana formuna geçmek için fareyi kullanmanız gerekir.

Form1 uygulamasının ana formuna üç adet buton ekleyin (Button). Button1, Button2, Button3 adlarıyla otomatik olarak üç nesne değişkeni oluşturulacaktır. Bu düğmelerin her birinde aşağıdaki ayarları yapıyoruz (Özellikler penceresi):

  • butonun butonu1 özelliğinde Text = “Ekle…” (kayıt ekle);
  • butonun butonu2 özelliğinde Text = “Düzenle …” (girişi değiştir);
  • butonun butonu3 özelliğinde Metin = "Sil".

Yapılan değişiklikler sonucunda ana form Şekil 19’daki gibi görünecektir.

Pirinç. 19. Başvurunun ana şekli

8. “Ekle...” düğmesine bir tıklama etkinliği programlamak.

“Ekle...” düğmesindeki tıklama olayı işleyicisi şuna benzer:

özel void butonu1_Click_1(nesne göndereni, EventArgs e) { dize cmd_metni; Form2 f2 = yeni Form2(); if (f2.ShowDialog() == DialogResult .OK) { cmd_metni = "ÖĞRENCİ DEĞERLERİNE EKLEYİN (" + """ + f2.textBox1.Text + "" , "" + f2.textBox2.Text + "" , "" + f2.textBox3.Text + "" , " + f2.textBox4.Text + ")" ; //veritabanı ile bağlantı oluşturuyoruz SqlConnection sql_conn = new SqlConnection(bağlantı_string); //SQL dilinde bir komut oluşturalım SqlCommand sql_comm = new SqlCommand(cmd_text, sql_conn); sql_conn.Open(); // bağlantıyı aç sql_comm.ExecuteNonQuery(); // komutu SQL dilinde çalıştır sql_conn.Close(); // yakın bağlantı this .view_StudentTableAdapter.Fill(this .educationDataSet.View_Student); } }

Önce Form2 çağrılır. “Tamam” sonucunu aldıktan sonra (ilgili düğmeye basıldığında), Form2'de TextBox tipinin elemanlarındaki doldurulmuş alanlar SQL sorgu dizesine dahil edilir. Yeni bir satır eklemek için SQL sorgusu şöyle görünür:

Öğrenciye EKLEYİN DEĞERLER (değer1, değer2, değer3, değer4)

burada değer1 not defteri numarasına karşılık gelir; değer2 – öğrencinin soyadı; değer3 – öğrencinin çalıştığı grup; değer4 – giriş yılı.

Bağlantı Dizesi veritabanı bağlantı dizesi conn_string değişkeninde açıklanmıştır (bkz. paragraf 5). SqlConnection sınıfı nesnesi uygulamayı veri kaynaklarına bağlar. Ek olarak, Connection sınıfı kullanıcı kimlik doğrulamasını, ağ oluşturmayı, veritabanı tanımlamayı, bağlantı arabelleğe almayı ve işlem işlemeyi yönetir.

Bir tabloya kayıt ekleyen SQL komutu SqlCommand sınıfında kapsüllenmiştir. SqlCommand sınıfının yapıcısı iki parametre alır: bir SQL sorgu dizesi (cmd_text değişkeni) ve SqlConnection sınıfının bir nesnesi.

ExecuteNonQuery() yöntemi IDBCommand arayüzünde uygulanır. Yöntem, veri döndürmeyen SQL komutlarını uygular. Bu tür komutlar INSERT, DELETE, UPDATE komutlarının yanı sıra veri döndürmeyen saklı yordamları da içerir. ExecuteNonQuery() yöntemi, ilgili kayıtların sayısını döndürür.

9. “Düzenle...” düğmesine bir tıklama etkinliği programlamak.

"Düzenle..." düğmesindeki tıklama olayı işleyicisi şuna benzer:

özel void butonu2_Click(object sender, EventArgs e) ( string cmd_text; Form2 f2 = new Form2 (); int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert .ToString(dataGridView1.Value); f2.textBox1 .Text = num_book; f2.textBox2.Text = Convert .ToString(dataGridView1.Value); f2.textBox3.Text = Convert .ToString(dataGridView1.Value); f2.textBox4.Text = Convert .ToString(dataGridView1.Value); if (f2.ShowDialog() == DialogResult .OK) ( cmd_text = "Öğrenci SETini GÜNCELLEYİN Num_book = ""+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "Yıl = " + f2 .TextBox4.Text + "What num_book =" " + num_book +" "" "" SQLConNection SQL_Conn = Yeni SQLConNECTION (Conn_String); SQLCMAND SQL_comm = Yeni SQLCMANT (CMD_TEXT , sql_conn); sql_conn.open (); sql_comm.executenonquery () ; sql_conn.Close(); bu .view_StudentTableAdapter.Fill(bu .educationDataSet.View_Student); ) )

Bu işleyici, etkin kaydın geçerli değerini değiştiren bir UPDATE SQL komutunu yürütür.

10. “Sil” düğmesine bir tıklama etkinliği programlamak.

"Sil" düğmesindeki tıklama olayı işleyicisi şuna benzer:

özel void butonu3_Click(object sender, EventArgs e) ( string cmd_text = "Öğrenciden SİL" ; int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert.ToString(dataGridView1.Value); cmd_text = "Öğrencinin Nereden Silin. = ""+ num_book + """ ; SqlConnection sql_conn = new SqlConnection (conn_string); SqlCommand sql_comm = new SqlCommand (cmd_text, sql_conn); sql_conn.Open(); sql_comm.ExecuteNonQuery(); sql_conn.Close(); bu .view_StudentTable Bağdaştırıcısı. Doldur (bu .educationDataSet.View_Student); )

Bu işleyici, bir kaydı silmek için SQL komutunu DELETE çalıştırır.

İlgili konular

  • Microsoft Access veritabanı tablosunun çıktısını alma

SQL Server Management Studio, her tür sorguyu oluşturmak için eksiksiz bir araç sağlar. Onun yardımıyla sorguları oluşturabilir, kaydedebilir, yükleyebilir ve düzenleyebilirsiniz. Ayrıca herhangi bir sunucuya bağlanmadan sorgular üzerinde çalışabilirsiniz. Bu araç aynı zamanda farklı projeler için sorgu geliştirme olanağı da sağlar.

Sorgu Düzenleyicisi'ni veya Çözüm Gezgini'ni kullanarak sorgularla çalışabilirsiniz. Bu makale bu araçların her ikisini de kapsamaktadır. SQL Server Management Studio'nun bu iki bileşenine ek olarak, yerleşik hata ayıklayıcıyı kullanarak SQL kodunda hata ayıklamaya bakacağız.

Sorgu Düzenleyici

Sorgu Düzenleyici panelini açmak için Sorgu Düzenleyici, SQL Server Management Studio araç çubuğunda Yeni Sorgu düğmesini tıklayın. Bu panel, yalnızca Veritabanı Motoru sorgularını değil, tüm olası sorguları oluşturmaya yönelik düğmeleri görüntüleyecek şekilde genişletilebilir. Varsayılan olarak oluşturulur Yeni istek Veritabanı Motoru bileşeni, ancak araç çubuğundaki ilgili düğmeye tıklayarak MDX, XMLA vb. sorgular da oluşturabilirsiniz.

Sorgu Düzenleyici panelinin altındaki durum çubuğu, düzenleyicinin sunucuyla bağlantısının durumunu gösterir. Sunucuya otomatik olarak bağlanmazsanız, Sorgu Düzenleyicisi'ni başlattığınızda, bağlanılacak sunucuyu ve kimlik doğrulama modunu seçmenize olanak tanıyan bir Sunucuya Bağlan iletişim kutusu görüntülenir.

Sorguları çevrimdışı düzenlemek, bir sunucuya bağlanıldığında olduğundan daha fazla esneklik sağlar. Sorguları düzenlemek için sunucuya bağlanmanıza gerek yoktur ve sorgu düzenleyici penceresinin bir sunucuyla bağlantısı kesilebilir (Sorgu --> Bağlantı --> Bağlantıyı Kes menü komutunu kullanarak) ve başka bir düzenleyici penceresi açmadan diğerine bağlanabilir. Çevrimdışı düzenleme modunu seçmek için düzenleyiciyi başlattığınızda açılan Sunucuya Bağlan iletişim kutusunu kullanın. özel tip isteklerinizi iptal etmek için İptal düğmesine tıklamanız yeterlidir.

Aşağıdaki görevleri gerçekleştirmek için Sorgu Düzenleyicisini kullanabilirsiniz:

    Transact-SQL ifadelerinin oluşturulması ve yürütülmesi;

    oluşturulan Transact-SQL dil ifadelerini bir dosyaya kaydetme;

    ortak sorgular için yürütme planlarının oluşturulması ve analiz edilmesi;

    Seçilen sorgunun yürütme planını grafiksel olarak gösteren.

Sorgu düzenleyicide yerleşik bir Metin düzeltici ve farklı eylemler için bir dizi düğme içeren bir araç çubuğu. Ana sorgu düzenleyici penceresi yatay olarak bir sorgu paneline (üstte) ve bir sonuçlar paneline (altta) bölünmüştür. Yürütülecek Transact-SQL ifadeleri (yani sorgular) üst bölmeye girilir ve sistemin bu sorguları işlemesinin sonuçları alt bölmede görüntülenir. Aşağıdaki şekilde sorgu düzenleyicisine bir sorgu girme örneği ve bu sorguyu yürütmenin sonuçları gösterilmektedir:

İlk USE request ifadesi, SampleDb veritabanının geçerli veritabanı olarak kullanılacağını belirtir. İkinci ifade olan SELECT, Çalışan tablosundaki tüm satırları alır. Bu sorguyu çalıştırmak ve sonuçları görüntülemek için Sorgu Düzenleyicisi araç çubuğunda Yürüt düğmesini tıklayın veya F5 tuşuna basın.

Birkaç Sorgu Düzenleyici penceresi açabilirsiniz; Veritabanı Motorunun bir veya daha fazla örneğine birden fazla bağlantı kurun. SQL Server Management Studio araç çubuğundaki Yeni Sorgu düğmesine tıklanarak yeni bir bağlantı oluşturulur.

Sorgu Düzenleyici penceresinin altındaki durum çubuğu, sorgu ifadelerinin yürütülmesiyle ilgili aşağıdaki bilgileri görüntüler:

    geçerli işlemin durumu (örneğin, "İstek başarıyla tamamlandı");

    veritabanı sunucusu adı;

    geçerli kullanıcı adı ve sunucu işlem kimliği;

    geçerli veritabanı adı;

    son isteğin yerine getirilmesi için harcanan süre;

    bulunan satır sayısı

SQL Server Management Studio'nun temel avantajlarından biri, Sorgu Düzenleyicisi için de geçerli olan kullanım kolaylığıdır. Sorgu Düzenleyicisi, Transact-SQL ifadelerinin kodlanmasını kolaylaştırmak için birçok özellik sağlar. Özellikle, Transact-SQL ifadelerinin okunabilirliğini geliştirmek için sözdizimi vurgulamayı kullanır. Tüm ayrılmış kelimeler mavi renkte, değişkenler siyah renkte, dizeler kırmızı renkte ve yorumlar yeşil renkte gösterilir.

Ayrıca sorgu düzenleyicisi, bağlama duyarlı yardım adı verilen bir özellik ile donatılmıştır. Dinamik Yardım, aracılığıyla belirli bir talimat hakkında bilgi alabilirsiniz. Bir talimatın sözdizimini bilmiyorsanız, onu düzenleyicide seçin ve ardından F1 tuşuna basın. Ayrıca Books Online'dan yardım almak için çeşitli Transact-SQL ifadelerinin parametrelerini de vurgulayabilirsiniz.

SQL Management Studio, bir tür otomatik tamamlama aracı olan SQL Intellisense'i destekler. Başka bir deyişle, bu modül kısmen girilen Transact-SQL deyimi öğelerinin büyük olasılıkla tamamlanmasını önerir.

Nesne gezgini sorguları düzenlemenize de yardımcı olabilir. Örneğin, Çalışan tablosu için CREATE TABLE ifadesinin nasıl oluşturulacağını öğrenmek istiyorsanız, Object Explorer'da tabloya sağ tıklayın ve sonuç içerik menüsü Komut Dosyası Tablosu As --> OLUŞTUR --> Yeni Sorgu Düzenleyici Penceresi'ni seçin. Bu şekilde oluşturulan CREATE TABLE ifadesinin bulunduğu Sorgu Düzenleyici penceresi aşağıdaki şekilde gösterilmiştir. Bu özellik aynı zamanda saklı yordamlar ve işlevler gibi diğer nesneler için de geçerlidir.

Nesne Tarayıcı, belirli bir sorgunun yürütme planını grafiksel olarak görüntülemek için çok kullanışlıdır. Sorgu yürütme planı, sorgu iyileştirici tarafından birkaç seçenek arasından seçilen yürütme seçeneğidir. olası seçenekler belirli bir isteği yerine getirmek. Düzenleyicinin üst paneline gerekli sorguyu girin, Sorgu --> Tahmini Yürütme Planını Görüntüle menüsünden bir dizi komut seçin; bu sorgunun yürütme planı, editör penceresinin alt panelinde gösterilecektir.

Çözüm Gezgini

SQL Server Management Studio'da sorgu düzenleme, çözüm yöntemini temel alır. Yeni Sorgu düğmesini kullanarak boş bir sorgu oluşturursanız bu, boş bir çözümü temel alacaktır. Bunu, boş bir sorgu açtıktan hemen sonra Görünüm --> Çözüm Gezgini menüsünden bir dizi komut çalıştırarak görebilirsiniz.

Karar hiçbir projeyle, bir projeyle veya birkaç projeyle ilgili olmayabilir. Hiçbir projeyle ilgisi olmayan boş bir çözüm. Bir projeyi bir çözümle ilişkilendirmek için boş çözümü, Çözüm Gezgini'ni ve Sorgu Düzenleyicisi'ni kapatın ve Dosya --> Yeni --> Proje'yi çalıştırarak yeni bir proje oluşturun. Açılan Yeni Proje penceresinde orta bölmedeki SQL Server Komut Dosyaları seçeneğini seçin. Proje, dosyaları belirli bir konumdaki düzenlemenin bir yoludur. Projeye bir ad atayabilir ve diskteki konumu için bir konum seçebilirsiniz. Yeni bir proje oluşturduğunuzda otomatik olarak yeni bir çözüm başlatılır. Projeye eklenebilir mevcut çözümÇözüm Gezgini'ni kullanarak.

Solution Explorer, oluşturulan her proje için Bağlantılar, Sorgular ve Çeşitli klasörlerini görüntüler. Belirli bir proje için yeni bir Sorgu Düzenleyici penceresi açmak için Sorgular klasörüne sağ tıklayın ve içerik menüsünden Yeni Sorgu'yu seçin.

SQL Server'da hata ayıklama

SQL Server, SQL Server 2008'den başlayarak yerleşik bir kod hata ayıklayıcısına sahiptir. Bir hata ayıklama oturumu başlatmak için, SQL Server Management Studio ana menüsünden Hata Ayıkla --> Hata Ayıklamayı Başlat'ı seçin. Bir dizi komut kullanan bir örnek kullanarak hata ayıklayıcının nasıl çalıştığına bakacağız. Toplu iş, içerdiği tüm ifadeleri yürütmek için Veritabanı Motoruna gönderilen SQL ifadelerinin ve prosedür uzantılarının mantıksal bir dizisidir.

Aşağıdaki şekil p1 projesinde çalışan çalışanların sayısını sayan bir paketi göstermektedir. Bu sayı 4 veya daha fazla ise ilgili mesaj görüntülenir. Aksi takdirde çalışanların adı ve soyadı görüntülenir.

Belirli bir talimatta bir paketin yürütülmesini durdurmak için şekilde gösterildiği gibi kesme noktaları ayarlayabilirsiniz. Bunu yapmak için durmak istediğiniz satırın soluna tıklayın. Hata ayıklama başladığında yürütme, sarı okla işaretlenmiş olan kodun ilk satırında durur. Yürütme ve hata ayıklamaya devam etmek için Hata Ayıklama --> Devam menü komutunu seçin. Toplu talimatlar ilk kesme noktasına kadar yürütülmeye devam edecek ve sarı ok bu noktada duracaktır.

Hata ayıklama işlemiyle ilgili bilgiler Sorgu Düzenleyici penceresinin altındaki iki panelde görüntülenir. Hakkında bilgi farklı şekiller Hata ayıklama bilgileri bu panellerde çeşitli sekmelerde gruplandırılmıştır. Sol bölmede Otomobil sekmesi, Yereller sekmesi ve en fazla beş İzleme sekmesi bulunur. Sağ bölmede Çağrı Yığını, Konular, Kesme Noktaları, Komut Penceresi, Acil Pencere ve Çıkış sekmeleri bulunur. Yereller sekmesi değişken değerleri görüntüler, Çağrı Yığını sekmesi çağrı yığını değerlerini görüntüler ve Kesme Noktaları sekmesi kesme noktası bilgilerini görüntüler.

Hata ayıklama işlemini sonlandırmak için, Hata Ayıklama --> Hata Ayıklamayı Durdur ana menüsünden bir dizi komut yürütün veya hata ayıklayıcı araç çubuğundaki mavi düğmeye tıklayın.

SQL Server 2012, SQL Server Management Studio'daki yerleşik hata ayıklayıcıya birkaç yeni özellik ekler. Artık içinde aşağıdaki işlemlerden birkaçını gerçekleştirebilirsiniz:

    Bir kesme noktası koşulu belirtin. Kesme noktası koşulu Değerlendirilen değeri, kod yürütmenin belirli bir noktada durup durmayacağını belirleyen bir SQL ifadesidir. Bir kesme noktası koşulu belirlemek için kırmızı kesme noktası simgesine sağ tıklayın ve içerik menüsünden Koşul'u seçin. Gerekli Boole ifadesini girmenize olanak tanıyan Kesme Noktası Koşulu iletişim kutusu açılır. Ayrıca ifadenin doğru olması durumunda yürütmeyi durdurmanız gerekiyorsa Is True anahtarını ayarlamanız gerekir. İfade değiştiğinde yürütmenin durdurulması gerekiyorsa Değiştirildiğinde anahtarını ayarlamanız gerekir.

    Kesme noktasındaki isabet sayısını belirtin. İsabet sayısı, yürütme sırasında kesme noktasına kaç kez vurulduğuna bağlı olarak belirli bir noktada yürütmenin durdurulması koşuludur. Belirtilen sayıda geçişe ve belirli bir kesme noktası için belirtilen başka herhangi bir koşula ulaşıldığında, hata ayıklayıcı belirtilen eylemi gerçekleştirir. İsabet sayısına bağlı olarak yürütmeyi durdurma koşulu aşağıdakilerden biri olabilir:

    1. koşulsuz (varsayılan eylem) (Her zaman kes);

      isabet sayısı belirtilen değere eşitse (Sayısı belirli bir değere eşit olduğunda mola verin);

      isabet sayısı belirli bir değerin katıysa (İsabet sayısı belirli bir değerin katına eşit olduğunda kesinti yapın);

      Sayısı belirli bir değere eşit veya daha büyük olduğunda ara verin.

    Hata ayıklama sırasında isabet sayısını ayarlamak için Kesme Noktaları sekmesinde gerekli kesme noktası simgesine sağ tıklayın, içerik menüsünden İsabet Sayısı'nı seçin ve ardından önceki listeden açılan Kesme Noktası İsabet Sayısı iletişim kutusundaki koşullardan birini seçin. Değer gerektiren seçenekler için bunu koşullar açılır listesinin sağındaki metin kutusuna girin. Belirtilen koşulları kaydetmek için Tamam'ı tıklayın.

    Bir kesme noktası filtresi belirtin. Kesme noktası filtresi, kesme noktası işlemini yalnızca belirtilen bilgisayarlara, işlemlere veya iş parçacıklarına sınırlar. Bir kesme noktası filtresi ayarlamak için istediğiniz kesme noktasına sağ tıklayın ve içerik menüsünden Filtrele'yi seçin. Ardından açılan Kesme Noktası Filtreleri iletişim kutusunda, bu kesme noktasının yürütülmesini kısıtlamak istediğiniz kaynakları belirtin. Belirtilen koşulları kaydetmek için Tamam'ı tıklayın.

    Bir kesme noktasında bir eylem belirtin. Vuruş Durumu koşulu, toplu yürütme belirli bir kesme noktasına ulaştığında gerçekleştirilecek eylemi belirtir. Varsayılan olarak, hem isabet sayma koşulu hem de durdurma koşulu karşılandığında yürütme iptal edilir. Alternatif olarak önceden belirlenmiş bir mesaj görüntülenebilir.

    Bir kesme noktasına ulaşıldığında ne yapılacağını belirlemek için kesme noktasının kırmızı simgesine sağ tıklayın ve içerik menüsünden Vurulduğunda'yı seçin. Açılan Kesme Noktası Vurulduğunda iletişim kutusunda, gerçekleştirmek istediğiniz eylemi seçin. Belirtilen koşulları kaydetmek için Tamam'ı tıklayın.

    Hızlı İzleme penceresini kullanın. Bir Transact-SQL ifadesinin değerini QuickWatch penceresinde görüntüleyebilir ve ardından ifadeyi Watch penceresine kaydedebilirsiniz. Hızlı İzleme penceresini açmak için Hata Ayıklama menüsünden Hızlı İzleme'yi seçin. Bu penceredeki ifade İfade açılır listesinden seçilebilir veya bu alana girilebilir.

    Hızlı Bilgi araç ipucunu kullanın. Farenizi bir kod kimliğinin üzerine getirdiğinizde Hızlı Bilgi ( Kısa bilgi) reklamını bir açılır pencerede görüntüler.




Tepe