美文网首页
2019-05-18

2019-05-18

作者: 汗咕嘟 | 来源:发表于2019-05-18 11:17 被阅读0次

    SQL创建表相关

    创建表(mysql语法)格式如下:(比如我们要创建一个学生表)

    CREATE TABLE Student
    (
        s_id    VARCHAR(20) PRIMARY KEY, #这是主键的一种声明方式
        s_name  VARCHAR(20) NOT NULL DEFAULT '', #定义默认值为空字符串
        s_birth VARCHAR(20) NOT NULL DEFAULT '', 
        s_sex   VARCHAR(10) NOT NULL DEFAULT '' #这里不能有逗号
    );
    

    Of course, 主键声明可以用如下方式:

    #创建课程表
    Create TABLE Course
    (
        c_id    VARCHAR(20),
        c_name  VARCHAR(20) NOT NULL DEFAULT '',
        t_id    VARCHAR(20) NOT NULL,
        PRIMARY KEY(c_id) #可以使用这种方式声明主键
    
    );
    
    

    (默认字符集更改1366错误码)解决中文不能输入表的问题

    方法(1):

    通过命令: mysql> SHOW VARIABLES LIKE 'character%';,查看Mysql默认字符集的相关设置参数值:

    +--------------------------+--------------------------------------------------------+
    | Variable_name            | Value                                                  |
    +--------------------------+--------------------------------------------------------+
    | character_set_client     | utf8                                                   |
    | character_set_connection | utf8                                                   |
    | character_set_database   | latin1                                                 |
    | character_set_filesystem | binary                                                 |
    | character_set_results    | utf8                                                   |
    | character_set_server     | latin1                                                 |
    | character_set_system     | utf8                                                   |
    | character_sets_dir       | /usr/local/mysql-5.7.11-osx10.9-x86_64/share/charsets/ |
    +--------------------------+--------------------------------------------------------+
    8 rows in set (0.00 sec)
    

    看到创建表时均使用Mysql默认的latin1字符集,而这个字符集显然根本不可能处理中文字符。因此,通过修改Mysql的默认字符集或者在创建数据库、表和表的字段时指定字符集解能决这个问题。

    修改Mysql的默认字符集

    要使得sql支持中文字符,有下面三种编码方式:
    UTF-8 ——支持几乎所有字符
    GBK ——支持简体中文及繁体中文
    GB2312 ——简体中文
    方法如下:
    使用mysql的命令:

    mysql> SET character_set_client = utf8 ;
    mysql> SET character_set_connection = utf8 ;
    mysql> SET character_set_database = utf8 ;
    mysql> SET character_set_results = utf8 ;
    mysql> SET character_set_server = utf8 ;
    mysql> SET collation_connection = utf8 ;
    mysql> SET collation_database = utf8 ;
    mysql> SET collation_server = utf8 ;
    

    修改完成后重启即可。

    注意:这种方法只对设置后的表格生效,如果想要插入已存在的表格(未进行编码改动前创建的),则无效,可用下面的方式解决。
    方法(2):使用下面的语句来查看目前表格内容的编码:
    SHOW FULL COLUMNS FROM 表名
    然后如果不是gbk编码,则再运行下面一句进行编码更改:
    ALTER TABLE 表名 CONVERT TO CHARACTER SET gbk COLLATE gbk_chinese_ci;
    即可解决一个表的编码问题。

    相关文章

      网友评论

          本文标题:2019-05-18

          本文链接:https://www.haomeiwen.com/subject/epnzaqtx.html