Oracle一双引号的不一样(oracle 两个单引号)

Oracle:一双引号的不一样

在Oracle数据库中,双引号是一个很重要的概念。双引号可以用来明确地指定对象(例如表、列、显示名称)的名称。在同一个数据库中,不同的对象可以有相同的名称,这时我们就需要使用双引号来区分不同的对象。

例如,我们在创建一个表时可以使用以下命令:

create table student (id number, name varchar2(20));

这里表的名称是student,没有使用双引号。如果我们想要创建一个名称为“Student”的表,我们需要使用双引号:

create table “Student” (id number, name varchar2(20));

在这种情况下,Oracle会把表名当做区分大小写的名称来处理。也就是说,如果我们想要查询这个表,必须使用双引号括起来的表名:

select * from “Student”;

如果我们不使用双引号,就会得到一个错误:

ORA-00942: table or view does not exist

这是因为Oracle认为我们在引用一个名字为“STUDENT”的表,而实际上我们创建的表名是“Student”。如果我们在创建表时使用了双引号,那么在引用表时也应该使用双引号。

除了表名之外,列名也可以使用双引号来区分大小写。例如,我们可以创建一个名为“id”的列:

create table student (“id” number, name varchar2(20));

在这种情况下,我们也必须使用双引号来引用这个列:

select “id” from student;

如果我们不使用双引号,就会得到一个错误:

ORA-00904: “ID”: invalid identifier

这是因为Oracle认为我们在引用一个名字为“ID”的列,而实际上我们创建的列名是“id”。

除了大小写区分之外,双引号还可以用来引用包含特殊字符的名称。例如,我们可以创建一个名字包含空格和其他特殊字符的表:

create table “my table” (“id” number, “first name” varchar2(20), “last name” varchar2(20));

在这种情况下,我们必须使用双引号来引用这个表和列:

select “id”, “first name”, “last name” from “my table”;

在Oracle中,双引号是一个非常重要的概念。它可以用来区分大小写、避免重名以及引用包含特殊字符的名称。但是,在使用双引号时也要注意不要过度使用,因为使用双引号可能会影响查询性能。

以下是一些关于双引号的示例代码:

–创建一个名为”table”的表

create table “table” (id number, name varchar2(20));

–引用名为”table”的表

select * from “table”;

–创建一个名为”First_Name”的列和一个名为”Last_Name”的列

create table employee (“First_Name” varchar2(20), “Last_Name” varchar2(20));

–引用名为”First_Name”的列

select “First_Name” from employee;

–创建一个名为”my table”的表,包含一个名为”first name”的列和一个名为”last name”的列

create table “my table” (“first name” varchar2(20), “last name” varchar2(20));

–引用名为”my table”的表以及名为”first name”和”last name”的列

select “first name”, “last name” from “my table”;


数据运维技术 » Oracle一双引号的不一样(oracle 两个单引号)