iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Oracle别名如何使用
  • 871
分享到

Oracle别名如何使用

2023-06-30 05:06:46 871人浏览 独家记忆
摘要

本篇内容主要讲解“oracle别名如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle别名如何使用”吧!今天在写一个简单的sql语句并执行时抛出了如下图所示的一个错误提示信息!恩,

本篇内容主要讲解“oracle别名如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle别名如何使用”吧!

今天在写一个简单的sql语句并执行时抛出了如下图所示的一个错误提示信息!

Oracle别名如何使用

恩,此异常信息很明显,在SQL语句中标示符的长度过长了,简短一些就应该没问题了,我查看了一下我的SQL语句发现是我的查询字段的列别名过长,实际测试的结果为列字段别名的最大长度为30个字节!

注意:我的测试数据库是ORACLE 11.2.0.4.0(如下图所示)

Oracle别名如何使用

ok,问题搞定了,对应的更多的错误信息及解决方案,也可以从ORACLE的错误信息手册中查询比如(针对此问题):

Error:
ORA-00972: identifier is too long 
Cause:
You tried to reference a table, cluster, view, index, synonym, tablespace, or username with a value that was longer than 30 characters. 
Action:
The options to resolve this Oracle error are: 
Names for tables, clusters, views, indexes, synonyms, tablespaces, and usernames must be 30 characters or less. You must shorten the name to no more than 30 characters for these objects.

以上内容是我分析和解决我的SQL语句中,查询时列的别名过长问题的过程,也是我分享这篇小博文的引子!

下面是我针对别名的一个小结(注意:我的测试数据库是ORACLE 11.2.0.4.0 字符集是AMERICAN_AMERICA.AL32UTF8)

一:使用别名的好处

   1)简化SQL语句的书写,特别是多表关联查询且表名较长时

   2)增强SQL语句的可读性,特别是当查询出来的列字段较为复杂时效果更为明显

二:测试小结

1)测试时使用的简单表结构

CREATE TABLE SALES.STUDENT(  ID        NUMBER,  NAME      VARCHAR2(20 BYTE),  SEX       CHAR(1 BYTE),  BIRTHDAY  DATE,  HOBBY     VARCHAR2(20 CHAR))

2)测试使用的若干条测试数据

Oracle别名如何使用

3)列名的最大长度——30个字节

SELECT ID ABCDEABCDEABCDEABCDEABCDEABCDE--30个英文大写字符,正常执行FROM STUDENTSELECT ID ABCDEABCDEABCDEABCDEABCDEABCDE1--多加另一个1就会报ORA-00972:identifier is to longFROM STUDENTSELECT ID 我们学校的好学生学号--10个中文汉字字符,正常执行FROM STUDENTSELECT ID 我们学校的好学生学号1--多加另一个1就会报ORA-00972:identifier is to longFROM STUDENT

4)是否可以使用AS关键字——可以使用

SELECT ID AS 学号--使用AS的情况,正常执行FROM STUDENTSELECT ID 学号--不适用AS也可以正常执行,而且代码更简洁,建议使用方式FROM STUDENT

5)是否可以以数字开头——可以以数字开头但必须使用双引号括起来

SELECT ID 123学号--执行时报"ORA-00923: FROM keyWord not found where expected"FROM STUDENTSELECT ID "123学号"--正常执行

6)对于中文别名双引号、单引号、不使用引号的区别(注意:全是英文的单引或双引符号)——使用单引符号时报错

SELECT ID 学号--正常执行FROM STUDENTSELECT ID "学号"--正常执行FROM STUDENTSELECT ID '学号'--执行时报"ORA-00923: FROM keyword not found where expected"FROM STUDENTSELECT ID StudentId--正常执行FROM STUDENTSELECT ID "StudentId"--正常执行FROM STUDENTSELECT ID 'StudentId'--执行时报"ORA-00923: FROM keyword not found where expected"FROM STUDENT

7)是否可以使用其他的特殊符号比如:小括号——可以使用但必须使用双引号括起来(注意:其他的特殊符号可能类似,这里以小括号为例做了测试,其他情况如果感兴趣可以自己动手试试)

SELECT ID AS (学号)--英文小括号且使用AS的情形,执行时报"ORA-00923: FROM keyword not found where expected"FROM STUDENTSELECT ID (学号)--英文小括号,执行时报"ORA-00904: "ID": invalid identifier"FROM STUDENTSELECT ID AS "(学号)"--正常执行FROM STUDENTSELECT ID AS(学号)--中文小括号且使用AS的情形,执行时报"ORA-00923: FROM keyword not found where expected"FROM STUDENTSELECT ID(学号)--中文小括号,执行时报"ORA-00904: "ID": invalid identifier"FROM STUDENTSELECT ID "(学号)"--正常执行FROM STUDENT

