نحوه نوشتن پرسوجوهای SQL بافاصله در نام ستون ها

نحوه نوشتن پرسوجوهای SQL بافاصله در نام ستون ها

نوشته شده توسط: تیم فنی نیک آموز
۰۲ بهمن ۱۴۰۰
زمان مطالعه: 32 دقیقه
۱
(۱)

مقدمه

در این مقاله قصد داریم یاد بگیریم که چگونه می‌توانیم یک پرس‌وجوی SQL بافاصله در نام ستون بنویسیم. فضاهای خالی در قرارداد نام‌گذاری نام شی پایگاه‌داده و نام ستون جدول محدود شده است. اگر می‌خواهید فضای خالی را در نام شی یا نام ستون قرار دهید، پرس‌وجو و کد برنامه باید متفاوت نوشته شوند. هنگام نوشتن پرس‌وجوهای پویا SQL باید مراقب و دقیق باشید. این مقاله توضیح می‌دهد که چگونه می‌توانیم نام اشیاء و ستون‌ها را با فضای خالی در SQL Server و MySQL مدیریت کنیم.

نحوه نوشتن پرس‌وجوی SQL بافاصله در نام ستون‌ها در SQL Server

در SQL Server می‌توانیم نام ستون را بافاصله در براکت یا پرانتز مشخص کنیم. اجازه دهید با چند مثال مفهوم را بهتر توضیح دهیم.

دوره کوئری نویسی نیک آموز

فاصله در نام شی پایگاه‌داده

فرض کنید می‌خواهیم جدولی به نام جدول Employee بسازیم. برای ایجاد جدول کوئری زیر را ایجاد می‌کنیم:

use DemoDatabase
go
create table Employee Table
Employee_ID int,
first_name varchar(50),
first_name varchar(50),
Dept_id int,
grade char(5)

وقتی کوئری را اجرا می‌کنیم، خطای زیر را دریافت می‌کنیم:

Msg 156, Level 15, State 1, Line 3

نحو نادرست در نزدیکی کلمه کلیدی “جدول” (یعنی عبارتی که در کنار جدول نوشته شده است اشتباه می‌باشد).

use DemoDatabase
go
create table [Employee Table]
Employee_ID int,
first_name varchar(50),
last_name varchar(50),
Dept_id int,
grade char(5)

همچنین، می‌توانید نام جدول را بین دو گیومه (“) مشخص کنید.

use DemoDatabase
go
create table "Employee Table"
(
Employee_ID int,
first_name varchar(50),
last_name varchar(50),
Dept_id int,
grade char(5)
)

فاصله در نام ستون‌ها

فرض کنید می‌خواهیم جدولی به نام Countries ایجاد کنیم. جدول دارای دو ستون به نام کد کشور و نام کشور است. در زیر دستور ایجاد جدول آمده است.

create table tblCountries
(
Country code varchar(15),
Country Name varchar(15)
)

برای رفع این خطا باید نام ستون را در براکت مربع مشخص کنیم.

use DemoDatabase
go
create table tblCountries
(
[Country code] varchar(15),
[Country Name] varchar(15)
)

همچنین، می‌توانید نام ستون را بین دو گیومه (“) مشخص کنید.

use DemoDatabase
go
create table tblCountries
(
"Country code" varchar(15),
"Country Name" varchar(15)
)

عبارت SELECT بافاصله در نام ستون

می‌توانید از براکت‌های مربع برای پرکردن ستون‌ها بافاصله در نام استفاده کنید. فرض کنید می‌خواهیم ستون‌های کد کشور و نام کشور را از جدول tblCountries دریافت کنیم.

use DemoDatabase
go
select country code, country name
from tblCountries

دستور SELECT یک خطا برمی‌گرداند:

Msg 207, Level 16, State 1, Line 2

نام ستون «کشور» نامعتبر است.

Msg 207, Level 16, State 1, Line 3

نام ستون «کشور» نامعتبر است.

باید ستون را در براکت یا دو گیومه مشخص کنیم. پرس و جو باید به صورت زیر نوشته شود.

use DemoDatabase
go
/*Query with square bracket*/
select [country code], [country name]
from tblCountries
Go
/*Query with double quotes*/
select "country code", "country name"
from tblCountries
Go

پرس‌وجوی DML SQL بافاصله در نام ستون

وقتی دستورات INSERT، UPDATE و DELETE را اجرا می‌کنیم، باید از یک براکت مربع یا دو گیومه برای مدیریت نام ستون بافاصله استفاده کنیم. در مثال زیر، من در حال درج چند رکورد در tblCountries هستم. جدول دارای ستون‌های کد کشور و نام کشور است.

INSERT INTO tblcountries
([country code],
[country name])
VALUES ('AUS',
'Austrelia')

فرض کنید می‌خواهیم با استفاده از عبارت UPDATE نام کشور را از هند به Bharat تغییر دهیم.

UPDATE tblcountries
SET [country name] = 'Bharat'
WHERE [country name] = 'India'

فرض کنید می‌خواهیم کشوری که کد آن AUS است را با استفاده از عبارت DELETE حذف کنیم.

DELETE FROM tblcountries
WHERE [country code] = 'AUS'

حال، اجازه دهید بفهمیم که چگونه می‌توانیم پرس‌وجوهای SQL را با فاصله در نام ستون ها در MySQL Server 8.0 بنویسیم.

