Python 39 数据库的数据类型
一:整型
为什么需要 数据分类?
1、为了描述事物更加准确
2、描述起来更方便
3、节省内存空间
例:1 a 你 utf8 下 5个字节
1 a b c unicode 6个字节
mysql支持的数据类型
整型:从小到大有tinyint(***) smallint(***) mediumint(***) int(*****) bigint(***)
字节数: 分别占了 1 2 3 4 8 个字节
默认情况下整型是有符号的,需要用一个二进制位存储符号
给整型加上约束 unsigned 来表示无符号
如果数据超出范围就尽可能保存最大的,例如 在无符号保存256,其实存的255
如果有符号 例如tinyint 保存-1280 其实存的是-128 是最小值
修改严格模式:
以上特性的出现是因为mysql处于非严格模式:出现错误不会保存,会尝试自己去修改错误
查看当前模式 show variables like "sql_mode";
修改为严格模式 set variables sql_mode="STICT_TRANS_TABLBS";
默认是严格模式,在严格模式下,如果超出范围就直接报错,在一些版本中默认就是严格模式!
在我们的正常开发中,我们应该先判断数据的正确性,没有问题在发给数据库
怎么选择:得根据实际情况来判断,能够保存你的数据的最小类型
长度限制对于整型的意义:
create table t10 value(id int(1));
insert into t10 value(4545555);
select *from t10;
发现这个数也存储成功,说明这里长度指的不是存储容量限制,而是显示的宽度,如果你的数据超过了显示宽度有几个显示几个,如果不足 则补全到指定长度 得告诉它用什么来补全
create table t13(id int(10) zerofill);
总结:不是容量限制 而是 显示宽度 要限制显示宽度
1、创建表时 给整型加上宽度
2、加上zerofill约束
二:浮点型
浮点型 即 小数型
分类(float):float(*****) double(****) decimal(*****)
字节数: 4 8 不确定(手动指定)
给浮点设置宽度限制
float(m,d)
double(m,d)
decimal(m,d)
长度说明(*****)
m表示 这个浮点数整体的长度
d表示 小数部分的长度
例如:float(5,3) 最大值:99.999
区别(*****)
相同点:小数部分最大长度都是30 float 和 double 的最大长度为255
不同点:decimal 的整体最大长度为65 精度不同 double 比 float 精度高 decimal 是准确的 不会丢失精度
如何选择:你对精确度要求高你就使用 decimal
三:字符型
分类
char 定长字符
varchar 变长字符
char 类型的长度是固定 无论你存储的数据有多长 占用的容量都一样
char(3) 存储的数据为"a" 在硬盘保存的数据还是占3字符长度 实际保存的是"a"
varchar 长度是可变的 存储的数据有多长就占用多长
varchar(3)存储的数据为"a" 在硬盘保存的数据还是占1字符长度 实际保存的是"a"
zxc asd qwe char(3)
(lbytes+zxc)(lbytes+asd)(lbytes+qwe)varchar(3)
如果是可变长度 则有问题 不知道数据从哪里结束 所以需要有一个位置保存数据的长度
vharchar 能支持的最大长度是65535 用于保存数据长度的数据最长两个bytes
如果是char类型 如果你的数据不足指定长度 就在后面用空格补全
验证:
使用一个 char_length 的函数 可以查看字符的长度
create table t18(a char(4),b varchar(4));
insert into t18 value("x","x");
select char_length(a),char_length(b) from t18;
两个字段的长度都为1
结论:
这是因为 mysql 在存储时 自动加上的空格 对使用者而言是没有意义的 所以mysql自动帮你处理掉空格了
我们可以设置sql模式 来让它现出原形
set global sql_mode="PAD_CHAR_TO_FULL_LENGTH,STRICT_TRANS_TABLES"
设置完成后重启mysql 再次查询长度
注意:
当你在执行这样的查询语句时 mysql会自动将参数末尾的空格去除
select *from t19 where name="cs"
当你在使用模糊搜索时,要注意 定长字符 后面可能会有空格 所以最好在后面加上百分号%
select *from t19 where name like "cs";
% 任意个数的任意字符
_1个任务字符
如何选择
char :存取效率高,浪费存储空间
varchar:存取效率低于char,使用起来感受不到区别 通常用的是char
char和varchar 长度都比较小 最大就是65535
大文本类型:
TEXT 系列:TINYTEXT TEXT MEDIUMTEXT LONGTEXT 文本是带有编码
BLOB 系列:TINYBLOB BLOB MEDIUMBLOB LONGBLB 也是字符数据 但是不带编码
二进制类型: 用于存储多媒体数据 比如视频,但是我们一般不会将多媒体数据存到数据 而是存储文件路径地址
BINARY 系列:BINARY VARBINARY 存储二进制数据
转载于:https://www.cnblogs.com/zedong/p/9636531.html
Python 39 数据库的数据类型相关推荐
- python 通用数据库类型_Python开发基础之Python常用的数据类型
博文大纲 一.Python介绍 二.Python的变量 三.Python常用的数据类型 1.数字 2.字符串 3.元组 4.列表 5.字典 一.Python介绍 Python是一种动态解释型的编程语言 ...
- Python从数据库读取大量数据批量写入文件的方法
今天小编就为大家分享一篇Python从数据库读取大量数据批量写入文件的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将 ...
- python 操作数据库的常用SQL命令
这俩天在学习PYTHON操作数据库的知识.其实基本SQL命令是与以前学习的MYSQL命令一致,只是增加了一些PYTHON语句. 1,安装pymysql,并导入. import pymysql 2,因为 ...
- python访问数据库
1. python DB api简介 python DB api python访问数据库的统一接口规范,详细可参考https://www.python.org/dev/peps/pep-0249/ p ...
- linux python开发环境sql数据迁移到mysql_运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库...
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 一.实验环境: Python2.7.10.pycharm.VM虚拟机.CentOS6.3.mys ...
- Python基础语法和数据类型最全总结
本文分享自华为云社区<Python最全基础语法和数据类型总结>,原文作者:北山啦 . 人生苦短,我用Python.总结了Python最全基础语法和数据类型总结,一文带你学会Python. ...
- 怎么用python写数据库_Python实现数据库编程方法详解
本文实例讲述了Python实现数据库编程方法.分享给大家供大家参考.具体分析如下: 用PYTHON语言进行数据库编程, 至少有六种方法可供采用. 我在实际项目中采用,不但功能强大,而且方便快捷.以下是 ...
- 五、使用Python操作数据库
(六)使用Python操作数据 程序运行时,数据是在内存中.当程序终止时,通常需将数据保存在磁盘上.为了便于程序保存和读取数据,并能直接通过条件快速查询到指定数据,数据库(Database)这种专门用 ...
- Python与数据库
数据库和Python 持久化存储 在任何应用中,都需要持久化存储,一般有三种基础的存储机制,文件,数据库系统,以及一些混合类型,一种是使用普通文件或者python特定文件进行访问,另一种是使用数据库管 ...
最新文章
- Python培训讲解二叉树的三种深度
- 华东交通大学计算机调剂,华东交通大学2018考研调剂信息
- Spring加载流程源码
- pygame render怎么显示中文_Pygame游戏——贪吃蛇(完结)
- 玩 High API 系列好文:UGC内容检测、视频智能、拍照翻译、懂天气的草地喷水头...
- java gui容器_[Java教程]GUI Panel 容器以及布局管理器
- OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解
- 携Science封面、NIPS最佳论文,CMU大神博士毕业论文公开
- c# vscode 配置_用VS Code写C#
- Python_正则(设置pattern变量实例)
- 华为手机从浏览器安装第三方软件签名不一致如何强制安装
- 硬盘根目录里的Msdia80.dll文件
- 计算机相关设备巡检表,电脑维护巡检方案
- python人工智能工程师要求_想跻身高薪的AI人工智能工程师,你需要符合哪些条件?...
- 《NFL橄榄球》:卡罗来纳黑豹·橄榄1号位
- Photoshop常用的技巧有哪些?
- 双十一买啥最划算,失眠助眠好物推荐清单
- JAVA代理模式与动态代理模式
- 分布式架构优缺点以及设计
- python图片隐写_机窝安全--LSB图片隐写
热门文章
- linux 集群服务器设置,Zookeeper集群配置
- httpservletresponse 重定向浏览器不变的原因_JavaWeb——Servlet——请求转发与响应重定向...
- python 仪表盘实现_Python实现数据可视化看如何监控你的爬虫状态【推荐】
- 数组和指针:超过一半的数字;水王发帖
- 人群与网络:关系的平衡
- 原生中文版MyBB开源论坛效果展示
- C++文件读写 ifstream ofstream 完成复制文件功能
- phabricator安装配置和使用(docker安装和独立部署)
- css伪元素选择器,first-letter、first-line
- Image-to-Image Translation with Conditional Adversarial Networks