Ms sql сервері сұрауларды жазады. Management Studio бағдарламасында SQL сұрауларын орындау. Орташа есептелген өрісті қосу

Кесте өрнектерікестенің болуы күтілетін жерде қолданылатын ішкі сұраулар деп аталады. Кесте өрнектерінің екі түрі бар:

    туынды кестелер;

    жалпыланған кесте өрнектері.

Кесте өрнектерінің осы екі пішіні келесі ішкі бөлімдерде талқыланады.

Туынды кестелер

Туынды кестесұраудың FROM сөйлеміне енгізілген кесте өрнегі. Туынды кестелерді бағанның бүркеншік атын пайдалану мүмкін болмаған жағдайда пайдалануға болады, себебі SQL аудармашысы бүркеншік ат белгілі болғанға дейін басқа мәлімдемені өңдейді. Төмендегі мысал бүркеншік ат белгілі болғанға дейін басқа сөйлем өңделетін жағдайда баған бүркеншік атын пайдалану әрекетін көрсетеді:

USE SampleDb; АЙДЫ(EnterDate) Enter_month ретінде ТАҢДАУ FROM Works_on GROUP BY enter_month;

Бұл сұрауды іске қосу әрекеті келесі қате туралы хабарды береді:

Хабарлама 207, 16-деңгей, 1-күй, 5-жол "enter_month" баған атауы жарамсыз. (207-хабарлама: 16-деңгей, 1-күй, 5-жолда баған атауы жарамсыз enter_month)

Қатенің себебі: GROUP BY сөйлемі SELECT операторының сәйкес тізімі өңделмес бұрын өңделеді және топ өңделген кезде enter_month бағанының бүркеншік аты белгісіз.

Бұл мәселені алдыңғы сұрауды қамтитын туынды кестені пайдалану арқылы шешуге болады (GROUP BY сөйлемі жоқ), себебі FROM сөйлемі GROUP BY сөйлемінің алдында орындалады:

USE SampleDb; Енгізу_ай БІЛІНЕН ТАҢДАУ (Айды енгізу_ай ретінде(ЕнгізуКүні) Жұмыстар_қосында) ретінде m GROUP BY enter_month;

Бұл сұраудың нәтижесі келесідей болады:

Әдетте, кесте өрнегі кесте атауы пайда болуы мүмкін SELECT операторының кез келген жерінде орналастырылуы мүмкін. (Кесте өрнегі нәтижесі әрқашан кесте немесе ерекше жағдайларда өрнек болып табылады.) Төмендегі мысал SELECT операторының таңдау тізімінде кесте өрнегін пайдалануды көрсетеді:

Бұл сұраудың нәтижесі:

Жалпы кесте өрнектері

Жалпы кесте өрнегі (OTB) Transact-SQL тілі қолдайтын аталған кесте өрнегі болып табылады. Жалпы кесте өрнектері сұраулардың келесі екі түрінде қолданылады:

    рекурсивті емес;

    рекурсивті.

Сұраныстардың осы екі түрі келесі бөлімдерде талқыланады.

OTB және рекурсивті емес сұраулар

OTB рекурсивті емес түрін туынды кестелер мен көріністерге балама ретінде пайдалануға болады. Әдетте OTB анықталады WITH сөйлемдеріжәне WITH сөйлемінде қолданылған атқа сілтеме жасайтын қосымша сұрау. Transact-SQL тілінде WITH түйінді сөзінің мағынасы көп мағыналы. Түсініксіздікті болдырмау үшін WITH операторының алдындағы мәлімдеме нүктелі үтірмен аяқталуы керек.

AdventureWorks2012 пайдалану; Sales.SalesOrderHeader ЖЕРДЕН SalesOrderID ТАҢДАҢЫЗ. TotalDue > (Sales.SalesOrderHeader ҚАЙДА ЖЫЛЫ(ТапсырысКүні) = "2005") ЖӘНЕ жүк тасымалдау > (Sales.SalesOrderHeader = WHERE (Sales.SalesOrderOr)2005 ЖЫЛЫНАН АВГ(Жалпы төлеу мерзімі) ТАҢДАҢЫЗ. ")/2.5;

Бұл мысалдағы сұрау жиынтық салықтары (TotalDue) барлық салықтардың орташа мәнінен жоғары және жүк алымдары (Жүк) орташа салықтардың 40%-дан асатын тапсырыстарды таңдайды. Бұл сұраныстың негізгі қасиеті оның ұзындығы болып табылады, өйткені ішкі сұрауды екі рет жазу керек. Бірі мүмкін жолдарысұрау құрылымының өлшемін азайту үшін ішкі сұрауды қамтитын көріністі жасау керек. Бірақ бұл шешім біршама күрделі, себебі ол көріністі жасауды және сұрауды орындауды аяқтағаннан кейін оны жоюды қажет етеді. Жақсырақ тәсіл OTB құру болар еді. Төмендегі мысал рекурсивті емес OTB пайдалануды көрсетеді, ол жоғарыдағы сұрау анықтамасын қысқартады:

AdventureWorks2012 пайдалану; Sales.sales inters in sales.sales intersheader (AVG (TotalDue) арқылы Sales.SalesDordHeader көмегімен Sales.SalesDordHeader (TotalDue) және жүк> (Quaddue_Calc) және жүк> (Quad_2005 таңдаңыз) ) /2.5;

Рекурсивті емес сұраулардағы WITH сөйлем синтаксисі келесідей:

cte_name параметрі нәтижелік кестені анықтайтын OTB атауын көрсетеді, ал column_list параметрі кесте өрнегі бағандарының тізімін көрсетеді. (Жоғарыдағы мысалда OTB баға_есеп деп аталады және оның бір бағанына ие, year_2005.) Inner_query параметрі сәйкес кесте өрнегі нәтижелер жиынын көрсететін ТАҢДАУ мәлімдемесін көрсетеді. Анықталған кесте өрнегін одан кейін сыртқы_сұрауда пайдалануға болады. (Жоғарыдағы мысалдағы сыртқы сұрау қос кірістірілген сұрауды жеңілдету үшін OTB price_calc және оның year_2005 бағанын пайдаланады.)

OTB және рекурсивті сұраулар

Бұл бөлімде күрделілігі жоғары материал ұсынылған. Сондықтан оны бірінші рет оқығанда оны өткізіп жіберіп, кейінірек қайта оралу ұсынылады. OTB рекурсияларды жүзеге асыру үшін пайдаланылуы мүмкін, себебі OTB-де өздеріне сілтемелер болуы мүмкін. Рекурсивті сұрауға арналған негізгі OTB синтаксисі келесідей:

cte_name және column_list параметрлері рекурсивті емес сұраулар үшін OTB-дегідей мағынаға ие. WITH сөйлемінің негізгі бөлігі оператор біріктіретін екі сұраудан тұрады БАРЛЫҚ ОДАҚ. Бірінші сұрау тек бір рет шақырылады және ол рекурсияның нәтижесін жинақтай бастайды. UNION ALL операторының бірінші операнды OTB-ге сілтеме жасамайды. Бұл сұрау анықтамалық сұрау немесе дереккөз деп аталады.

Екінші сұрауда OTB сілтемесі бар және оның рекурсивті бөлігін көрсетеді. Осыған байланысты ол рекурсивті мүше деп аталады. Рекурсивті бөлікке бірінші шақыруда OTB сілтемесі анықтамалық сұраудың нәтижесін көрсетеді. Рекурсивті мүше бірінші сұрау шақыруының нәтижесін пайдаланады. Осыдан кейін жүйе рекурсивті бөлікті қайтадан шақырады. Рекурсивті мүшеге шақыру оған алдыңғы шақыру бос нәтижелер жинағын қайтарғанда тоқтайды.

UNION ALL операторы ағымдағы жинақталған жолдарды, сондай-ақ рекурсивті мүшеге ағымдағы шақыру арқылы қосылған қосымша жолдарды қосады. (UNION ALL операторының болуы нәтижеден қайталанатын жолдар жойылмайтынын білдіреді.)

Соңында, outer_query параметрі екі мүшенің қосылуына барлық шақыруларды шығарып алу үшін OTB пайдаланатын сыртқы сұрауды анықтайды.

OTB рекурсивті формасын көрсету үшін біз төмендегі мысалда көрсетілген кодпен анықталған және толтырылған Ұшақ кестесін қолданамыз:

USE SampleDb; CREATE TABLE Airplane(VARCHAR(10), ContainedAssembly VARCHAR(10), QuantityContained INT, UnitCost DECIMAL(6,2)); INSERT INTO Airplane VALUES («Ұшақ», «Фюзеляж», 1, 10); INSERT INTO Airplane VAVAES («Ұшақ», «Қанат», 1, 11); INSERT INTO Airplane VALUES («Ұшақ», «Құйрық», 1, 12); ҰШАҚ МӘНДЕРІНЕ INSERT INTO («Фюзеляж», «Салон», 1, 13); ҰШАҚ МӘНДЕРІНЕ КІРУ («Фюзеляж», «Кокпит», 1, 14); INSERT INTO Airplane VALUES («Фюзеляж», «Мұрын», 1, 15); INSERT INTO Airplane VALUES («Кабина», NULL, 1,13); ҰШАҚ МӘНДЕРІНЕ INSERT INTO («Кокпит», NULL, 1, 14); INSERT INTO Airplane VALUES («Мұрын», NULL, 1, 15); INSERT INTO Airplane VALUES («Қанат», NULL, 2, 11); INSERT INTO Airplane VALUES («Құйрық», NULL, 1, 12);

Ұшақ кестесінде төрт баған бар. ContainingAssembly бағаны жинақты анықтайды, ал ContainedAssembly бағаны сәйкес жинақты құрайтын бөліктерді (бір-бірден) анықтайды. Төмендегі суретте ұшақтың ықтимал түрі мен оның құрамдас бөліктерінің графикалық иллюстрациясы көрсетілген:

Ұшақ кестесі келесі 11 жолдан тұрады:

Келесі мысал әрбір құрастырудың жалпы құнын есептейтін сұрауды анықтау үшін WITH сөйлемін пайдаланады:

USE SampleDb; БӨЛІКТЕР_ТІЗІМІМЕН(құрастыру1, саны, құны) АСҚАН (Құрамды жинақты, саны бар, Ұшақтан бірліктің құнын ТАҢДАУ ЖЕРІНДЕГІ ҰШАҚ БАРЛЫҒЫН ТАҢДАУ a. Құрамды құрастыру, a. Саны Contained, D (AS.2, CAST) ) Бөлшектердің_тізбесінен l, Ұшақ a ҚАЙДА l.құрастыру1 = a.Құрамды жинақ) ТАҢДАУ құрастыру1 "Бөлшек", "Саны", құны "Бағасы" бөлшектер_тізімінен;