نحوه نوشتن پرس‌وجوی SQL بافاصله در نام ستون در MySQL

فاصله در نام شی پایگاه‌داده

فرض کنید می‌خواهیم جدولی به نام film list بسازیم. برای ایجاد جدول کوئری زیر را اجرا می‌کنیم:

create table film list
(
film_id int,
title varchar(500),
Certificate varchar(10),
duration int,
rental numeric(10,2)
)

وقتی کوئری را اجرا می‌کنیم، خطای زیر را دریافت می‌کنیم:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘list

ERROR 1064 (42000): شما یک خطا در نحو SQL خود دارید. راهنمای مربوط به نسخه سرور MySQL خود را برای نحو مناسب برای استفاده در نزدیکی List بررسی کنید.

برای رفع این خطا می‌توانیم نام جدول را در بک تیک (`) مشخص کنیم. دستور CREATE TABLE به‌صورت زیر نوشته می شود:

create table `film list`
(
film_id int,
title varchar(500),
Certificate varchar(10),
duration int,
rental numeric(10,2)
)

فاصله در نام ستون

فرض کنید می‌خواهیم جدولی با نام tblmultiplex ایجاد کنیم. جدول دارای دو ستون به نام‌های Multiplex name ، Total Cinema screen است. در زیر دستور ایجاد جدول آمده است.

create table tblmultiplex
(
ID int,
Multiplex name varchar(500),
Total Cinema screen int,
Address varchar(500),
CityID int
)

وقتی کوئری را اجرا می‌کنیم با خطای زیر مواجه می‌شویم:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘name varchar(500)

ERROR 1064 (42000): شما یک خطا در نحو SQL خود دارید. راهنمای مربوط به نسخه سرور MySQL خود را برای نحو مناسب برای استفاده در نزدیکی name varchar بررسی کنید.

برای رفع این خطا می‌توانیم از (‘)backticks استفاده کنیم. دستور ایجاد جداول باید به‌صورت زیر نوشته شود:

create table tblmultiplex
(
ID int,
`Multiplex name` varchar(500),
`Total Cinema screen` int,
Address varchar(500),
CityID int
)

عبارت SELECT بافاصله در نام ستون

می‌توانید از بک‌تیک‌ها برای پرکردن ستون‌ها بافاصله در نام استفاده کنید. فرض کنید می‌خواهیم multiple name و ستون‌های Total Cinema Screen را از جدول tblmultiplex پر کنیم.

select multiple name, Total Cinema Screen from tblmultiplex

با خطای زیر مواجه خواهیم شد:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘screen from tblmultiplex’ at line 1

ERROR 1064 (42000): شما یک خطا در نحو SQL خود دارید. راهنمای مربوط به نسخه سرور MySQL خود را برای نحو مناسب برای استفاده در نزدیکی «screen from tblmultiplex» در خط ۱ بررسی کنید.

اجازه دهید کوئری‌های SELECT را با استفاده از بکتیک (‘) بنویسیم. باید به‌صورت زیر نوشته شود:

select `multiple name`, `Total Cinema Screen` from tblmultiplex

همان‌طور که مشاهده می‌کنید، کوئری با موفقیت اجرا شد.

پرس‌وجوی DML SQL با فاصله در نام ستون ها

هنگامی که عبارت‌هایINSERT، UPDATE و DELETE را در سرور MySQL اجرا می کنیم، باید از بکتیک ها برای مدیریت نام ستون با فاصله استفاده کنیم. در مثال زیر چند رکورد را در جدول tblmultiplex درج می کنم. جدول دارای نام multiplex name و Total cinema screen است.

insert into tblmultiplex (ID, `multiplex name`, `Total cinema screen`, address, CityID)
values
(۲,'Big Cinema Inc',3,'Ashram Road', 1);

insert into tblmultiplex (ID, `multiplex name`, `Total cinema screen`, address, CityID)
values
(۳,'Wide Angal Mehsana',3,'Near Balaji township', 2);

فرض کنید می خواهیم با استفاده از عبارت UPDATE نام مالتی پلکس را از Big Cinema Inc به Cinemax تغییر دهیم.

UPDATE tblmultiplex
SET `multiplex name` = 'Cinemax'
WHERE `multiplex name` = 'Big Cinema Inc'

فرض کنید می‌خواهیم جزئیات مالتی پلکسی که نام آن سینمای PVR است را با استفاده از عبارت DELETE حذف کنیم.

delete from tblmultiplex where `multiplex name`='PVR Multiplex';

خلاصه

در این مقاله، یاد گرفتیم که چگونه می‌توانیم یک SQL Query با فاصله در نام ستون‌ها بنویسیم. موارد زیر را پوشش دادیم:

  • ایجاد یک جدول SQL Server و MySQL با:
  • فضاهای خالی در نام جدول
  • فضاهای خالی در نام ستون های جدول
  • نحوه اجرای دستورات DML روی ستون‌ها بافاصله. دستورات DML روی SQL Server و MySQL Server اجرا شدند.

منبع:

https://www.sqlshack.com/how-to-write-sql-queries-with-spaces-in-column-names/

چه رتبه ای می‌دهید؟

میانگین ۱ / ۵. از مجموع ۱

اولین نفر باش

title sign
دانلود مقاله
نحوه نوشتن پرسوجوهای SQL بافاصله در نام ستون ها
فرمت PDF
16 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
239 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
دیدگاه کاربران