Ms sql server sorğu yazmaq. Management Studio-da SQL sorğularının icrası. Orta hesablanmış sahənin əlavə edilməsi

Cədvəl ifadələri cədvəlin olması gözlənilən yerlərdə istifadə edilən alt sorğular adlanır. Cədvəl ifadələrinin iki növü var:

    əldə edilmiş cədvəllər;

    ümumiləşdirilmiş cədvəl ifadələri.

Cədvəl ifadələrinin bu iki forması aşağıdakı alt bölmələrdə müzakirə olunur.

Əldə edilmiş cədvəllər

Əldə edilmiş cədvəl sorğunun FROM bəndinə daxil edilmiş cədvəl ifadəsidir. Əldə edilmiş cədvəllər sütun ləqəblərindən istifadənin mümkün olmadığı hallarda istifadə edilə bilər, çünki SQL tərcüməçisi ləqəb məlum olmayana qədər başqa bir ifadəni emal edir. Aşağıdakı nümunə, təxəllüsün tanınmasından əvvəl başqa bəndin işləndiyi bir vəziyyətdə sütun ləqəbindən istifadə cəhdini göstərir:

Nümunə Db-dən istifadə edin; AYI(GirişTarixi) daxil_ay kimi SEÇİN FROM Works_on QRUPU BY enter_month;

Bu sorğunu işə salmağa çalışmaq aşağıdakı xəta mesajını verəcək:

Mesaj 207, Səviyyə 16, Dövlət 1, Sətir 5 Yanlış sütun adı "enter_month". (Mesaj 207: Səviyyə 16, Dövlət 1, Sətir 5 Yanlış sütun adı enter_month)

Xətanın səbəbi odur ki, GROUP BY bəndi SELECT ifadəsinin müvafiq siyahısı emal edilməmişdən əvvəl işlənir və qrup işləndikdə enter_month sütun ləqəbi bilinmir.

Bu problemi özündən əvvəlki sorğunu (GROUP BY bəndi olmadan) ehtiva edən törəmə cədvəldən istifadə etməklə həll etmək olar, çünki FROM bəndi GROUP BY bəndindən əvvəl yerinə yetirilir:

Nümunə Db-dən istifadə edin; GİRİŞ_AYI SEÇİN (AYI SEÇİN(GirişTarixi) İşlədiyi_ay kimi daxil edin);

Bu sorğunun nəticəsi belə olacaq:

Tipik olaraq, cədvəl ifadəsi SELECT ifadəsinin cədvəl adının görünə biləcəyi istənilən yerə yerləşdirilə bilər. (Cədvəl ifadəsinin nəticəsi həmişə cədvəl və ya xüsusi hallarda ifadədir.) Aşağıdakı nümunə SELECT ifadəsinin seçim siyahısında cədvəl ifadəsinin istifadəsini göstərir:

Bu sorğunun nəticəsi:

Ümumi cədvəl ifadələri

Ümumi Cədvəl İfadəsi (OTB) Transact-SQL dili tərəfindən dəstəklənən adlandırılmış cədvəl ifadəsidir. Ümumi cədvəl ifadələri aşağıdakı iki sorğu növündə istifadə olunur:

    qeyri-rekursiv;

    rekursiv.

Bu iki növ sorğu aşağıdakı bölmələrdə müzakirə olunur.

OTB və qeyri-rekursiv sorğular

OTB-nin rekursiv olmayan forması törəmə cədvəllərə və görünüşlərə alternativ olaraq istifadə edilə bilər. Tipik olaraq OTB ilə müəyyən edilir İLƏ bəndlər və WITH bəndində istifadə olunan ada istinad edən əlavə sorğu. Transact-SQL-də WITH açar sözünün mənası birmənalı deyil. Qeyri-müəyyənliyin qarşısını almaq üçün WITH ifadəsindən əvvəlki ifadə nöqtəli vergüllə dayandırılmalıdır.

AdventureWorks2012-dən istifadə edin; Sales.SalesOrderHeader-DƏN SatışSifariş İD SEÇİN HARADA TotalDue > (Sales.SalesOrderHeader-DƏN AVG(TotalDue) HARA İL(SifarişTarixi) = "2005") VƏ Yük Daşıması > (Sales.SalesOrderHeader=YILDAN AVG(TotalDue) SEÇİN. ")/2.5;

Bu misaldakı sorğu ümumi vergiləri (TotalDue) bütün vergilərin orta qiymətindən çox olan və daşıma haqları (Freight) orta vergilərin 40%-dən çox olan sifarişləri seçir. Bu sorğunun əsas xüsusiyyəti onun uzunluğudur, çünki alt sorğunun iki dəfə yazılması lazımdır. Biri mümkün yollar sorğu konstruksiyasının ölçüsünü azaltmaq üçün alt sorğu ehtiva edən bir görünüş yaratmaq olardı. Lakin bu həll bir qədər mürəkkəbdir, çünki sorğunun icrası başa çatdıqdan sonra görünüş yaratmaq və sonra onu silmək lazımdır. Daha yaxşı yanaşma OTB yaratmaq olardı. Aşağıdakı nümunə yuxarıdakı sorğu tərifini qısaldan rekursiv olmayan OTB-nin istifadəsini göstərir:

AdventureWorks2012-dən istifadə edin; Qiymət_calc (il_2005) ilə (il_2005) ilə ) /2.5;

Rekursiv olmayan sorğularda WITH bəndinin sintaksisi aşağıdakı kimidir:

cte_name parametri nəticələnən cədvəli təyin edən OTB adını, column_list parametri isə cədvəl ifadəsinin sütunlarının siyahısını təmsil edir. (Yuxarıdakı misalda OTB qiymət_hesablama adlanır və bir sütuna malikdir, year_2005.) Inner_query parametri müvafiq cədvəl ifadəsinin nəticə dəstini təyin edən SELECT ifadəsini təmsil edir. Müəyyən edilmiş cədvəl ifadəsi daha sonra xarici_sorğuda istifadə edilə bilər. (Yuxarıdakı misaldakı xarici sorğu ikiqat yuvalanmış sorğunu sadələşdirmək üçün OTB price_calc və onun year_2005 sütunundan istifadə edir.)

OTB və rekursiv sorğular

Bu bölmə artan mürəkkəblik materialını təqdim edir. Ona görə də onu ilk dəfə oxuyarkən onu atlayıb sonra qayıtmaq məsləhətdir. OTB-lər rekursiyaları həyata keçirmək üçün istifadə edilə bilər, çünki OTB-lərdə özlərinə istinadlar ola bilər. Rekursiv sorğu üçün əsas OTB sintaksisi belə görünür:

cte_name və column_list parametrləri rekursiv olmayan sorğular üçün OTB-də olduğu kimi eyni məna daşıyır. WITH bəndinin əsas hissəsi operator tərəfindən birləşdirilən iki sorğudan ibarətdir BÜTÜN BİRLİK. Birinci sorğu yalnız bir dəfə çağırılır və o, rekursiyanın nəticəsini toplamağa başlayır. UNION ALL operatorunun birinci operandı OTB-yə istinad etmir. Bu sorğuya istinad sorğusu və ya mənbə deyilir.

İkinci sorğuda OTB-yə istinad var və onun rekursiv hissəsini təmsil edir. Bu səbəbdən ona rekursiv üzv deyilir. Rekursiv hissəyə ilk zəngdə OTB arayışı istinad sorğusunun nəticəsini təmsil edir. Rekursiv üzv ilk sorğu çağırışının nəticəsini istifadə edir. Bundan sonra sistem rekursiv hissəni yenidən çağırır. Rekursiv üzvə edilən zəng, ona əvvəlki zəng boş nəticə dəstini qaytardıqda dayandırılır.

UNION ALL operatoru hazırda yığılmış cərgələrə, eləcə də cari çağırışla rekursiv üzvə əlavə edilmiş əlavə sıralara qoşulur. (UNION ALL operatorunun olması o deməkdir ki, dublikat sətirlər nəticədən silinməyəcək.)

Nəhayət, outer_query parametri OTB-nin hər iki üzvün birləşməsinə bütün zəngləri almaq üçün istifadə etdiyi xarici sorğunu müəyyən edir.

OTB-nin rekursiv formasını nümayiş etdirmək üçün biz aşağıdakı nümunədə göstərilən kodla müəyyən edilmiş və doldurulmuş Təyyarə cədvəlindən istifadə edirik:

Nümunə Db-dən istifadə edin; CREATE TABLE Airplane(ContainingAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), QuantityContained INT, UnitCost DECIMAL(6,2)); Təyyarə DƏYƏRLƏRİNƏ DAXİL EDİN ("Təyyarə", "Gücə", 1, 10); Təyyarə DƏYƏRLƏRİNƏ DAXİL EDİN ("Təyyarə", "Qanadlar", 1, 11); Təyyarə DƏYƏRLƏRİNƏ DAXİL ET ("Təyyarə", "Quyruq", 1, 12); Təyyarə DƏYƏRLƏRİNƏ DAXİL EDİN ("Gücə", "Salon", 1, 13); Təyyarə DƏYƏRLƏRİNƏ DAXİL EDİN ("Gücə", "Kokpit", 1, 14); Təyyarə DƏYƏRLƏRİNƏ DAXİL EDİN ("Gücə", "Burun",1, 15); Təyyarə DƏYƏRLƏRİNƏ DAXİL EDİN ("Kabin", NULL, 1,13); Təyyarə DƏYƏRLƏRİNƏ DAXİL EDİN ("Kokpit", NULL, 1, 14); Təyyarə QİYMƏTLƏRİNƏ INSERT INTO ("Burun", NULL, 1, 15); Təyyarə DƏYƏRLƏRİNƏ INSERT INSERT ("Wings", NULL,2, 11); Təyyarə QİYMƏTLƏRİNƏ INSERT INSERT ("Quyruq", NULL, 1, 12);

