[MySQL & Python] 4. 常见数据类型 整型、浮点型、字符串

2022/4/5 2:19:00

本文主要是介绍[MySQL & Python] 4. 常见数据类型 整型、浮点型、字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 整型

整型 int[(m) [unsigned] [zerofill] ]  32位

数据范围: -2147483648 ~ 2147483647

int unsigned 无符号整型 0 ~ 4294967295

int (5) zerofill 不满足5位的时候,左边补0

 

CREATE TABLE int_test(
    -> id int,
    -> uid int unsigned, 
    -> zid int (5) zerofill
    -> )DEFAULT CHARSET = utf8 ;

mysql> insert into int_test values(2147483647, 4294967295, 3);

+------------+------------+-------+
| id         | uid        | zid   |
+------------+------------+-------+
| 2147483647 | 4294967295 | 00003 |
+------------+------------+-------+

 

tinyint [(m) [unsigned] [zerofill] ]  8位

-128 ~ 127

 

bigint  [(m) [unsigned] [zerofill] ]  64位

-9223372036854775808 ~ 9223372036854775807

mysql> create table big_int_test(
    -> id bigint,
    -> uid bigint unsigned,
    -> zid bigint(10) zerofill
    -> ) DEFAULT CHARSET=utf8;

mysql> insert into big_int_test values(12222222222222, 122222222222222222,12) ;


mysql> select * from big_int_test;
+----------------+--------------------+------------+
| id             | uid                | zid        |
+----------------+--------------------+------------+
| 12222222222222 | 122222222222222222 | 0000000012 |

 

 

浮点型

decimal( m [, d] ) 最为常用的类型

m数字的总个数,d小数点后有多少位。

m最大65, d最大30。

mysql> CREATE TABLE salary (
    -> id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
    -> salary decimal(10,2) NOT NULL
    -> ) DEFAULT CHARSET = utf8 ;

mysql> insert into salary(salary) values(8988.223);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from salary;
+----+---------+
| id | salary  |
+----+---------+
|  1 | 8988.22 |
+----+---------+

 

float ( m [, d] )  32位 

m数字的总个数,d小数点后有多少位。

 

double ( m [, d] )  64位

m数字的总个数,d小数点后有多少位。

 

字符串类型

char (m) 定长字符串 - m代表字符长度

m 代表字符串字符的长度,字段固定占用m长度。m 最大255。

如果数据超过m, 严格模式会报错(默认),非严格模式会截断。

 

varchar (m) 变长字符表 - m代表字节长度

按照数据实际字节长度存储,最大65535个字符。

如果数据超过m, 严格模式会报错(默认),非严格模式会截断。

mysql> create table new_char (
    -> id int primary key not null auto_increment,
    -> name varchar(5) not null,
    -> email char(20) not null) default charset='utf8' ;

mysql> insert into new_char (name, email) values (
    -> '完颜阿骨打', 'wanyan@163.com');
Query OK, 1 row affected (0.01 sec)

--超过varchar定义的5个字符,产生报错
mysql> insert into new_char (name, email) values ( '完颜阿骨打老爸', 'wanyan@1.com');
ERROR 1406 (22001): Data too long for column 'name' at row 1

 

text 存储变长字符串,最多到65535个字符。

midiumtext  存储变长字符串,最多到16,777,215 个字符。

longtext 存储变长字符串,最多到4,294,967,295个字符。

mysql> CREATE TABLE text_table (
    -> name char(10) PRIMARY KEY NOT NULL,
    -> comments text,        --不需要注明长度
    -> biography longtext    --不需要注明长度
) DEFAULT CHARSET='utf8';  

 

严格模式和非严格模式

1. 关闭mysql服务,否则执行以下操作容易造成服务器无法启动。执行:sudo mysql.server stop。

2. 编辑MySQL的配置文件。 执行:sudo vi /usr/local/mysql/etc/my.cnf, 添加以下内容:sql-mode="NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION"

3. 保存后,启动mysql服务。 执行: sudo mysql.server start。

4. 遇到服务器无法启动,按照下面的操作恢复服务器。

-- 发生的报错信息
LeodeMBP:etc leo$ sudo mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/mysql/data/LeodeMBP.pid).

--运行这两行代码
LeodeMBP:etc leo$ sudo chown -RL root:mysql /usr/local/mysql
LeodeMBP:etc leo$ sudo chown -RL mysql:mysql /usr/local/mysql/data

-- 注释掉对my.cnf的更改

--再次尝试启动,可以恢复。
LeodeMBP:etc leo$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

 



这篇关于[MySQL & Python] 4. 常见数据类型 整型、浮点型、字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程