Прашања за пишување на серверот Ms SQL. Извршување на SQL прашања во Менаџмент Студио. Додавање на Просечно пресметано поле

Изрази на табеланаречени подпрашања, кои се користат таму каде што се очекува табела. Постојат два вида изрази на табелата:

    изведени табели;

    генерализирани изрази на табелата.

Овие две форми на изрази на табела се дискутирани во следните потсекции.

Изведени табели

Изведена табелае израз на табелата вклучен во клаузулата FROM на барањето. Изведените табели може да се користат кога користењето псевдоними на колони не е можно бидејќи преведувачот SQL обработува друга изјава пред да биде познат алијасот. Примерот подолу покажува обид да се користи алијас на колона во ситуација кога друга клаузула се обработува пред алијасот да биде познат:

КОРИСТЕТЕ 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:

КОРИСТЕТЕ SampleDb; SELECT enter_month FROM (SELECT MONTH(EnterDate) as enter_month FROM Works_on) AS m GROUP BY enter_month;

Резултатот од ова барање ќе биде вака:

Вообичаено, изразот на табелата може да се стави каде било во изјавата SELECT каде што може да се појави името на табелата. (Резултатот од изразот на табела е секогаш табела или, во посебни случаи, израз.) Следниот пример ја покажува употребата на израз на табела во списокот за избор на изјавата SELECT:

Резултатот од ова барање е:

Генерички изрази на табелата

Заеднички израз на табела (OTB) (кратко CTE)е именуван израз на табела поддржан од јазикот Transact-SQL. Вообичаените изрази на табели се користат во следните два типа на прашања:

    нерекурзивен;

    рекурзивен.

Овие два типа на барања се дискутирани во следните делови.

OTB и нерекурзивни прашања

Нерекурзивната форма на OTB може да се користи како алтернатива на изведените табели и прикази. Обично OTB се дефинира со СО клаузулии дополнително барање кое се однесува на името што се користи во клаузулата WITH. Во Transact-SQL, значењето на клучниот збор WITH е двосмислено. За да се избегне двосмисленост, исказот што претходи на исказот СО треба да се прекине со точка-запирка.

КОРИСТЕТЕ AdventureWorks2012; SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") AND Freight > (SELECT AVG(TotalDue)Yeder00r" ")/2,5;

Барањето во овој пример избира нарачки чии вкупни даноци (TotalDue) се поголеми од просекот на сите даноци и чии товарни трошоци (Freight) се поголеми од 40% од просечните даноци. Главното својство на ова барање е неговата обемност, бидејќи вгнезденото барање треба да се напише двапати. Еден од можни начининамалување на опсегот на конструкцијата на барањето ќе создаде поглед кој содржи подпрашање. Но, ова решение е малку незгодно бидејќи бара приказот да се креира и потоа да се избрише откако ќе заврши барањето. Најдобар пристап би бил да се создаде OTB. Примерот подолу ја покажува употребата на нерекурзивен OTB, што ја скратува дефиницијата за барање погоре:

КОРИСТЕТЕ AdventureWorks2012; WITH price_calc(година_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE КОДЕКУ ВкупноDue_0_calRO5 година (Free2_calRO5) /2,5;

Синтаксата на клаузулата WITH во нерекурзивните прашања е следна:

Параметарот cte_name е името OTB што ја дефинира добиената табела, а параметарот column_list е списокот на колони во изразот на табелата. (Во примерот погоре, OTB е именуван како price_calc и има една колона, year_2005.) Параметарот inner_query претставува изјава SELECT која го одредува множеството резултати на соодветниот израз на табелата. Дефинираниот израз на табелата потоа може да се користи во outer_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, користиме табела Airplane дефинирана и пополнета со кодот прикажан во примерот подолу:

КОРИСТЕТЕ SampleDb; КРЕИРАЈ ТАБЕЛА Авион (ContainingAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), QuantityContained INT, UnitCost DECIMAL(6,2)); INSERT INTO Airplane VALUES ("Airplane", "Fuselage", 1, 10); ВНЕСЕТЕ ВО ВРЕДНОСТИ НА АВИОН („Airplane“, „Wings“, 1, 11); INSERT INTO Airplane VALUES ("Airplane", "Tail", 1, 12); ВНЕСЕТЕ ВО ВРЕДНОСТИ НА АВИОН („Трупот на авионот“, „Салон“, 1, 13); Вметнете ВО ВРЕДНОСТИ НА АВИОН („Трупот на авионот“, „Кабината“, 1, 14); Вметнете ВО ВРЕДНОСТИ НА АВИОН („Трупот на авионот“, „Нос“, 1, 15); INSERT INTO Airplane VALUES („Салон“, NULL, 1,13); INSERT INTO Airplane VALUES („кабина“, 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 за да дефинира барање што ја пресметува вкупната цена на секоја изработка:

КОРИСТЕТЕ SampleDb; СО список_на_делови (склоп1, количина, цена) AS (ИЗБЕРЕТЕ Содржи склопување, КоличинаСодржана, Единечна цена од авион WHERE ContainedAssembly IS NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityAssembly, a.QuantityASTContained. ) FROM list_of_parts l, Airplane a WHERE l.assembly1 = a.ContainedAssembly) SELECT assembly1 „Дел“, количина „Количина“, цена „Цена“ ОД списокот_делови;

Клаузулата WITH дефинира OTB листа со име list_of_parts, која се состои од три колони: склопување1, количина и цена. Првата изјава SELECT во примерот се повикува само еднаш за да се зачуваат резултатите од првиот чекор од процесот на рекурзија. Изјавата SELECT на последната линија од примерот го прикажува следниот резултат.

SQL или Structured Query Language (структуриран јазик за пребарување) е дизајниран да управува со податоци во систем за релациона база на податоци (RDBMS). Оваа статија ќе зборува за најчесто користените SQL командисо кои треба да биде запознаен секој програмер. Овој материјал е идеален за оние кои сакаат да го подигнат своето знаење за SQL пред интервју за работа. За да го направите ова, анализирајте ги примерите дадени во статијата и запомнете дека поминавте низ бази на податоци во парови.

Забележете дека некои системи на бази на податоци бараат точка-запирка на крајот од секоја изјава. Запирката е стандарден покажувачна крајот од секоја изјава во SQL. Примерите користат MySQL, па затоа е потребна точка-запирка.

Примерок за поставување база на податоци

Направете база на податоци за да покажете како функционираат командите. За да работите, ќе треба да преземете две датотеки: DLL.sql и InsertStatements.sql. После тоа, отворете терминал и најавете се во конзолата MySQL со следнава команда (написот претпоставува дека MySQL е веќе инсталиран на системот):

MySQL -u root -p

Потоа внесете ја лозинката.

Извршете ја следнава команда. Да ја именуваме базата на податоци „универзитет“:

