欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Mysql 中存储IP地址

程序员文章站 2022-05-14 21:40:12
...

本文介绍IP字段在mysql数据表中的优化。 创建测试表 mysql create table hosts( - `id` int(8) not null auto_increment, - `ip` int unsigned not null, - `hostname` varchar(30) not null, - `desc` varchar(100) , - PRIMARY KEY(`id`)) ENGINE=InnoDB;Q

本文介绍IP字段在mysql数据表中的优化。

创建测试表

mysql> create table hosts( 
 -> `id` int(8) not null auto_increment,
 -> `ip` int unsigned not null,
 -> `hostname` varchar(30) not null,
 -> `desc` varchar(100) , 
 -> PRIMARY KEY(`id`)) ENGINE=InnoDB;
Query OK, 0 rows affected (0.03 sec)

查看表结构

mysql> desc hosts
 -> ;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(8) | NO | PRI | NULL | auto_increment |
| ip | int(10) unsigned | NO | | NULL | |
| hostname | varchar(30) | NO | | NULL | |
| desc | varchar(100) | YES | | NULL | |
+----------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

插入测试数据

mysql> insert into hosts (`ip`,`hostname`,`desc`) values (inet_aton('192.168.1.106'),'test','this is test host.');
Query OK, 1 row affected (0.03 sec)
mysql> select * from hosts
 -> ;
+----+------------+----------+--------------------+
| id | ip | hostname | desc |
+----+------------+----------+--------------------+
| 1 | 3232235882 | test | this is test host. |
+----+------------+----------+--------------------+
1 row in set (0.00 sec)

查询

mysql> select inet_ntoa(ip) from hosts;
+---------------+
| inet_ntoa(ip) |
+---------------+
| 192.168.1.106 |
+---------------+
1 row in set (0.00 sec)