日期:2014-05-16  浏览次数:20693 次

[急]MySQL中建表不能使用中文字段吗?
刚学Mysql遇到问题挺多的,希望大家能多多帮忙哦!谢谢了

mysql> CREATE TABLE 销售小姐(雇员号 INT,姓名 VARCHAR(40), 佣金 TINYINT );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??售小姐(雇员号 INT,姓名 VARCHAR(40), 佣金 TINYINT )' at line 1

------解决方案--------------------
别用!!!!!!
------解决方案--------------------
可以使用,但建议不要用。如果是开发团队中,一般项目负责人会告诉大家,禁止使用中文表名,字段名,和程序中的变量名.
------解决方案--------------------
SQL code
mysql> set names 'gb2312';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE 销售小姐(雇员号 INT,姓名 VARCHAR(40), 佣金 TINYINT );
Query OK, 0 rows affected (0.16 sec)

mysql> desc 销售小姐;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| 雇员号 | int(11)     | YES  |     | NULL    |       |
| 姓名   | varchar(40) | YES  |     | NULL    |       |
| 佣金   | tinyint(4)  | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.09 sec)

mysql>

------解决方案--------------------
你的逗号,好像是中文的
------解决方案--------------------
create table 销售小姐(雇员号 int, 姓名 varchar(40),佣金 tinyint4 );

建议你原样复制我的语句。你的括号不对。
------解决方案--------------------
虽然可以用中文字段或者表名,但确实不建议使用,这会给你造成日后的恶梦。

用中文名,需要使用``分隔符。

mysql> create table `中文表名`(`中文字段` int);
Query OK, 0 rows affected (0.00 sec)

mysql> insert into `中文表名` values(1);
Query OK, 1 row affected (0.00 sec)

mysql> select * from `中文表名`;
+----------+
| 中文字段 |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)

上述用法可以直接拷贝
------解决方案--------------------
几乎编程语言都是不建议使用中文的,还有的用都不能用
------解决方案--------------------
用中文字段很难长工资的!呵呵
------解决方案--------------------
建议不要用中文,遇到编码问题搞死.
------解决方案--------------------
mysql> set names 'gb2312';
把字符集设置为这个
------解决方案--------------------
可以使用中文 做字段名 但是不介意使用 
因为涉及到字符集的问题。。 只有使用合适的字符集才能识别中文字