初学者往往分不清数值87398143和字符串87398143的区别。都是数字啊,怎么一 个要用数值型,一个要用字符型呢?...MySQL保留诸如SELECT、DELETE和CREATE这样的词,这些词不能用做列名,但是函数名(如POS 和MIN)是可以使用的。 列类型col_type表示列可存储的特定值。...类似地,如果需要给出多个通用属性,也可按任意顺序给出它们,只要将它们放在列类型和可能给出的列专用属性之后即可 2. MySQL的列(字段)类型 数据库中的每个表都是由一个或多个列(字段)构成的。...在选项M 和D时,如果省略了它们,则使用缺省值 2.2字符串列类型 MySQL提供了几种存放字符数据的串类型,其类型如下: 类型名 说明 CHAR 定长字符串 VARCHAR 可变长字符串 TINYBLOB...SET 集合;列可赋予多个集合成员 表4:字符串列类型 下表给出了MySQL 定义串值列的类型,以及每种类型的最大尺寸和存储需求。
列中的值用于提供跨动画帧的联动匹配; category_orders:带有字符串键和字符串列表值的字典,默认为{},此参数用于强制每列的特定值排序,dict键是列名,dict值是指定的排列顺序的字符串列表...:带字符串键和字符串值的dict,默认为{}。...默认情况下,图表中使用列名称作为轴标题、图例条目、悬停提示等,此参数可以进行修改,dict的键是列名,dict值是修改的新名称; color_discrete_sequence:有效的CSS颜色字符串列表...,除非color列的值在参数color_discrete_map入参的dict键中; color_discrete_map:带字符串键和有效CSS颜色字符串值的dict,默认为{}。...若使用plotly_express.colors.diverging色标作为color_continuous_scale的如参时,建议设置此值; symbol_sequence:定义plotly.js符号的字符串列表
这对于那些具有常见默认值的列非常有用,例如日期时间列的当前日期、数值列的零值或字符串列的空字符串更新现有行:当更新现有行时,如果没有指定特定列的新值,则DEFAULT约束将保持列的当前默认值。...这使得在插入或更新操作中同时为多个列提供默认值成为可能,简化了数据操作的流程。使用方法创建DEFAULT约束在创建表时,可以使用DEFAULT关键字为特定列定义默认值。...例如,创建一个包含默认值的数值列可以使用类似于price DECIMAL(10, 2) DEFAULT 0.00的语法。...空值和DEFAULT约束:在某些情况下,DEFAULT约束可能与允许空值的约束冲突。需要仔细考虑默认值和空值之间的关系,并根据实际需求进行设置。...如果 INSERT INTO 语句不为 Consumption amount 和 country 字段提供值,那么这两个字段将使用默认值 0.0 和空字符串''。
考虑某列中值的分布。对于惟一值的列,索引的效果最好,而具有多个重复值的列,其索引效果最差。例如,存放年龄的列具有不同值,很容易区分各行。...而用来记录性别的列,只含有 “ M ” 和 “ F ” ,则对此列进行索引没有多大用处(不管搜索哪个值,都会得出大约一半的行) 3. 使用短索引。...如果对串列进行索引,应该指定一个前缀长度,只要有可能就应该这样做 。 例如,如果有一个 CHAR(200) 列,如果在前 10 个或 20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。...对前 10 个或 20 个字符进行索引能够节省大量索引空间,也可能会使查询更快。较小的索引涉及的磁盘 I/O 较少,较短的值比较起来更快 。...如仅用列值的第一个字符进行索引是不可能有多大好处的 ,因为这个索引中不会有许多不 同的值。) 4. 利用最左前缀。 在创建 一个 n 列的索引时,实际是创建了 MySQL 可利用的 n 个索引。
该组件通常会配合ListView一起使用,例如将ListView组件与Model模型绑定,当ListView组件内有数据更新时,就可以利用映射将数据模型中的数值以字符串格式提取出来,同理也可实现将字符串赋值到指定的...用途: QStringListModel 主要用于将字符串列表(QStringList)与视图进行绑定,使得这些字符串可以在视图中显示和管理。...常见操作: 设置字符串列表: 使用 setStringList 方法设置要在视图中显示的字符串列表。 获取字符串列表: 使用 stringList 方法获取当前模型中的字符串列表。...和 QListView 来展示一个字符串列表。...这样,通过 QStringListModel 和 QListView 的结合使用,可以很方便地在界面上展示和管理字符串列表的数据。
pandas已经为我们自动检测了数据类型,其中包括83列数值型数据和78列对象型数据。对象型数据列用于字符串或包含混合数据类型的列。...pandas使用ObjectBlock类来表示包含字符串列的数据块,用FloatBlock类来表示包含浮点型列的数据块。...pandas中的许多数据类型具有多个子类型,它们可以使用较少的字节去表示不同数据,比如,float型就有float16、float32和float64这些子类型。...下图对比展示了数值型数据怎样以Numpy数据类型存储,和字符串怎样以Python内置类型进行存储的。...总结 我们学习了pandas如何存储不同的数据类型,并利用学到的知识将我们的pandas dataframe的内存用量降低了近90%,仅仅只用了一点简单的技巧: 将数值型列降级到更高效的类型 将字符串列转换为类别类型
3,索引不会包含有NULL值的列 只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。...所以我们在数据库设计时不要让字段的默认值为NULL。 4,使用短索引 对字符串列进行索引,如果可能应该指定一个前缀长度。...例如,如果有一个CHAR(255)的 列,如果在前10 个或20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。...因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。...7,不要在列上进行运算 select * from users where YEAR(adddate) 8,不使用NOT IN操作 NOT IN操作都不会使用索引将进行全表扫描。
本文介绍了7种处理数据集中缺失值的方法: 删除缺少值的行 为连续变量插补缺失值 为分类变量插补缺失的值 其他插补方法 使用支持缺失值的算法 缺失值预测 使用深度学习库-Datawig进行插补 ❝使用的数据是来自...删除缺少值的行: 可以通过删除具有空值的行或列来处理缺少的值。如果列中有超过一半的行为null,则可以删除整个列。也可以删除具有一个或多个列值为null的行。 ?...「缺点」: 仅适用于数值连续变量。 不考虑特征之间的协方差。 ---- 分类列的插补方法: 如果缺少的值来自分类列(字符串或数值),则可以用最常见的类别替换丢失的值。...当一个值丢失时,k-NN算法可以忽略距离度量中的列。朴素贝叶斯也可以在进行预测时支持缺失值。当数据集包含空值或缺少值时,可以使用这些算法。...「缺点」: 只作为真实值的代理 ---- 使用深度学习库-Datawig进行插补 这种方法适用于分类、连续和非数值特征。
在上面的表中,x列为float数值类型,其他两列的数值还是基于四舍五入的方法进行插入的,但是float数值类型的x列,插入的数据和实际输入的数据就有些出入了,并且会随着小数点位数的增加,这个浮动范围会更大...1、char和varchar CHAR(M) 为固定长度的字符串,在定义时指定字符串列长,当保存时在右侧填充空格以达到指定的长度,M 表示列长度,取值范围是 0~255 个字符,例如,CHAR(4) 定义了一个固定长度的字符串列...4、SET SET 是一个字符串对象,可以有零个或多个值,SET 列最多可以有 64 个成员,其值为表创建时规定的一列值,语法:SET('值1','值2',.........'值n'); 与 ENUM 类型相同,SET 值在内部用整数表示,列表中每一个值都有一个索引编号; 与 ENUM 类型不同的是,ENUM 类型的字段只能从定义的列值中选择一个值插入,而 SET 类型的列可从定义的列值中选择多个字符的联合...; BLOB 没有字符集,并且排序和比较基于列值字节的数值;TEXT 有一个字符集,并且根据字符集对值进行排序和比较。
数据库和表的字符集统一使用 UTF8兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效。...所有表和字段都需要添加注释使用 comment 从句添加表和列的备注 从一开始就进行数据字典的维护。...谨慎使用 MySQL 分区表 分区表在物理上表现为多个文件,在逻辑上表现为一个表 谨慎选择分区键,跨分区查询效率可能更低 建议采用物理分表的方式管理大数据。...避免使用 ENUM 类型 修改 ENUM 值需要使用 ALTER 语句 ENUM 类型的 ORDER BY 操作效率低,需要额外操作 禁止使用数值作为 ENUM 的枚举值 4....不要使用更新频繁的列作为主键,不适用多列主键(相当于联合索引) 不要使用 UUID、MD5、HASH、字符串列作为主键(无法保证数据的顺序增长)。主键建议使用自增 ID 值。
1、违法最左前缀法则,索引失效2、范围查询右边(后面)的列,不能使用索引 ,则范围查询字段后面的字段索引失效(>、<)3、字符串不加单引号,造成索引失效4、尽量使用覆盖索引(只访问索引的查询(索引列完全包含查询列...检查语句是否走索引, 使用explain 关键执行一下 key是否有值, 有值就说明走了索引,null就表示索引失效使用索引注意事项:1、索引不会包含有null值的列 只要列中包含有null值都将不会被包含在索引中...所以我们在数据库设计时不要让字段的默认值为null。2、使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。...例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的, 那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。...因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
一般是在建表的时候同时创建主键索引: 1.4 组合索引: 指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。...2.缺点 2.1 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行insert、update和delete。因为更新表时,不仅要保存数据,还要保存一下索引文件。...所以我们在数据库设计时不要让字段的默认值为null。 3.2 使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。...例如,如果有一个char(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。...因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
数据库和表的字符集统一使用 UTF8兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效。...谨慎使用 MySQL 分区表 分区表在物理上表现为多个文件,在逻辑上表现为一个表 谨慎选择分区键,跨分区查询效率可能更低 建议采用物理分表的方式管理大数据。...避免使用 ENUM 类型 修改 ENUM 值需要使用 ALTER 语句 ENUM 类型的 ORDER BY 操作效率低,需要额外操作 禁止使用数值作为 ENUM 的枚举值 4....尽可能把所有列定义为 NOT NULL 原因: 索引 NULL 列需要额外的空间来保存,所以要占用更多的空间。 进行比较和计算时要对 NULL 值做特别的处理。 5....不要使用更新频繁的列作为主键,不适用多列主键(相当于联合索引) 不要使用 UUID、MD5、HASH、字符串列作为主键(无法保证数据的顺序增长)。主键建议使用自增 ID 值。
对于CHAR和VARCHAR 列,你可以用BINARY属性声明列让排序和 校对规则使用当前的字符代码值而不是词汇顺序 ·[NATIONAL] CHAR(M) [BINARY| ASCII | UNICODE...排序和比较基于数值字符值。 列类型CHAR BYTE是CHAR BINARY的一个别名。这是为了保证兼容性。 可以为CHAR指定ASCII属性。它分配latin1字符集。...它分配ucs2字符集。 MySQL允许创建类型CHAR(0)的列。这主要用于必须有一个列但实际上不使用值的旧版本的应用程序相兼容。...排序和比较基于数值字符值。 VARCHAR保存时用一个字节或两个字节长的前缀+数据。如果VARCHAR列声明的长度大于255,长度前缀是两个字节。...字符串对象可以有零个或多个值,每个值必须来自列值'value1','value2',.. .SET列最多可以有64个成员。SET值在内部用整数表示。
/中位数/众数插补 使用固定值 将缺失值用常量替换 最近临插补 在记录中找到与缺失样本最接近的样本的该属性值插补 回归方法 对含有缺失值的变量,根据已有数据和与有关的其他变量(因变量)的数据建立拟合模型来预测缺失值...插值法 插值法是利用已知点建立合适的插值函数f(x),未知值由对应点Xi求出的函数值f(Xi)近似代替 如果是使用均值进行插补,可以使用: df['column'].fillna(df['column...'].mean(), inplace=True) 如果用最高频的数据或是众数(如果列数据时数值)进行填充,可以先通过value_counts获取column字段最高频次column_maxf,然后再对字段中缺失的数据用...数据变换 数据清洗除了对异常值和缺失值进行处理外,本身数据的质量还存在一些问题,也要观察数据后对其进行变换,这里涉及一小不分的变换,下面仅列出两种常见的情况: 1.列数据的单位不统一 我们在统计重量时会发现...截取倒数三个字符,即去掉lbs。
、空列 2、统一数值口径 这是个无聊而必要的步骤。...所以将不规范的数值改为规范这一步不可或缺。 ? 3、删掉多余的空格 原始数据中如果夹杂着大量的空格,可能会在我们筛选数据或统计时带来一定麻烦。如何去掉多余的空格,仅在字符间保留一个空格?...4、字段去重 强烈建议把去重放在去除空格之后,因为多个空格导致工具认为“顾纳”和“顾 纳”不是一个人,去重失败。 按照“数据”-“删除重复项”-选择重复列步骤执行即可。...(单选一列表示此列数据重复即删除,多选表示多个字段都重复才删除。) ? 5、填补缺失值 由于人工录入或者数据爬虫等多方面的原因,会出现缺失值的情况,这就需要我们寻找漏网之“数据”,填充空缺值。...(5)插补法 随机插补法:从总体中随机抽取某几个样本代替缺失样本。 多重填补法:包含m个插补值的向量代替每一个缺失值的过程,要求m大于等于20。m个完整数据集合能从插补向量中创建。 ?
也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。...BINARY和VARBINARY数据类型不同于CHAR BINARY和VARCHAR BINARY数据类型。对于后一种类型,BINARY属性不会将列视为二进制字符串列。...相反,它致使使用列字符集的二元 校对规则,并且列自身包含非二进制字符字符串而不是二进制字节字符串。...对于尾部填充字符被裁剪掉或比较时将它们忽视掉的情形,如果列的索引需要唯一的值,在列内插入一个只是填充字符数不同的值将会造成复制键值错误。...如果你计划使用这些数据类型来保存二进制数据并且需要检索的值与保存的值完全相同,应考虑前面所述的填充和裁剪特征。
领取专属 10元无门槛券
手把手带您无忧上云