Паролингизни унутдингизми?
Login
Left, Right, Center Left, Center, Right Center, Left, Right

Биз хақимизда


Ассаламу алайкум! Ушбу www.e-dastur.uz сайтимиз асосан илм талабида изланаётган ёшлар учундир, бу сайтимиз ҳақида фикр мулоҳазаларингиз ёки таклифларингиз бўлса, биз билан қуёидаги e-mail орқали боғланишингиз мумкин.

E-mail: musad@bk.ru



SQL Server 2012 даги дастурчилар учун янги имкониятлар

SQL Server 2012 даги дастурчилар учун янги имкониятлар

2012 йилнинг 1-апрелидан Microsoft SQL Server 2012 маълумотлар базасини якуний "версия"си чиқарилди. Янги "версия"да кўпгина янгиликлар мавжуд. Ушбу мақолада шу маълумотлар базаси билан ишловчи дастурчилар учун янги киритилган имкониятлар хақида тўхталиб ўтилади.

 

1. Базадан олинадиган қаторларни сонини камайтириш учун ишлатиладиган OFFSET ва FETCH деб номланган янги буйруқлар
Ва нихоят SQL Server да қулай "бетлаш" вужудга келди. Энди натижани иккинчи ўнта ёзувни (2чи бетини) олиш учун сўров қуйидаги кўринишда бўлади:

1.SELECT DepartmentID, Name, GroupName
2.FROM HumanResources.Department
3.ORDER BY DepartmentID
4.OFFSET 10 ROWS
5.FETCH NEXT 10 ROWS ONLY;


SQL Server 2005/2008 да эса худди шу сўров қуйидагича ёзилар эди:

01.WITH CTE AS
02.(
03.SELECT DepartmentID, Name, GroupName, ROW_NUMBER()
04.
05.OVER (ORDER BY DepartmentID) AS RowNum
06.FROM HumanResources.Department
07.)
08.SELECT DepartmentID, Name, GroupName
09.FROM CTE
10.WHERE RowNum BETWEEN 10 AND 19
11.ORDER BY RowNum

Батафсил: http://msdn.microsoft.com/ru-ru/library/ms188385.aspx#Offset

2. OVER операторида ойнали функциаларн билан ишлаш янада такомиллашди

ROWS ва RANGE ни ишлатиб бўлим ичидаги ёзувларни аввалги ва охирги нуқталарини белгилаб, яна хам қисқартириш мумкин. Масалан, ўсиб борувчи натижани оладиган сўров қуйидагича бўлади:

1.SELECT  DepartmentID,
2.SaleDate,
3.SUM(SalesYTD) OVER (PARTITION BY DepartmentID ORDER BY SaleDate ROWS UNBOUNDED PRECEDING) AS Total
4.FROM dbo.Sales

Батасфил: http://msdn.microsoft.com/ru-ru/library/ms189461.aspx

3. Янги тахлилий функциялар қўшилди
  • FIRST_VALUE
  • LAST_VALUE
  • CUME_DIST
  • PERCENTILE_DISC
  • PERCENT_RANK
  • PERCENTILE_CONT
  • LEAD
  • LAG

Масалан, бирон бир лойиха учун 4 хил нархни хисоблаб чиқишим керак (open, high, low, close). Бундай сўровни жуда осон ёзиш мумкин:

1.SELECT     MIN(Ask) OVER (PARTITION BY Pair, Candle) AS Low,
2.MAX(Ask) OVER (PARTITION BY Pair, Candle) AS High,
3.FIRST_VALUE(Ask) OVER (PARTITION BY Pair, Candle) AS Open,
4.LAST_VALUE(Ask) OVER (PARTITION BY Pair, Candle) AS Close
5.FROM dbo.Quotes
6.WHERE Pair='EURUSD' and Candle = 100


4. Кетма-кетлик (SEQUENCE) пайдо бўлди

Яна бир анчадан бери кутилган янгилик.
1.CREATE SEQUENCE Schema.SequenceName
2.AS int
3.START WITH 1
4.INCREMENT BY 1 ;
5.
6.DECLARE @NextID int ;
7.SET @NextID = NEXT VALUE FOR Schema.SequenceName;


5. RAISERROR ни ўрнига THROW келди

01.THROW 51000, 'Ёзув мавжуд эмас.', 1;
02.
03.BEGIN TRY
04.SET @a = 10 / 0
05.END TRY
06.BEGIN CATCH
07.PRINT 'catch бўлимида.';
08.THROW;
09.END CATCH;


6. 14 та янги функциялар пайдо бўлди


Келтириш функциялари:

PARSE
TRY_CONVERT
TRY_PARSE


Сана ва вақт функциялари:

DATEFROMPARTS
DATETIME2FROMPARTS
DATETIMEFROMPARTS
DATETIMEOFFSETFROMPARTS
EOMONTH
SMALLDATETIMEFROMPARTS
TIMEFROMPARTS


Мантиқий функциялар:

CHOOSE
IIF


Қатор билан ишловчи функциялар:

CONCAT
FORMAT


Мисол учун, ой кунини аниқлаш учун аввал сўров мана бундай ёзилар эди:

1.SET @LastDayOfMonth = dateadd(month,1,dateadd(day,1-day(@d),@d))-1

SQL Server 2012 да эса:
1.SET @LastDayOfMonth = EOMONTH (@d)

Ёки масалан мана бу сўровни ўрнига:
1.CASE WHEN  (@a > @b) THEN 'TRUE' ELSE 'FALSE' END

қуйидагича ёзиш мумкин:
1.IIF ( @a > @b, 'TRUE', 'FALSE' )


7. FileTable жадваллари

Энди SQL Server файллар ва хужжатларни махсус жадвалларда сақлайдиган бўлди. Бундай жадваллар билан Windows дастурлари бошқа файллар билан қандай ишласа худди шундай ишлай олади. Бунада ОТ га хеч қандай ўзгартириш киритлмайди.
Батафсил:  http://msdn.microsoft.com/ru-ru/library/ff929144.aspx

8. Маъновий статик излаш

FileTable
функцияси билан биргаликда маъновий статик излаш хужжатларни чуқур тахлил қилиш мумкин. Маъновий излаш хусусияти аввалдан мавжуд бўлган тўлиқ текстли излаш асосида қурилган бўлиб уни ёрдамида излаш жараёни калит  сўзларни ишлатиб эмас балки хужжатни маъноси инобатга олинган холда амалга оширилади. Масалан, хужжатларни ўхшашлик индексига қараб лавозим (таърифи)га энг мос келувчи резюмени излаб топиш мумкин.

Батафсил:
http://msdn.microsoft.com/ru-ru/library/gg492075.aspx
Ушбу мақола манба асосида таржима қилинди.

SQL Server 2012 Express ни ушбу ҳаволадан юклаб олишингиз мумкин.

Фарход Дадажонов

Share