WITH сөйлемі үш бағаннан тұратын бөліктердің_тізімі деп аталатын OTB тізімін анықтайды: құрастыру1, сан және құн. Мысалдағы бірінші SELECT операторы рекурсия процесінің бірінші қадамының нәтижелерін сақтау үшін тек бір рет шақырылады. Мысалдың соңғы жолындағы SELECT операторы келесі нәтижені көрсетеді.

SQL немесе құрылымдық сұрау тілі – реляциялық дерекқор жүйесіндегі (RDBMS) деректерді басқару үшін қолданылатын тіл. Бұл мақалада жиі қолданылатын тақырыптар қарастырылады SQL командалары, бұл әрбір бағдарламашы білуі керек. Бұл материал жұмыс сұхбатына дейін SQL білімін толықтырғысы келетіндер үшін өте қолайлы. Мұны істеу үшін мақалада келтірілген мысалдарды қараңыз және деректер қорын жұппен зерттегеніңізді есте сақтаңыз.

Кейбір дерекқор жүйелері әрбір мәлімдеменің соңында нүктелі үтірді қажет ететінін ескеріңіз. Нүктелі үтір стандартты көрсеткіш SQL тіліндегі әрбір мәлімдеменің соңында. Мысалдар MySQL пайдаланады, сондықтан нүктелі үтір керек.

Мысалдар үшін дерекқорды орнату

Топтардың қалай жұмыс істейтінін көрсету үшін дерекқор жасаңыз. Жұмыс істеу үшін сізге екі файлды жүктеп алу қажет: DLL.sql және InsertStatements.sql. Осыдан кейін терминалды ашыңыз және MySQL консоліне келесі пәрмен арқылы кіріңіз (мақалада MySQL жүйеде орнатылған деп болжанады):

Mysql -u root -p

Содан кейін құпия сөзіңізді енгізіңіз.

Келесі пәрменді іске қосыңыз. Мәліметтер базасын «университет» деп атаймыз:

ДЕРЕКТЕР БАЗЫН ЖАСАУ университет; USE университеті; КӨЗ ; КӨЗ

Мәліметтер қорымен жұмыс істеу командалары

1. Қол жетімді дерекқорларды қараңыз

ДЕРЕКТЕР ҚОРЫН КӨРСЕТУ;

2. Жаңа деректер қорын жасаңыз

ДЕРЕКТЕР БАЗЫН ҚҰРУ;

3. Қолданылатын мәліметтер қорын таңдау

ҚОЛДАНУ ;

4. SQL пәрмендерін .sql файлынан импорттаңыз

КӨЗ ;

5. Дерекқорды жойыңыз

DROP ДЕРЕКТЕР БАЗАСЫ ;

Кестелермен жұмыс

6. Дерекқорда қол жетімді кестелерді қараңыз

Кестелерді КӨРСЕТУ;

7. Жаңа кесте құру

КЕСТЕН ​​ЖАСАУ ( , , НЕГІЗГІ КҮЙСЕ ( ), ШЕТЕЛДІК КІЛТ ( ) ӘДЕБИЕТТЕР ());

CREATE TABLE пайдалану кезіндегі тұтастық шектеулері

Кестедегі белгілі бір бағандарға шектеулер жасау қажет болуы мүмкін. Кестені құру кезінде келесі шектеулерді орнатуға болады:

  • кесте ұяшығында NULL мәні болуы мүмкін емес;
  • бастапқы кілт - PRIMARY KEY (col_name1, col_name2, ...) ;
  • сыртқы кілт - СЫРТҚЫ КІЛТ (col_namex1, …, col_namexn) ӘДЕБИЕТТЕР кесте_аты(col_namex1, …, col_namexn) .

Бірнеше негізгі кілтті көрсетуге болады. Бұл жағдайда сіз құрама бастапқы кілт аласыз.

Мысал

«Нұсқаушы» кестесін құру:

CREATE TABLE нұсқаушысы (ID CHAR(5), аты VARCHAR(20) NO NULL, бөлім_атауы VARCHAR(20), жалақы САНДЫҚ(8,2), БАСТАУЫШ КҮЙТІК (ID), СЫРТҚЫ КІЛТІ (бөлім_атауы) РЕФЕРЕНЦИЯЛАР бөлімі(бөлім_атауы));

8. Кесте ақпараты

Кесте бағандары туралы әртүрлі ақпаратты (мән түрі, кілт немесе жоқ) келесі пәрмен арқылы көруге болады:

СИПАТТАУ ;

9. Кестеге мәліметтерді қосу

INSERT INTO (, , , ...) ҚҰНДЫЛЫҚТАР ( , , , …);

Кестедегі әрбір бағанға деректерді қосқанда, баған атауларын көрсету қажет емес.

INSERT INTO ҚҰНДЫЛЫҚТАР ( , , , …);

10. Кесте деректерін жаңарту

ЖАҢАРТУ ОРНАТУ = , = , ... ҚАЙДА ;

11. Кестеден барлық деректерді жою

ЖОЮ ;

12. Кестені жою

КЕСТЕНДІ ТАРТУ ;

Сұрауларды құруға арналған командалар

13. ТАҢДАУ

SELECT арнайы кестеден деректерді алу үшін пайдаланылады:

ТАҢДАУ , , … FROM ;

Келесі пәрмен кестедегі барлық деректерді көрсете алады:

ТАҢДАУ * FROM ;

14. ТАҢДАУ DISTINCT

Кесте бағандарында қайталанатын деректер болуы мүмкін. Тек қайталанбайтын деректерді алу үшін SELECT DISTINCT пәрменін пайдаланыңыз.

ТАҢДАУ DISTINCT , , … FROM ;

15. ҚАЙДА

Сұраудағы шарттарды көрсету үшін SELECT ішіндегі WHERE кілт сөзін пайдалануға болады:

ТАҢДАУ , , … FROM ҚАЙДА ;

Өтініште келесі шарттар көрсетілуі мүмкін:

  • мәтінді салыстыру;
  • сандық мәндерді салыстыру;
  • логикалық операторлар ЖӘНЕ (және), НЕМЕСЕ (немесе) және ЕМЕС (терістеу).

Мысал

Келесі пәрмендерді орындап көріңіз. ҚАЙДА көрсетілген шарттарға назар аударыңыз:

ТАҢДАУ * курстан WHERE dept_name=’Комп. Sci.'; ТАҢДАУ * Кредит >3 курстан; ТАҢДАУ * курстан WHERE dept_name="Comp. Sci." ЖӘНЕ кредиттер>3;

16. ТОПТАУ

GROUP BY операторы жиі қолданылады агрегаттық функцияларшығыс мәндерін топтау үшін COUNT, MAX, MIN, SUM және AVG сияқты.

ТАҢДАУ , , … FROM ТОПТАУ ;

Мысал

Әр факультет үшін курстар санын көрсетейік:

COUNT(курс_идентификаторы), бөлім_атын ТАҢДАУ курстың тобынан бөлім_атауы бойынша;

17. БАР

HAVING кілт сөзі SQL-ге қосылды, себебі WHERE жиынтық функциялармен бірге қолданыла алмайды.

ТАҢДАУ , , ... FROM ТОПТАУ БАР

Мысал

Бірден көп курстары бар факультеттердің тізімін көрсетейік:

COUNT(курс_идентификаторы), бөлім_атын курстан ТАҢДАУ COUNT(курс_идентификаторы)>1;

18. ТАПСЫРЫС БОЙЫНША

ORDER BY сұрау нәтижелерін кему немесе өсу реті бойынша сұрыптау үшін пайдаланылады. ASC немесе DESC көрсетілмесе, ORDER BY өсу ретімен сұрыпталады.

ТАҢДАУ , , … FROM БОЙЫНША СҰРЫПТАУ , , …ASC|DESC;

