تفاوت دستور های Join و InnerJoin در SQL

    تفاوت Join و InnerJoin در performance آنها می باشد. نتیجه ی اجرای هر دوی آنها یکسان است اما دستور InnerJoin دارای Prformance بالاتری می باشد و به همین دلیل توصیه می شود که از دستور InnerJoin استفاده شود.

آرایه با طول نامشخص در #C

وقتی می خواهیم تعداد نا مشخصی از آبجکت های هم نوع را در یک آرایه بریزیم، یک راهش این است که یک لیست ایجاد کنیم و آبجکت های مورد نظر را به آن Add کنیم و در پایان با استفاده از متد ToArray آن لیست را به آرایه تیدیل کنیم:  

به عنوان مثال O1 , O2 و O3 سه آبجکت از نوع کلاس MyClass هستند. متغیر x آرایه ای از نوع MyClass خواهد بود:  

List<MyClass> myList = new List<MuClass>();
myList.Add(O1);
myList.Add(O2);
myList.Add(O3);
var x = myList.ToArray();

               

               

 

 

نکته ای در مورد مقدار null در اسکریپت ها

اجرای دو اسکرییت زیر نشان می دهد که (1,null) با (1,null) برابر نیست اما (1و0) با (1و0) برابر است. 

  

select 1 from dual where (1,0) in ( select 1, 0 from dual) 

select 1 from dual where (1,null) in ( select 1, null from dual)

دستورهایData Manipulation Language در sql

دستورهای  DML در Sql شامل دستورات insert، delete و update می باشد. این دستورها در بلاک های pl/sql  نیز مستقیماً پشتیبانی می شوند.

cursor در pl/sql

یکی از block های pl/sql نامش cursor می باشد. 

cursor مدل توسعه یافته ی دستور Select into می باشد که می تواند یک یا بیش از یک رکورد را به داخل block ما بفرستد. 

همچنین کرسر از نظر ساختاری فضایی از حافظه بوده که همانند یک متغیر محلی در ناحیه Decleration تعریف می شود. کرسر مقادیرش را از دیتابیس fetch کرده و در اختیار بلاک pl/sql قرار می دهد.