首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mysql类型

Mysql类型: 数字类型 字符串类型 布尔型 日期时间类型 数字类型: 1个字节=8比特,但数字里有一个比特用于符号占位 TINYINT 占用1个字节,表示范围:-128~127 SMALLINT...支持范围是1000-01-01 ~ 9999-12-31 TIME 支持范围是00:00:00 ~ 23:59:59 DATETIME 支持范围是1000-01-01 00:00:00 ~ 9999...-12-31 23:59:59 列上约束: Constraint:约束,列上值往往是有限制,如: 性别:只能取男或女 政治面貌:只能取党员、团员、群众 高考成绩:FLOADT(4,1) 取值有规则...表中所有的记录行会自动按照主键列上值进行排序。 一个表至多只能有一个主键。 唯一约束: 列名 类型 UNIQUE 声明为“唯一”列上不能出现重复值,但可以出现多个NULL值。...非空约束: 列名 类型 NOT NULL 声明为“非空”约束列上不能出现NULL,但可以重复 检查约束对于Mysql不支持 默认值约束 列名 类型 Default 值 声明为“默认值”约束列上没有值将会默认采用默认设置

6.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    性能优化-如何选择合适建立索引

    3、如何选择合适建立索引 1、在where从句,group by从句,order by从句,on从句中添加索引 2、索引字段越小越好(因为数据库数据存储单位是以“页”为单位,数据存储越多,...IO也会越大) 3、离散度大放到联合索引前面 例子: select * from payment where staff_id =2 and customer_id =584; 注意:是index...结论:由于customer_id 离散程度大,使用index(customer_id,staff_id)好 C、mysql联合索引 ① 命名规则 :表名_字段名 1、需要加索引字段,要在where条件中...2、利用索引中附加,您可以缩小搜索范围,但使用一个具有两索引 不同于使用两个单独索引。...所以说创建复合索引时,应该仔细考虑顺序。对索引中所有执行搜索或仅对前几列执行搜索时,复合索引非常有用;仅对后面的任意执行搜索时,复合索引则没有用处。

    2.1K30

    关于mysql加索引这个值中有null情况

    刚开始加索引想到问题: 是否适合添加索引 我们都知道,添加索引都会降低插入和update效率,现在由于这个是用户表所以说是数据update是不频繁。...所以是可以加 这个作引应该怎么加 由于每个字段大小是256 所以说这个索引树建下来还是很浪费存储,于是考虑前缀索引,和复合索引。...有时看了一下规律,是这样他有一个字段区分度还是很低 所以说吧区分度低放在后面区分度高放在前面。...由于联合索引是先以 前面的排序在根据后面的排序所以说将区分度高放在前面会减少扫描行数增加查询效率 但是最重要问题来了,我就要提交SQL时候 leader 问了一句我,你这边的话这个数据字段 默认值为...于是带着疑问去查了查, 在innodb引擎是可以在为null里创建索引,并且在当条件为is null 时候也是会走索引

    4.3K20

    Mysql 5.7 ‘虚拟’是做什么?

    Mysql 5.7 中推出了一个非常实用功能 虚拟 Generated (Virtual) Columns 对于它用途,我们通过一个场景来说明 假设有一个表,其中包含一个 date 类型 `...这么做好处是提高了查询性能,可以使用 SimpleDate_dayofweek 索引了,但又带来了其他麻烦,例如 (1)降低了数据写入性能 (2)增加冗余数据,占用了更多存储空间 (3)增加代码维护成本...虚拟 Generated Columns 就是用来解决这个问题,可以增加一个可被索引,但实际上并不存在于数据表中 对于上面的例子,可以对 SimpleDate 创建一个虚拟,然后对虚拟创建索引...查询语句可以正常使用索引 通过虚拟方式,即满足了查询性能,也不会有之前那个解决方案潜在麻烦 虚拟不存储在数据行中,但虚拟元数据信息会存在于相关系统表中,对虚拟添加或者删除只会涉及这些系统表...,不会导致数据表重建,所以效率很高 需要注意,不能建立虚拟和真实联合索引

    1.9K60

    MySQL时间函数选择

    ,在MySQL中,同样有类似的函数可以使用,碰巧看到eygle大神最近文章,短短几行文字,就介绍了MySQL中获取系统当前时间来龙去脉。...文章链接: https://www.eygle.com/archives/2019/09/mysql_now_sysdate.html 在 MySQL 中,获得系统当前时间可以使用now() 函数,这是最简单和应用最广函数...除此之外,current_timestamp(),localtime(),localtimestamp()都是now()函数同义词,返回结果相同: mysql> select now(); +---...,取得是执行开始时间,并且在执行过程中保持不变,与之相对则是sysdate()函数,sysdate模拟Oracle数据库实现,每次执行时,都调用时间函数获得时间,数值每次不同: mysql> select...从中能体会到,MySQL设计者确实经验丰富,一个小小时间函数,就可以提供这么多种可选用途,这些都是值得学习

    2.3K10

    jQuery选择器(满足你所有业务)

    它基于已经存在 CSS 选择器,除此之外,它还有一些自定义选择器。 jQuery 中所有选择器都以美元符号开头:$()。...#intro .head") //id="intro" 元素中所有 class="head" 元素 $("*") //所有元素 类别选择器 $(".intro")...intro") //id="intro" 元素 后代选择器 $("p span") //选取元素里所有的元素(注:后代选择选择父元素所有指定选择元素,不管是儿子级,还是孙子级...) 子选择器 $("p>span") //选择元素下所有元素 (注:子选择器只选择直属于父元素子元素) 同辈选择器 $(".intro+p") //选取class为intro...CSS选择器 $("p").css("background-color","red"); //把所有 p 元素背景颜色更改为红色: 基本过滤选择器 $("p:first") //选取所有<p

    89920

    Pandas 选出指定类型所有,统计列各个类型数量

    前言 通过本文,你将知晓如何利用 Pandas 选出指定类型所有用于后续探索性数据分析,这个方法在处理大表格时非常有用(如非常多金融类数据),如果能够较好掌握精髓,将能大大提升数据评估与清洗能力...代码实战 数据读入 统计列各个类型数量 选出类型为 object 所有 在机器学习与数学建模中,数据类型为 float 或者 int 才好放入模型,像下图这样含有不少杂音可不是我们想要...当然,include=[“int”, “float”] 便表示选出这两个类型所有,你可以自行举一反三。...对 object 们进行探索性数据分析 通过打印出来信息,我们可以很快知道每一个 object 大概需要怎么清洗,但许多优秀数据分析师并不会马上着手操作,而是都先记录下来,最后再一起操作,毕竟可能有可以复用代码或可以批量进行快捷操作...类,可能需要根据业务知识进行离散化分箱 home_ownership:房屋所有情况,全款支付了给个1,其余都给 0 未完待续… 先列出来再统一操作好处是当发现处理错误或者需要更改方法时,还能快速找到自己当时思路

    1.1K20

    如何使用python连接MySQL值?

    Python是一种高级编程语言,提供了多个库,可以连接到MySQL数据库和执行SQL查询。 在本文中,我们将深入探讨使用 Python 和 PyMySQL 库连接 MySQL过程。...提供了有关如何连接到MySQL数据库,执行SQL查询,连接值以及最终使用Python打印结果分步指南。...此技术对于需要使用 MySQL 数据库数据分析师和开发人员等个人特别有用,他们需要将多个值合并到一个字符串中。...execute() 方法执行 SQL 查询,fetchall() 方法获取查询返回所有行。...结论 总之,我们已经学会了如何使用Python连接MySQL值,这对于任何使用关系数据库的人来说都是一项宝贵技能。

    22730

    数栈技术分享:解读MySQL执行计划type和extra

    例如,表jiang关联lock_test表,关联分别是两张表主键 : ​ 上面SQL执行时,jiang表是驱动表,lock_test是被驱动表,被驱动表关联是主键id,type类型为eq_ref...例如执行下列语句: mysql> explain select * from lock_test where id=3 or num=4; ​ id为主键,num列上建有普通索引,语句执行时,会通过两个单列索引来处理...这样取出数据是按照二级索引排序。 MRR表示:通过二级索引得到对应主键值后,不直接访问表而是先存储起来,在得到所有的主键值后,对主键值进行排序,然后再访问表。...如果join buffer中10行数据关联完后,就再取10行数据继续和B表关联,一直到A表所有数据都关联完为止。 从上面可以看出来,这种方式大概效率会提高约90%。...得到相应主键后并不马上通过这个主键去被被驱动表中取数据,而是先存放到工作空间中。等到结果集中所有数据都关联完了,对工作空间中所有通过关联得到主键进行排序,然后统一访问被驱动表,从中取数据。

    2.9K00

    MySQL 表和注释深入理解

    像代码一样,可以为表以及表中添加注释,方便其他人知晓其功能。对于一些字段,在经过一定时间后,创建者未必也能想起其具体含意,所以注释显得尤为重要。...注释添加 注释添加是通过在定义表或时候在末尾加上 COMMENT 关键字来实现,最长支持 1024 个字符。 可以在创建表时候为表和添加相应注释。...'表注释'; 执行上面的语句后创建了一个名为 test_comment 表,并且为表和其中 col1 指定了相应注释。...注释添加,更新 CHANGE 和 MODIFY 等效,区别在于 CHANGE 重写定义,需要书写完整定义,包括新列名称,即使你并不想修改免,而 MODIFY 则不用指定新列名称。...通过 CHANGE 语法: mysql> ALTER TABLE test_comment CHANGE col1 col1 INT COMMENT '注释2'; Query OK, 0 rows

    2K10

    MySQL字段去重案例实践

    同事提了个需求,如下测试表,有code、cdate和ctotal三,select * from tt;现在要得到code唯一值,但同时带着cdate和ctotal两个字段。...distinct支持单列去重和多去重,如果是单列去重,简明易懂,即相同值只保留1个,如下所示,select distinct code from tt;多去重则是根据指定去重信息进行,即只有所有指定信息都相同...实际上当distinct应用到多个字段时候,其应用范围是其后面的所有字段,而不只是紧贴着它一个字段,即distinct同时作用了三个字段,code、cdate和ctotal,并不只是code字段,...MySQL不同版本sql_mode默认值可能是不同,因此在数据库升级配合应用迁移过程中,尤其要注意像only_full_group_by这种校验规则改变,很可能是个坑。...因此,任何方案选择,都需要结合实际场景需求,我们找方案,不一定是最好,但需要最合适。本文关键字:#SQL# #去重#

    2.9K10

    mysql数据类型选择

    对于浮点数据,存入数值会对该定义小数位进行四舍五入。 浮点类型包裹FLOAT和DOUBLE类型,精度要求较高时,使用DOUBLE类型。...2、浮点数和定点数 浮点数FLOAT、DOUBLE相对于定点数DECIMAL优势是:在长度一定条件下,浮点数能表示更大数据范围。...由于TIMESTAMP取值范围小于DATETIME取值范围,因此存储范围较大日期最好使用DATETIME 4、CHAR和CARCHAR CHAR是固定长度字符,VARCHAR是可变长度字符。...它合法列表最多有64个成员。空字符串也是一个合法SET值。在需要取多个值时候,时合使用SET类型。比如,一个人兴趣爱好,最好使用SET类型。...ENUM和SET值是以字符串形式出现,但是在MYSQL内部以数值形式存储它们。 6、BLOB和TEXT BLOB是二进制字符串,TEXT是非二进制字符串,两者均可存放大容量信息。

    1K20
    领券