آموزش SQL

عملگر Like به همراه WHERE زمانی استفاده می شود که بخواهیم شرط ما یک الگوی خاصی را داشته باشد، مثلا با a تمام شود یا با b شروع شود.

معمولا دو علامت هستند که با عملگر LIKE به کار برده می شوند:

  • اولی علامت درصد % است که مثلا اگر ابتدای الگو بیاید، بیانگر این است که ابتدای شرط می تواند یک، چند، یا هیچ کاراکتری نباشد. در مثال روشنتر می شود.
  • دومی علامت _ است که فقط یک حرف یا علامت یا عدد یا هر چیز دیگری باشد، ولی تنها بیانگر یک کاراکتر است. در مثال روشنتر می شود

این مثال مشتریانی را بر می گرداند که نام آن ها با حرف a شروع می شود، و بقیه آن هر چیزی می تواند باشد. یعنی حتما باید با a شروع شود.

SELECT * FROM Customers WHERE CustomerName LIKE 'a%';

نحوه کلی استفاده از LIKE به صورت زیر می باشد:

SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;

در مثال زیر مشتریانی را بر می گرداند که حرف اول نامشان L باشد و حرف دوم که علامت _ قرار گرفته، می تواند یک کاراکتر که مقدار آن هر چیزی باشد، قرار بگیرد. حرف سوم و چهارم آن باید nd باشد. حرف پنجم و ششم که دو علامت _ قرار گرفته می تواند هر چیزی به اندازه دو کاراکتر باشد.

SELECT * FROM Customers WHERE city LIKE 'L_nd__';

مثال زیر همه مشتریانی را بر می گرداند که حرف L در ستون شهر آن ها باشد.

SELECT * FROM Customers WHERE city LIKE '%L%'; علامتی درصدی که در ابتدای الگو آمده بیانگر این است که هر حرفی به هر تعدادی می تواند ابتدای نام شهر باشد، یا اینکه اصلا هیچ حرفی نباشد. علامت درصدی که در انتهای الگو نیز آمده است بیان می کند که می تواند با هر حرفی و به هر تعدادی یا هیچ حرفی به پایان برسد.

مثال زیر می گوید که نام شهر با L شروع شود و انتهای آن هر چیزی به هر تعدادی می خواهد باشد.

SELECT * FROM Customers WHERE city LIKE 'L%';

مثال زیر می گوید که نام شهر با هر حرفی و هر تعدادی یا هیچ حرفی شروع شود و فقط در انتها باید و باید با L به پایان برسد.

SELECT * FROM Customers WHERE city LIKE '%L';

در مثال زیر به همراه LIKE از AND و OR استفاده می کنیم که بگوییم نام مشتری یا با حرف a شروع شود یا با حرف b.

SELECT * FROM Customers WHERE CustomerName LIKE 'a%' OR CustomerName LIKE 'b%';

گاهی هم شاید نیاز باشد که از هر دو علامت به همراه هم استفاده کرد. مثلا در مثال زیر، فقط مشتریانی را باز می گرداند که حرف دوم نام آن ها r باشد.

SELECT * FROM Customers WHERE CustomerName LIKE '_r%';

و در آخر اینکه اگر الگو را بدون هیچ علامتی بکار ببریم یعنی باید مقدار ستون دقیقا شبیه چیزی که نوشته شده است باشد، و کار علامت مساوی را انجام می دهد. مثلا در مثال زیر نام کشور باید دقیقا Spain باشد، کوچک و بزرگ بودن حروف مهم نیست.

SELECT * FROM Customers WHERE Country LIKE 'Spain';