centos 7mysql 插入数据
centos 7mysql 插入数据
这个日志比较杂
不过解决了很多问题,比如mysql不能输入中文
create database数据库名;
这样就创建了一个自己明明的数据库
使用 show databases;可以查看所有的数据库
二、删除数据库
执行命令drop databases 数据库名;
三、新建表
1 use 数据库名
2 create table xxx ( yychar(3) not null default “0” primary key ) ;
(修改 alter table xxx modify username varchar(16)primary key ;)
添加是 add
3.show columns from xxxx 查看表结构
========================插入表记录============================
查询 select * from xxxx;
默认值
查看SQL编码
Show variables like ‘%char%’;
===========不能用中文==================
在刚装完mysql,就建立了数据库abc,然后新建一个abc表,插入英文没有问题,但是插入中文就有问题,会报错:
ERROR 1366 (HY000):Incorrect string value: ‘\xE4\xBD\x99\xE9\x93\xB6…’
应该是数据库编码问题,所以应该改数据库编码
这里有2中方法。一种是直接敲代码设置,一种是在CentOS7中修改文件/usr/my.cnf,
第一种方法:
列出数据库的编码表
mysql> show variableslike ‘%char%’;
修改编码格式:
mysql> setcharacter_set_database=utf8;
mysql> setcharacter_set_server=utf8;
等
就是保留 character_set_filesystem和character_sets_dir的原有默认值不变,其他全都改为utf8就行
然后把原来创建的数据库删除重新建立一个,再创建一个表,就可以插入中文啦。。。
jdbc url+?useUnicode=true&characterEncoding=utf-8
第二种方法:在CentOS7中修改文件/usr/my.cnf,
打开配置文件:
vi /etc/my.cnf;
在[mysqld],[mysql],[client]下分别添加如下内容
[mysqld]
character_set_server =utf8
[mysql]
default_character_set=utf8
[client]
default_character_set=utf8
备注:
编辑文件用到的快捷键:
进入编辑模式编辑
i
退出编辑模式
Esc
退出文件并保存
:wq
1:Windows平台,因为Windows操作系统默认的是用了gb2312这个字符,而mysql在安装的时候,默认的是客户端和服务器都用了latin1,所以这就导致一个字符集和字符校验不匹配的问题,这个时候只需要找到mysql的配置文件my.ini 找到default-character_set ,把他的参数改成gb2312就可以了,一共有两个这样的参数,一个是对客户的,一个是服务器的,我一般建议是把服务器的设置成国际通用的字符utf8。
2: Linux平台,在Linux平台上安装mysql的时候,给于的自由度是很大的,你可以在安装选项./configure中找到数据库的字符设置(这个还要麻烦你自己看readme安装文件 ),这个时候最好是把字符设置成gbk,因为这个字符集也是Linux平台默认安装的中文字符集,然后在/etc下找到my.cnf文件(这个文件在安装mysql后要自己把他转移到/etc/下,除非你是rpm安装).需要注意的是Linux里的很多工具都是不支持中文的,哪怕是vi,你可以在startx后执行命令kwrite,来编译文件,这个图形变异软件有一个选项是可以把你所写的东西转换成任意的字符集,很不错。
二)不能插入中文解决办法:
向表中插入中文然后有错误。
mysql> insert into users values(88,’中文’);
ERROR1366 (HY000): Incorrect string value: ‘\xD6\xD0\xCE\xC4’ for column ‘usern
ame’at row 1
mysql>insert into users values(88,’中文’);
ERROR1366 (HY000): Incorrect string value: ‘\xD6\xD0\xCE\xC4’ for column ‘usern
ame’at row 1
还要更改users表的username的字符集。
mysql>alter table users modify username char(20) character set gbk;
ERROR1366 (HY000): Incorrect string value: ‘\xC0\xEE\xCB\xC4’ for column ‘usern
ame’at row 1
mysql>alter table users modify username char(20) character set gbk;
ERROR1366 (HY000): Incorrect string value: ‘\xC0\xEE\xCB\xC4’ for column ‘usern
ame’at row 1
因为表中已经有数据,所以更改username字符集的操作没有成功
清空users表中的数据
mysql>truncate table users;
QueryOK, 3 rows affected (0.01 sec)
从新更改user表中username的字符集
mysql>alter table users modify username char(20) character set gbk;
QueryOK, 0 rows affected (0.06 sec)
Records:0 Duplicates: 0 Warnings: 0
这时再插入中文字符,插入成功。
mysql>insert into users values(88,’中文’);
QueryOK, 1 row affected (0.01 sec)
mysql> select * from users;
+——–+———-+
|userid | username |
+——–+———-+
| 88 |中文 |
+——–+———-+
1 rowin set (0.00 sec)
查询表中所有 记录 select * from xxx;
查询表user中actived是0的记录;
Select * from user where active=0
删除表user中username为’李二’的记录
Delete from user where username=”lier” //记得要””
将王三的name修改为王不三
Update 表名 set 字段=值 where 字段=值