python 数据库 Mysql (3)

本文深入探讨了Python如何利用数据库连接操作MySQL,重点解析了EXISTS子查询的概念及其在数据库查询中的应用,帮助读者理解并掌握这一数据库查询技巧。
摘要由CSDN通过智能技术生成
数据类型(列类型)
所谓的数据类型:对数据进行统一的分类,从系统的角度出发为了能够使用统一的方法进行
管理,更好的利用有限的空间
SQL中将数据类型分成三大类:数值类型,字符串类型,时间日期类型,每类会分成很多小类
数值型
数值型数据:都是数值
系统将数值型分成整数和小数型
整数型
存放整型数据:在SQL中因为更多要考虑如何节省磁盘空间,所以将整型又细分成了5类,
tinyint:迷你整型,使用一个字节存储,表示的状态最多为256种(常用)
smallint:小整型:使用2个字节存储,表示的状态最多为65536种
Mediumint:中整型:使用3个字节存储
int:标准整型,使用4个字节存储(常用)
bigint:大整型,使用8个字节存储

#创建整型表
CREATE TABLE my_int(
int_1 TINYINT,
int_2 SMALLINT,
int_3 INT,
int_4 BIGINT
);
#插入数据
INSERT INTO my_int VALUES(100,100,100,100);#有效数据
INSERT INTO my_int VALUES('a','b',100,100);#五效数据:类型限定
INSERT INTO my_int VALUES(255,10000,100000,1000000);#错误:超出范围

SQL中的数据类型全部都是无符号,分正负
有时候需要使用无符号数据:需要给数据类型限定:int unsigned 无符号:从0开始
#给表增加一个无符号类型
ALTER TABLE my_int ADD int_5 TINYINT UNSIGNED;#无符号类型
#插入数据
INSERT INTO my_int VALUES(127,1000,10000,1000000,255);#有效数据

查看表结构的时候发现每个字段的数据类型之后都会自带一个括号,里面有指定的数字
显示宽度,没有特别的含义,只是默认的告诉用户可以显示的形式而已,实际上用户是
可以控制的,这种控制不会改变数据本身的大小
ALTER TABLE my_int ADD int_6 TINYINT(1) UNSIGNED;#指定显示宽度为1
INSERT INTO my_int VALUES(127,0,0,0,255,255);# 指定宽度1的时候,不会影响它的存储
显示宽度的意义,在于当数据不够显示宽度的时候,会自动让数据变成对应的显示宽度:
通常需要搭配一个前导0来增加宽度,不会改变值大小,zerofill(0填充),0填充会导致数值
自动变成无符号
ALTER TABLE my_int ADD int_7 TINYINT ZEROFILL;#显示宽度为2,0填充
0填充:显示宽度的效果
INSERT INTO my_int VALUES(1,1,1,1,1,1,1);
INSERT INTO my_int VALUES(100,100,100,100,100,100,100);
0填充的意义(显示宽度),保证数据格式

小数型

小数型:带有小数点或者范围超出整型的数值类型
SQL中:将小数型细分两种,浮点型和定点型
浮点型:小数点浮动,精度有限,而且会丢失精度
定点型:小数点固定,精度固定,不会丢失精度

浮点型

浮点型数据是一种精度型数据,因为超出指定范围之后会丢失精度(自动四舍五入)
浮点型:理论分为两种精度
  float:单精度,占有4个字节存储数据,精度范围大概为7位左右
  double:双精度,占有8个字节存储数据,精度范围大概为15位左右

创建浮点数表:浮点的使用方式,直接float表示没有小数部分,float(M.D),M代表总长度
,D代表小数部分长度,整数部分长度为M-D

#浮点数表
CREATE TABLE my_float(
fi FLOAT,
f2 FLOAT(10,2),#10位在精度范围之外
f3 FLOAT(6,2)  #6位在精度范围之内
)CHARSET utf8;

插入数据:可以是直接小数,也可以是科学计数法
INSERT INTO my_float VALUES(1000.10,1000.10,1000.10);#符合条件
INSERT INTO my_float VALUES(1234567890,12345678.90,1234.56);#符合条件
INSERT INTO my_float VALUES(999999999,99999999.99,99999.99);#最大值
INSERT INTO my_float VALUES(3e38,3.01e7,1234.56);
浮点想数据的插入:整数部分是不能超出长度的,但是小数不分可以超出长度(系统
会自动四舍五入)

#超出长度插入数据

INSERT INTO my_float VALUES(123456,1234.123456789,123.9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值