用SQLyog的时候,创建的表中的汉字为啥显示是问号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SQLyog的时候,创建的表中的汉字为啥显示是问号?相关的知识,希望对你有一定的参考价值。

即使直接表中改,还是改不过来啊

原因:

teacName字段后面的字符错误。

解决方法:

1、点击Objects查看这个表的详细信息。

2、如图,teacName这个字段的字符集不是utf8。

3、可以在这张表上右击,选择Alter Table...。

4、然后在teacName字段后面的字符集中选择utf8_general_ci,点击下面的Alter。

5、修改成功之后点击确定。

6、再次插入中文数据,中文就不是问号了。

参考资料:

百度百科-SQLyog

参考技术A 主要原因就是乱码了!
一次执行如下语句

show VARIABLES like 'character_%';
set character_set_server=utf8;
show full columns from t_org;
show table status from hrpa like '%t_%';
show charset;
-----------------------------------都执行一下看看,出现的都变成UTF-8
最后进入

my.ini

[mysql]
no-auto-rehash
default-character-set = utf8

[mysqld]
port=3306
default-character-set=utf8
default-storage-engine=INNODB

然后又进入相应数据库配置文件

db.opt

文件内容

default-character-set=utf8
default-collation=utf8_general_ci

-------------------------------------------
之后把你插入的sql文件另存为UTF-8 或是 unicode编码格式,插入即可。

-------------如果不是mysql数据库,那么也是一个处理方式。本回答被提问者采纳
参考技术B 你装mysql的时候 存储格式 有没调成 gb2312的??

无法从 SQLPLUS 中的 select 语句创建的表中选择数据

【中文标题】无法从 SQLPLUS 中的 select 语句创建的表中选择数据【英文标题】:FAIL to SELECT data from table that created by select statement in SQLPLUS 【发布时间】:2014-10-15 17:09:25 【问题描述】:

这是我的sql语句

它用于“查找每个职位的平均工资。显示职位和平均工资金额为3000或更高的人的数量。”

CREATE TABLE avgSal AS (
SELECT job, AVG(sal) AS "sal" FROM Emp GROUP BY job);

SELECT * FROM avgSal WHERE sal>3000;

然后sqlplus说

ORA-00904: "SAL": invalid identifier

我进入第二条sql语句后

有人可以帮我吗? /(T_T)\

这是我第一次使用 *** (-,-)/

【问题讨论】:

也许检查你的字段的大小写,有时它会有所不同。 欢迎来到***! :) 首先这似乎是个坏主意……如果 EMP 表被更新会发生什么?您也必须更新此表吗?为什么不把它做成一个临时表,当你只需要并且总是有更新的数据时可以查询呢?试着在你的专栏上加反引号 【参考方案1】:

您引用了列名"sal",因此它区分大小写。

引用时必须引用该列:

SELECT * 
FROM avgSal 
WHERE "sal" > 3000;

通常最好避免使用带引号的标识符。

有关标识符的更多详细信息可以在手册中找到:http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements008.htm#SQLRF00223

但是你真的不需要创建一个表来实现你想要的:

select *
from (
  SELECT job, 
         avg(sal) AS avg_sal 
  FROM Emp 
  GROUP BY job
) t
where avg_sal > 3000;

另一种选择是使用公用表表达式:

with avgSal as (
  SELECT job, 
         avg(sal) AS avg_salary
  FROM Emp 
  GROUP BY job
) 
select *
form avgSal
where avg_salary > 3000;

【讨论】:

这里唯一需要注意的是 MySQL 不支持 with 运算符,因为这就是 OP 正在使用的......但不管我 +1 :) @JohnRuddell:错误消息清楚地表明 OP 正在使用 Oracle。 哦,我的糟糕,我什至没看到...然后是 nvm :) 非常感谢。 (^v^)/ 我希望有一天我能投票给你的答案。

以上是关于用SQLyog的时候,创建的表中的汉字为啥显示是问号?的主要内容,如果未能解决你的问题,请参考以下文章

sqlyog为啥用不了reference

myeclipse10怎么读取到SQLyog中的表中的数据

为啥我的表中的第一节标题没有显示?

关键词若create在sqlyog中编辑,若输入正确,则显示为啥颜色

编辑java程序时,DOS环境下汉字显示乱码,为啥?

delphi中SQL文取出的汉字为乱码