MYSQL 表中汉字写入或字段赋值时乱码情况排误

-- 当修改字段值,或是直接写入时,汉字变成乱码情况 ,【可注意一下数据库名,记得修改】
-- 当字符顺序对汉字不兼容时,可能直接导致乱码情况发生。   最好做到库、表、字段(字符类型)排序规则是否一致
-- eg.在某库下建了临时表没有指定字符排序规则,下游会使用时,将临时表中的str字段值赋值给另外一个库表,可能会出现乱码
-- 未指定排序建表时,则表的排序规则是其库的排序规则

-- 1.  库级别
SELECT * -- DEFAULT_CHARACTER_SET_NAME  DEFAULT_COLLATION_NAME  关注列 --  utf8                        utf8_general_ci
FROM information_schema.`SCHEMATA`
WHERE SCHEMA_NAME = 'AdDataCenter';

-- 2. 表级别
SELECT * -- TABLE_COLLATION  关注列 -- utf8_general_ci
FROM information_schema.`TABLES` t
WHERE t.`TABLE_SCHEMA` = 'AdDataCenter'

-- 3. 字段级别
SELECT * -- COLLATION_NAME 关注列 -- utf8_general_ci
FROM information_schema.`COLUMNS` AS c
WHERE c.`TABLE_SCHEMA` = 'AdDataCenter'

MYSQL 表中汉字写入或字段赋值时乱码情况排误

时间: 2024-12-21 00:12:53

MYSQL 表中汉字写入或字段赋值时乱码情况排误的相关文章

取两张mysql表中分别两个字段相同的值

看起来有点绕口吧,举个例子吧,如图 两张表,字段名也不同字段gs 和另一张表 gsmc  的有些值是相同的 我们要做的就是把这个相同的值找出来 会写这个sql语句就可以 只写重点 $sql2 = " select gs from yixiangkh where gs in (select gsmc from qiandan ) " ; //执行 $result2 = $db->query($sql2,0); //取数据 $attr2 = $result2->fetch_al

清除mysql表中数据

delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容. 效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据. delete的效果有点像将mysql表中所有记录一条一条删除到删完, 而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表.

对数据库表中的某一字段去重分组排序

1.问题背景    某数据库t_tab_ab中有两个字段a和b,如下所示:    查询前:                 查询后:    a     b                  a     b    1     2                  1     2    1     3                  2     3    1     4                  3     4    1     5    2     3    2     4    2  

SQL Server 判断表中是否存在某字段

原文:SQL Server 判断表中是否存在某字段 功能:判断表中是否存在某字段,若不存在,则新增该字段 语句: IF NOT EXIST (SELECT 1 FROM [DATABASE].SYS.SYSCOLUMNS WHERE ID=OBJECT_ID([DATABASE].[SCHEMA].[TABLENAME]) AND NAME='COLUMN_NAME') ALTER TABLE [TABLENAME] ADD [COLUMN_NAME] [COLUMN_TYPE] p.s. 之前

判断指定库、表中是否有此字段

select COUNT (0) from 库名..syscolumns where id=object_id ('库名 dbo.表名' ) and name ='字段名 ' --判断数据中[TestTb]表中是否存在[Name]字段 if exists(select * from TestDB..syscolumns where id=object_id('TestDB.dbo.TestTb') and name='Name')     print '字段Name存在' else     pr

sqlite 判断表中是否包含 某个字段

数据库 都有一个 根表..(我的理解) 也就是 你创建了一个数据库 里面就带有 一个表 sqlite_master 字段有 type , name  , tbl_name , rootpage ,sql . 可以执行 sql select * from sqlite_master  查看. sql 就是你创建表时 的create 语句. 根据返回的sql 语句判断是否包含 某个字段 sqlite 判断表中是否包含 某个字段

解决在mysql表中删除自增id数据后,再添加数据时,id不会自增1的问题

https://blog.csdn.net/shaojunbo24/article/details/50036859 问题:mysql表中删除自增id数据后,再添加数据时,id不会紧接.比如:自增id 1 2 3 4 现在删除4,就变成了 1 2 3 这时候,如果增加一条数据,会变成 1 2 3 5 上面5不是我们想要的结果,4才是理想的id,解决方法是,在删除4之后,执行下面的sql语句: ALTER TABLE table_name AUTO_INCREMENT = 1; 原文地址:http

MYSQL表中设置字段类型为TIMESTAMP时的注意事项

在MYSQL中,TIMESTAMP类型是用来表示日期的,但是和DATETIME不同,不同点就不再这里说明了. 当我们在使用TIMESTAMP类型设置表中的字段时,我们应该要注意一点,首先我们在表中新增一个类型为TIMESTAMP的字段: 如上图所示,系统为类型为TIMESTAMP的tm字段自动创建了默认值CURRENT_TIMESTAMP(系统日期),下面我们看表中的数据,新增的列自动填充了系统日期的值: 下面我们在表中继续新增一个类型为TIMESTAMP类型的字段tm1,然后查看表结构: 如上

使用kettle工具将文本文件的内容插入Linux虚拟机下的mysql表中

一.      解压kettle包 1.把包拷到Linux系统下 还有mysql的驱动包 2.解压zip后缀的包 输入命令:unzip /software/pdi-ce-7.0.0.0-25.zip 可以把原来的包删了 输入命令:rm -f pdi-ce-7.0.0.0-25.zip 二.      创建数据库和表 三.      把文本文件里的数据插入数据库表中 1.编写好文本文件 2.在kettle中拖一个文本文件输入和一个表输出 3.右键选择编辑步骤编辑文本文件 点击预览,选择你的文本文件