8)是否可以保留别名中的空格——可以,但必须使用双引号括起来

SELECT ID 学 号--执行时报"ORA-00923: FROM keyword not found where expected"FROM STUDENTSELECT ID "学 号"--正常执行FROM STUDENTSELECT ID XUE HAO--执行时报"ORA-00923: FROM keyword not found where expected"FROM STUDENTSELECT ID "XUE HAO"--正常执行FROM STUDENT

9)使用别名时因SQL语句各子句的执行顺序引起的问题

           ORACLE中的SQL语句, 

            1.WHERE/GROUP BY/HAVING子句中只能直接使用栏位或者常量,而不能使用栏位的别名,除非这个别名来自                   子查询之中,如:SELECT .... FROM (SELECT COLUMN_NAME C FROM TABLE_NAME) WHERE C > 1
            2.而ORDER BY 则可以直接使用别名,如SELECT COLUMN_NAME C FROM TABLE_NAME ORDER BY C

                这和SQL的执行顺序是有关的,SQL语句的执行顺序大致如下所示:

                1. FROM语句

                2. WHERE语句(结合条件)

                3. START WITH语句

                4. CONNECT BY语句

                5. WHERE语句

                6. GROUP BY语句

                7. HAVING语句

                8. MODEL语句

                9. SELECT语句

                10. UNION、MINUS、INTERSECT等集合演算演算

                11. ORDER BY语句

           我们可以看到SELECT子句是在WHERE子句执行后才执行的,当SELECT子句执行时查询列的别名才生成,所以在            WHERE子句中根本看不到列的别名,当然,自然也就无法引用列的别名了。 所以字段、表达式的别名在WHERE子            句和GROUP BY子句都是不能使用的,而在ORDER BY中不仅可以使用别名,甚至可以直接使用栏位的下标来进行            排序,如:ORDER BY ID或者ORDER BY 1

SELECT ID ID_ FROM STUDENT WHERE ID_=11--执行时报"ORA-00904: "ID_": invalid identifier"SELECT ID ID_ FROM STUDENT WHERE ID=11--正常执行SELECT ID ID_ FROM STUDENT WHERE ID='11'--正常执行,注意:ID是NUMBER类型的数据SELECT ID ID_ FROM STUDENT WHERE ID="11"--执行时报"ORA-00904: "11": invalid identifier",注意:ID是NUMBER类型的数据SELECT ID,COUNT(*) CFROM STUDENTGROUP BY ID      HAVING C>0--执行时报"ORA-00904: "C": invalid identifier"      SELECT ID,COUNT(*) CFROM STUDENTGROUP BY ID      HAVING Count(*)>0--正常执行   SELECT ID,COUNT(*)CFROM STUDENTGROUP BY ID      HAVING COUNT(*)>0ORDER BY C--正常执行SELECT ID ID_FROM STUDENTORDER BY ID_--正常执行SELECT ID ID_FROM STUDENTORDER BY 1--正常执行

10)别名是否区分大小写——区分大小写(注意:当不用双引号括起来的时候英文字符大小写不敏感)

SELECT XUEHAOFROM (SELECT ID XUEHAO FROM STUDENT) WHERE XUEHAO > 1--正常执行SELECT XUEHAOFROM (SELECT ID xuehao FROM STUDENT) WHERE XUEHAO > 1--正常执行SELECT XUEHAOFROM (SELECT ID "XUEHAO" FROM STUDENT) WHERE XUEHAO > 1--正常执行SELECT XUEHAOFROM (SELECT ID "xuehao" FROM STUDENT) WHERE XUEHAO > 1--执行时报"ORA-00904: "XUEHAO": invalid identifier"SELECT XUEHAOFROM (SELECT ID "xuehao" FROM STUDENT) WHERE xuehao > 1--执行时报"ORA-00904: "XUEHAO": invalid identifier"SELECT XUEHAOFROM (SELECT ID "xuehao" FROM STUDENT) WHERE "xuehao" > 1--执行时报"ORA-00904: "XUEHAO": invalid identifier"SELECT "xuehao"FROM (SELECT ID "xuehao" FROM STUDENT) WHERE "xuehao" > 1--正常执行

这个小例子也可以看到SQL语句是先执行WHERE子句然后才执行SELECT子句的!

到此,相信大家对“Oracle别名如何使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Oracle别名如何使用

