初学SQL:检索数据时出现relation ‘table_name‘’ does not exist的问题
原来是因为table_name大写之后出现的问题,这时候,需要对table_name加上双引号:
没有问题。
那么我们再次测试全小写的table_name不加双引号的情况呢:
小写的table_name,就不会出现这个问题,当然了,实测再加上双引号结果一样,这里就不贴图了。
以下内容来自 https://blog.csdn.net/dream20nn/article/details/51790106:
最近开发一个WEB的ETL工具需要用到不同的数据源。第一次用POSTGRESQL发现一个双引号引发的问题:
标准的SQL是不区分大小写的。但是PostgreSQL对于数据库中对象的名字允许使用支持大小写区分的定义和引用方法。方式就是在DDL中用双引号把希望支持大小的对象名括起来。
比如希望创建一个叫AAA的表。如果用CREATE TABLE AAA (...);的话,创建出来的表实际上是aaa。
如果希望创建大写的AAA表的话,就需要用CREATE TABLE "AAA" (...);这种双引号的方式定义对象名。
这样写的缺点是查询语句必须也使用双引号的方式引用对象名。比如SELECT * FROM "AAA";否则PostgreSQL缺省会去找aaa这个对象,然后返回aaa不存在的错误。需要注意的是不仅仅是表可以这样定义和引用,对PostgreSQL中的任意对象(比如列名,索引名等)都有效。
实际上传统的SQL都是不区分大小写的,所以只要DDL和DLL按照传统(不使用双引号)的方式操作数据库对象不会有任何问题。问题出在如果表是通过PostgreSQL的pgAdmin III 工具创建的话,缺省是按照有双引号的方式创建对象的,所以DLL里面必须也要按照有双引号的方式使用。但是这种写法不是标准的,如果是通过一些通用库函数访问数据库的话,会不被支持。
建议:
1.不推荐使用pgAdmin III这个工具创建数据库对象。还是应该手工编写DDL语句。
2.不推荐在DDL里用双引号的方式创建区分大小写的对象。
3.PostgreSQL给出的建议是SQL的key word用大写,其他的名称全部使用小写。
初学SQL:检索数据时出现relation ‘table_name‘’ does not exist的问题相关推荐
- java map输出中括号,从地图检索数据时获取双方括号
我将数据存储在Map中,以字符串作为键,以JSONArray作为值的形式存储在Map中,但是在检索数据时,我得到了值的双方括号 这是我的程序 import java.util.Iterator; im ...
- 删除SQL表数据时存在约束的解决方法
这几天在做项目时,清除库中的数据,但是各表之间都存在约束关系,无法使用 ' truncate table 表名 '语句进行操作,通过查询资料,找到了解决方法,当表之间存在约束关联时,想要执行trunc ...
- SQL插入数据时连表查询(利用子查询一次性 insert 多条数据)
标准说明: INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中.使用 SELECT 子查询还可以同时插入多行. INSERT INTO 表名 as a (a. ...
- 《SQL Cookbook》 - 第一章 检索数据
朋友推荐了一本书<SQL Cookbook>,翻译过来就是<SQL经典实例>,讲的都是SQL编写层面的案例,例如获得随机数.NULL值判断.求中位数.日期计算等,都是日常工作中 ...
- 神兵利器——使用LINQ to SQL检索和操作数据库
自.NET 3.0开始,LINQ(Language Integrated Query,整合查询语言)便逐渐出现在.NET开发的各个角落,它不仅提供了一种用于快速检索结构化标记语言(如XML)的方法,而 ...
- python能查询MySQL视图_python - 在使用Django的视图中,如何从mysql检索数据,并显示它_python_酷徒编程知识库...
这是模型:from django.db import models # Create your models here. class Contact(models.Model): name = mod ...
- sql server 分区_使用分区归档SQL Server数据
sql server 分区 The Partition feature was introduced in the SQL Server 2005. This article is to cover ...
- SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据
SQL基础操作_1_检索数据 目录 7.1.1 数据集 7.1.2 学生选课关系表 7.1.3 供应商关系表 7.2.1 从表中查询所有行和列 7.2.2 从表中查询部分行 7.2.3 查询满足某个条 ...
- Oracle入门(十四G)之PL / SQL中检索数据
一.PL / SQL中检索数据 (1)PL / SQL中的SQL语句 可以在PL / SQL中使用以下几种SQL语句: •SELECT从数据库检索数据. •DML语句,例如INSERT,UPDATE和 ...
最新文章
- 2020人工神经网络第一次作业-参考答案第五部分
- mysql获取用户名_mysql-LEFT JOIN 3列获取用户名
- 数据库的日常管理经验浅谈
- rabbitmq的安装全过程
- redis修改端口号后还是占用6379_Redis分布式缓存分布式集群搭建
- c++ 函数返回空_Python all() 函数
- Python案例:求满足条件的人数
- mysql清空数据表信息
- ucoreOS_lab8 实验报告
- 蓝桥杯2015年第六届C/C++省赛A组第七题-手链样式
- CoreData 执行executefetchrequest卡死解决办法
- Java自学要多久?
- 字节流与字符流的区别
- 游戏开发 cocosBuilder cocosCreator cocosPods
- SketchUp 建筑分析图制作国外教程
- ADC转换速率kSPS定义
- 修真院教学模式四大体系之学习方法篇
- c#调用新浪微博开放平台接口
- stimulsoft入门教程:报表与页面上的图表(一)
- 毕业论文参考文献引用
热门文章
- 分布式系统常见负载均衡算法
- Sybase通过游标+行锁进行多线程下的ID采番
- (附源码)SSM萌宠宠物网店的设计与实现 毕业设计 011042
- 四色着色问题 c语言编程,四色问题C语言怎么解决
- 洛谷 P1927 防护伞
- 金融IC卡进入小额支付领域 “一卡多用”取得突破进展
- 活动制作服务器,策划制作服务器“假象”,频道爆满却依然没人?脱坑玩家或将增多...
- 《围城》读后感 钱钟书
- 史上最强最全网站资源整理
- JSP实现添加图书、修改图书以及删除图书