相关文章推荐
谦和的皮带  ·  datagrip连接sql ...·  3 周前    · 
腹黑的脆皮肠  ·  HTML ...·  1 年前    · 
风流倜傥的杨桃  ·  python ...·  1 年前    · 
打酱油的油条  ·  个人亲试:opencv ...·  1 年前    · 
·  阅读 如何编写列名中带有空格的SQL查询

在这篇文章中,我们将学习如何写出列名中带有空格的SQL查询。空格在数据库对象的名称和表的列名的命名规则中受到限制。如果你想在对象名或列名中加入空格,查询和应用代码必须以不同的方式编写。在编写动态SQL查询时,你必须小心和精确。本文解释了我们如何在SQL Server和MySQL中处理带有空白的对象名称和列。

如何在SQL Server中编写列名中有空格的SQL查询

在SQL Server中,我们可以在方括号或小括号中指定带有空格的列名。让我们通过一些例子来理解这个概念。

数据库对象名称中的空格

假设我们想创建一个名为 雇员表 .我们创建以下查询来创建该表。

use DemoDatabase
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 Incorrect syntax near the keyword ‘Table’.

为了解决这个错误,我们可以在方括号中指定表名。

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

另外,你也可以在双引号(")之间指定表名。

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

列名中的空格

假设我们想创建一个名为 tblCountries.该表有两列,分别为国家代码国家名称。下面是创建表的语句。

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

为了解决这个错误,我们必须在方括号中指定列名。

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

或者,你也可以在双引号(")之间指定列名。

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

在列的名称中带有空格的SELECT语句

你可以使用方括号来填充名称中带有空格的列。假设我们想从tblCountries表中获得国家代码国家名称列。

use DemoDatabase
select  country code, country name
from tblCountries

SELECT语句返回一个错误。

Msg 207, Level 16, State 1, Line 2
Invalid column name ‘country’.
Msg 207, Level 16, State 1, Line 3
Invalid column name ‘country’.

我们必须在方括号或双引号中指定列。查询应该写成如下。

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

在列名中带有空格的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'

假设我们想用DELETE语句删除代码为AUS的国家。

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

现在,让我们了解如何在MySQL Server 8.0中编写列名中带有空格的SQL查询。

如何在MySQL中写出列名中带有空格的SQL查询

数据库对象名称中的空格

假设我们想创建一个名为电影列表的表。我们运行以下查询来创建该表

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

当我们执行该查询时,我们将收到以下错误。

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.该表有两列,分别为多路影院名称影院总屏幕。下面是创建表的语句。

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),

为了解决这个错误,我们可以使用反斜线。创建表的语句应该写成以下样子。

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

列名中带有空格的SELECT语句

你可以使用反符号来填充名称中带有空格的列。假设我们想从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

让我们使用反斜线来写SELECT查询。它应该写成以下样子。

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

正如你所看到的,该查询被成功执行。

列名中带有空格的DML SQL查询

当我们在MySQL服务器上运行INSERT、UPDATE和DELETE语句时,我们必须使用背号来处理带有空格的列名。在下面的例子中,我在tblmultiplex表中插入一些记录。该表有多路电视名称和总电影屏幕列。

insert into tblmultiplex (ID, `multiplex name`, `Total cinema screen`, address, CityID )
values
(2,'Big Cinema Inc',3,'Ashram Road', 1);
insert into tblmultiplex (ID, `multiplex name`, `Total cinema screen`, address, CityID )
values
(3,'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'

假设我们想用DELETE语句删除名称为PVR影院的多路影院的详细信息。

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

在这篇文章中,我们学习了如何写一个列名中带有空格的SQL查询。我已经涵盖了以下内容。

  • 创建一个SQL Server和MySQL表与。
  • 表名中的空白
  • 表的列名中的空格
  •