Təyyarə cədvəlində dörd sütun var. ContainingAssembly sütunu montajı, ContainedAssembly sütunu isə müvafiq montajı təşkil edən hissələri (bir-bir) müəyyən edir. Aşağıdakı şəkildə təyyarənin mümkün növünün və onun komponent hissələrinin qrafik təsviri göstərilir:

Təyyarə cədvəli aşağıdakı 11 sətirdən ibarətdir:

Aşağıdakı nümunədə hər bir quruluşun ümumi dəyərini hesablayan sorğu təyin etmək üçün WITH bəndindən istifadə olunur:

Nümunə Db-dən istifadə edin; Hissələrin_siyahısı (montaj1, kəmiyyət, qiymət) İLƏ (Tərkibli Yığma, Miqdarı, Təyyarədən VahidMərcləri SEÇİN HARİDƏ TƏRKİBİ YAPILMASI NULL BİRLİK OLDUĞU YERİNƏ HAMISI SEÇİLƏN a.Tərkibli Yığma, a.MəqsədəTərkibli, Kəmiyyət(AS.2,ƏK) ) Hissələrin_siyahısından l, Təyyarə a HARADA l.montaj1 = a.Tərkibli Yığma) Montaj1 SEÇİN "Hissə", kəmiyyət "Kəmiyyət", "Qiymət" hissələrin_siyahısından;

WITH bəndi üç sütundan ibarət list_of_parts adlı OTB siyahısını müəyyən edir: montaj1, kəmiyyət və qiymət. Nümunədə ilk SELECT ifadəsi rekursiya prosesinin ilk addımının nəticələrini saxlamaq üçün yalnız bir dəfə çağırılır. Nümunənin son sətirindəki SELECT ifadəsi aşağıdakı nəticəni göstərir.

SQL və ya Strukturlaşdırılmış Sorğu Dili, əlaqəli verilənlər bazası sistemində (RDBMS) məlumatları idarə etmək üçün istifadə olunan bir dildir. Bu məqalə ümumi istifadəni əhatə edəcəkdir SQL əmrləri, hər bir proqramçıya tanış olmalıdır. Bu material iş müsahibəsindən əvvəl SQL biliklərini təzələmək istəyənlər üçün idealdır. Bunu etmək üçün məqalədə verilən nümunələrə baxın və verilənlər bazalarını cüt-cüt öyrəndiyinizi unutmayın.

Qeyd edək ki, bəzi verilənlər bazası sistemləri hər ifadənin sonunda nöqtəli vergül tələb edir. Nöqtəli vergüldür standart göstərici SQL-də hər ifadənin sonunda. Nümunələr MySQL-dən istifadə edir, ona görə də nöqtəli vergül tələb olunur.

Nümunələr üçün verilənlər bazası qurmaq

Komandaların necə işlədiyini nümayiş etdirmək üçün verilənlər bazası yaradın. İşləmək üçün iki fayl yükləməlisiniz: DLL.sql və InsertStatements.sql. Bundan sonra, bir terminal açın və aşağıdakı əmrdən istifadə edərək MySQL konsoluna daxil olun (məqalədə MySQL-in artıq sistemdə quraşdırıldığı güman edilir):

Mysql -u root -p

Sonra parolunuzu daxil edin.

Aşağıdakı əmri yerinə yetirin. Verilənlər bazasını “universitet” adlandıraq:

MƏLUMAT BAZASI YARATIN universitet; İSTİFADƏ universiteti; MƏNBƏ ; MƏNBƏ

Verilənlər bazası ilə işləmək üçün əmrlər

1. Mövcud verilənlər bazalarına baxın

MƏLUMAT BAZASINI GÖSTƏRİN;

2. Yeni verilənlər bazası yaradın

MƏLUMAT BAZASI YARATMAQ;

3. İstifadə etmək üçün verilənlər bazasının seçilməsi

İSTİFADƏ EDİN ;

4. SQL əmrlərini .sql faylından idxal edin

MƏNBƏ ;

5. Verilənlər bazasını silin

MƏLUMAT BAZASINI DÜŞÜN ;

Cədvəllərlə işləmək

6. Verilənlər bazasında mövcud olan cədvəllərə baxın

CƏDVƏLLƏRİ GÖSTƏRİN;

7. Yeni cədvəl yaradın

CƏDVƏL YARADIN ( , , İLKİN AÇAR ( ), XARİCİ AÇAR ( ) ƏDƏBİYYATLAR ());

CREATE TABLE istifadə edərkən tamlıq məhdudiyyətləri

Cədvəldə müəyyən sütunlar üçün məhdudiyyətlər yaratmağınız lazım ola bilər. Cədvəl yaratarkən aşağıdakı məhdudiyyətləri təyin edə bilərsiniz:

  • cədvəl xanasının NULL dəyəri ola bilməz;
  • əsas açar - PRIMARY KEY (col_name1, col_name2, ...) ;
  • xarici açar - XARİCİ AÇAR (col_namex1, …, col_namexn) İSTİFADƏLƏR cədvəl_name(col_namex1, …, col_namexn) .

Birdən çox əsas açarı təyin edə bilərsiniz. Bu halda, siz kompozit əsas açar əldə edəcəksiniz.

Misal

Cədvəl "təlimatçı" yaradın:

CREATE TABLE təlimatçısı (ID CHAR(5), adı VARCHAR(20) NOT NULL, dept_name VARCHAR(20), maaş NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES şöbəsi(dept_name));

8. Cədvəl məlumatları

Aşağıdakı əmrlə cədvəl sütunları haqqında müxtəlif məlumatlara (dəyər növü, açar və ya olmayan) baxa bilərsiniz:

TƏSVİR ETMƏK ;

9. Cədvələ verilənlərin əlavə edilməsi

DAXİL EDİN (, , , ...) DƏYƏRLƏR ( , , , …);

Cədvəldəki hər bir sütuna məlumat əlavə etdiyiniz zaman sütun adlarını göstərməyə ehtiyac yoxdur.

DAXİL EDİN DƏYƏRLƏR ( , , , …);

10. Cədvəl məlumatlarının yenilənməsi

YENİLƏNİB SET = , = , ... HARADA ;

11. Cədvəldən bütün məlumatların silinməsi

SİLİN ;

12. Cədvəli silin

CƏDVƏL VERİN ;

Sorğu yaratmaq üçün əmrlər

13. SEÇİN

SELECT xüsusi cədvəldən məlumatları əldə etmək üçün istifadə olunur:

SEÇİN , , … FROM ;

Aşağıdakı əmr cədvəldəki bütün məlumatları göstərə bilər:

SEÇİN * FROM ;

14. SEÇİN DISTINCT

Cədvəl sütunlarında dublikat məlumatlar ola bilər. Yalnız dublikat olmayan məlumatları əldə etmək üçün SELECT DISTINCT-dən istifadə edin.

DİSTINCT SEÇİN , , … FROM ;

15. HARADA

Sorğuda şərtləri müəyyən etmək üçün SELECT-də WHERE açar sözündən istifadə edə bilərsiniz:

SEÇİN , , … FROM HARADA ;

Müraciətdə aşağıdakı şərtlər göstərilə bilər:

  • mətn müqayisəsi;
  • ədədi dəyərlərin müqayisəsi;
  • məntiqi operatorlar AND (və), OR (və ya) və NOT (inkar).

Misal

Aşağıdakı əmrləri sınayın. HARADA göstərilən şərtlərə diqqət yetirin:

SEÇİN * KURSDAN HARADA dept_name=’Tər. Elm.'; SEÇİN * KREDİT>3 HARƏDƏ kursdan; * HARADAN kursdan SEÇİN dept_name="Comp. Sci." VƏ kreditlər>3;

16. QRUP BY

GROUP BY operatoru tez-tez istifadə olunur məcmu funksiyalarçıxış dəyərlərini qruplaşdırmaq üçün COUNT, MAX, MIN, SUM və AVG kimi.

SEÇİN , , … FROM GROUP BY ;

Misal

Hər fakültə üçün kursların sayını göstərək:

COUNT(kurs_id), dept_adı SEÇİN kurs QRUPUDAN BÖLÜM_Adı;

17. OLMAQ

HAVING açar sözü SQL-ə əlavə edildi, çünki WHERE ümumi funksiyalarla istifadə edilə bilməz.

SEÇİN , , ... FROM GROUP BY OLMAQ

Misal

Birdən çox kursu olan fakültələrin siyahısını göstərək:

COUNT(kurs_id) SEÇİN, kursun_adı COUNT(kurs_id)>1;

18. SİFARİŞ VERİN

ORDER BY sorğu nəticələrini azalan və ya artan qaydada çeşidləmək üçün istifadə olunur. ORDER BY, ASC və ya DESC göstərilmədikdə, artan qaydada çeşidlənəcək.

SEÇİN , , … FROM SİFARİŞ , , …ASC|DESC;

Misal

Kreditlərin artan və azalan ardıcıllığı ilə kursların siyahısını göstərək:

Kreditlərə görə kurs SİFARİŞİNDƏN * SEÇİN; SEÇİN * Kursun SİFARİŞİNDƏN kreditlər DESC;

19. ARASINDA

BETWEEN müəyyən bir diapazondan məlumat dəyərlərini seçmək üçün istifadə olunur. Rəqəm və mətn dəyərləri, həmçinin tarixlər.

SEÇİN , , … FROM HARADA ARASINDA ;

Misal

Əmək haqqı 50.000-dən çox, lakin 100.000-dən az olan təlimatçıların siyahısını göstərək:

* Əmək haqqı 50000-100000 ARASINDA OLAN təlimatçıdan SEÇİN;

20. BƏYƏN

LIKE operatoru oxşar dəyər üçün axtarış modelini təyin etmək üçün WHERE-də istifadə olunur.

LIKE-da istifadə olunan iki pulsuz operator var:

  • % (heç biri, bir və ya bir neçə simvol);
  • _ (bir simvol).
SEÇİN , , … FROM HARADA KİMİ ;

Misal

Gəlin adlarında "to" olan kursların siyahısını və adları "CS-" ilə başlayan kursların siyahısını göstərək:

* KURSDAN SEÇİN BAŞLIQ KİMİ ‘%to%’; * SEÇİN kurs_id "CS-___" KİMİ YERDƏ kurs;

21. IN

IN-dən istifadə edərək WHERE bəndi üçün bir neçə dəyər təyin edə bilərsiniz:

SEÇİN , , … FROM HARADA IN ( , , …);

Misal

Gəlin Comp ixtisaslarından tələbələrin siyahısını göstərək. Elm, Fizika və Elek. Eng.:

SEÇİN * FROM tələbənin BÖLÜM_ADI IN ('Komp. Sci.', 'Fizika', 'Elec. Eng.');

22. QOŞULUN

JOIN iki və ya daha çox cədvəli onların daxilində ümumi atributlardan istifadə edərək əlaqələndirmək üçün istifadə olunur. Aşağıdakı şəkil göstərilir müxtəlif yollarla SQL-ə qoşulur. Sol xarici birləşmə ilə sağ xarici birləşmə arasındakı fərqə diqqət yetirin:

SEÇİN , , … FROM QOŞULUN ON = ;

Misal 1

Biz bütün kursların siyahısını və fakültələr haqqında müvafiq məlumatları göstərəcəyik:

SEÇİN * KURSDAN QOŞULUN kurs.dept_name=department.dept_name;

Misal 2

Biz bütün tələb olunan kursların siyahısını və onlar haqqında təfərrüatları göstərəcəyik:

prereq.course_id, başlıq, şöbə_adı, kreditlər, prereq_id SEÇİN prereq FROM SOL XARİCİ kursa QOŞULUN prereq.course_id=course.course_id;

Misal 3

Tələb olub-olmamasından asılı olmayaraq, bütün kursların siyahısını göstərəcəyik:

SEÇİN kurs.kurs_id, başlıq, departament_adı, kreditlər, prereq_id prereq FROM SAĞ XARİCİ QOŞULUN kursa prereq.course_id=course.course_id;

23. Baxın

View ifadənin icrası nəticəsində yaradılmış virtual SQL cədvəlidir. O, sətir və sütunlardan ibarətdir və adi SQL cədvəlinə çox bənzəyir. View həmişə verilənlər bazasından ən son məlumatları göstərir.

yaradılış

GÖRÜNÜŞ YARADIN SEÇİM KİMİ , , … FROM HARADA ;

Silinmə

GÖRÜNÜŞ ;

Misal

Gəlin 3 kreditli kurslardan ibarət görünüş yaradaq:

24. Ümumi funksiyalar

Bu funksiyalar sözügedən verilənlərlə bağlı ümumi nəticə əldə etmək üçün istifadə olunur. Aşağıdakılar ümumi istifadə olunan ümumi funksiyalardır:

  • COUNT (col_name) - sətirlərin sayını qaytarır;
  • SUM (col_name) - bu sütundakı dəyərlərin cəmini qaytarır;
  • AVG (col_name) - verilmiş sütunun orta qiymətini qaytarır;
  • MIN (col_name) - verilmiş sütunun ən kiçik qiymətini qaytarır;
  • MAX (col_name) - Verilmiş sütunun ən böyük dəyərini qaytarır.

25. İç-içə alt sorğular

İç-içə alt sorğular başqa bir sorğunun içərisində yerləşdirilmiş SELECT , FROM və WHERE bəndlərini ehtiva edən SQL sorğularıdır.

Misal

2009-cu ilin payızında və 2010-cu ilin yazında tədris olunan kursları tapaq:

SEÇİN DISTINCT course_id FROM Bölmə HARADA semestr = 'Payız' VƏ il= 2009 AND course_id IN (SEÇİN kurs_id FROM Bölmə HARADA semestr = 'Bahar' VƏ il= 2010);

SQL - Strukturlaşdırılmış Sorğu Dili.
IN bu baxış Biz SQL sorğularının ən çox yayılmış növlərinə baxacağıq.
SQL standartı müəyyən edilmişdir ANSI(Amerika Milli Standartlar İnstitutu).
SQL, xüsusi olaraq əlaqəli verilənlər bazalarına yönəlmiş bir dildir.

SQL bölməsi:


DDL
(Məlumat Tərifi Dili) - ANSI-də Sxem Təsviri dili adlanan, verilənlər bazasında obyektlər (cədvəllər, indekslər, görünüşlər və s.) yaradan əmrlərdən ibarətdir.
DML(Məlumatların Manipulyasiya Dili) istənilən vaxt cədvəllərdə hansı dəyərlərin təmsil olunduğunu müəyyən edən əmrlər toplusudur.
DCD(Məlumat İdarəetmə Dili) istifadəçiyə müəyyən hərəkətlər etməyə icazə verib-verməməyi müəyyən edən obyektlərdən ibarətdir. Onlar ANSI DDL-nin bir hissəsidir. Bu adları unutma. Bunlar fərqli dillər deyil, funksiyalarına görə qruplaşdırılmış SQL əmrlərinin bölmələridir.

Məlumat növləri:

SQL Server - Məlumat növləri

Təsvir

bigint (int 8)

bigint (int 8)

ikili(n)

ikili(n) və ya şəkil

xarakter
(sinonim char)

milli xarakter və ya ntext

xarakter dəyişir(sinonim char dəyişən varchar)

milli xarakter dəyişir və ya ntext

Tarix vaxt

Tarix vaxt

onluq

aka rəqəmli

ikiqat dəqiqlik

ikiqat dəqiqlik

tam (int 4) (sinonim: int)

tam (int 4)

milli xarakter(sinonim: milli xarakter, nchar)

milli xarakter

Rəqəmsal(sinonimlər: onluq, dekabr)

milli xarakter dəyişir(sinonimlər: milli xarakter dəyişir, nvarchar)

Milli xarakter dəyişir

Kiçik tarix vaxtı

Tarix vaxt

kiçik (int 2)

kiçik (int 2)

Kiçik pul

sql_variant

Artıq dəstəklənmir

Nmətn
SQL Server 2005-dən başlayaraq istifadə üçün tövsiyə edilmir.

Vaxt möhürü

Dəstəklənmir

tinyint (int 1)

tinyint (int 1)

Unikal identifikator

unikal identifikator

varbinar(n)

varbinar(n) və ya şəkil

kiçik tarix vaxtı

Tarix vaxt

kiçik (int 2)

kiçik (int 2)

xırda pul

sql_variant

Dəstəklənmir

vaxt damgası

Dəstəklənmir

tinyint (int 1)

tinyint (int 1)

unikal identifikator

unikal identifikator

varbinar(n)

varbinar(n) və ya şəkil

SQL Server 2000-də verilənlər növü cədvəli

SORĞU NƏDİR?

Sorğu verilənlər bazası proqramına verdiyiniz əmrdir. Sorğular DML dilinin bir hissəsidir. Bütün SQL sorğuları bir əmrdən ibarətdir. Bu əmrin strukturu aldadıcı dərəcədə sadədir, çünki siz onu çox mürəkkəb qiymətləndirmələr və məlumat manipulyasiyalarını yerinə yetirmək üçün genişləndirməlisiniz.

SELECT əmri:

SEÇİN"Seç" ən çox istifadə olunan əmrdir, cədvəldən məlumatları seçmək üçün istifadə olunur.
SELECT istifadə edərək sorğu növü:

identifikator, istifadəçi_adı, şəhər, ad_gününü users_base FROM SEÇİN;

Belə bir sorğu users_base cədvəlindən vergüllə ayrılmış sütunların bütün dəyərlərini göstərəcəkdir. SELECT əmrləri. Həmçinin, bütün sütunları bir simvolla göstərə bilərsiniz, * yəni. SEÇ * FROM users_base ; - belə bir sorğu cədvəldəki bütün məlumatları göstərəcəkdir.

SELECT əmr strukturu:

SELECT (Sorğuda göstərilməli olan vergüllə ayrılmış sütun adları) FROM (verilənlər bazasındakı cədvəl adı)
- Bu, ən sadə sorğu növüdür. Rahat məlumat əldə etmək üçün əlavə əmrlər var (aşağıda “Funksiyalar”a baxın)

DML əmrləri:

Dəyərlər üç DML (Data Manipulation Language) əmrindən istifadə edərək sahələrə yerləşdirilə və silinə bilər:
INSERT(Daxil et)
YENİLƏNİB(Yeniləmə, dəyişdirmə),
SİLİN(Sil)

INSERT əmri:

INSERT INTO users_base (istifadəçi_adı, şəhər, doğum_günü) DƏYƏRLƏR ('Aleksandr', 'Rostov', '06/20/1991');

INSERT əmri INTO (in to) prefiksi ilə gəlir, sonra mötərizədə məlumatları daxil etməli olduğumuz sütunların adları, sonra VALUES əmri (dəyərlər) gəlir və mötərizədə dəyərlər növbə ilə gəlir (bu, sütunlarla dəyərlərin sırasına riayət etmək lazımdır , dəyərlər göstərdiyiniz sütunlarla eyni sırada olmalıdır).

UPDATE əmri:

YENİLƏNİB users_base SET user_name = 'Aleksey';

UPDATE əmri cədvəldəki dəyərləri yeniləyir. Əvvəlcə UPDATE əmrinin özü, sonra SET əmrindən (dəst) sonra cədvəlin adı, sonra sütun adı və dırnaq içərisindəki dəyəri (qiymət sətir formatındadırsa, rəqəmsal dəyərdirsə, sitatlar qoyulur) vchar məlumat növünə və ya hər hansı digər sətir tipinə bağlı deyil, sitatların heç bir mənası yoxdur.)

SİL əmri:

DELETE FROM users_base WHERE user_name = 'Vasily';

DELETE əmri bütün cərgəni silir və WHERE kriteriyasından istifadə edərək sıranı müəyyən edir. Bu halda, bu sorğu user_name sütun dəyərinin Vasili olduğu bütün sətirləri siləcək. WHERE meyarı və digərləri haqqında bir az sonra danışacağıq.

Meyarlar, funksiyalar, şərtlər və s. SQL-də bizə nə kömək edir:

WHERE bəndi SELECT əmrinin və digər DML əmrlərinin bəndidir ki, sizə şərti cədvəldəki hər hansı sətir üçün doğru və ya yalan ola bilən predikatlar təyin etməyə imkan verir. Komanda cədvəldən yalnız bu ifadənin doğru olduğu sətirləri götürür.
Misal:
identifikator, şəhər, ad_gününü users_base FROM SEÇİN istifadəçi_adı = 'Aleksey';- belə bir sorğu yalnız WHERE şərtinə uyğun gələn satırları, yəni istifadəçi_adı sütununun Aleksey dəyərinə malik olduğu bütün sətirləri göstərəcəkdir.

ORDER BY - seçilmiş cərgələrin çeşidlənməsi şərti. ASC və DESC 2 meyarına malikdir. ASC (A-dan Z-yə və ya 0-dan 9-a qədər çeşidləmə)

DESC (ASC-nin əksinə).
Misal:
user_base FROM ID, şəhər, ad günü SEÇİN ASC istifadəçi_adı ilə SİFARİŞ; - belə bir sorğu A-dan Z-ə qədər istifadəçi_adı sütunu ilə çeşidlənmiş dəyərləri göstərəcək (A-Z; 0-9)

Bu şərt WHERE bəndi ilə birlikdə də istifadə edilə bilər.
Misal:
İD, şəhər, ad_gününü SEÇİN FROM users_base WHERE user_name = ‘Aleksey’ İD ASC BY SİFARİŞ;

DISTINCT, SELECT bəndinizdən ikiqat dəyərləri aradan qaldırmaq üçün sizə bir yol təqdim edən bir arqumentdir. Bunlar. bir sütunda təkrarlanan dəyərləriniz varsa, deyək user_name, onda DISTINCT sizə yalnız bir dəyər göstərəcək, məsələn, verilənlər bazanızda Aleksey adlı 2 nəfər var, onda DISTINCT funksiyasından istifadə edən sorğu sizə yalnız 1 dəyər göstərəcək. ilk qarşılaşılan...
Misal:
users_base FROM DISTINCT user_name SEÇ;- belə bir sorğu bizə user_name sütunundakı bütün qeydlərin dəyərlərini göstərəcək, lakin onlar təkrarlanmayacaq, yəni. sonsuz sayda təkrarlanan dəyərləriniz varsa, o zaman onlar göstərilməyəcək...

VƏ - arqument kimi iki Boolean (A VƏ B formasında) götürür və onların hər ikisinin doğru olub-olmadığını həqiqətə qarşı qiymətləndirir.
Misal:
SELECT * FROM users_base WHERE city = 'Rostov' AND user_name = 'İsgəndər';- şəhərin adının bir sətirdə göründüyü cədvəldəki bütün dəyərləri göstərəcək (bu halda, Rostov və istifadəçi adı Alexander.

OR - arqument kimi iki Boolean (A OR B şəklində) götürür və onlardan birinin düzgün olub-olmadığını qiymətləndirir.

SELECT * FROM users_base WHERE city = 'Rostov' OR user_name = 'İsgəndər';- Rostov şəhərinin adının və ya Aleksandr istifadəçi adının sətirdə göründüyü cədvəldəki bütün dəyərləri göstərəcəkdir.

NOT - arqument kimi tək Boolean (NOT A şəklində) götürür və onun dəyərini yalandan doğruya və ya doğrudan yalana dəyişir.
SELECT * FROM users_base WHERE city = 'Rostov' OR NOT user_name = 'İsgəndər';- Rostov şəhərinin adının bir sətirdə göründüyü və ya istifadəçi adının tam İskəndər olmadığı cədvəldəki bütün dəyərləri göstərəcək.

IN - verilmiş dəyərin daxil edilə və ya daxil edilə bilməyəcəyi dəyərlər toplusunu müəyyənləşdirir.
SEÇİN * İstifadəçilər_bazasından ŞƏHƏRDƏN ('Vladivostok', 'Rostov');- belə bir sorğu şəhər sütununda göstərilən şəhərlərin adlarını ehtiva edən cədvəldəki bütün dəyərləri göstərəcəkdir

Arası IN operatoruna bənzəyir. IN kimi çoxluqdakı rəqəmlərlə müəyyən etməkdən fərqli olaraq, BETWEEN predikatı doğru etmək üçün dəyərləri azalmalı olan aralığı müəyyən edir.
* 1 VƏ 10 ARASINDA identifikatorun istifadəçilər_bazasından SEÇİN;- id sütununda 1-dən 10-a qədər olan cədvəldəki bütün dəyərləri göstərir

COUNT - Sorğunun seçdiyi sahələrin sıra nömrələrini və ya NULL olmayan dəyərlərini yaradır.
users_base FROM COUNT (*) SEÇİN;- bu cədvəldə sətirlərin sayını göstərəcək.
users_base FROM COUNT (Fərqli istifadəçi_adı) SEÇİN;- istifadəçi adları olan sətirlərin sayını göstərəcək (təkrar edilmir)

SUM - müəyyən bir sahə üçün seçilmiş bütün dəyərlərin arifmetik cəmini çıxarır.
users_base FROM SUM (id) SEÇİN;- id sütununun bütün sətirlərinin dəyərlərinin cəmini göstərəcək.

AVG - bu sahənin bütün seçilmiş dəyərlərini ortalayır.
users_base FROM AVG (id) SEÇİN;- id sütununun bütün seçilmiş dəyərlərinin orta göstəricisini göstərəcək

MAX - bu sahə üçün bütün seçilmiş dəyərlərdən ən böyüyü istehsal edir.

MIN - bu sahə üçün seçilmiş bütün dəyərlərin ən kiçikini çıxarır.

Cədvəllərin yaradılması:

CREATE TABLE users_base (id tam, istifadəçi_adı mətni, şəhər mətni, doğum_gününün tarixi);- belə bir əmrin yerinə yetirilməsi misallar verdiyim cədvəlin yaranmasına gətirib çıxaracaq... Burada hər şey sadədir, CREATE TABLE əmrini, ardınca yaratmaq istədiyimiz cədvəlin adını, sonra isə mötərizədə, vergüllə ayrılır, sütunların adları və onların məlumat növü. Bu, SQL-də cədvəl yaratmağın standart yoludur. İndi SQL Server 2005-də cədvəllərin yaradılması nümunəsini verəcəyəm:

ANSI_NULLS DÜZEYİNİ QURUN
GO
QUOTED_IDENTIFIER'I AKTİV EDİN
GO
ƏGƏR OLMAZSA (SEÇ * FROM sys.objects HARADA object_id = OBJECT_ID(N."") VƏ (N"U") yazın)
BAŞLAYIN
CƏDVƏL YARAT .(

NULL DEYİL,
NULL DEYİL,
NULL DEYİL,
İLKİN AÇAR KLASTERDİR
A.S.C.


SON
GO
ANSI_NULLS DÜZEYİNİ QURUN
GO
QUOTED_IDENTIFIER'I AKTİV EDİN
GO
ƏGƏR OLMAZSA (SEÇ * FROM sys.objects HARADA object_id = OBJECT_ID(N."") VƏ (N"U") yazın)
BAŞLAYIN
CƏDVƏL YARAT .(
IDENTITY(1,1) NULL DEYİL,
SIFIR,
SIFIR,
İLKİN AÇAR KLASTERDİR
A.S.C.
) İLƏ (IGNORE_DUP_KEY = OFF) ON
) TEXTIMAGE_ON ÜZRƏ
SON
GO
ANSI_NULLS DÜZEYİNİ QURUN
GO
QUOTED_IDENTIFIER'I AKTİV EDİN
GO
ƏGƏR OLMAZSA (SEÇ * FROM sys.objects HARADA object_id = OBJECT_ID(N."") VƏ (N"U") yazın)
BAŞLAYIN
CƏDVƏL YARAT .(
IDENTITY(1,1) NULL DEYİL,
SIFIR,
SIFIR,
İLKİN AÇAR KLASTERDİR
A.S.C.
) İLƏ (IGNORE_DUP_KEY = OFF) ON
) ON
SON