КРЕИРАЈ БАЗА НА ПОДАТОЦИ универзитет; Универзитет во САД; ИЗВОР ; ИЗВОР

Команди за бази на податоци

1. Погледнете ги достапните бази на податоци

ПОКАЖИ БАЗИ НА ПОДАТОЦИ;

2. Направете нова база на податоци

КРЕИРАЈ БАЗА НА ПОДАТОЦИ;

3. Избор на база на податоци за користење

КОРИСТЕТЕ ;

4. Увезете SQL команди од .sql датотека

ИЗВОР ;

5. Бришење на базата на податоци

СОПАДИ БАЗА НА ПОДАТОЦИ ;

Работа со табели

6. Погледнете ги табелите достапни во базата на податоци

ПОКАЖИ ТАБЕЛИ;

7. Направете нова табела

КРЕИРАЈ ТАБЕЛА ( , , ПРИМАРЕН КЛУЧ ( ), СТРАНСКИ КЛУЧ ( ) РЕФЕРЕНЦИ ());

Ограничувања за интегритет при користење на КРЕИРАЈ ТАБЕЛА

Можеби ќе треба да креирате ограничувања за одредени колони во табела. Кога креирате табела, можете да ги поставите следниве ограничувања:

  • ќелијата на табелата не може да биде NULL;
  • примарен клуч - ПРИМАРЕН КЛУЧ (коло_име1, коло_име2, ...) ;
  • странски клуч - СТРАНСКИ КЛУЧ (col_namex1, …, col_namexn) РЕФЕРЕНЦИ Име на табела (col_namex1, …, col_namexn) .

Можете да наведете повеќе од еден примарен клуч. Во овој случај, добивате композитен примарен клуч.

Пример

Направете табела „инструктор“:

Инструктор за CREATE TABLE (ID CHAR(5), име VARCHAR(20) NOT NULL, dept_name VARCHAR(20), плата NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) РЕФЕРЕНЦИ одделение (dept_name));

8. Информации за табелата

Можете да прегледате различни информации (тип на вредност, клуч или не) за колоните од табелата со следнава команда:

ОПИШИ ;

9. Додавање податоци на табелата

Вметнете ВО (, , ,…) ВРЕДНОСТИ ( , , , …);

Кога додавате податоци на секоја колона од табелата, не треба да наведете имиња на колони.

Вметнете ВО ВРЕДНОСТИ ( , , , …);

10. Ажурирајте ги податоците од табелата

АЖУРИРАЈ ПОСТАВЕТЕ = , = , ... КАДЕ ;

11. Бришење на сите податоци од табелата

ИЗБРИШИ ОД ;

12. Бришење табела

ПАДНА ТАБЕЛА ;

Наредби за креирање прашања

13. ИЗБЕРЕТЕ

SELECT се користи за добивање податоци од одредена табела:

ИЗБЕРИ , , … ОД ;

Следната команда може да ги прикаже сите податоци од табелата:

ИЗБЕРИ * ОД ;

14. ИЗБЕРЕТЕ ДИСТИНКТ

Колоните на табелите може да содржат дупликат податоци. Користете SELECT DISTINCT за да добивате само не-дупликат податоци.

ИЗБЕРЕТЕ РАЗЛИЧНИ , , … ОД ;

15. КАДЕ

Можете да го користите клучниот збор WHERE во SELECT за да наведете услови во барањето:

ИЗБЕРИ , , … ОД КАДЕ ;

Можете да ги наведете следните услови во барањето:

  • споредба на текстот;
  • споредба на нумерички вредности;
  • логички операции И (и), ИЛИ (или) и НЕ (негација).

Пример

Обидете се со следните команди. Обрнете внимание на условите наведени во КАДЕ:

ИЗБЕРЕТЕ * ОД курсот WHERE dept_name='Комп. Наука.'; ИЗБЕРИ * ОД курсот WHERE кредити>3; SELECT * FROM курс WHERE dept_name="Comp. Sci." И кредити>3;

16. ГРУПА ПО

Клаузулата GROUP BY често се користи со агрегатните функции, како што се COUNT , MAX , MIN , SUM и AVG , за групирање на излезните вредности.

ИЗБЕРИ , , … ОД ГРУПА ПО ;

Пример

Да го прикажеме бројот на предмети за секој факултет:

ИЗБЕРИ COUNT(course_id), dept_name ОД курс GROUP BY dept_name;

17. ИМАЊЕ

Клучниот збор HAVING е додаден во SQL бидејќи WHERE не може да се користи со збирни функции.

ИЗБЕРИ , , ... ОД ГРУПА ПО ИМАЊЕ

Пример

Ајде да прикажеме листа на факултети кои имаат повеќе од еден курс:

ИЗБЕРИ COUNT(id_course), dept_name ОД курсот GROUP BY dept_name HAVING COUNT(course_id)>1;

18. НАРАЧАЈ ПО

ORDER BY се користи за сортирање на резултатите од барањето во растечки или опаѓачки редослед. ORDER BY подредува по растечки редослед освен ако не е наведено ASC или DESC.

ИЗБЕРИ , , … ОД НАРАЧАЈ ПО , , …ASC|DESC;

Пример

Ајде да прикажеме листа на курсеви во растечки и опаѓачки редослед на бројот на кредити:

ИЗБЕРИ * ОД курс ПОРАЧАЈ ПО кредити; ИЗБЕРИ * ОД курсот НАРЕДУВАЈ ПО кредити ОПИС;

19. ПОМЕЃУ

BETWEEN се користи за избор на вредности на податоци од одреден опсег. Може да се користат нумерички и текстуални вредности, како и датуми.

ИЗБЕРИ , , … ОД КАДЕ ПОМЕЃУ И ;

Пример

Ајде да прикажеме список на инструктори чија плата е повеќе од 50.000, но помала од 100.000:

ИЗБЕРИ * ОД инструктор КАДЕ плата помеѓу 50000 И 100000;

20.LIKE

Операторот LIKE се користи во WHERE за одредување шема за барање слична вредност.

Постојат два бесплатни оператори кои се користат во LIKE:

  • % (ниту еден, еден или повеќе знаци);
  • _ (еден лик).
ИЗБЕРИ , , … ОД КАДЕ ДОПАЃА ;

Пример

Ајде да прикажеме листа на курсеви чии имиња содржат „to“ и листа на курсеви чии имиња почнуваат со „CS-“:

ИЗБЕРИ * ОД курсот КАДЕ Наслов како „%до%“; ИЗБЕРИ * ОД курс КАДЕ курс_ид КАКО „CS-___“;

21. ВО

Со IN, можете да наведете повеќе вредности за клаузулата WHERE:

ИЗБЕРИ , , … ОД КАДЕ ВО( , , …);

Пример

Да ја прикажеме листата на ученици од насоките Комп. Наука, Физика и Електро. Англиски:

SELECT * FROM student WHERE dept_name IN('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. ПРИКЛУЧЕТЕ СЕ

JOIN се користи за поврзување на две или повеќе табели користејќи заеднички атрибути во нив. Сликата подолу покажува различни начинисе приклучува во SQL. Забележете ја разликата помеѓу левиот надворешен спој и десниот надворешен спој:

ИЗБЕРИ , , … ОД ПРИКЛУЧЕТЕ СЕ НА = ;

Пример 1

Еве список на сите курсеви и соодветните информации за одделот:

ИЗБЕРИ * ОД курсот ПРИДРУЖИ СЕ на одделот ON course.dept_name=department.dept_name;

Пример 2

Еве список на сите потребни курсеви и детали за нив:

SELECT prereq.course_id, наслов, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN курс ON prereq.course_id=course.course_id;

Пример 3

Ајде да прикажеме список на сите курсеви, без разлика дали се потребни или не:

SELECT course.course_id, наслов, dept_name, кредити, prereq_id FROM prereq RIGHT OUTER JOIN курс ON prereq.course_id=course.course_id;

23 Поглед

View е виртуелна SQL табела создадена како резултат на извршување на израз. Таа содржи редови и колони и е многу слична на обична SQL табела. Прегледот секогаш ги прикажува најновите информации од базата на податоци.

Создавање

СОЗДАДЕТЕ ПОГЛЕД AS SELECT , , … ОД КАДЕ ;

Отстранување

ПРИКАЗ НА ПАКИ ;

Пример

Ајде да создадеме приказ кој се состои од курсеви со 3 кредити:

24. Збирни функции

Овие функции се користат за да се добие збирен резултат поврзан со податоците за кои станува збор. Следниве се најчесто користени збирни функции:

  • COUNT (col_name) - го враќа бројот на редови;
  • SUM (col_name) - го враќа збирот на вредностите во дадената колона;
  • AVG (col_name) - ја враќа просечната вредност на дадената колона;
  • MIN (col_name) - ја враќа најмалата вредност на дадената колона;
  • MAX(col_name) - Ја враќа најголемата вредност на дадената колона.

25. Вгнездени подпрашања

Вгнездените подпрашања се SQL пребарувања кои вклучуваат SELECT , FROM и WHERE изјави вгнездени во друго барање.

Пример

Ајде да ги најдеме курсевите што се предаваа во есента 2009 година и во пролетта 2010 година:

SELECT DISTINCT course_id FROM секција WHERE семестар = 'Есен' AND year= 2009 AND course_id IN (SELECT course_id FROM секција WHERE семестар = 'Пролет' И година= 2010);

SQL- Структуриран јазик за пребарување.
AT овој прегледќе ги разгледаме најчестите типови на SQL барања.
Дефиниран е стандардот SQL ANSI(Американскиот национален институт за стандарди).
SQL е јазик специјално насочен кон релациони бази на податоци.

Сплит SQL:


ДДЛ
(Јазик за дефиниција на податоци) - таканаречениот јазик за опис на шемата во ANSI, се состои од команди кои создаваат објекти (табели, индекси, прегледи и така натаму) во базата на податоци.
DML(Јазик за манипулација со податоци) е збир на команди кои одредуваат кои вредности се присутни во табелите во кое било дадено време.
DCD(Јазик за управување со податоци) се состои од средства кои одредуваат дали да му дозволат на корисникот да изврши одредени дејства или не. Тие се дел од DDL во ANSI. Не заборавајте ги овие имиња. Ова не се различни јазици, туку делови од SQL команди групирани според нивната функција.

Типови на податоци:

SQL Server - Типови на податоци

Опис

бигинт (инт 8)

бигинт (инт 8)

бинарни(n)

бинарни(n) или слика

карактер
(синоним кал)

национално карактерили ntext

карактер кој се разликува(синоним char варира варчар)

различен национален карактерили ntext

датум време

датум време

децимална

тој е нумерички

двојна прецизност

двојна прецизност

цел број (инт 4) (синоним: инт)

цел број (инт 4)

национален карактер(синоним: национален карактер, нчар)

национален карактер

Нумерички(синоними: децимална, дек)

различен национален карактер(синоними: различен национален карактер, нварчар)

различен национален карактер

Мало време

датум време

ситница (инт 2)

ситница (инт 2)

Мали пари

sql_variant

Повеќе не е поддржано

Следно
Почнувајќи со SQL Server 2005, не се препорачува за употреба.

Временски печат

Не се поддржани

малата (инт 1)

малата (инт 1)

Единствен идентификатор

единствен идентификатор

варбинарен(n)

варбинарен(n) или слика

малите датуми

датум време

ситница (инт 2)

ситница (инт 2)

мали пари

sql_variant

Не се поддржани

временски печат

Не се поддржани

малата (инт 1)

малата (инт 1)

единствен идентификатор

единствен идентификатор

варбинарен(n)

варбинарен(n) или слика

Табела со типови на податоци во SQL Server 2000

ШТО Е БАРАЊЕ?

Барањее командата што ја давате на вашата програма за база на податоци. Прашањата се дел од јазикот DML. Сите барања во SQL се состојат од една команда. Структурата на оваа команда е измамливо едноставна, бидејќи мора да ја проширите за да извршите многу сложени проценки и манипулации со податоци.

SELECT команда:

ИЗБЕРИ„Избери“ е најчесто користената команда, се користи за избор на податоци од табела.
Тип на барање користејќи SELECT:

ИД ОДБЕРЕТЕ ИД, корисничко име, град, роденден од базата на корисници;

Таквото барање ќе ги прикаже од табелата users_base сите вредности на колоните наведени со запирка после SELECT команди. Исто така, можете да ги прикажете сите колони со еден знак, * т.е. ИЗБЕРИ * ОД user_base ; - ваквото барање ќе ги прикаже сите податоци од табелата.

Избери командна структура:

SELECT (Имињата на колоните разделени со запирки ќе се прикажат во барањето) FROM (име на табелата во базата на податоци)
е наједноставниот вид на барање. Постојат дополнителни команди за практичното извлекување податоци (видете подолу „Функции“)

DML команди:

Вредностите може да се постават и отстранат од полињата со три команди DML (Јазик за манипулација со податоци):
ВНЕСЕТЕ(Вметни)
АЖУРИРАЈ(ажурирање, измена),
ИЗБРИШИ(бришење)

INSERT команда:

INSERT INTO users_base (корисничко име, град, роденден) VALUES ('Alexander', 'Rostov', '20.06.1991');

Командата INSERT доаѓа со префиксот INTO (во до - во), потоа во загради се имињата на колоните во кои мораме да вметнеме податоци, потоа доаѓа командата VALUES (вредности), а во заградите пак има вредности. (императив е да се набљудува редоследот на вредностите со колоните, вредностите мора да бидат по истиот редослед како и колоните што ги наведовте).

Наредба за ажурирање:

АЖУРИРАЈ user_base SET user_name = 'Alex';

Командата UPDATE ги ажурира вредностите во табела. Прво доаѓа самата команда UPDATE, потоа името на табелата, по командата SET (сет) потоа името на колоната и неговата вредност во наводници (наводниците се ставаат ако вредноста има формат на низа, ако е нумеричка вредност и колоната е не се врзани за типот на податоци vchar и кој било друг тип на низа, наводниците се бесмислени.)

Команда DELETE:

ИЗБРИШИ ОД users_base КАДЕ user_name = 'Vasily';

Наредбата DELETE ја брише целата линија, ја одредува линијата со критериумот WHERE (Каде). Во овој случај, ова барање ќе ги отстрани сите редови каде вредноста на колоната user_name беше Василиј. За WHERE критериуми и други ќе зборуваме малку подоцна.

Критериуми, функции, услови итн. што ни помага во SQL:

WHERE клаузула од командата SELECT и други команди на DML што ви овозможува да поставите предикати чија состојба може да биде точно или неточна за кој било ред во табелата. Командата ги извлекува само оние редови од табелата за кои таквата изјава е вистинита.
Пример:
ИЗБЕРИ ИД, град,_роденден ОД users_base КАДЕ user_name = 'Alex';- ваквото барање ќе ги прикаже само оние редови што ќе одговараат на условот WHERE, имено сите редови во кои колоната user_name ја има вредноста Alex.

ORDER BY - услов за сортирање на избраните редови. Има 2 критериуми ASC и DESC. ASC (сортирање од А до Ш или од 0 до 9)

DESC (спроти ASC).
Пример:
ИЗБЕРИ ИД, град,_роденден ОД user_base НАРАЧАЈ ПО корисничко_име ASC; - ваквото барање ќе ги прикаже вредностите подредени по колоната корисничко_име од А до Ш (А-З; 0-9)

Овој услов може да се користи и во врска со клаузулата WHERE.
Пример:
ИЗБЕРИ ИД, град,_роденден ОД users_base КАДЕ user_name = 'Alex' ORDER BY id ASC;

DISTINCT (Distinct) е аргумент кој ви дава начин да ги елиминирате дупликатните вредности од вашата клаузула SELECT. Оние. ако имате повторени вредности во колона, да речеме user_name, тогаш DISTINCT ќе прикаже само една за вас, на пример, имате 2 лица по име Алексеј во базата на податоци, тогаш барањето со помош на функцијата DISTINCT ќе прикаже само 1 вредност што најпрво се среќава ...
Пример:
ИЗБЕРЕТЕ ДИСТИНКТНО корисничко_име ОД базата на корисници;- ваквото барање ќе ги прикаже вредностите на сите записи во колоната user_name, но тие нема да се повторуваат, т.е. ако сте имале бесконечен број на дупликат вредности, тие нема да бидат прикажани...

И - зема два Булови (во форма А И Б) како аргументи и ги оценува против точно за да види дали и двете се вистинити.
Пример:
SELECT * FROM users_base КАДЕ град = 'Ростов' И корисничко_име = 'Александар';- ги прикажува сите вредности од табелата каде што се појавува името на градот во една линија (во овој случај, Ростов и корисничкото име Александар.

ИЛИ - зема два Булови (во форма А ИЛИ Б) како аргументи и оценува за точноста дали еден од нив е точно.

SELECT * FROM users_base КАДЕ град = 'Ростов' ИЛИ ​​корисничко_име = 'Александар';- ги прикажува сите вредности од табелата каде што линијата го содржи името на градот Ростов или корисничко име Александар.

НЕ - зема еден Булова (во формата NOT A) како аргументи и ја менува неговата вредност од неточно во точно или точно во неточно.
SELECT * FROM users_base КАДЕ град = 'Ростов' ИЛИ ​​НЕ корисничко_име = 'Александар';- ќе ги прикаже сите вредности од табелата каде што се појавува името на градот Ростов во една линија или корисничкото име нема да биде точно Александар.

IN - дефинира збир на вредности во кои дадената вредност може или не може да биде вклучена.
SELECT * FROM users_base WHERE city IN ('Владивосток', 'Ростов');- ваквото барање ќе ги прикаже сите вредности од табелата што ги содржат имињата на наведените градови во градската колона

Помеѓу - слично на операторот IN. За разлика од одредувањето со броеви од множество, како што тоа го прави IN, BETWEEN дефинира опсег чии вредности мора да се намалат за да се направи предикатот вистинит.
ИЗБЕРИ * ОД user_base КАДЕ ИД ПОМЕЃУ 1 И 10;- ги прикажува сите вредности од табелата што ќе бидат во опсег од 1 до 10 во колоната id

COUNT - произведува броеви на редови или не-NULL вредности на полињата што ги избрал барањето.
ИЗБЕРИ COUNT (*) ОД user_base ;- го прикажува бројот на редови во дадената табела.
ИЗБЕРИ COUNT (DISTINCT user_name) FROM users_base ;- ќе го прикаже бројот на линии со кориснички имиња (не се повторува)

SUM - Го произведува аритметичкиот збир на сите избрани вредности во даденото поле.
SELECT SUM (id) FROM users_base ;- го прикажува збирот на вредностите на сите редови од колоната id.

AVG - ги просекува сите избрани вредности на даденото поле.
SELECT AVG (id) FROM users_base ;- ќе го даде просекот на сите избрани вредности на колоната id

MAX - Ја произведува најголемата од сите избрани вредности во даденото поле.

MIN - Ја произведува најмалата од сите избрани вредности за даденото поле.

Создавање табела:

КРЕИРАЈ ТАБЕЛА users_base (ид цел број, текст на корисничко име, градски текст, датум на раѓање);- извршувањето на таква команда ќе доведе до создавање на табела, според која дадов примери... Овде се е едноставно, ја пишуваме командата CREATE TABLE, потоа името на табелата што сакаме да ја креираме, па во загради, разделени со запирки, имињата на колоните и нивниот тип на податоци. Ова е стандарден начин за креирање табела во SQL. Сега ќе дадам пример за креирање табели во SQL Server 2005:

ПОСТАВЕТЕ ANSI_NULLS ВКЛУЧЕНИ
ОДИ
ПОСТАВЕТЕ ВКЛУЧЕНО QUOTED_IDENTIFIER
ОДИ
АКО НЕ ПОСТОИ (ИЗБЕРЕТЕ * ОД sys.objects WHERE object_id = OBJECT_ID(N".") И внесете (N"U"))
ЗАПОЧНЕТЕ
КРЕИРАЈ ТАБЕЛА .(

НЕ НИШТА,
НЕ НИШТА,
НЕ НИШТА,
ПРИМАРЕН КЛУЧ СО КОЛСТРИРАН
ASC


КРАЈ
ОДИ
ПОСТАВЕТЕ ANSI_NULLS ВКЛУЧЕНИ
ОДИ
ПОСТАВЕТЕ ВКЛУЧЕНО QUOTED_IDENTIFIER
ОДИ
АКО НЕ ПОСТОИ (ИЗБЕРЕТЕ * ОД sys.objects WHERE object_id = OBJECT_ID(N".") И внесете (N"U"))
ЗАПОЧНЕТЕ
КРЕИРАЈ ТАБЕЛА .(
ИДЕНТИТЕТ (1,1) НЕ НУЛАТЕН,
НУЛА,
НУЛА,
ПРИМАРЕН КЛУЧ СО КОЛСТРИРАН
ASC
)СО ВКЛУЧЕНО(IGNORE_DUP_KEY=OFF).
) ВО TEXTIMAGE_ON
КРАЈ
ОДИ
ПОСТАВЕТЕ ANSI_NULLS ВКЛУЧЕНИ
ОДИ
ПОСТАВЕТЕ ВКЛУЧЕНО QUOTED_IDENTIFIER
ОДИ
АКО НЕ ПОСТОИ (ИЗБЕРЕТЕ * ОД sys.objects WHERE object_id = OBJECT_ID(N".") И внесете (N"U"))
ЗАПОЧНЕТЕ
КРЕИРАЈ ТАБЕЛА .(
ИДЕНТИТЕТ (1,1) НЕ НУЛАТЕН,
НУЛА,
НУЛА,
ПРИМАРЕН КЛУЧ СО КОЛСТРИРАН
ASC
)СО ВКЛУЧЕНО(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. Креирајте нов приказ ( поглед ) за прикажување податоци од табелата Студент.

За прикажување на податоците од табела со база на податоци, можете да користите различни начини. Еден од нив е создавањето на погледи (views), кои се формираат со помош на MS Visual Studio.

Во нашиот случај, податоците од табелата ќе бидат прикажани на формуларот во контролата DataGridView. По креирањето на погледите, многу е погодно да се поврзат со елементите на DataGridView.

За да креирате приказ, треба да ја повикате командата " Додај нов приказ"Од контекстното мени, кое се повикува со десен клик на елементот" Views"Education.dbo база на податоци (Слика 2).

Ориз. 2. Повикување на командата за додавање нов приказ

Како резултат на тоа, ќе се отвори прозорецот „Додај табела“ (Слика 3). Во прозорецот, треба да ги изберете табелите што се додадени на приказот.

Ориз. 3. Избирање на табелите на кои ќе се базира новиот приказ

Во нашиот случај, изберете ја табелата Студент и потврдете го вашиот избор со кликнување на копчето Додај. Следниот чекор е да го затворите прозорецот со избирање на копчето Затвори.

По извршените дејства ќе се генерира прозорец во кој треба да ги изберете полињата што треба да се прикажат во приказот (на формуларот). Изберете ги сите полиња (Слика 4).

При изборот на полиња, полињата од табелата Студент се прикажуваат на горниот дел од работниот простор. Со помош на „глувчето“ можете да ги изберете саканите полиња за презентација.

Соодветно на тоа, во средната област на прозорецот, се прикажуваат имињата на избраните полиња, табелата во која се присутни (види слика 4), можноста за сортирање, филтрирање и така натаму.

На дното на окното, се прикажува соодветниот текст за барање SQL, кој се користи за креирање на приказот.

Ориз. 4. Изберете полиња од табелата Студент за прикажување во приказот

По изборот на тимот

Датотека->Зачувај ги сите Датотека->Зачувај поглед1

Ќе се отвори прозорец со барање да внесете име за приказот. Поставете го името „ Прикажи студент“ (Слика 5).

Ориз. 5. Наведете име за приказот

По извршените дејства, прозорецот за преглед ќе изгледа како што е прикажано на Слика 6.

Ориз. 6. Претставување на View Student во базата на податоци

Сега можете да ја хостирате контролата DataGridView и да ја поврзете со приказот.

3. Поставување на контролата DataGridView и поставување врска со базата на податоци.

Пред да ја поставите контролата DataGridView, треба да се префрлите на режимот за дизајн на формулари Form1.cs.

DataGridView е табела што може да прикажува податоци. Оваа контрола е поставена во панелот ToolBox. Прво, малку ја прилагодуваме големината на формуларот, а потоа ја ставаме контролата DataGridView на неа (Слика 7). Ова стандардно ќе создаде примерок од објект со име dataGridView1.

Ориз. 7. Прозорец за контрола на DataGridView и избор на извор на податоци

Откако ќе поставите контрола од типот DataGridView на формуларот во горниот десен агол, можете да ја изберете поставката за извор на податоци. Соодветно на тоа, ќе се отвори прозорецот "DataGridView Tasks". Во овој прозорец, треба да го изберете скокачкото мени „Избери извор на податоци“.

Во менито што се отвора, се избира командата „Додај извор на податоци за проектот…“ (сл. 7). После тоа, се отвора прозорец со волшебник, во кој секвенцијално се избира изворот на податоци.

Слика 8 го покажува прозорецот " Волшебник за конфигурација на извор на податоци", во која е избран типот на извор на податоци. Во нашиот случај, инсталирајте ја „База на податоци“.

Ориз. 8. Избор на тип на извор на податоци

Во следниот прозорец (слика 9), се избира моделот на извор на податоци. Треба да изберете DataSet.

Ориз. 9. Избор на модел на извор на податоци

Во прозорецот прикажан на Слика 10, треба да ја наведете податочната врска што сакате да ја користите за да се поврзете со базата на податоци. Во нашиот случај, треба да ја избереме базата на податоци " sasha-pc\sqlexpress\Education.dbo«.

Ориз. 10. Избор на податочна врска

Следниот прозорец (слика 11) ве поттикнува да ја зачувате низата за поврзување во конфигурациската датотека на апликацијата. Оставете сè како што е и преминете на следниот прозорец.

Ориз. 11. Предлог за зачувување на низата за поврзување со базата на податоци Connection String во конфигурациската датотека на апликацијата

По креирањето на врска со базата на податоци, се прикажуваат многу објекти на базата на податоци (Слика 12). Во нашиот случај, треба да го избереме View Student и сите полиња од него. Проверените полиња ќе бидат прикажани во DataGridView.

Ориз. 12. Избор на објекти на базата на податоци за прикажување во DataGridView

По избор на копчето Finish, ќе се прикажат избраните објекти (View Student view) од базата Education.dbo (Слика 13).

Ориз. 13. Контрола DataGridView со избрани полиња View Student View

Слично на тоа, можете да поставите прикази кои содржат полиња од која било табела со база на податоци. Исто така, полињата од различни табели може да се прикажат во еден приказ.

4. Приспособување на изгледот на контролата DataGridView.

Ако ја извршите апликацијата за извршување, тогаш ќе се примат податоците за поглед на студентот, што одговара на базата на податоци Студент табела (слика 14).

Ориз. 14. Стартување на апликацијата за извршување

Како што можете да видите од Слика 14, податоците во табелата dataGridView1 се прикажуваат нормално, но дизајнот може да се прилагоди.

Контролата на типот DataGridView ви овозможува да го прилагодите изгледот на полињата што се прикажуваат.

За да повикате команди за уредување полиња, само повикајте го контекстното мени со десен клик на контролата dataGridView1.

Во менито има различни корисни команди кои ви дозволуваат да го контролирате изгледот и работата на DataGridView:

  • команда за заклучување на контролата (Lock Controls );
  • команда за уредување полиња што се прикажани во приказот (Уреди колони…);
  • команда за додавање нови полиња, на пример, пресметани (Додај колона).

Во нашиот случај, треба да ја изберете командата „Уреди колони ...“ (Слика 15).

Ориз. 15. Командата „Уреди колони ...“ од контекстното мени

Како резултат на тоа, ќе се отвори прозорецот „Уреди колони“, во кој можете да го прилагодите изгледот на полињата за гледање по ваш вкус (Слика 16).

Ориз. 16. Прозорец за поставување на типот полиња во приказот „Прикажи студент“

Во прозорецот на Слика 16, за кое било поле, можете да поставите име, порамнување, ширина, можност за уредување податоци итн.

5. Низа за поврзување

За да направите промени во базата на податоци, треба да ја добиете низата за поврзување со базата на податоци Connection String .

Постојат различни начини да се добие низата за поврзување со базата на податоци. Еден од нив се базира на читање на оваа линија во прозорецот Properties на базата на податоци Education.dbo (Слика 17).

Ориз. 17. Дефинирање на низа за поврзување

За да ја зачувате низата во програмата, внатрешна променлива од типот низа. Користејќи ја таблата со исечоци, копирајте ја низата за поврзување на опишаната променлива од типот на низа.

Во текстот на датотеката " Form1.cs" На почетокот на описот на класата Form1, мора да ја опишете променливата:

стринг conn_string = ;

Во моментов, текстот на часот Form1 е следниот:

јавна делумна класа Образец1 : Образец { стринг conn_string = @"Извор на податоци=(локален)\SQLEXPRESS;Почетен каталог=Образование;Интегрирана безбедност=Точно;Здружување=Неточно"; јавна форма 1() { InitializeComponent(); } приватна празнина Form1_Load (испраќач на објекти, EventArgs e) { // TODO: Оваа линија код ги вчитува податоците во табелата „educationDataSet.View_Student“. Ти можешпреместете го или отстранете го, по потреба. } }

6. Создавање нова формада се демонстрираат команди за манипулација со податоци.

За да можете да ги обработите податоците од тековниот запис, треба да креирате нова форма. Детално е опишан процесот на креирање нова форма во MS Visual Studio - C#.

Додавањето нова форма се прави со командата:

Проект -> Додај формулар за Windows...

Во прозорецот што се отвора " Нова ставка"Треба да го изберете елементот" Форма на Windows«.

Стандардно го оставаме името на датотеката на новата форма „Form2.cs“.

Слика 18 покажува приказ на новата форма.

На формуларот поставуваме контроли од следниве типови:

  • две контроли од типот Button (копчињата OK и Cancel). Според тоа, ќе се добијат два објекти со имињата button1 и button2 ;
  • четири контроли од типот Label за креирање на информативни пораки;
  • четири контроли од типот TextBox за внесување податоци во полињата Num_book , Name , Group , Year .

Треба да ги поставите следниве својства на контролите:

  • во својствата на контролното копче1 Текст = „Во ред“;
  • во својствата на контролното копче2 Текст = „Откажи“;
  • во својството на контролното копче1 DialogResult = „OK“;
  • во контролата button2, својство DialogResult = „Откажи“;
  • во контролната ознака1 својство Текст = „Број_книга“;
  • во контролната ознака2 својство Текст = „Име“;
  • во контролната ознака3 својство Текст = „Група“;
  • во контролата label4, својството Текст = „Година“.

Ја поставивме и видливоста на контролите од типот TextBox . За да го направите ова, во сите контроли textBox1 , textBox2 , textBox3 , textBox4 вредност на имотот Modifiers = " public ".

Ориз. 18. Поглед на новосоздадената форма

7. Додавање копчиња за повикување наредби за манипулирање со податоците од табелата Студент.

За понатамошна работа, треба да се префрлите на главната форма Form1 со глувчето.

Додаваме три копчиња во главната форма на апликацијата Form1 ( Копче ). Автоматски ќе се креираат три објектни променливи со име button1 , button2 , button3. Во секое од овие копчиња ги правиме следните поставки (прозорец со својства):

  • во својствата на копчето button1 Текст = "Вметни ..." (внеси запис);
  • во својствата на копчето button2 Текст = "Уреди ..." (промени запис);
  • во копче копчето3 својство Текст = „Избриши“.

Како резултат на направените промени, главната форма ќе изгледа како што е прикажано на Слика 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(); // затворете ја врската овој .view_StudentTableAdapter.Fill(this .educationDataSet.View_Student); } }

Прво, се нарекува Форма2. По добивањето на резултатот „OK“ (притискање на соодветното копче), во Form2, пополнетите полиња во елементите од типот TextBox се вклучени во низата за пребарување SQL. Барањето SQL за додавање нов ред изгледа вака:

Вметнете ВО ученикот 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. Програмирање на настанот за кликнување на копчето „Уреди…“.

Ракувачот за настани со кликнување на копчето „Уреди ...“ изгледа вака:

приватно копче за празнина2_Кликнете (испраќач на објект, EventArgs e) ( низа cmd_text; Form2 f2 = нов Form2 (); int индекс; стринг num_book; индекс = dataGridView1.CurrentRow.Index; num_book = Конвертирајте .ToString (dataGridextBox1); .Text = num_book;f2.textBox2.Text = Convert .ToString(dataGridView1.Value); f2.textBox3.Text = Convert .ToString(dataGridView1.Value); f2.textBox4.Text = Convert .VdaStrue); ако (f2.ShowDialog() == DialogResult .OK) ( cmd_text = „АЖУРИРАЈ СЕТ за студентски број = „“+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "Година = " + f2 .textBox4.Text + "WHERE Num_book = "" + num_book + """ ; SqlConnection sql_conn = нова SqlConnection(conn_string); sql_conn.Close(); this .view_StudentTableAdapter.Fill(this .educationDataSet.View_Student); ) )

Овој управувач извршува команда SQL UPDATE која ја менува моменталната вредност на активниот запис.

10. Програмирање на настан за кликнување на копчето „ Избриши«.

Управувачот со настани за кликнување за копчето Избриши изгледа вака:

приватно копче за празнина3_Click(испраќач на објект, EventArgs e) ( низа cmd_text = "ИЗБРИШИ ОД Студент" ; int индекс; низа num_book; индекс = dataGridView1.CurrentRow.Index; num_book = Convert.ToString (dataGridView1.Vtal); "ИЗБРИШИ ОД Студент WHERE .=""+ num_book + """; SqlConnection sql_conn = нова SqlConnection(conn_string); SqlCommand sql_comm = нова SqlCommand(cmd_text, sql_conn); sql_conn.Open(); sqxeRadio(); (ова .educationDataSet.View_Student);

Во овој управувач, командата SQL за бришење на запис DELETE се извршува.

Поврзани теми

  • Прикажување табела со база на податоци на Microsoft Access

SQL Server Management Studio обезбедува комплетна алатка за креирање на сите видови прашања. Со него, можете да креирате, зачувувате, вчитувате и уредувате барања. Покрај тоа, можете да работите на прашања без да се поврзете на кој било сервер. Оваа алатка, исто така, обезбедува можност за развој на прашања за различни проекти.

Можете да работите со прашања и преку Уредувач на прашања и преку Solution Explorer. Оваа статија ги опфаќа двете од овие алатки. Покрај овие две компоненти на SQL Server Management Studio, ќе разгледаме дебагирање на SQL-кодот со помош на вградениот дебагер.

Уредник за прашања

За да го отворите панелот Уредувач на прашања Уредник за прашања, на алатникот SQL Server Management Studio, кликнете на копчето Ново барање. Овој панел може да се прошири на копчињата за прикажување за креирање на сите можни прашања, а не само прашања на моторот за бази на податоци. Создаден стандардно ново барањекомпонента на моторот за бази на податоци, но со кликнување на соодветното копче на лентата со алатки, можете да креирате и MDX, XMLA и други прашања.

Статусната лента на дното на панелот Уредувач на прашања го означува статусот на врската на уредникот со серверот. Ако не сте автоматски поврзани со серверот, кога ќе го стартувате Уредувачот за пребарување, ќе ви биде претставен дијалогот Поврзи се со сервер, каде што можете да го изберете серверот на кој ќе се поврзете и режимот за автентикација.

Уредувањето на прашања офлајн обезбедува поголема флексибилност отколку кога сте поврзани на сервер. Не мора да бидете поврзани со сервер за да уредувате прашања, а прозорецот за уредувач на барања може да се исклучи од еден сервер (со користење на командата од менито Query --> Connection --> Disconnect) и да се поврзе на друг без да се отвори друг прозорец на уредувачот. За да изберете офлајн режим за уредување, во дијалогот за поврзување на серверот што се отвора кога ќе го стартувате уредникот специфичен типбарања, само кликнете на копчето Откажи.

Можете да го користите Уредникот за прашања за да ги извршите следните задачи:

    креирање и извршување Transact-SQL извештаи;

    зачувување на генерираните извештаи на Transact-SQL во датотека;

    креирање и анализа на планови за извршување за вообичаени прашања;

    графичка илустрација на планот за извршување на избраното барање.

Уредникот за прашања содржи вграден уредувач на тексти лента со алатки со збир на копчиња за различни дејства. Главниот прозорец на Уредувачот на барања е поделен хоризонтално на панел за прашања (горе) и панел за резултати (долу). Изјавите Transact-SQL (т.е. прашања) што треба да се извршат се внесуваат во горниот панел, а резултатите од системот што ги обработува тие барања се прикажани во долниот дел. Сликата подолу покажува пример за внесување на барање во уредувачот на барања и резултатите од извршувањето на ова барање:

Првата изјава за USE барање одредува да се користи базата на податоци SampleDb како тековна база на податоци. Втората изјава, SELECT, ги враќа сите редови во табелата Вработен. За да го извршите ова барање и да ги прикажете резултатите, на алатникот Уредувач на барања, кликнете на копчето Изврши или притиснете F5 .

Можете да отворите повеќе прозорци на Query Editor, т.е. направи повеќекратни врски со еден или повеќе примероци на моторот за бази на податоци. Се создава нова врска со кликнување на копчето Ново барање на лентата со алатки SQL Server Management Studio.

Статусната лента на дното на прозорецот Уредувач на барања ги прикажува следните информации поврзани со извршувањето на изјавите за барање:

    статусот на тековната операција (на пример, "Барањето е успешно завршено");

    име на сервер за база на податоци;

    тековно корисничко име и ID на процесот на серверот;

    името на тековната база на податоци;

    времето потребно за да се заврши последното барање;

    бројот на пронајдени линии.

Една од главните предности на SQL Server Management Studio е неговата леснотија на користење, што важи и за Query Editor. Уредникот за прашања обезбедува многу функции што го олеснуваат кодирањето на извештаите Transact-SQL. Конкретно, користи истакнување на синтаксата за да ја подобри читливоста на извештаите Transact-SQL. Сите резервирани зборови се прикажани со сино, променливите во црно, низите во црвено и коментарите со зелена боја.

Дополнително, Уредникот за прашања има повикана помош чувствителна на контекст Динамичка помош, преку кој можете да добиете информации за одредена инструкција. Ако не ја знаете синтаксата на изјавата, изберете ја во уредникот и потоа притиснете го копчето F1. Можете исто така да ги означите параметрите на различни извештаи Transact-SQL за да добиете помош за нив од Books Online.

SQL Management Studio поддржува SQL Intellisense, што е еден вид алатка за автоматско комплетирање. Со други зборови, овој модул сугерира најверојатно завршување на делумно внесените елементи на изјавата Transact-SQL.

Објект Explorer може да помогне и при уредување на барања. На пример, ако сакате да знаете како да креирате изјава CREATE TABLE за табелата Employee, кликнете со десното копче на таа табела во Object Explorer и добиената контекстното мениизберете Script Table As --> CREATE to --> New Query Editor Window. Прозорецот Уредувач на прашања што ја содржи вака создадената изјава CREATE TABLE е прикажан на сликата подолу. Оваа способност се однесува и на други објекти како што се складирани процедури и функции.

Прелистувачот на објекти е многу корисен за графички приказ на планот за извршување за одредено барање. Планот за извршување на барањето е опција за извршување избрана од оптимизатор на барања меѓу неколку опцииисполнување на конкретно барање. Внесете го потребното барање во горниот панел на уредникот, изберете низа наредби од менито Query --> Прикажи го проценетиот план за извршување (Прашање --> Прикажи го проценетиот план за извршување) и планот за извршување за ова барање ќе се прикаже во долниот панел на прозорецот на уредувачот.

Solution Explorer

Уредувањето на барањата во SQL Server Management Studio се заснова на методот на решенија. Ако креирате празно барање користејќи го копчето Ново барање, тоа ќе се заснова на празно решение. Ова може да се види со извршување на командната секвенца од менито View --> Solution Explorer веднаш по отворањето на празно барање.

Одлуката може да биде поврзана со ниту еден, еден или повеќе проекти. Празно решение, кое не е поврзано со ниту еден проект. За да поврзете проект со решение, затворете го празното решение, Solution Explorer и Query Editor и креирајте нов проект со извршување на командната низа File --> New --> Project. Во прозорецот Нов проект што се отвора, изберете ја опцијата SQL Server Scripts во средниот панел. Проектот е начин на организирање датотеки на одредена локација. Можете да му дадете име на проектот и да изберете локација за неговата локација на дискот. Кога креирате нов проект, ново решение автоматски се стартува. Проектот може да се додаде на постоечко решениекористејќи Solution Explorer.

За секој креиран проект, Solution Explorer ги прикажува папките Connections (Connections), Queries (Requests) и Miscellaneous (Разно). За да отворите нов прозорец на Уредувач на барања за даден проект, кликнете со десното копче на неговата папка Queries и изберете New Query од контекстното мени.

Дебагирање на SQL Server

SQL Server, почнувајќи со SQL Server 2008, има вграден дебагер на код. За да започнете сесија за дебагирање, изберете ја следната командна низа Debug --> Start Debugging од главното мени на SQL Server Management Studio. Ќе ја разгледаме работата на дебагерот користејќи пример користејќи команден пакет. Серијата е логична низа од SQL изјави и процедурални екстензии што се испраќаат до моторот на базата на податоци за да ги изврши сите изјави што ги содржи.

Сликата подолу покажува пакет кој го брои бројот на вработени кои работат на проект p1. Ако овој број е 4 или повеќе, тогаш се прикажува соодветната порака. Во спротивно, се прикажуваат имињата и презимињата на вработените.

За да го запрете извршувањето на пакетот на одредена инструкција, можете да поставите точки на прекин, како што е прикажано на сликата. За да го направите ова, кликнете лево од линијата на која сакате да застанете. Кога ќе започнете со дебагирање, извршувањето запира на првата линија на код, која е означена со жолта стрелка. За да продолжите со извршувањето и дебагирањето, извршете ја командата од менито Debug --> Continue (Дебагирање --> Продолжи). Извршувањето на инструкциите на пакетот ќе продолжи до првата точка на прекин, а жолтата стрелка ќе застане на таа точка.

Информациите поврзани со процесот на отстранување грешки се прикажуваат во две окно на дното на прозорецот Уредувач на барања. Информации за различни типовиинформациите за отстранување грешки се групирани во овие панели на неколку јазичиња. Левиот панел ги содржи табулаторот Autos (Автоматски), Locals (Local) и до пет картички Watch (видливо). Десното окно ги содржи табовите Call Stack, Threads, Breakpoints, Command Window, Immediate Window и Output табовите. Табот Locals ги прикажува вредностите на променливите, табулаторот Call Stack ги прикажува вредностите на стек на повици, а табот Точки на прекин прикажува информации за точките на прекин.

За да го запрете процесот на отстранување грешки, извршете ја низата наредби од главното мени Debug --> Stop Debugging или притиснете го синото копче на лентата со алатки за дебагер.

Во SQL Server 2012, вградениот дебагер во SQL Server Management Studio е подобрен со неколку нови функции. Сега можете да извршите голем број од следниве операции во него:

    Наведете услов за точка на прекин. Состојба на прекине SQL израз чија проценета вредност одредува дали извршувањето на кодот ќе биде запрено во дадена точка или не. За да наведете состојба на точка на прекин, кликнете со десното копче на црвената икона за саканата точка на прекин и изберете Condition од контекстното мени. Се отвора дијалог прозорецот „Состојба на точка на прекин“, во кој треба да го внесете потребниот логички израз. Дополнително, ако сакате да го запрете извршувањето ако изразот е вистинит, тогаш треба да го поставите прекинувачот Is True. Ако извршувањето треба да се прекине ако изразот е променет, тогаш треба да го поставите прекинувачот When Changed (Changed).

    Наведете го бројот на погодоци до точката на прекин. Бројот на удари е услов за запирање на извршувањето во дадена точка, врз основа на бројот на пати кога таа точка на прекин е погодена за време на извршувањето. Кога ќе се достигне наведениот број повторувања и кој било друг услов наведен за дадената точка на прекин, дебагерот го извршува наведеното дејство. Условот за прекин врз основа на бројот на погодоци може да биде еден од следниве:

    1. безусловно (стандардно дејство) (Секогаш пауза);

      ако бројот на погодоци е еднаков на одредената вредност (Прекирај кога неговото броење е еднакво на одредена вредност);

      ако бројот на погодоци е повеќекратен од наведената вредност (Прекинете кога бројот на удари е еднаков на множител на одредената вредност);

      ако бројот на погодоци е еднаков или поголем од наведената вредност (Прекирај кога неговиот број е поголем или еднаков на одредена вредност).

    За да го поставите бројот на погодоци за време на дебагирање, кликнете со десното копче на саканата точка на прекин на табулаторот Точки на прекин, изберете Број на удари од контекстното мени, потоа изберете еден од следниве услови во полето за дијалог Breakpoint Hit Count што се појавува: од списокот погоре . За опции за кои е потребна вредност, внесете ја во полето за текст десно од паѓачката листа со услови. За да ги зачувате наведените услови, кликнете на копчето ОК.

    Наведете филтер за точка на прекин. Филтерот за точки на прекин ја ограничува работата на точката на прекин само на одредени компјутери, процеси или нишки. За да поставите филтер за точка на прекин, кликнете со десното копче на саканата точка на прекин и изберете Филтер од контекстното мени. Потоа, во полето за дијалог „Филтри за точки на прекин“ што се отвора, наведете ги ресурсите на кои сакате да го ограничите извршувањето на оваа точка на прекин. За да ги зачувате наведените услови, кликнете OK.

    Наведете дејство на точка на прекин. Условот When Hit го одредува дејството што треба да се преземе кога извршувањето на пакетот ќе ја погоди дадената точка на прекин. Стандардно, кога и условот за број на удари и условот за стоп се задоволени, тогаш извршувањето е прекинато. Алтернативно, можете да прикажете однапред одредена порака.

    За да одредите што да правите кога ќе се погоди точката на прекин, кликнете со десното копче на црвената икона за саканата точка на прекин и изберете When Hit од контекстното мени. Во полето за дијалог Кога точката на прекин е хит што се отвора, изберете ја саканата акција. За да ги зачувате наведените услови, кликнете на копчето ОК.

    Користете го прозорецот Quick Watch. Во прозорецот QuickWatch, можете да ја видите вредноста на изразот Transact-SQL, а потоа да го зачувате тој израз во прозорецот Watch Values. За да го отворите прозорецот Quick Watch, изберете Quick Watch од менито Debug. Изразот во овој прозорец може или да се избере од паѓачката листа Израз (Израз), или да го внесете во ова поле.

    Користете го советот за алатки Брзи информации. Кога лебдите над ID на код, алатката Quick Info ( Кратки информации) ја прикажува својата реклама во скокачки прозорец.




Врв