Мысал

Курстар тізімін кредиттердің өсу және кему ретімен көрсетейік:

ТАҢДАУ * Кредиттер бойынша курстың ТАПСЫРЫСЫ; ТАҢДАУ * КУРС ТАПСЫРЫСЫ DESC кредиттері бойынша;

19. АРАСЫНДА

BETWEEN белгілі бір ауқымдағы деректер мәндерін таңдау үшін қолданылады. Сандық және мәтін мәндері, сондай-ақ күндер.

ТАҢДАУ , , … FROM ҚАЙДА АРАСЫНДА ЖӘНЕ ;

Мысал

Жалақысы 50 000-нан жоғары, бірақ 100 000-нан аз нұсқаушылар тізімін көрсетейік:

* Нұсқаушыдан ТАҢДАҢЫЗ, жалақысы 50000-нан 100000-ға дейін;

20. ЛАЙК

Ұқсас мәнге іздеу үлгісін көрсету үшін LIKE операторы WHERE ішінде пайдаланылады.

LIKE-да қолданылатын екі тегін оператор бар:

  • % (жоқ, бір немесе бірнеше таңба);
  • _ (бір таңба).
ТАҢДАУ , , … FROM ҚАЙДА ЛАЙК ;

Мысал

Атауларында "to" болатын курстар тізімін және аттары "CS-" әрпінен басталатын курстар тізімін көрсетейік:

* Курстан ТАҢДАУ ҚАЙДА ТАҚЫРЫП ‘%to%’; * Курстан ҚАЙДА курс_идентификаторы «CS-___» СИЯҚТЫ ТАҢДАУ;

21. IN

IN көмегімен WHERE сөйлемі үшін бірнеше мәндерді көрсетуге болады:

ТАҢДАУ , , … FROM ҚАЙДА IN ( , , …);

Мысал

Мамандық бойынша студенттердің тізімін көрсетейік. Ғылым, физика және элек. Ағыл.:

SELECT * FROM student WHERE dept_name IN («Comp. Sci.», «Физика», «Elect. Eng.');

22. ҚОСЫЛУ

JOIN екі немесе одан да көп кестелерді олардың ішіндегі жалпы атрибуттарды пайдаланып байланыстыру үшін пайдаланылады. Төмендегі суретте көрсетілген әртүрлі жолдар SQL-ге қосылады. Сол жақ сыртқы біріктіру мен оң жақ сыртқы біріктіру арасындағы айырмашылыққа назар аударыңыз:

ТАҢДАУ , , … FROM ҚОСЫЛУ ҚОСУЛЫ = ;

1-мысал

Біз барлық курстардың тізімін және факультеттер туралы тиісті ақпаратты көрсетеміз:

ТАҢДАУ * курстан ҚОСЫЛУ бөлімі ON course.dept_name=department.dept_name;

2-мысал

Біз барлық қажетті курстардың тізімін және олар туралы мәліметтерді көрсетеміз:

ТАҢДАУ prereq.course_id, тақырып, бөлім_аты, кредиттер, prereq_id FROM prereq СОЛ СЫРТҚА ҚОСЫЛУ курсын ON prereq.course_id=course.course_id;

3-мысал

Міндетті немесе қажет еместігіне қарамастан, біз барлық курстардың тізімін көрсетеміз:

курс.курс_идентификаторын, тақырыпты, бөлім_атын, кредиттерді, алдын ала идентификаторды ТАҢДАУ prereq ОҢ СЫРТҚА ҚОСЫЛУ курсынан prereq.course_id=course.course_id;

23. Көру

Көрініс – өрнекті орындау нәтижесінде жасалған виртуалды SQL кестесі. Ол жолдар мен бағандардан тұрады және кәдімгі SQL кестесіне өте ұқсас. Көрініс әрқашан дерекқордағы соңғы ақпаратты көрсетеді.

Жасау

КӨРІНІС ЖАСАУ ТАҢДАУ РЕТІНДЕ , , … FROM ҚАЙДА ;

Жою

ҚОСУ ;

Мысал

3 кредиті бар курстардан тұратын көріністі жасайық:

24. Жиынтық функциялар

Бұл функциялар қарастырылатын деректерге қатысты жиынтық нәтиже алу үшін пайдаланылады. Төменде жиі қолданылатын жиынтық функциялар:

  • COUNT (col_name) – жолдар санын қайтарады;
  • SUM (col_name) – осы бағандағы мәндердің қосындысын қайтарады;
  • AVG (col_name) – берілген бағанның орташа мәнін береді;
  • MIN (col_name) – берілген бағанның ең кіші мәнін береді;
  • MAX (col_name) - берілген бағанның ең үлкен мәнін қайтарады.

25. Кірістірілген ішкі сұраулар

Кірістірілген ішкі сұраулар басқа сұрау ішінде кірістірілген SELECT , FROM және WHERE сөйлемдерін қамтитын SQL сұраулары болып табылады.

Мысал

2009 жылдың күзінде және 2010 жылдың көктемінде оқытылатын курстарды табайық:

SELECT DISTINCT course_id FROM WHERE семестр = "Күз" ЖӘНЕ жыл= 2009 ЖӘНЕ курс_идентификаторын IN (SELECT course_id FROM бөлімін WHERE семестр = "Көктем" ЖӘНЕ жыл= 2010);

SQL - Құрылымдық сұрау тілі.
IN бұл шолуБіз SQL сұрауларының ең көп тараған түрлерін қарастырамыз.
SQL стандарты анықталған ANSI(Америка ұлттық стандарттар институты).
SQL – реляциялық деректер қорларына арнайы бағытталған тіл.

SQL бөлімдері:


DDL
(Деректерді анықтау тілі) - ANSI жүйесіндегі схеманы сипаттау тілі деп аталатын, деректер қорында объектілерді (кестелер, индекстер, көріністер және т.б.) жасайтын командалардан тұрады.
DML(Деректерді өңдеу тілі) кез келген уақытта кестелерде қандай мәндер көрсетілетінін анықтайтын командалар жиынтығы.
DCD(Деректерді басқару тілі) пайдаланушыға белгілі бір әрекеттерді орындауға рұқсат беру немесе бермеуді анықтайтын нысандардан тұрады. Олар ANSI DDL бөлігі болып табылады. Бұл атауларды ұмытпаңыз. Бұл әр түрлі тілдер емес, SQL командаларының функциялары бойынша топтастырылған бөлімдері.

Деректер түрлері:

SQL Server - Деректер түрлері

Сипаттама

бигинт (int 8)

бигинт (int 8)

екілік(n)

екілік(n) немесе сурет

кейіпкер
(синоним таңба)

ұлттық кейіпкернемесе ntext

сипаты әртүрлі(синоним char әр түрлі вархар)

ұлттық сипаты әртүрлінемесе ntext

Күн уақыты

дата уақыты

ондық

ака сандық

қос дәлдік

қос дәлдік

бүтін сан (int 4) (синоним: int)

бүтін сан (int 4)

ұлттық мінез(синоним: ұлттық мінез, nchar)

ұлттық мінез

Сандық(синонимдер: ондық, желтоқсан)

ұлттық сипаты әртүрлі(синонимдер: ұлттық таңба әртүрлі, nvarchar)

Ұлттық сипаты әр түрлі

Smalldatetime

дата уақыты

кішкентай (int 2)

кішкентай (int 2)

Шағын ақша

sql_variant

Енді қолдау көрсетілмейді

Nмәтін
SQL Server 2005 нұсқасынан бастап оны пайдалану ұсынылмайды.

Уақыт белгісі

Қолдау көрсетілмейді

кішкентай (int 1)

кішкентай (int 1)

Бірегей идентификатор

бірегей идентификатор

варбинарлық(n)

варбинарлық(n) немесе сурет

smalldatetime

дата уақыты

кішкентай (int 2)

кішкентай (int 2)

ұсақ ақша

sql_variant

Қолдау көрсетілмейді

уақыт белгісі

Қолдау көрсетілмейді

кішкентай (int 1)

кішкентай (int 1)

бірегей идентификатор

бірегей идентификатор

варбинарлық(n)

варбинарлық(n) немесе сурет

SQL Server 2000 жүйесіндегі деректер типінің кестесі

СҰРАУ ДЕГЕН НЕ?

Сұранысдерекқор бағдарламасына беретін пәрмен. Сұраулар DML тілінің бөлігі болып табылады. Барлық SQL сұраулары бір командадан тұрады. Бұл пәрменнің құрылымы алдамшы қарапайым, себебі оны өте күрделі бағалаулар мен деректер манипуляцияларын орындау үшін кеңейту керек.

ТАҢДАУ пәрмені:

ТАҢДАУ«Таңдау» - ең жиі қолданылатын команда, ол кестеден деректерді таңдау үшін қолданылады.
SELECT көмегімен сұрау түрі:

пайдаланушылар_базасынан идентификаторды, пайдаланушы_атын, қаланы, туған_күнді ТАҢДАҢЫЗ;

Мұндай сұрау user_base кестесінен кейін үтірмен бөлінген бағандардың барлық мәндерін көрсетеді. ТАҢДАУ пәрмендері. Сондай-ақ, сіз барлық бағандарды бір таңбамен көрсете аласыз, * яғни. ТАҢДАУ * FROM users_base ; - мұндай сұраныс кестедегі барлық деректерді көрсетеді.

SELECT пәрмен құрылымы:

SELECT (сұрауда көрсетілуі қажет үтірмен бөлінген баған атаулары) FROM (деректер қорындағы кесте атауы)
- Бұл сұраныстың ең қарапайым түрі. Ыңғайлы деректерді іздеуге арналған қосымша пәрмендер бар («Функциялар» төменде қараңыз)

DML командалары:

Мәндерді өрістерден үш DML (Деректерді өңдеу тілі) пәрмендері арқылы орналастыруға және жоюға болады:
INSERT(Кірістіру)
ЖАҢАРТУ(Жаңарту, өзгерту),
ЖОЮ(Жою)

INSERT пәрмені:

INSERT INTO users_base (пайдаланушы_аты, қаласы, туған_күні) VALUES ('Александр', 'Ростов', '20.06.1991');

INSERT пәрмені INTO (in to) префиксімен келеді, содан кейін жақшада біз деректерді енгізуіміз керек бағандардың аттары, содан кейін VALUES командасы (мәндер) келеді және жақшаға мәндер кезекпен келеді (ол бағандармен мәндердің ретін сақтау қажет , мәндер сіз көрсеткен бағандармен бірдей тәртіпте болуы керек).

UPDATE пәрмені:

UPDATE users_base SET user_name = 'Алексей';

UPDATE пәрмені кестедегі мәндерді жаңартады. Алдымен UPDATE пәрменінің өзі, содан кейін SET командасынан (жиынынан) кейін кесте аты, содан кейін баған атауы және оның тырнақшадағы мәні (мән жол пішімінде болса, сандық мән болса және баған болса тырнақша қойылады) vchar деректер түріне немесе басқа жол түрлеріне байланысты емес, тырнақшалардың мағынасы жоқ.)