SQL Server 2005-də sintaksis başqa bir mövzudur, mən sadəcə göstərmək istədim ki, mən SQL proqramlaşdırmasının əsaslarını təsvir etmişəm, siz əsasları bilməklə zirvəyə çata bilərsiniz.

Bu mövzuda hər hansı bir sualınız varsa, mənə yazın

MS SQL Server kimi verilənlər bazasında verilənlər üzərində əsas əməliyyatları nümayiş etdirən proqram hazırlayın, yəni:

  • verilənlər bazasının tətbiqə qoşulması;
  • formada verilənlər bazası cədvəllərinin göstərilməsi;
  • əlavə yeni giriş verilənlər bazasına;
  • qeydi redaktə etmək;
  • girişin silinməsi.

Əsas kimi Education.dbo verilənlər bazası götürülüb, onun yaradılması prosesi ətraflı təsvir olunub

Şəkil 1-də Education.dbo verilənlər bazasının strukturu göstərilir. Şəkildən göründüyü kimi verilənlər bazası belə adlanır:

sasha-pc\sqlexpress.Education.dbo

Burada “sasha-pc” şəbəkədəki kompüter identifikatoru, “sqlexpress” verilənlər bazası serverinin adı, “Education.dbo” verilənlər bazasının adıdır.

düyü. 1. Education.dbo verilənlər bazası

Verilənlər bazası iki cədvəldən ibarətdir: Tələbə və Sessiya. Cədvəllərin strukturu aşağıdakı kimidir.

Tələbə masası.

Sessiya masası.

Performans

1. MS Visual Studio-da Windows Forms Application kimi yeni layihə yaradın.

Windows Forms Application tipli yeni layihə yaradın. Yeni bir layihənin yaradılması nümunəsi ətraflı təsvir edilmişdir

2. Tələbə cədvəlindən məlumatları göstərmək üçün yeni görünüş yaradın.

Verilənlər bazası cədvəllərindən məlumatları göstərmək üçün istifadə edə bilərsiniz fərqli yollar. Onlardan biri MS Visual Studio proqramından istifadə etməklə yaradılan görünüşlərin yaradılmasıdır.

Bizim vəziyyətimizdə cədvəl məlumatları DataGridView tipli bir idarədə formada göstəriləcək. Görünüşlər yaratdıqdan sonra onları DataGridView elementləri ilə əlaqələndirmək çox rahatdır.

Görünüşü yaratmaq üçün kontekst menyusundan “Add New View” əmrini çağırmaq lazımdır ki, bu da Education.dbo verilənlər bazasının “Views” elementinin üzərinə sağ tıklayarak çağırılır (Şəkil 2).

düyü. 2. Yeni görünüş əlavə etmək üçün əmrin çağırılması

Nəticədə “Cədvəl əlavə et” pəncərəsi açılacaq (Şəkil 3). Pəncərədə görünüşə əlavə olunan cədvəlləri seçməlisiniz.

düyü. 3. Yeni görünüşün əsaslanacağı cədvəllərin seçilməsi

Bizim vəziyyətimizdə Tələbə cədvəlini seçin və Əlavə et düyməsini klikləməklə seçiminizi təsdiqləyin. Növbəti addım Bağla düyməsini seçməklə pəncərəni bağlamaqdır.

Addımları tamamladıqdan sonra görünüşdə (formada) göstərilməli olan sahələri seçmək lazım olan bir pəncərə yaranacaq. Bütün sahələri seçin (Şəkil 4).

Sahələri seçdiyiniz zaman Tələbə cədvəlinin sahələri iş sahəsinin yuxarı hissəsində göstərilir. Siçandan istifadə edərək təqdimat üçün istədiyiniz sahələri seçə bilərsiniz.

Müvafiq olaraq, pəncərənin orta sahəsində seçilmiş sahələrin adları, onların mövcud olduğu cədvəl (bax. Şəkil 4), çeşidləmə, filtrləmə qabiliyyəti və s.

Sahənin aşağı hissəsində görünüş yaratmaq üçün istifadə edilən müvafiq SQL sorğu mətni göstərilir.

düyü. 4. Görünüşdə göstərmək üçün Tələbə cədvəli sahələrinin seçilməsi

Komanda seçdikdən sonra

Fayl->Hamısını Saxla Fayl-> Görünüşü Saxla1

Görünüşün adını təyin etməli olduğunuz bir pəncərə açılacaqdır. “Tələbəyə baxmaq” adını təyin edin (Şəkil 5).

düyü. 5. Görünüş üçün adın təyin edilməsi

Addımları tamamladıqdan sonra təqdimat pəncərəsi Şəkil 6-da göstərildiyi kimi görünəcək.

düyü. 6. Məlumat bazasında Tələbə təmsilçiliyinə baxın

İndi siz DataGridView nəzarətini yerləşdirə və onu görünüşlə əlaqələndirə bilərsiniz.

3. DataGridView nəzarətini yerləşdirin və verilənlər bazası ilə əlaqəni konfiqurasiya edin.

DataGridView nəzarətini yerləşdirməzdən əvvəl "Form1.cs" forma dizayn rejiminə keçməlisiniz.

DataGridView elementi məlumatları göstərə bilən cədvəldir. Bu idarəetmə alət qutusu panelində yerləşir. Əvvəlcə formanın ölçüsünü bir az tənzimləyirik, sonra DataGridView idarəsini onun üzərinə yerləşdiririk (Şəkil 7). Bu, standart olaraq dataGridView1 adlı obyekt nümunəsi yaradacaq.

düyü. 7. DataGridView nəzarəti və məlumat mənbəyinin seçilməsi pəncərəsi

DataGridView idarəsini formada yerləşdirdikdən sonra, yuxarı sağ küncdə məlumat mənbəyini konfiqurasiya etməyi seçə bilərsiniz. Müvafiq olaraq, "DataGridView Tapşırıqları" pəncərəsi açılacaqdır. Bu pəncərədə "Məlumat mənbəyini seçin" pop-up menyusunu seçməlisiniz.

Açılan menyuda “Add Project Data Source...” əmrini seçin (şək. 7). Bundan sonra, məlumat mənbəyinin ardıcıl olaraq seçildiyi bir sehrbaz pəncərəsi açılır.

Şəkil 8-də " Məlumat Mənbəsinin Konfiqurasiya Sihirbazı", burada məlumat mənbəyinin növü seçilir. Bizim vəziyyətimizdə "Verilənlər bazası" quraşdırırıq.

düyü. 8. Məlumat mənbəyi növünün seçilməsi

Növbəti pəncərədə (Şəkil 9) məlumat mənbəyi modeli seçilir. DataSet seçməlisiniz.

düyü. 9. Məlumat mənbəyi modelinin seçilməsi

Şəkil 10-da göstərilən pəncərədə verilənlər bazasına qoşulmaq üçün istifadə etmək istədiyiniz məlumat bağlantısını təyin etməlisiniz. Bizim vəziyyətimizdə verilənlər bazasını seçməliyik " sasha-pc\sqlexpress\Education.dbo«.

düyü. 10. Məlumat bağlantısının seçilməsi

Növbəti pəncərə (Şəkil 11) Qoşulma Sətirini proqram konfiqurasiya faylına saxlamağı təklif edir. Hər şeyi olduğu kimi buraxırıq və növbəti pəncərəyə keçirik.

düyü. 11. Tətbiq konfiqurasiya faylında verilənlər bazası əlaqə sətirinin Bağlantı sətrinin saxlanması təklifi

Verilənlər bazası bağlantısı yaradıldıqdan sonra müxtəlif verilənlər bazası obyektləri göstərilir (Şəkil 12). Bizim vəziyyətimizdə "Tələbəyə baxmaq" görünüşünü və ondan bütün sahələri seçməliyik. Yoxlanılan sahələr DataGridView tipli komponentdə göstəriləcək.

düyü. 12. DataGridView-də Göstəriləcək Verilənlər Bazasının Obyektlərinin Seçilməsi

Finish düyməsi seçildikdən sonra Education.dbo verilənlər bazasının seçilmiş obyektləri (View Student görünüşü) ekrana çıxacaq (Şəkil 13).

düyü. 13. Seçilmiş View Student sahələri ilə DataGridView nəzarəti

Bənzər bir şəkildə, hər hansı bir verilənlər bazası cədvəlindən istənilən sahəni ehtiva edən görünüşləri konfiqurasiya edə bilərsiniz. Həmçinin, müxtəlif cədvəllərin sahələri bir görünüşdə göstərilə bilər.

4. DataGridView nəzarətinin görünüşünün qurulması.

Tətbiqi işə salsanız, verilənlər bazasında Tələbə cədvəlinə uyğun gələn View Student görünüşündən məlumatları alacaqsınız (Şəkil 14).

düyü. 14. İcra üçün ərizənin işə salınması

