Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
55 Cards in this Set
- Front
- Back
- 3rd side (hint)
Date |
Select GETDATE() |
|
|
فاصله زمانی |
Select DATEDIFF(interval, datetime 1,datetime 2) که interval میتواند dd, mm, yy و... باشد |
|
|
Convert and cast |
Select cast(customerKey as nvarchar) Select convert(nvarchar, customerKey) *cast تو همه ورژنهای sql وجود داره ولی Convert نه |
|
|
Alias and 2 parted |
|
|
|
پیدا کردن system functions |
Programmatically => functions =>system functions |
|
|
Distinct و top |
Select DISTINCT city from... Select TOP 1000 city(or *) from.... |
Distinct Top 1000 هردو یه حا و قبل ستونها میشینند |
|
Xml |
Select * from table For xml auto - - atribute centric یا For xml auto, elements - - element centric |
|
|
Case end: when in then in.. Else end |
*سلکتِ کیسند*، ون این دن این الز اند |
توی کالم لیست تو سلکت بکار میاد بقیه حالتهاش مسخره است مثل تو where یا اردر بای و... |
|
In |
Select * From.... Where name = 'amir' OR name ='gholi' or...
معادل Select * from... Wherr name IN ('amir', 'gholi') بدرد از excel کپی کردن خیلی میخوره |
|
|
برای جستجو روی فیلدهای nvarchar و nchar که unicode ازجمله زبان فارسی رو میپذیرند |
حتما حتما برای فیلتر کردن از prefix N قبل رشته هات استفاده کن یعنی Select * from... Where name = N'امیر' |
|
|
وقتی مساوی داری |
Select top 1 (percent ) with ties [columns] From... Order by.. Asc/desc |
|
|
Inner join |
Matching |
|
|
Outer join |
Matching and non matching Left matching and non matching from the left |
|
|
Inner join |
یا Join خالی |
|
|
Left outer join |
یا Left join خالی |
|
|
Select into from کاربرد |
به این کار می آید که مثلا دیتاهای یک table که میخای کار کنی روش رو بریزی تو یه تیبل دیگه و روش تستی کار کنی و دیتاههی اصلیت دست نخورند یا مثلا وقتی sql ات پیچیده میشه مرحله به مرحله و بعنوان staging table بریزی تو این temporary table ها و ببینی نتیجه رو |
|
|
نکته در رابطه با جداول select into from |
این table ها نه کلید نه index نه trigger و... از تیبل یا تیبلهایی که ازشون ساخته میشن رو ندارند و خالی خالی هستن |
|
|
Select into from انواع table های ایجاد شده با |
Permanent اگر اسم table # نداشته باشه Local temporary: اول اسم تیبل یه دونه # Global temporary :اول اسم تیبل دوتا # |
|
|
اجتماع اشتراک متمم |
Union a U b Interest اشتراک a اشتراک b Except a-b Select From Union/except/intersect Select from بین هردوتا select ای میشه استفاده کرد فقط باید تعداد ستون و type شون عین هم باشد |
|
|
Join vs unio |
Join put tables together horizontally based on primary to foreign key relationship Union append tables and put them together vertically |
|
|
Where vs having |
A WHERE clause is used is filter records from a result. The filter occurs before any groupings are made.A HAVING clause is used to filter values from a group. |
|
|
Joins |
Left و right میتونن پدر یا فرزند باشند فرقی نداره Left matching o non matching from Left Inner matching from left o right |
|
|
Inner join count |
In general with an inner join the number of records is equal to the number of records in the table with the most records |
|
|
Count(*) vs count (column Name) |
Count (*) will count all rows Count (columnName) will count all rows except those rows where columnName is null |
|
|
Atomic data |
نه ستون childrenمثلا interests داشته باشیم و توش دونه دونه فرزندها رو با کاما جدا کنیم. نه دو یا چندتا تا ستون child1 intesrest1 وinterset 2 child2 و... داشته باشیم ****نه children نه child 1 و ۲ بلکه فقط child راه درست کردنش هم اینه که اولا این children یا interests رو ببری تو یه تیبل دیگر هرکی تعدادی از طرف مقابل داره کلیدش رو بعنوان foreign key میده بهش... |
|
|
Design table |
ابتدا برای هر نیاز کاربر (userview) یک مجموعه table تعریف میکنیم به اين صورت که برای هر entity یک table میگیریم و نرمال بودنشان را رعایت میکنیم: برای نرمال 1:هرکی که هرسطرش تعدادی از چیزی رو داره اوندچیز رو میبره تو یه تیبل دیگه و کلیدخودش رو بعنوان foreign key میده به تیبل جدید(one to. Many ) اگه اون چیز خودش تیبل داشت فقط کلیدش رو بعنوان foreign key میده به تیبل اون یکی. حالا اگر طرف مقابل هم تعدادی از table مون داشت کافیست junction table درست کنیم و طرف مقابل هم مثل ما کلیدش رو بعنوان foreign key میده به junction table(many to. Many) نرمال 2:از طرف دیگه برای اینکه نرمال 2 رو پاس کنیم فقط کافیه برای همه table هامون فقط یک ستون کلید بگذاریم نه ترکیبی برای نرمال 3:اگه دیدی بعضی از ستونهای یکی از table هات به هم وابسته هستن یعنی entity رو درست نگرفتی و باید اونها جدا شن برن تو یک table دیگه |
|
|
Design table |
*،*هرکی که هر رکوردش تعدادی از یه چیز(ها) ی رو داره یا باهاشون ارتباط داره*** اون چیز(ها) رو میبری تو تیبل دیگه و کلید رو بعنوان foreign key میدی بهش |
|
|
برای نرمال 2 |
کافیه نرمال 1 باشه و کلیدش فقط یک ستون باشه(کلید ترکیبی استفاده نشه) |
|
|
Many to Many |
2 (one to many) Products and orders => many to many Example: Each product many orders and each order many products : Each product many orderdetails Each order many orderdetails |
|
|
Alias |
استفاده اصلی برای حالت alias table است که برای join استفاده میشه و کار رو راحت میکنهو بهتر اینه که از as استفاده بشه |
|
|
Cast |
کست این as این |
|
|
Naming convention |
Table name: Customer(s) PK: CustomerId Columms: FirstName, LastName از space هم استفاده نشود |
|
|
Count |
Select count(distinct feetype) from... |
|
|
خلاصه join |
اگه کاستمر هایی که اردر ندارن رو هم میخای left join استفاده کن اگه نه کلا inner join |
|
|
Create view as select |
With ctename as parantez select Create procedure name @i int As begin end |
|
|
Insert |
Insert into values Insert into select نتیجه Select into from
فرقشون اینه که تو insert جدول وجود داره از قبل و توش میریزیم. ولی توی نتیجه select into from نتیجه select رو میریزه تو یه تیبل اکثرا temp که از قبل هم وجود نداره |
|
|
Insert into select into |
اذون مغربش با من |
|
|
Insert update o delete |
اول select اشو بزن (باید به شکل سلکت ستاره دربیاد) |
|
|
داده های بزرگ( عکس صدا ویدئو و تکست. بزرگ) |
Varchar(nlmax) navarchar(max) , varbinary(max) |
|
|
Sql |
ففط if و while داره و for نداره |
|
|
Reading a record into a set of variables |
|
|
|
طراحی جدول |
هرکی که تعدادی از دیگری داره کلیدش رو بعنوان foreign key میده و خودش یه لیست نگه میداره(تو سی شارپ) یعنی در عمل تو تیبل هیچ اثری نمیبینی |
|
|
Dapper |
Query<> va executeScalar |
|
|
Where exists |
Where exists ( Where in.in = un.un ) |
|
|
Union all is better than union |
اوه مطمئنی دوتا کوئری باهم مشترک نیستند بهتره union all استفاده کنی که کار اصافه چک کردن duplicate ها توسط sql تو حالت union رو نداشته باشی |
|
|
insert |
insert into select insert into values |
|
|
Insert o update o delete |
اول سلکتش رو بزن برای insert Inser into.. Selectet برای delete( دیلیت دی) Select * from d.. Delete d from d... برای آپدیت هم (آپدیت دی) |
|
|
***هرکی که کلیدش رو بعنوان foreign key داده بعبارتی دیگه هرکه تعدادی از دیگری داره(تعریف بالایی راحتتره) |
بذار left Salesorderheader left join sales orderdetail Product left join salesorderdetail پردواکت کلیدش رو بعنوان foreign key داده به orderdetail |
اولین تعریف بدرد one to many میخوره مثال اول دومی بدرد many to many مثال دوم |
|
Seek |
**سیک زدن بهتره! انگار که از روی ایندکس های کتاب مستقیم جوابتو بگیری و تو خود کتاب رو نگاه نکنی |
|
|
Best practices for foreign key |
Is that define an index on the foreign keys |
|
|
حواست به not null باشه |
Not in (null tolid nakone) |
|
|
برای مقایسه performance دوتا query در execution plan |
Hover over select And check "estimated subtree cost" |
|
|
Query بهینه تر |
Subtree cost o Logical read کمتر |
|
|
set statistics io on; |
میتونی باهاش logical read رو بررسی کنی برای performance |
|
|
Row_number() over(partition by o order by) اینا کلا این شکلی هستن که انگار یه ستون میچسبونی بغل جدولت |
حتی میتونی count و sum این شکلی هم داشته باشی و با جزئیات count و sum بددی Sum(s.totaldue) over(partition by s. Customerid) |
|