DELETE пәрмені:

DELETE FROM users_base WHERE user_name = 'Василий';

DELETE пәрмені бүкіл жолды жояды және WHERE шартының көмегімен жолды анықтайды. Бұл жағдайда, бұл сұрау user_name бағанының мәні Василий болған барлық жолдарды жояды. WHERE критерийі және басқалары туралы сәл кейінірек айтатын боламыз.

Критерийлер, функциялар, шарттар және т.б. SQL-де бізге не көмектеседі:

WHERE сөйлемі - кестедегі кез келген жол үшін шарты ақиқат немесе жалған болуы мүмкін предикаттарды орнатуға мүмкіндік беретін ТАҢДАУ пәрменінің және басқа DML пәрмендерінің тармағы. Пәрмен кестеден осы мәлімдеме ақиқат болатын жолдарды ғана шығарады.
Мысалы:
Идентификаторды, қаланы, туған_күнді ТАҢДАУ FROM users_base WHERE user_name = ‘Алексей’;- мұндай сұраныс WHERE шартына сәйкес келетін жолдарды ғана көрсетеді, атап айтқанда user_name бағанында Алексей мәні бар барлық жолдар.

ORDER BY – таңдалған жолдарды сұрыптау шарты. ASC және DESC 2 критерийі бар. ASC (А-дан Я-ға дейін немесе 0-ден 9-ға дейін сұрыптау)

DESC (ASC қарама-қарсы).
Мысалы:
пайдаланушылар_базасынан идентификаторды, қаланы, туған_күнді ТАҢДАУ ASC пайдаланушы_аты бойынша ТАПСЫРЫС; - мұндай сұрау пайдаланушы_аты бағанымен А-дан Я-ға дейін сұрыпталған мәндерді көрсетеді (A-Z; 0-9)

Бұл шартты WHERE сөйлемімен бірге қолдануға болады.
Мысалы:
ТАҢДАУ идентификаторы, қала, туған_күн FROM users_base WHERE user_name = ‘Алексей’ ASC идентификаторы бойынша ТАПСЫРЫС;

DISTINCT — ТАҢДАУ тармағынан қосарланған мәндерді жою жолын ұсынатын аргумент. Анау. егер сізде бағанда қайталанатын мәндер болса, user_name делік, онда DISTINCT сізге тек бір мәнді көрсетеді, мысалы, сіздің дерекқорыңызда Алексей есімді 2 адам бар, содан кейін DISTINCT функциясын пайдаланатын сұрау сізге тек 1 мәнді көрсетеді бұл бірінші болып табылады ...
Мысалы:
пайдаланушылар_базасынан DISTINCT пайдаланушы_атын ТАҢДАҢЫЗ;- мұндай сұрау бізге user_name бағанындағы барлық жазбалардың мәндерін көрсетеді, бірақ олар қайталанбайды, яғни. егер сізде қайталанатын мәндердің шексіз саны болса, олар көрсетілмейді...

ЖӘНЕ - аргумент ретінде екі логикалық мәнді (А ЖӘНЕ В түрінде) қабылдайды және олардың екеуінің де ақиқаттығына ақиқатқа қарсы бағалайды.
Мысалы:
SELECT * FROM users_base WHERE city = 'Ростов' ЖӘНЕ user_name = 'Александр';- қала атауы бір жолда пайда болатын кестедегі барлық мәндерді көрсетеді (бұл жағдайда Ростов және пайдаланушы аты Александр.

НЕМЕСЕ - аргумент ретінде екі логикалық мәнді (A НЕМЕСЕ В түрінде) қабылдайды және олардың біреуі дұрыс екенін бағалайды.

SELECT * FROM users_base WHERE city = 'Ростов' OR user_name = 'Александр';- жолда Ростов қаласының аты немесе Александр пайдаланушы аты көрсетілген кестедегі барлық мәндерді көрсетеді.

ЕМЕС - аргумент ретінде жалғыз логикалық мәнді (NO A түрінде) қабылдайды және оның мәнін жалғаннан ақиқатқа немесе шын мәнін жалғанға өзгертеді.
SELECT * FROM users_base WHERE city = 'Ростов' OR NOT user_name = 'Александр';- кестедегі барлық мәндерді көрсетеді, онда Ростов қаласының атауы бір жолда пайда болады немесе пайдаланушы аты дәл Александр емес.

IN - берілген мән қосылуы немесе енгізілмеуі мүмкін мәндер жинағын анықтайды.
ТАҢДАУ * пайдаланушылар_базасынан ҚАЙДА ҚАЛАДА («Владивосток», «Ростов»);- мұндай сұрау қала бағанында көрсетілген қалалардың атауларын қамтитын кестедегі барлық мәндерді көрсетеді

Bet — IN операторына ұқсас. IN сияқты жиыннан сандар арқылы анықтаудан айырмашылығы, BETWEEN предикатты ақиқат ету үшін мәндері азаюы қажет ауқымды анықтайды.
* 1 ЖӘНЕ 10 АРАСЫНДА идентификаторды пайдаланушылар_базасынан ТАҢДАҢЫЗ;- id бағанында 1-ден 10-ға дейінгі аралықта болатын кестедегі барлық мәндерді көрсетеді

COUNT - сұрау таңдалған өрістердің жол нөмірлерін немесе NULL емес мәндерін шығарады.
COUNT (*) пайдаланушылар_базасынан ТАҢДАУ;- осы кестедегі жолдар санын көрсетеді.
пайдаланушылар_базасынан COUNT ТАҢДАУ (ДИSTINCT пайдаланушы_аты);- пайдаланушы аттары бар жолдар санын көрсетеді (қайталанбайды)

SUM - берілген өріс үшін барлық таңдалған мәндердің арифметикалық қосындысын шығарады.
SUM (id) FROM users_base ТАҢДАУ;- id бағанының барлық жолдарының мәндерінің қосындысын көрсетеді.

AVG - осы өрістің барлық таңдалған мәндерін орташалайды.
AVG (id) ТАҢДАУ FROM users_base ;- id бағанының барлық таңдалған мәндерінің орташа мәнін көрсетеді

MAX - осы өріс үшін барлық таңдалған мәндердің ең үлкенін шығарады.

MIN - осы өріс үшін барлық таңдалған мәндердің ең кішісін шығарады.

Кестелерді құру:

КЕСТЕ ЖАСАУ пайдаланушылар_базасы (идентификатордың бүтін саны, пайдаланушы_аты мәтіні, қала мәтіні, туған_күннің уақыты);- мұндай команданы орындау мен мысалдар келтірген кестені құруға әкеледі... Мұнда барлығы қарапайым, біз CREATE TABLE командасын жазамыз, одан кейін құрғымыз келетін кестенің атын, содан кейін жақшаға, үтірмен, бағандардың аттары және олардың деректер түрімен бөлінген. Бұл SQL тілінде кесте құрудың стандартты тәсілі. Енді мен SQL Server 2005 жүйесінде кестелерді құрудың мысалын беремін:

ANSI_NULLS ҚОСУ
ӨТ
QUOTED_IDENTIFIER ҚОСУ
ӨТ
ЕГЕР БАР БОЛМАСА (ТАҢДАУ * FROM sys.objects ҚАЙДА object_id = OBJECT_ID(N."") ЖӘНЕ (N"U") теріңіз)
БАСТА
КЕСТЕН ​​ЖАСАУ.(

НҰЛ ЕМЕС,
НҰЛ ЕМЕС,
НҰЛ ЕМЕС,
КЛАСТЕРДІҢ БАСТАУЫ КІЛТІ
A.S.C.


Соңы
ӨТ
ANSI_NULLS ҚОСУ
ӨТ
QUOTED_IDENTIFIER ҚОСУ
ӨТ
ЕГЕР БАР БОЛМАСА (ТАҢДАУ * FROM sys.objects ҚАЙДА object_id = OBJECT_ID(N."") ЖӘНЕ (N"U") теріңіз)
БАСТА
КЕСТЕН ​​ЖАСАУ.(
IDENTITY(1,1) НҰЛ ЕМЕС,
NULL,
NULL,
КЛАСТЕРДІҢ БАСТАУЫ КІЛТІ
A.S.C.
)МЕН (IGNORE_DUP_KEY = OFF) ҚОСУ
) TEXTIMAGE_ON
Соңы
ӨТ
ANSI_NULLS ҚОСУ
ӨТ
QUOTED_IDENTIFIER ҚОСУ
ӨТ
ЕГЕР БАР БОЛМАСА (ТАҢДАУ * FROM sys.objects ҚАЙДА object_id = OBJECT_ID(N."") ЖӘНЕ (N"U") теріңіз)
БАСТА
КЕСТЕН ​​ЖАСАУ.(
IDENTITY(1,1) НҰЛ ЕМЕС,
NULL,
NULL,
КЛАСТЕРДІҢ БАСТАУЫ КІЛТІ
A.S.C.
)МЕН (IGNORE_DUP_KEY = OFF) ҚОСУ
) ҚОСУ
Соңы