Şəkil 14-dən göründüyü kimi dataGridView1 cədvəlindəki məlumatlar normal şəkildə göstərilir, lakin dizayn tənzimlənə bilər.

DataGridView növünün idarə edilməsi sizə göstərilən sahələrin görünüşünü tənzimləməyə imkan verir.

Sahələri redaktə etmək üçün əmrlərə zəng etmək üçün dataGridView1 nəzarətinə sağ klikləməklə kontekst menyusuna zəng etmək kifayətdir.

Menyu müxtəlifdir faydalı əmrlər DataGridView-in görünüşünü və işini idarə etməyə imkan verən:

  • nəzarəti bloklamaq əmri (Lock Controls);
  • görünüşdə göstərilən sahələri redaktə etmək üçün əmr (Sütunları redaktə et...);
  • yeni sahələr əlavə etmək üçün əmr, məsələn hesablanmış sahələr (Sütun əlavə et).

Bizim vəziyyətimizdə "Sütunları redaktə et..." əmrini seçmək lazımdır (Şəkil 15).

düyü. 15. Kontekst menyusundan “Sütunları redaktə et...” əmrini verin

Nəticədə “Sütunları redaktə et” pəncərəsi açılacaq, orada təqdimat sahələrinin görünüşünü öz zövqünüzə uyğunlaşdıra bilərsiniz (Şəkil 16).

düyü. 16. “View Student” görünüşündə sahələrin görünüşünü qurmaq üçün pəncərə

Şəkil 16-dakı pəncərədə hər hansı bir sahə üçün adı, düzülüşü, eni, məlumatları redaktə etmək qabiliyyətini və s.

5. Bağlantı sətri

Verilənlər bazasında dəyişiklik etmək üçün verilənlər bazasına qoşulma sətrini əldə etməlisiniz Connection String .

Verilənlər bazası əlaqə sətirini əldə etməyin müxtəlif yolları var. Onlardan biri Education.dbo verilənlər bazasının Xüsusiyyətlər pəncərəsində bu sətri oxumağa əsaslanır (şək. 17).

düyü. 17. Bağlantı sətirinin müəyyən edilməsi

Proqramda sətri saxlamaq üçün tipli daxili dəyişən simli. Mübadilə buferindən istifadə edərək, Connection String-i təsvir edilmiş string tipli dəyişənə köçürün.

Form1 sinifinin təsvirinin əvvəlində “Form1.cs” faylının mətnində dəyişəni təsvir etməlisiniz:

string conn_string = ;

Hazırda Form1 sinifinin mətni aşağıdakı kimidir:

ictimai qismən sinif Form1 : Forma { string conn_string = @"Məlumat Mənbəsi=(yerli)\SQLEXPRESS;İlkin Kataloq=Təhsil;İnteqrasiya edilmiş Təhlükəsizlik=Doğru;Pooling=Yanlış"; ictimai Form1() { InitializeComponent(); } şəxsi etibarsız Form1_Load(obyekt göndərən, EventArgs e) { // TODO: Bu kod xətti verilənləri "educationDataSet.View_Student" cədvəlinə yükləyir. Bacararsan lazım olduqda köçürün və ya çıxarın. } }

6. Yaradılış yeni forma məlumatların manipulyasiya əmrlərini nümayiş etdirmək.

Cari qeydin məlumatlarını emal etmək üçün yeni forma yaratmalısınız. MS Visual Studio-da yeni formanın yaradılması prosesi - C# ətraflı təsvir edilmişdir.

Yeni forma əlavə etmək əmri ilə həyata keçirilir:

Layihə -> Windows Formasını əlavə et...

Açılan "Yeni Element" pəncərəsində "Windows Formu" elementini seçməlisiniz.

Yeni forma fayl adını defolt “Form2.cs” olaraq buraxın.

Şəkil 18 yeni formanın görünüşünü göstərir.

Formada aşağıdakı nəzarət növlərini yerləşdiririk:

  • iki Düymə nəzarəti (OK və Ləğv düymələri). Müvafiq olaraq, button1 və button2 adlı iki obyekt qəbul ediləcək;
  • məlumat mesajları yaratmaq üçün dörd Etiket nəzarəti;
  • Num_book, Name, Group, Year sahələrinə məlumat daxil etmək üçün TextBox tipli dörd nəzarət.

Nəzarətlərin aşağıdakı xüsusiyyətlərini konfiqurasiya etməlisiniz:

  • nəzarət düyməsini1 xüsusiyyətində Mətn = “OK “;
  • button2 nəzarət xüsusiyyətində Mətn = “Ləğv et “;
  • nəzarət düyməsi1 xüsusiyyətində DialogResult = "OK";
  • nəzarət düyməsini2 xassəsində DialogResult = "Ləğv et";
  • nəzarət label1 xüsusiyyətində Mətn = "Num_book";
  • nəzarət label2 xüsusiyyətində Mətn = "Ad";
  • nəzarət label3 xüsusiyyətində Mətn = "Qrup";
  • etiketdə4 xüsusiyyətə nəzarət edin Mətn = "İl".

Biz həmçinin TextBox idarəetmə elementlərinin görünməsini konfiqurasiya edirik. Bunun üçün bütün idarəetmə elementlərində textBox1, textBox2, textBox3, textBox4, xassə dəyəri Modifikatorlar = “public”.

düyü. 18. Yeni yaradılmış formanın görünüşü

7. Tələbə cədvəlindən məlumatların manipulyasiyası üçün əmrlərin çağırılması üçün düymələrin əlavə edilməsi.

Sonrakı iş üçün Form1 əsas formasına keçmək üçün siçandan istifadə etməlisiniz.

Form1 tətbiqinin əsas formasına üç düymə əlavə edin (Button). Üç obyekt dəyişəni avtomatik olaraq button1, button2, button3 adları ilə yaradılacaq. Bu düymələrin hər birində biz aşağıdakı parametrləri edirik (Xüsusiyyətlər pəncərəsi):

  • düyməsinin 1 xüsusiyyətində Mətn = "Daxil et ..." (yazı daxil edin);
  • düyməsinin 2 xüsusiyyətində Mətn = "Düzəliş et ..." (girişi dəyişdirin);
  • düyməsində button3 xüsusiyyət Mətn = "Sil".

Edilən dəyişikliklər nəticəsində əsas forma Şəkil 19-da göstərildiyi kimi görünəcəkdir.

düyü. 19. Ərizənin əsas forması

8. “Daxil et...” düyməsində klik hadisəsinin proqramlaşdırılması.

“Daxil et...” düyməsindəki klik hadisəsi idarəedicisi belə görünür:

özəl etibarsız düyməsi1_Click_1(obyekt göndərən, EventArgs e) { sətir cmd_text; Form2 f2 = yeni Form2(); əgər (f2.ShowDialog() == Dialoq Nəticə .OK) { cmd_text = "Tələbə DƏYƏRLƏRİNƏ DAXİL EDİN (" + """ + f2.textBox1.Text + "" , "" + f2.textBox2.Text + "" , "" + f2.textBox3.Text + "" , " + f2.textBox4.Text + ")" ; // verilənlər bazası ilə əlaqə yaradın SqlConnection sql_conn = yeni SqlConnection(conn_string); // SQL dilində əmr yaradın SqlCommand sql_comm = yeni SqlCommand(cmd_text, sql_conn); sql_conn.Open(); // açıq əlaqə sql_comm.ExecuteNonQuery(); // SQL dilində əmri yerinə yetirmək sql_conn.Close(); // əlaqəni bağlayın bu .view_StudentTableAdapter.Fill(bu .educationDataSet.View_Student); } }

Form2 əvvəlcə çağırılır. “OK” nəticəsini aldıqdan sonra (müvafiq düyməni basmaqla) Form2-də TextBox tipli elementlərdə doldurulmuş sahələr SQL sorğu sətirinə daxil edilir. Yeni sətir əlavə etmək üçün SQL sorğusu belə görünür:

Tələbəyə daxil edin VALUES (dəyər1, dəyər2, dəyər3, dəyər4)

burada qiymət1 qiymət kitabının nömrəsinə uyğundur; dəyər2 – tələbənin soyadı; dəyər3 – tələbənin təhsil aldığı qrup; dəyər 4 – giriş ili.

Connection String verilənlər bazası əlaqə sətri conn_string dəyişənində təsvir edilmişdir (paraqraf 5-ə baxın). SqlConnection sinif obyekti tətbiqi məlumat mənbələri ilə əlaqələndirir. Bundan əlavə, Connection sinfi istifadəçinin autentifikasiyası, şəbəkələşmə, verilənlər bazası identifikasiyası, əlaqənin buferləşdirilməsi və əməliyyatların işlənməsi ilə məşğul olur.

Cədvələ qeyd əlavə edən SQL əmri SqlCommand sinfində əhatə olunub. SqlCommand sinifinin konstruktoru iki parametr qəbul edir: SQL sorğu sətri (cmd_text dəyişəni) və SqlConnection sinifinin obyekti.

ExecuteNonQuery() metodu IDBCommand interfeysində həyata keçirilir. Metod məlumatları qaytarmayan SQL əmrlərini həyata keçirir. Belə əmrlərə INSERT, DELETE, UPDATE əmrləri, həmçinin verilənləri qaytarmayan saxlanılan prosedurlar daxildir. ExecuteNonQuery() metodu iştirak edən qeydlərin sayını qaytarır.

9. “Edit...” düyməsində klik hadisəsinin proqramlaşdırılması.

“Düzəliş...” düyməsindəki klik hadisəsi idarəedicisi belə görünür:

şəxsi etibarsız düymə2_Click(obyekt göndərən, EventArgs e) ( string cmd_text; Form2 f2 = new Form2 (); int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert .ToString(dataGridView1.Faluex1); .Text = num_book; f2.textBox2.Text = Convert .ToString(dataGridView1.Value); f2.textBox3.Text = Convert .ToString(dataGridView1.Value); f2.textBox4.Text = Convert .ToString(1.Value); əgər (f2.ShowDialog() == Dialoq Nəticə .OK) ( cmd_text = "Tələbə SETİNİ YENİLƏNİN Num_book = ""+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "İ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); (.exemquen) sql_connry); ; sql_conn.Close(); bu .view_StudentTableAdapter.Fill(bu .educationDataSet.View_Student); ) )

Bu idarəedici aktiv qeydin cari dəyərini dəyişdirən UPDATE SQL əmrini yerinə yetirir.

10. “Sil” düyməsində klik hadisəsinin proqramlaşdırılması.

"Sil" düyməsindəki klik hadisəsi idarəedicisi belə görünür:

özəl etibarsız düymə3_Click(obyekt göndərən, EventArgs e) ( string cmd_text = "Tələbədən SİL" ; int indeksi; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert.ToString(dataGridView1.Value = cmd); "HARADA TƏLƏBƏDƏN SİLİN. = ""+ num_book + """ ; SqlConnection sql_conn = yeni SqlConnection (conn_string); SqlCommand sql_comm = yeni SqlCommand (cmd_text, sql_conn); sql_conn.Open(); sql_comm.ExecuteNTslodentery();_viewNTslodents; Adapter. Doldurun (bu .educationDataSet.View_Student); )

Bu idarəedici qeydi silmək üçün SQL DELETE əmrini yerinə yetirir.

Əlaqədar Mövzular

  • Microsoft Access verilənlər bazası cədvəlinin çıxarılması

SQL Server Management Studio bütün növ sorğuların yaradılması üçün tam alət təqdim edir. Onun köməyi ilə siz sorğular yarada, saxlaya, yükləyə və redaktə edə bilərsiniz. Bundan əlavə, heç bir serverə qoşulmadan sorğular üzərində işləyə bilərsiniz. Bu alət həmçinin müxtəlif layihələr üçün sorğular hazırlamaq imkanı verir.

Siz Sorğu Redaktoru və ya Həll Explorer-dən istifadə edərək sorğularla işləyə bilərsiniz. Bu məqalə bu vasitələrin hər ikisini əhatə edir. SQL Server Management Studio-nun bu iki komponentinə əlavə olaraq, biz daxili sazlayıcıdan istifadə edərək SQL kodunun sazlanmasına baxacağıq.

Sorğu redaktoru

Sorğu Redaktoru panelini açmaq üçün Sorğu redaktoru, SQL Server Management Studio alətlər panelində Yeni Sorğu düyməsini klikləyin. Bu panel təkcə Database Engine sorğularını deyil, bütün mümkün sorğuları yaratmaq üçün düymələri göstərmək üçün genişləndirilə bilər. Varsayılan olaraq yaradılmışdır yeni sorğu Database Engine komponenti, lakin alətlər panelində müvafiq düyməni sıxmaqla siz həmçinin MDX, XMLA və s. sorğular yarada bilərsiniz.

Sorğu Redaktoru panelinin altındakı status paneli redaktorun serverlə əlaqə vəziyyətini göstərir. Əgər siz serverə avtomatik qoşulmasanız, Sorğu Redaktorunu işə saldığınız zaman qoşulacağınız serveri və autentifikasiya rejimini seçməyə imkan verən Serverə Qoşulun informasiya qutusu görünür.

Sorğuları oflayn redaktə etmək serverə qoşulduqdan daha çox çeviklik təmin edir. Sorğuları redaktə etmək üçün serverə qoşulmaq lazım deyil və sorğu redaktoru pəncərəsini bir serverdən ayırmaq (Query -> Connection -> Disconnect menyu əmrindən istifadə etməklə) başqa redaktor pəncərəsini açmadan digərinə qoşulmaq olar. Oflayn redaktə rejimini seçmək üçün redaktoru işə saldığınız zaman açılan Serverə qoşulun dialoq qutusundan istifadə edin. xüsusi növü sorğular üçün sadəcə Ləğv et düyməsini sıxın.

Sorğu redaktorundan aşağıdakı tapşırıqları yerinə yetirmək üçün istifadə edə bilərsiniz:

    Transact-SQL ifadələrinin yaradılması və icrası;

    yaradılmış Transact-SQL dil ifadələrinin faylda saxlanması;

    ümumi sorğular üçün icra planlarının yaradılması və təhlili;

    seçilmiş sorğunun icra planını qrafik şəkildə təsvir etmək.

Sorğu redaktorunda daxili var mətn redaktoru və müxtəlif hərəkətlər üçün düymələr dəsti olan alətlər paneli. Əsas sorğu redaktoru pəncərəsi üfüqi olaraq sorğu panelinə (yuxarıda) və nəticələr panelinə (aşağıda) bölünür. İcra ediləcək Transact-SQL ifadələri (yəni sorğular) yuxarı panelə daxil edilir və sistemin həmin sorğuların işlənməsinin nəticələri isə aşağı paneldə göstərilir. Aşağıdakı şəkildə sorğu redaktoruna sorğunun daxil edilməsi nümunəsi və həmin sorğunun icrasının nəticələri göstərilir:

İlk USE sorğu bəyanatı SampleDb verilənlər bazasını cari verilənlər bazası kimi istifadə etməyi müəyyən edir. İkinci ifadə, SELECT, İşçi cədvəlindən bütün sətirləri götürür. Bu sorğunu yerinə yetirmək və nəticələri göstərmək üçün Sorğu Redaktoru alətlər panelində İcra düyməsini və ya F5 düyməsini sıxın.

Bir neçə Sorğu Redaktoru pəncərəsini aça bilərsiniz, yəni. Verilənlər Bazasının Mühərrikinin bir və ya bir neçə nümunəsinə çoxlu əlaqə yaradın. SQL Server Management Studio alətlər panelində Yeni Sorğu düyməsini klikləməklə yeni əlaqə yaradılır.

Sorğu Redaktoru pəncərəsinin altındakı vəziyyət çubuğu sorğu ifadələrinin icrası ilə bağlı aşağıdakı məlumatları göstərir:

    cari əməliyyatın vəziyyəti (məsələn, "Sorğu uğurla tamamlandı");

    verilənlər bazası serverinin adı;

    cari istifadəçi adı və server proses identifikatoru;

    cari verilənlər bazası adı;

    son sorğunun icrasına sərf olunan vaxt;

    tapılan sətirlərin sayı.

SQL Server Management Studio-nun əsas üstünlüklərindən biri onun istifadəsi asanlığıdır ki, bu da Sorğu Redaktoruna aiddir. Sorğu Redaktoru Transact-SQL ifadələrinin kodlaşdırılmasını asanlaşdırmaq üçün bir çox funksiyalar təqdim edir. Xüsusilə, Transact-SQL ifadələrinin oxunuşunu yaxşılaşdırmaq üçün sintaksis işıqlandırmasından istifadə edir. Bütün qorunan sözlər mavi, dəyişənlər qara, sətirlər qırmızı, şərhlər isə yaşıl rəngdə göstərilir.

Bundan əlavə, sorğu redaktoru çağırılan kontekstdə həssas yardımla təchiz edilmişdir Dinamik Yardım, bunun vasitəsilə siz konkret təlimat haqqında məlumat əldə edə bilərsiniz. Əgər təlimatın sintaksisini bilmirsinizsə, onu redaktorda seçin və sonra F1 düyməsini basın. Siz həmçinin Books Online-dan kömək almaq üçün müxtəlif Transact-SQL ifadələrinin parametrlərini vurğulaya bilərsiniz.

SQL Management Studio bir növ avtomatik tamamlama aləti olan SQL Intellisense-i dəstəkləyir. Başqa sözlə, bu modul qismən daxil edilmiş Transact-SQL ifadə elementlərinin çox güman ki, tamamlanmasını təklif edir.

Obyekt tədqiqatçısı həmçinin sorğuları redaktə etməyə kömək edə bilər. Məsələn, əgər siz İşçi cədvəli üçün CREATE TABLE bəyanatının necə yaradılacağını bilmək istəyirsinizsə, Object Explorer-də cədvələ sağ klikləyin və nəticədə kontekst menyusu Skript Cədvəli kimi --> YARAT --> Yeni Sorğu Redaktoru Pəncərəsini seçin. Bu şəkildə yaradılmış CREATE TABLE ifadəsini ehtiva edən Sorğu Redaktoru pəncərəsi aşağıdakı şəkildə göstərilmişdir. Bu xüsusiyyət saxlanılan prosedurlar və funksiyalar kimi digər obyektlərə də aiddir.

Obyekt brauzeri müəyyən sorğunun icra planını qrafik şəkildə göstərmək üçün çox faydalıdır. Sorğunun icra planı bir neçə sorğu optimallaşdırıcısı tərəfindən seçilmiş icra variantıdır mümkün variantlar konkret tələbin yerinə yetirilməsi. Tələb olunan sorğunu redaktorun yuxarı panelinə daxil edin, Sorğu --> Təxmini icra planını göstər menyusundan əmrlər ardıcıllığını seçin və bu sorğunun icra planı redaktor pəncərəsinin aşağı panelində göstəriləcək.

Həll Explorer

SQL Server Management Studio-da sorğunun redaktəsi həllər metoduna əsaslanır. Yeni Sorğu düyməsini istifadə edərək boş sorğu yaratsanız, o, boş həllə əsaslanacaq. Boş sorğunu açdıqdan dərhal sonra Görünüş -> Həll Explorer menyusundan əmrlər ardıcıllığını yerinə yetirməklə bunu görə bilərsiniz.

Qərar heç bir, bir və ya bir neçə layihə ilə bağlı ola bilər. Heç bir layihə ilə əlaqəli olmayan boş bir həll. Layihəni həll yolu ilə əlaqələndirmək üçün boş həlli, Həll Explorer və Sorğu Redaktorunu bağlayın və Fayl -> Yeni -> Layihəni işlətməklə yeni layihə yaradın. Açılan Yeni Layihə pəncərəsində orta paneldə SQL Server Skriptləri seçimini seçin. Layihə müəyyən bir yerdə faylları təşkil etmək üsuludur. Siz layihəyə ad təyin edə və onun diskdəki yeri üçün yer seçə bilərsiniz. Yeni layihə yaratdığınız zaman yeni həll avtomatik olaraq işə salınır. Layihə əlavə edilə bilər mövcud həll Solution Explorer istifadə edərək.

Yaradılmış hər bir layihə üçün Solution Explorer Əlaqələr, Sorğular və Müxtəlif qovluqları göstərir. Verilmiş layihə üçün yeni Sorğu Redaktoru pəncərəsini açmaq üçün onun Sorğular qovluğuna sağ klikləyin və kontekst menyusundan Yeni Sorğu seçin.

SQL Serverdə sazlama

SQL Server, SQL Server 2008-dən başlayaraq, daxili kod sazlayıcısına malikdir. Sazlama sessiyasına başlamaq üçün SQL Server Management Studio əsas menyusundan Debug -> Start Debugging seçin. Biz komandalar toplusundan istifadə edərək bir nümunədən istifadə edərək sazlayıcının necə işlədiyinə baxacağıq. Partiya, ehtiva etdiyi bütün ifadələri yerinə yetirmək üçün Database Engine-ə göndərilən SQL ifadələrinin və prosedur uzantılarının məntiqi ardıcıllığıdır.

Aşağıdakı şəkildə p1 layihəsində işləyən işçilərin sayını hesablayan paket göstərilir. Bu rəqəm 4 və ya daha çox olarsa, müvafiq mesaj göstərilir. Əks halda, işçilərin ad və soyadları göstərilir.

Müəyyən bir göstərişdə paketin icrasını dayandırmaq üçün şəkildə göstərildiyi kimi kəsilmə nöqtələrini təyin edə bilərsiniz. Bunu etmək üçün dayanmaq istədiyiniz xəttin soluna klikləyin. Sazlama başlayanda icra sarı ox ilə qeyd olunan kodun ilk sətirində dayanır. İcra və sazlamaya davam etmək üçün Debug -> Continue menyu əmrini seçin. Dəstə təlimatları birinci kəsilmə nöqtəsinə qədər icra etməyə davam edəcək və sarı ox həmin nöqtədə dayanacaq.

Sazlama prosesi ilə bağlı məlumat Sorğu Redaktoru pəncərəsinin altındakı iki paneldə göstərilir. Haqqında məlumat fərqli növlər Sazlama məlumatları bu panellərdə bir neçə tabda qruplaşdırılıb. Sol paneldə Avtomatlar nişanı, Yerlilər nişanı və beşə qədər Baxış nişanı var. Sağ paneldə Zəng yığını, mövzular, kəsilmə nöqtələri, əmr pəncərəsi, dərhal pəncərə və çıxış nişanları var. Yerlilər nişanı dəyişən dəyərləri, Zəng yığını nişanı zəng yığını dəyərlərini və Breakpoints nişanı kəsilmə nöqtəsi məlumatlarını göstərir.

Sazlama prosesini bitirmək üçün əsas menyudan Debug -> Stop Debugging menyusundan əmrlər ardıcıllığını yerinə yetirin və ya sazlayıcı alətlər panelində mavi düyməni basın.

SQL Server 2012 SQL Server Management Studio-da quraşdırılmış sazlayıcıya bir neçə yeni xüsusiyyət əlavə edir. İndi onda aşağıdakı əməliyyatların bir sırasını yerinə yetirə bilərsiniz:

    Kəsmə nöqtəsi şərtini təyin edin. Kəsmə nöqtəsi vəziyyəti qiymətləndirilmiş dəyəri kodun icrasının verilmiş nöqtədə dayanıb-dayanmayacağını müəyyən edən SQL ifadəsidir. Kəsmə nöqtəsi şərtini təyin etmək üçün qırmızı kəsmə nöqtəsi simgesini sağ klikləyin və kontekst menyusundan Şərt seçin. Tələb olunan Boolean ifadəsini daxil etməyə imkan verən Breakpoint Condition dialoq qutusu açılır. Bundan əlavə, əgər ifadə doğrudursa, icranı dayandırmaq lazımdırsa, Doğrudur keçidini təyin etməlisiniz. İfadə dəyişibsə, icranı dayandırmaq lazımdırsa, o zaman Dəyişən zaman açarını təyin etməlisiniz.

    Kəsmə nöqtəsində vuruşların sayını təyin edin. Vuruşların sayı icra zamanı kəsilmə nöqtəsinin vurulma sayına əsaslanaraq verilmiş nöqtədə icranın dayandırılması şərtidir. Müəyyən edilmiş keçidlərin sayına və verilmiş kəsilmə nöqtəsi üçün müəyyən edilmiş hər hansı digər şərtə çatdıqda, sazlayıcı müəyyən edilmiş hərəkəti yerinə yetirir. Xitlərin sayına görə icranın dayandırılması şərti aşağıdakılardan biri ola bilər:

    1. şərtsiz (defolt hərəkət) (Həmişə fasilə);

      vuruşların sayı göstərilən dəyərə bərabərdirsə (Sayı müəyyən edilmiş dəyərə bərabər olduqda kəsin);

      vuruşların sayı müəyyən edilmiş dəyərin qatıdırsa (vuruşların sayı müəyyən edilmiş dəyərin qatına bərabər olduqda kəsin);

      Onun sayı müəyyən edilmiş dəyərdən böyük və ya bərabər olduqda kəsin.

    Sazlama zamanı hitlərin sayını təyin etmək üçün Breakpoints sekmesinde tələb olunan kəsmə nöqtəsi ikonasını sağ klikləyin, kontekst menyusundan Hit Count seçin, sonra əvvəlki siyahıdan açılan Breakpoint Hit Count dialoq qutusunda şərtlərdən birini seçin. Dəyər tələb edən seçimlər üçün onu şərtlər açılan siyahısının sağındakı mətn qutusuna daxil edin. Göstərilən şərtləri saxlamaq üçün OK düyməsini basın.

    Kəsmə nöqtəsi filtrini təyin edin. Kəsmə nöqtəsi filtri kəsmə nöqtəsi əməliyyatını yalnız müəyyən edilmiş kompüterlər, proseslər və ya mövzularla məhdudlaşdırır. Kəsmə nöqtəsi filtrini təyin etmək üçün istədiyiniz kəsmə nöqtəsinə sağ vurun və kontekst menyusundan Filtr seçin. Sonra açılan Breakpoint Filters dialoq qutusunda bu kəsmə nöqtəsinin icrasını məhdudlaşdırmaq istədiyiniz resursları göstərin. Göstərilən şərtləri saxlamaq üçün OK düyməsini basın.

    Kəsmə nöqtəsində hərəkəti təyin edin. Zaman Vuruş şərti toplu icrası verilmiş kəsilmə nöqtəsinə çatdıqda görüləcək hərəkəti müəyyən edir. Varsayılan olaraq, həm vuruş sayı şərti, həm də dayandırma şərti təmin edildikdə, icra dayandırılır. Alternativ olaraq, əvvəlcədən təyin edilmiş mesaj göstərilə bilər.

    Kəsmə nöqtəsi vurulduqda nə edəcəyini müəyyən etmək üçün kəsilmə nöqtəsi üçün qırmızı ikona sağ klikləyin və kontekst menyusundan Vurulduğunda seçin. Açılan Breakpoint is Hit dialoq qutusunda yerinə yetirmək istədiyiniz hərəkəti seçin. Göstərilən şərtləri saxlamaq üçün OK düyməsini basın.

    Tez İzləmə pəncərəsindən istifadə edin. Siz QuickWatch pəncərəsində Transact-SQL ifadəsinin dəyərinə baxa və sonra ifadəni Baxış pəncərəsində saxlaya bilərsiniz. Tez İzləmə pəncərəsini açmaq üçün Debug menyusundan Quick Watch seçin. Bu pəncərədəki ifadə ya İfadə açılan siyahısından seçilə bilər, ya da bu sahəyə daxil edilə bilər.

    Tez Məlumat alət ipucundan istifadə edin. Siçanınızı kod identifikatorunun üzərinə gətirdiyiniz zaman Sürətli Məlumat ( Qısa məlumat) öz reklamını açılan pəncərədə göstərir.




Üst