本文链接: https://www.lsjlt.com/news/327552.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle别名如何使用
    本篇内容主要讲解“Oracle别名如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle别名如何使用”吧!今天在写一个简单的SQL语句并执行时抛出了如下图所示的一个错误提示信息!恩,...
    99+
    2023-06-30
  • Oracle别名使用要点小结
    目录一:使用别名的好处二:测试小结总结今天在写一个简单的SQL语句并执行时抛出了如下图所示的一个错误提示信息! 恩,此异常信息很明显,在SQL语句中标示符的长度过长了,简短一些就应...
    99+
    2024-04-02
  • TypeScript如何使用类型别名
    这篇文章主要介绍了TypeScript如何使用类型别名,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类型别名类型别名会给一个类型起个新名字,...
    99+
    2024-04-02
  • 如何使用 PHP 函数别名?
    函数别名允许为现有函数创建新名称,可创建别名的方式为:使用 function_alias() 函数指定要创建的新函数名称和要赋予别名的现有函数名称,如创建 "my_strlen" 的 "...
    99+
    2024-04-16
    php 函数别名 代码可读性
  • linux如何定义和使用别名
    这篇文章给大家分享的是有关linux如何定义和使用别名的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如何定义和使用别名要定义 Git 的别名,请使用 git config 命令,加上别名和要替...
    99+
    2023-06-15
  • Linux中如何使用命令行别名
    这篇文章主要为大家展示了“Linux中如何使用命令行别名”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何使用命令行别名”这篇文章吧。Linux命令行别名非常适合帮助你提高工作效率。...
    99+
    2023-06-16
  • vue3使用别名报错如何解决
    这篇“vue3使用别名报错如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3使用别名报错如何解决”文章吧。解决v...
    99+
    2023-07-02
  • C#中如何使用别名指示符
    这篇文章将为大家详细讲解有关C#中如何使用别名指示符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C#别名指示符是什么?通过C#别名指示符我们可以为某个类型起一个别名,主要用于解决两个命名空...
    99+
    2023-06-17
  • js如何在解构中使用别名
    这篇文章给大家分享的是有关js如何在解构中使用别名的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在解构中使用别名解构赋值是一个JavaScript表达式,它可以将数组中的值或对象中的属性解构缩不同的变量中。不必使...
    99+
    2023-06-27
  • SQLite中的SELECT子句如何使用别名
    小编给大家分享一下SQLite中的SELECT子句如何使用别名,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SQLite中的SELECT子句使用别名开发者可以使用AS关键字为指定的...
    99+
    2024-04-02
  • vite中如何使用@ 配置路径别名
    目录vite使用@ 配置路径别名vite配置别名@以及别名输入提示配置别名别名提示vite使用@ 配置路径别名 报错 Cannot find module 'XXXXXX &...
    99+
    2022-12-08
    vite使用@ vite配置路径别名 vite路径别名
  • es6如何在解构赋值时使用别名
    这篇文章主要为大家展示了“es6如何在解构赋值时使用别名”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“es6如何在解构赋值时使用别名”这篇文章吧。解构赋值时使用...
    99+
    2024-04-02
  • C++11/14如何使用typedef和using定义类型别名和别名模版
    目录定义类型别名使用using定义类型别名定义别名模板总结使用typedef定义类型别名 C++11/14标准中引入了一种新的语法:别名声明。它是一种定义类型别名和别名模版的方式,可...
    99+
    2023-05-17
    C++定义类型别名模版 C++ typedef using
  • SSH如何设置别名
    这篇文章主要为大家展示了“SSH如何设置别名”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SSH如何设置别名”这篇文章吧。通常我们在 Termianl 下用 ssh 链接远程主机的时候,每次都需...
    99+
    2023-06-27
  • oracle数据库名和实例名区别
    oracle数据库名唯一标识数据库,存储于数据库目录,可创建多个数据库,每个数据库有唯一的数据库名;而实例名唯一标识数据库的运行实例,在操作系统中创建,每个数据库可有多个实例,每个实例有...
    99+
    2024-05-11
    oracle
  • 如何使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名
    这篇文章主要介绍如何使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL中查询所有数据库名...
    99+
    2024-04-02
  • Android中如何使用签名
    这期内容当中小编将会给大家带来有关Android中如何使用签名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、使用pem签名    (一) apk签名命令java ...
    99+
    2023-05-30
    android
  • oracle如何查看用户名和密码
    oracle 数据库中查看用户名和密码的方法包括:查询 dba_users 表(dba 权限)查询 user_users 表(普通用户)使用 sys.user_name 函数使用 sys...
    99+
    2024-05-13
    oracle
  • oracle如何根据字段名查表名
    在Oracle数据库中,可以使用以下SQL语句来查找包含特定字段名的表名: SELECT table_name FROM a...
    99+
    2024-04-17
    oracle
  • Angular10如何配置@路径别名
    这篇文章将为大家详细讲解有关Angular10如何配置@路径别名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Angular10中配置@路径别名Angular10中的项目文件结构 中文网站Angular1...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作