SQL Server 2005 синтаксисі басқа тақырып, мен жай ғана мен SQL бағдарламалау негіздерін сипаттағанымды көрсеткім келді, сіз негіздерді білу арқылы шыңға жете аласыз.

Осы тақырып бойынша сұрақтарыңыз болса, маған жазыңыз

MS SQL Server сияқты дерекқордағы деректермен негізгі операцияларды көрсететін қолданбаны әзірлеу, атап айтқанда:

  • мәліметтер қорын қолданбаға қосу;
  • пішінде мәліметтер қорының кестелерін көрсету;
  • қосу жаңа жазбамәліметтер базасына;
  • жазбаны өңдеу;
  • жазбаны жою.

Құру процесі егжей-тегжейлі сипатталған Education.dbo деректер базасы негіз ретінде алынған

1-сурет Education.dbo дерекқорының құрылымын көрсетеді. Суреттен көрініп тұрғандай мәліметтер базасы былай аталады:

sasha-pc\sqlexpress.Education.dbo

Мұндағы “sasha-pc” – желідегі компьютер идентификаторы, “sqlexpress” – деректер қоры серверінің атауы, “Education.dbo” – деректер қорының атауы.

Күріш. 1. Education.dbo дерекқоры

Мәліметтер базасында екі кесте бар: Студент және Сессия. Кестелердің құрылымы келесідей.

Оқушылар үстелі.

Сеанс кестесі.

Өнімділік

1. MS Visual Studio бағдарламасында Windows Forms қолданбасы ретінде жаңа жоба жасаңыз.

Windows Forms Application түріндегі жаңа жобаны жасаңыз. Жаңа жобаны құру мысалы егжей-тегжейлі сипатталған

2. Студент кестесіндегі деректерді көрсету үшін жаңа көрініс жасаңыз.

Дерекқор кестелерінен деректерді көрсету үшін пайдалануға болады әртүрлі жолдар. Солардың бірі MS Visual Studio көмегімен жасалатын көріністерді құру.

Біздің жағдайда кесте деректері пішінде DataGridView түрінің басқару элементінде көрсетіледі. Көріністерді жасағаннан кейін оларды DataGridView элементтерімен байланыстыру өте ыңғайлы.

Көрініс құру үшін контекстік мәзірден «Жаңа көрініс қосу» пәрменін шақыру керек, ол Education.dbo дерекқорының «Көріністер» элементін тінтуірдің оң жақ түймешігімен басу арқылы шақырылады (2-сурет).

Күріш. 2. Жаңа көрініс қосу пәрменін шақыру

Нәтижесінде «Кесте қосу» терезесі ашылады (3-сурет). Терезеде көрініске қосылған кестелерді таңдау керек.

Күріш. 3. Жаңа көрініс негіз болатын кестелерді таңдау

Біздің жағдайда Студент кестесін таңдап, «Қосу» түймесін басу арқылы таңдауыңызды растаңыз. Келесі қадам Жабу түймесін таңдау арқылы терезені жабу.

Қадамдарды орындағаннан кейін терезе пайда болады, онда көріністе (формада) көрсетілуі керек өрістерді таңдау қажет. Барлық өрістерді таңдаңыз (4-сурет).

Өрістерді таңдаған кезде Студент кестесінің өрістері жұмыс аймағының жоғарғы жағында көрсетіледі. Тінтуірдің көмегімен презентация үшін қажетті өрістерді таңдауға болады.

Тиісінше, терезенің ортаңғы аймағында таңдалған өрістердің атаулары, олар бар кесте (4-суретті қараңыз), сұрыптау, сүзу және т.б.

Аймақтың төменгі жағында көріністі жасау үшін пайдаланылатын сәйкес SQL сұрау мәтіні көрсетіледі.

Күріш. 4. Көріністе көрсету үшін Студенттік кесте өрістерін таңдау

Команданы таңдағаннан кейін

Файл->Барлығын сақтау Файл->Көріністі сақтау1

Терезе ашылады, онда көрініс атауын көрсету қажет. «Оқушыны қарау» атауын орнатыңыз (5-сурет).

Күріш. 5. Көрініс үшін атауды көрсету

Қадамдарды орындағаннан кейін презентация терезесі 6-суреттегідей болады.

Күріш. 6. Дерекқордағы Студенттің көрінісін қараңыз

Енді DataGridView басқару элементін орналастыруға және оны көрініспен байланыстыруға болады.

3. DataGridView басқару элементін орналастырыңыз және дерекқормен қосылымды теңшеңіз.

DataGridView басқару элементін орналастырмас бұрын, «Form1.cs» пішінді құрастыру режиміне өту керек.

DataGridView элементі деректерді көрсете алатын кесте болып табылады. Бұл басқару элементі ToolBox панелінде орналасқан. Алдымен пішіннің өлшемін сәл реттейміз, содан кейін оған DataGridView басқару элементін орналастырамыз (7-сурет). Бұл әдепкі бойынша dataGridView1 деп аталатын нысан данасын жасайды.

Күріш. 7. DataGridView басқару және деректер көзін таңдау терезесі

Пішінге DataGridView басқару элементін орналастырғаннан кейін, жоғарғы оң жақ бұрышта деректер көзін конфигурациялауды таңдауға болады. Сәйкесінше, «DataGridView тапсырмалары» терезесі ашылады. Бұл терезеде «Дерек көзін таңдау» қалқымалы мәзірін таңдау керек.

Ашылған мәзірде «Жоба деректерінің көзін қосу...» командасын таңдаңыз (Cурет 7). Осыдан кейін деректер көзі дәйекті түрде таңдалатын шебер терезесі ашылады.

8-суретте « Деректер көзін конфигурациялау шебері«, онда деректер көзінің түрі таңдалады. Біздің жағдайда біз «Дерекқорды» орнатамыз.

Күріш. 8. Деректер көзі түрін таңдау

Келесі терезеде (9-сурет) деректер көзінің үлгісі таңдалады. DataSet таңдау керек.

Күріш. 9. Деректер көзі үлгісін таңдау

10-суретте көрсетілген терезеде дерекқорға қосылу үшін пайдаланғыңыз келетін деректер қосылымын көрсету керек. Біздің жағдайда дерекқорды таңдау керек » sasha-pc\sqlexpress\Education.dbo«.

Күріш. 10. Деректер қосылымын таңдау

Келесі терезе (11-сурет) Қосылым жолын қолданбаның конфигурация файлына сақтауды ұсынады. Біз бәрін сол күйінде қалдырып, келесі терезеге көшеміз.

Күріш. 11. Қолданбаның конфигурация файлында дерекқор қосылым жолын Қосылым жолын сақтау ұсынысы

Мәліметтер қорының қосылымын жасағаннан кейін әртүрлі мәліметтер базасы объектілері көрсетіледі (12-сурет). Біздің жағдайда «Оқушыны қарау» көрінісін және одан барлық өрістерді таңдау керек. Белгіленген өрістер DataGridView түрінің құрамдас бөлігінде көрсетіледі.

Күріш. 12. DataGridView ішінде көрсету үшін дерекқор нысандарын таңдау

Аяқтау түймешігін таңдағаннан кейін Education.dbo дерекқорының таңдалған нысандары (Оқушыны қарау көрінісі) көрсетіледі (13-сурет).

Күріш. 13. Таңдалған View Student өрістері бар DataGridView басқару элементі

Сол сияқты кез келген дерекқор кестесіндегі кез келген өрістерді қамтитын көріністерді конфигурациялауға болады. Сондай-ақ, әртүрлі кестелердің өрістерін бір көріністе көрсетуге болады.

4. DataGridView басқару элементінің сыртқы түрін орнату.

Бағдарламаны іске қоссаңыз, дерекқордағы Студент кестесіне сәйкес келетін View Student көрінісінен деректерді аласыз (14-сурет).

