用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的时候,创建的表中的汉字为啥显示是问号?的主要内容,如果未能解决你的问题,请参考以下文章