Күріш. 14. Өтінімді орындауға іске қосу

14-суреттен көріп отырғаныңыздай, dataGridView1 кестесіндегі деректер қалыпты түрде көрсетіледі, бірақ дизайнды реттеуге болады.

DataGridView түрінің басқару элементі көрсетілетін өрістердің көрінісін реттеуге мүмкіндік береді.

Өрістерді өңдеу пәрмендерін шақыру үшін dataGridView1 басқару элементін тінтуірдің оң жақ түймешігімен басу арқылы контекстік мәзірге қоңырау шалыңыз.

Мәзірде әртүрлі пайдалы командалар, бұл DataGridView көрінісін және жұмысын басқаруға мүмкіндік береді:

  • басқару элементін блоктау командасы (Басқару элементтерін құлыптау);
  • көріністе көрсетілетін өрістерді өңдеу командасы (Бағандарды өңдеу...);
  • жаңа өрістерді қосу пәрмені, мысалы есептелген өрістер (Баған қосу).

Біздің жағдайда «Бағандарды өңдеу...» командасын таңдау керек (15-сурет).

Күріш. 15. Контекстік мәзірден «Бағандарды өңдеу...» командасы

Нәтижесінде «Бағандарды өңдеу» терезесі ашылады, онда презентация өрістерінің көрінісін өз қалауыңыз бойынша реттеуге болады (16-сурет).

Күріш. 16. «Оқушыны қарау» көрінісіндегі өрістер көрінісін орнатуға арналған терезе

16-суреттегі терезеде кез келген өріс үшін атауды, туралауды, енді, деректерді өңдеу мүмкіндігін және т.б. конфигурациялауға болады.

5. Қосылым жолы

Дерекқорға өзгертулер енгізу үшін дерекқорға қосылым жолын алу керек Connection String .

Дерекқорға қосылу жолын алудың әртүрлі жолдары бар. Олардың бірі Education.dbo деректер қорының Қасиеттер терезесінде осы жолды оқуға негізделген (17-сурет).

Күріш. 17. Қосылым жолын анықтау

Бағдарламада жолды сақтау үшін түрдегі ішкі айнымалы жол. Алмасу буферін пайдаланып, Қосылым жолын сипатталған жол айнымалысына көшіріңіз.

«Form1.cs» файлының мәтінінде Form1 сыныбының сипаттамасының басында айнымалы мәнді сипаттау керек:

string conn_string = ;

Қазіргі уақытта Form1 сыныбының мәтіні келесідей:

жалпыға ортақ жартылай сынып Form1 : Пішін { string conn_string = @"Дерек көзі=(жергілікті)\SQLEXPRESS;Бастапқы каталог=Білім;Біріктірілген қауіпсіздік=шын;Пулдау=жалған"; жалпы пішін1() { InitializeComponent(); } private void Form1_Load(нысан жіберуші, EventArgs e) { // TODO: кодтың бұл жолы деректерді "educationDataSet.View_Student" кестесіне жүктейді. Сен істе аласыңжылжытыңыз немесе қажетінше алып тастаңыз. } }

6. Жасалу жаңа пішіндеректерді өңдеу командаларын көрсету.

Ағымдағы жазба деректерін өңдеу мүмкіндігі болу үшін жаңа пішін жасау керек. MS Visual Studio - C# тілінде жаңа пішінді құру процесі толық сипатталған.

Жаңа пішінді қосу пәрменімен орындалады:

Жоба -> Windows пішінін қосу...

Ашылған «Жаңа элемент» терезесінде «Windows пішіні» элементін таңдау керек.

Жаңа пішін файлының атауын әдепкі "Form2.cs" ретінде қалдырыңыз.

18-суретте жаңа пішіннің көрінісі көрсетілген.

Пішінге келесі басқару элементтерін орналастырамыз:

  • екі түймені басқару (OK және Cancel түймелері). Сәйкесінше, button1 және button2 деп аталатын екі нысан қабылданады;
  • ақпараттық хабарламаларды жасау үшін төрт Label басқару элементі;
  • Num_book, Name, Group, Year өрістеріне деректерді енгізуге арналған TextBox түрінің төрт басқару элементі.

Басқару элементтерінің келесі қасиеттерін конфигурациялау қажет:

  • басқару түймешігінде1 сипаты Text = “OK”;
  • button2 басқару қасиетінде Text = “Болдырмау”;
  • басқару түймесі1 сипатында DialogResult = "OK";
  • басқару түймесі2 қасиетінде DialogResult = «Болдырмау»;
  • басқару label1 сипатында Text = "Num_book";
  • басқару label2 қасиетінде Text = "Атау";
  • басқару label3 сипатында Text = "Group";
  • label4 ішінде Text = "Year" сипатын басқарыңыз.

Біз сондай-ақ TextBox басқару элементтерінің көрінуін конфигурациялаймыз. Ол үшін барлық басқару элементтерінде textBox1, textBox2, textBox3, textBox4, Модификаторлар = «қоғамдық» сипат мәні.

Күріш. 18. Жаңадан жасалған пішіннің көрінісі

7. Студент кестесіндегі деректерді өңдеуге арналған командаларды шақыруға арналған түймелерді қосу.

Әрі қарай жұмыс істеу үшін Form1 негізгі формасына өту үшін тінтуірді пайдалану керек.

Form1 қолданбасының негізгі пішініне үш түймені қосыңыз (Button). Үш нысан айнымалысы button1, button2, button3 атауларымен автоматты түрде жасалады. Осы түймелердің әрқайсысында біз келесі параметрлерді жасаймыз (Сипаттар терезесі):

  • түймешігіндегі button1 қасиеті Мәтін = «Кірістіру ...» (жазбаны енгізу);
  • батырманың2 қасиетінде Text = “Өңдеу…” (енгізуді өзгерту);
  • түймешігіндегі button3 қасиеті Text = «Жою».

Енгізілген өзгертулердің нәтижесінде негізгі пішін 19-суретте көрсетілгендей болады.

Күріш. 19. Өтініштің негізгі нысаны

8. «Кірістіру...» түймешігінде басу оқиғасын бағдарламалау.

«Кірістіру...» түймешігіндегі басу оқиғасының өңдегіші келесідей болады:

жеке жарамсыз түймесі1_Click_1(нысан жіберуші, EventArgs e) { cmd_text жолы; Form2 f2 = new Form2(); егер (f2.ShowDialog() == DialogResult .OK) { cmd_text = "Студенттік құндылықтарға енгізу (" + """ + f2.textBox1.Text + "" , "" + f2.textBox2.Text + "" , "" + f2.textBox3.Text + "" , " + f2.textBox4.Text + ")" ; // дерекқорға қосылым жасау SqlConnection sql_conn = жаңа SqlConnection(conn_string); // SQL тілінде пәрмен жасау SqlCommand sql_comm = жаңа SqlCommand(cmd_text, sql_conn); sql_conn.Open(); // ашық қосылым sql_comm.ExecuteNonQuery(); // команданы SQL тілінде орындау sql_conn.Close(); // тығыз байланыс this .view_StudentTableAdapter.Fill(бұл .educationDataSet.View_Student); } }

Form2 бірінші шақырылады. «OK» нәтижесін алғаннан кейін (тиісті түймені басу) Form2-де TextBox түрінің элементтеріндегі толтырылған өрістер SQL сұрау жолына қосылады. Жаңа жолды қосуға арналған SQL сұрауы келесідей:

INSERT INTO Student VALUES (мән1, мән2, мән3, мән4)

мұндағы мән1 баға кітапшасының нөміріне сәйкес келеді; мән2 – студенттің тегі; мән3 – студент оқитын топ; мәні4 – енгізілген жылы.

Connection String дерекқорының қосылым жолы conn_string айнымалысында сипатталған (5-параграфты қараңыз). SqlConnection класының нысаны қолданбаны деректер көздеріне қосады. Бұған қоса, Connection класы пайдаланушының аутентификациясын, желіні құруды, дерекқорды идентификациялауды, қосылымды буферлеуді және транзакцияны өңдеуді өңдейді.

Кестеге жазба қосатын SQL пәрмені SqlCommand сыныбында инкапсуляцияланған. SqlCommand сыныбының конструкторы екі параметрді қабылдайды: SQL сұрау жолы (cmd_text айнымалысы) және SqlConnection сыныбының нысаны.

ExecuteNonQuery() әдісі IDBCommand интерфейсінде жүзеге асырылады. Әдіс деректерді қайтармайтын SQL пәрмендерін жүзеге асырады. Мұндай командаларға INSERT, DELETE, UPDATE командалары, сонымен қатар деректерді қайтармайтын сақталатын процедуралар жатады. ExecuteNonQuery() әдісі тартылған жазбалар санын қайтарады.

9. «Өңдеу...» түймесін басу оқиғасын бағдарламалау.

«Өңдеу...» түймешігіндегі басу оқиғасының өңдегіші келесідей болады:

private void button2_Click(нысан жіберуші, EventArgs e) ( string cmd_text; Form2 f2 = new Form2 (); int index; num_book жолы; index = dataGridView1.CurrentRow.Index; num_book = Convert .ToString(dataGridView1.Faluex1); .Text = num_book; f2.textBox2.Text = .ToString(dataGridView1.Value) түрлендіру; f2.textBox3.Text = .ToString(dataGridView1.Value) түрлендіру; f2.textBox4.Text = .ToString(1.Value) түрлендіру); егер (f2.ShowDialog() == DialogResult .OK) ( cmd_text = "Студенттік жиынды ЖАҢАРТУ Num_book = ""+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "Жыл = " + f2 .TextBox4.Text + "What num_book =" " + num_book +" "" "" SQLConNection SQL_Conn = Жаңа SQLConNECTION (Conn_String); SQLCMAND SQL_comm = Жаңа SQLCMANT (CMD_TEXT , sql_conn); (exen_conn); (sql_conn); (sql_conn); ; sql_conn.Close(); бұл .view_StudentTableAdapter.Fill(осы .educationDataSet.View_Student); ) )

Бұл өңдеуші белсенді жазбаның ағымдағы мәнін өзгертетін UPDATE SQL пәрменін орындайды.

10. «Жою» түймесін басу оқиғасын бағдарламалау.

«Жою» түймешігіндегі басу оқиғасының өңдегіші келесідей болады:

private void button3_Click(нысан жіберуші, EventArgs e) ( string cmd_text = "Student FROM DELETE" ; int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert.ToString(dataGridView1.Value = cmd); "Студенттен ЖОЮ. = ""+ num_book + """ ; SqlConnection sql_conn = жаңа SqlConnection (conn_string); SqlCommand sql_comm = жаңа SqlCommand (cmd_text, sql_conn); sql_conn.Open(); sql_comm.ExecuteNT_Condenty(); Адаптер. Толтырыңыз (осы .educationDataSet.View_Student); )

Бұл өңдеуші жазбаны жою үшін SQL DELETE пәрменін орындайды.

Қатысты тақырыптар

  • Microsoft Access деректер қорының кестесін шығару

SQL Server Management Studio сұраулардың барлық түрлерін жасауға арналған толық құралды ұсынады. Оның көмегімен сұрауларды жасауға, сақтауға, жүктеуге және өңдеуге болады. Сонымен қатар, сіз кез келген серверге қосылмай-ақ сұраулармен жұмыс жасай аласыз. Бұл құрал сонымен қатар әртүрлі жобалар үшін сұрауларды әзірлеу мүмкіндігін береді.

Сұрау өңдегішін немесе Шешім жетектеушісін пайдаланып сұраулармен жұмыс істеуге болады. Бұл мақалада осы екі құрал да қарастырылады. SQL Server Management Studio бағдарламасының осы екі құрамдас бөлігіне қосымша, кірістірілген отладчик көмегімен SQL кодын жөндеуді қарастырамыз.

Сұрау редакторы

Сұрау өңдегіші тақтасын ашу үшін Сұрау редакторы, SQL Server Management Studio құралдар тақтасында Жаңа сұрау түймешігін басыңыз. Бұл панельді тек Database Engine сұрауларын емес, барлық ықтимал сұрауларды жасауға арналған түймелерді көрсету үшін кеңейтуге болады. Әдепкі бойынша ол жасалады жаңа сұраныс Database Engine компоненті, бірақ құралдар тақтасындағы сәйкес түймені басу арқылы MDX, XMLA және т.б. сұрауларды жасауға болады.

Сұрау өңдегіші тақтасының төменгі жағындағы күй жолағы редактордың серверге қосылу күйін көрсетеді. Серверге автоматты түрде қосылмасаңыз, Сұрау өңдегішін іске қосқан кезде қосылатын серверді және аутентификация режимін таңдауға мүмкіндік беретін Серверге қосылу тілқатысу терезесі пайда болады.

Сұрауларды желіден тыс өңдеу серверге қосылғаннан гөрі көбірек икемділікті қамтамасыз етеді. Сұраныстарды өңдеу үшін серверге қосылудың қажеті жоқ, ал сұраныс редакторының терезесін бір серверден ажыратуға болады (Сұраныс --> Қосылу --> Ажырату мәзірінің командасы арқылы) басқа редактор терезесін ашпай-ақ басқасына қосылуға болады. Офлайн өңдеу режимін таңдау үшін өңдегішті іске қосқан кезде ашылатын Серверге қосылу тілқатысу терезесін пайдаланыңыз. нақты түрісұраулар үшін «Болдырмау» түймесін басыңыз.

Сұрау өңдегішін келесі тапсырмаларды орындау үшін пайдалануға болады:

    Transact-SQL операторларын құру және орындау;

    құрылған Transact-SQL тілінің операторларын файлға сақтау;

    жалпы сұраныстар бойынша орындау жоспарларын құру және талдау;

    таңдалған сұраныстың орындалу жоспарын графикалық түрде көрсету.

Сұрау өңдегішінде кірістірілген бар мәтіндік редакторжәне әртүрлі әрекеттерге арналған түймелер жиынтығы бар құралдар тақтасы. Сұраулар өңдегішінің негізгі терезесі көлденеңінен сұрау тақтасына (жоғарғы жағында) және нәтижелер тақтасына (төменгі жағында) бөлінген. Орындалатын Transact-SQL мәлімдемелері (яғни сұраулар) жоғарғы тақтаға енгізіледі, ал жүйенің сол сұрауларды өңдеу нәтижелері төменгі аумақта көрсетіледі. Төмендегі суретте сұрау өңдегішіне сұрау енгізу мысалы және сол сұрауды орындау нәтижелері көрсетілген:

Бірінші USE сұрау мәлімдемесі SampleDb дерекқорын ағымдағы дерекқор ретінде пайдалануды көрсетеді. Екінші оператор, ТАҢДАУ, Қызметкерлер кестесінен барлық жолдарды шығарады. Осы сұрауды орындау және нәтижелерді көрсету үшін Сұрау өңдегішінің құралдар тақтасында Орындау түймесін басыңыз немесе F5 пернесін басыңыз.

Сұраныс редакторының бірнеше терезесін ашуға болады, яғни. Дерекқор механизмінің бір немесе бірнеше данасына бірнеше қосылымдар жасаңыз. Жаңа қосылым SQL Server Management Studio құралдар тақтасындағы Жаңа сұрау түймешігін басу арқылы жасалады.

Сұрау өңдегіші терезесінің төменгі жағындағы күй жолағы сұрау мәлімдемелерінің орындалуына қатысты келесі ақпаратты көрсетеді:

    ағымдағы операцияның күйі (мысалы, «Сұраныс сәтті аяқталды»);

    дерекқор серверінің атауы;

    ағымдағы пайдаланушы аты және сервер процесінің идентификаторы;

    ағымдағы дерекқор атауы;

    соңғы сұранысты орындауға кеткен уақыт;

    табылған жолдар саны.

SQL Server Management Studio бағдарламасының негізгі артықшылықтарының бірі оның қолданудың қарапайымдылығы болып табылады, ол Сұраныс өңдегішіне де қатысты. Сұрау өңдегіші Transact-SQL мәлімдемелерін кодтауды жеңілдету үшін көптеген мүмкіндіктерді қамтамасыз етеді. Атап айтқанда, Transact-SQL мәлімдемелерінің оқылуын жақсарту үшін синтаксистік бөлектеуді пайдаланады. Барлық сақталған сөздер көк түспен, айнымалылар қара түспен, жолдар қызыл түспен және түсініктемелер жасыл түспен көрсетіледі.

Сонымен қатар, сұрау редакторы контекстке сезімтал анықтамамен жабдықталған Динамикалық анықтама, ол арқылы белгілі бір нұсқау туралы ақпаратты алуға болады. Нұсқау синтаксисін білмесеңіз, оны редакторда таңдап, F1 пернесін басыңыз. Сондай-ақ Books Online қолданбасынан олар туралы анықтама алу үшін әртүрлі Transact-SQL мәлімдемелерінің параметрлерін бөлектеуге болады.

SQL Management Studio бағдарламасы автоматты аяқтау құралының түрі болып табылатын SQL Intellisense бағдарламасын қолдайды. Басқаша айтқанда, бұл модуль ішінара енгізілген Transact-SQL операторының элементтерінің ең ықтимал аяқталуын ұсынады.

Нысан зерттеушісі сұрауларды өңдеуге де көмектеседі. Мысалы, егер сіз Қызметкер кестесі үшін CREATE TABLE мәлімдемесін жасау жолын білгіңіз келсе, Object Explorer бағдарламасында кестені тінтуірдің оң жақ түймешігімен басыңыз және нәтиже контекстік мәзірСценарий кестесі ретінде --> ЖАСАУ --> Сұраныс өңдегішінің жаңа терезесін таңдаңыз. Осы жолмен жасалған CREATE TABLE операторын қамтитын Сұраныс өңдегішінің терезесі төмендегі суретте көрсетілген. Бұл мүмкіндік сақталған процедуралар мен функциялар сияқты басқа нысандарға да қолданылады.

Нысан шолғышы белгілі бір сұраныстың орындалу жоспарын графикалық түрде көрсету үшін өте пайдалы. Сұрауды орындау жоспары сұрауды оңтайландырушы бірнеше арасында таңдаған орындау опциясы болып табылады ықтимал опцияларнақты сұранысты орындау. Редактордың жоғарғы панеліне қажетті сұранысты енгізіңіз, Сұраныс --> Есептелген орындалу жоспарын көрсету мәзірінен пәрмендер тізбегін таңдаңыз және осы сұраныстың орындалу жоспары редактор терезесінің төменгі панелінде көрсетіледі.

Solution Explorer

SQL Server Management Studio бағдарламасындағы сұрауларды өңдеу шешімдер әдісіне негізделген. Жаңа сұрау түймешігін пайдаланып бос сұрау жасасаңыз, ол бос шешімге негізделеді. Мұны бос сұрауды ашқаннан кейін бірден Көрініс -> Шешім жетектеушісі мәзірінен пәрмендер тізбегін орындау арқылы көруге болады.

Шешім ешбір, бір немесе бірнеше жобаға қатысты болуы мүмкін. Ешбір жобамен байланысты емес бос шешім. Жобаны шешіммен байланыстыру үшін бос шешімді, Шешім жетектеушісін және Сұрау өңдегішін жабыңыз және Файл --> Жаңа --> Жобаны іске қосу арқылы жаңа жоба жасаңыз. Ашылған «Жаңа жоба» терезесінде ортаңғы аумақта SQL серверінің сценарийлері опциясын таңдаңыз. Жоба – белгілі бір жерде файлдарды ұйымдастыру тәсілі. Жобаға атау тағайындауға және оның дискідегі орны үшін орынды таңдауға болады. Жаңа жобаны жасаған кезде жаңа шешім автоматты түрде іске қосылады. Жобаны қосуға болады бар шешім Solution Explorer көмегімен.

Жасалған әрбір жоба үшін Solution Explorer бағдарламасы Қосылымдарды, Сұрауларды және Әртүрлі қалталарды көрсетеді. Берілген жоба үшін жаңа сұраныс өңдегішінің терезесін ашу үшін оның Сұраулар қалтасын тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден Жаңа сұрау таңдаңыз.

SQL серверін жөндеу

SQL Server 2008-ден бастап SQL Server-де кірістірілген кодты жөндеуші бар. Түзету сеансын бастау үшін SQL Server Management Studio негізгі мәзірінен Debug --> Start Debugging таңдаңыз. Біз пәрмендер бумасын қолданатын мысалды пайдалана отырып, отладчик қалай жұмыс істейтінін қарастырамыз. Бума – құрамындағы барлық мәлімдемелерді орындау үшін Дерекқор механизміне жіберілетін SQL мәлімдемелерінің және процедуралық кеңейтімдердің логикалық тізбегі.

Төмендегі суретте p1 жобасында жұмыс істейтін қызметкерлер санын есептейтін пакет көрсетілген. Егер бұл сан 4 немесе одан көп болса, сәйкес хабарлама көрсетіледі. Әйтпесе, қызметкерлердің аты-жөні көрсетіледі.

Белгілі бір нұсқау бойынша пакеттің орындалуын тоқтату үшін суретте көрсетілгендей тоқтау нүктелерін орнатуға болады. Мұны істеу үшін тоқтағыңыз келетін жолдың сол жағындағы түймені басыңыз. Түзету басталғанда, орындау сары көрсеткімен белгіленген кодтың бірінші жолында тоқтайды. Орындауды және жөндеуді жалғастыру үшін Түзету --> Жалғастыру мәзір пәрменін таңдаңыз. Топтама нұсқаулары бірінші тоқтау нүктесіне дейін орындалады және сары көрсеткі сол нүктеде тоқтайды.

Түзету процесіне қатысты ақпарат Сұрау өңдегіші терезесінің төменгі жағындағы екі панельде көрсетіледі. туралы ақпарат әртүрлі түрлеріТүзету ақпараты осы панельдерде бірнеше қойындыларда топтастырылған. Сол жақ аумақта Автоматтар қойындысы, Жергілікті деректер қойындысы және беске дейін Көру қойындылары бар. Оң жақ тақтада Қоңыраулар стекі, ағындар, үзіліс нүктелері, пәрмен терезесі, жедел терезе және шығыс қойындылары бар. «Жергіліктілер» қойындысы айнымалы мәндерді көрсетеді, Қоңыраулар стек қойындысы қоңыраулар стекінің мәндерін көрсетеді, ал «Үзіліс нүктелері» қойындысы тоқтау нүктесі туралы ақпаратты көрсетеді.

Түзету процесін аяқтау үшін, Түзету --> Түзетуді тоқтату негізгі мәзірінен пәрмендер тізбегін орындаңыз немесе отладчик құралдар тақтасындағы көк түймені басыңыз.

SQL Server 2012 SQL Server Management Studio бағдарламасындағы кірістірілген отладчикке бірнеше жаңа мүмкіндіктерді қосады. Енді сіз онда келесі операциялардың бірқатарын орындай аласыз:

    Тоқтау нүктесінің шартын көрсетіңіз. Үзіліс нүктесінің шартыбағаланатын мәні кодтың орындалуы берілген нүктеде тоқтайтынын немесе тоқтамайтынын анықтайтын SQL өрнегі. Тоқтау нүктесінің шартын көрсету үшін қызыл тоқтау нүктесі белгішесін тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден Шарт тармағын таңдаңыз. Қажетті логикалық өрнекті енгізуге мүмкіндік беретін Breakpoint Condition диалогтық терезесі ашылады. Оған қоса, егер өрнек ақиқат болса, орындауды тоқтату қажет болса, Is True қосқышын орнату керек. Егер өрнек өзгерсе, орындауды тоқтату қажет болса, онда Өзгертілген кезде қосқышын орнату керек.

    Тоқтау нүктесіндегі соққылар санын көрсетіңіз. Соққылар саны орындалу кезінде тоқтау нүктесіне қанша рет тигеніне негізделген берілген нүктеде орындауды тоқтату шарты болып табылады. Белгіленген өту санына және берілген тоқтау нүктесі үшін көрсетілген кез келген басқа шартқа жеткенде, отладчик көрсетілген әрекетті орындайды. Хиттердің санына негізделген орындауды тоқтату шарты келесілердің бірі болуы мүмкін:

    1. шартсыз (әдепкі әрекет) (Үнемі үзу);

      егер соққылар саны көрсетілген мәнге тең болса (Оның саны көрсетілген мәнге тең болған кезде үзу);

      егер соққылар саны көрсетілген мәннің еселігі болса (соққылар саны көрсетілген мәннің еселігіне тең болғанда үзіліс);

      Оның саны көрсетілген мәннен үлкен немесе тең болғанда үзіңіз.

    Түзету кезінде соққылар санын орнату үшін «Үзіліс нүктелері» қойындысында қажетті тоқтау нүктесі белгішесін тінтуірдің оң жақ түймешігімен нұқыңыз, контекстік мәзірден Соққылар саны параметрін таңдаңыз, содан кейін алдыңғы тізімнен ашылатын үзіліс нүктесінің соққы саны тілқатысу терезесіндегі шарттардың бірін таңдаңыз. Мәнді қажет ететін опциялар үшін оны шарттар ашылмалы тізімінің оң жағындағы мәтін жолағына енгізіңіз. Көрсетілген шарттарды сақтау үшін OK түймесін басыңыз.

    Тоқтау нүктесі сүзгісін көрсетіңіз. Тоқтау нүктесінің сүзгісі тоқтау нүктесінің жұмысын тек көрсетілген компьютерлерге, процестерге немесе ағындарға шектейді. Тоқтау нүктесі сүзгісін орнату үшін қажетті тоқтау нүктесін тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден Сүзгі тармағын таңдаңыз. Содан кейін ашылатын үзіліс нүктесі сүзгілері тілқатысу терезесінде осы тоқтау нүктесінің орындалуын шектегіңіз келетін ресурстарды көрсетіңіз. Көрсетілген шарттарды сақтау үшін OK түймесін басыңыз.

    Тоқтау нүктесінде әрекетті көрсетіңіз. Қашан соққы шарты пакетті орындау берілген тоқтау нүктесіне жеткенде орындалатын әрекетті көрсетеді. Әдепкі бойынша, соққыларды санау шарты да, тоқтату шарты да орындалғанда, орындау тоқтатылады. Немесе алдын ала көрсетілген хабарды көрсетуге болады.

    Тоқтау нүктесіне соғылған кезде не істеу керектігін көрсету үшін тоқтау нүктесінің қызыл белгішесін тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден Қашан соғу опциясын таңдаңыз. Ашылатын үзіліс нүктесі болған кезде диалогтық терезеде орындағыңыз келетін әрекетті таңдаңыз. Көрсетілген шарттарды сақтау үшін OK түймесін басыңыз.

    Жылдам қарау терезесін пайдаланыңыз. QuickWatch терезесінде Transact-SQL өрнегі мәнін көруге болады, содан кейін өрнекті қарау терезесінде сақтауға болады. Жылдам қарау терезесін ашу үшін Debug мәзірінен Жылдам қарау опциясын таңдаңыз. Бұл терезедегі өрнекті Өрнек ашылмалы тізімінен таңдауға немесе осы өріске енгізуге болады.

    Жылдам ақпарат кеңесін пайдаланыңыз. Тінтуірді код идентификаторының үстіне апарған кезде, Жылдам ақпарат ( Қысқаша ақпарат) қалқымалы терезеде өзінің жарнамасын көрсетеді.




Жоғарғы