主要内容:

  一、数值类型

  二、日期类型

  三、字符串类型

  四、枚举类型与集合类型

1️⃣ 数值类型

  1、整数类型:tinyint  smallint  mediumint  int  bigint

    作用:存储年龄,等级,id,各种号码等。

    tinyint

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

            小整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-128 ~ 127
无符号:
0 ~ 255 PS: MySQL中无布尔值,使用tinyint(1)构造。

    int

 int[(m)][unsigned][zerofill]

            整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-2147483648 ~ 2147483647
无符号:
0 ~ 4294967295

    bigint

 bigint[(m)][unsigned][zerofill]
大整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-9223372036854775808 ~ 9223372036854775807
无符号:
0 ~ 18446744073709551615

   有符号和无符号的比较

=========有符号和无符号tinyint==========
#tinyint默认为有符号
MariaDB [db1]> create table t1(x tinyint); #默认为有符号,即数字前有正负号
MariaDB [db1]> desc t1;
MariaDB [db1]> insert into t1 values
-> (-129),
-> (-128),
-> (127),
-> (128);
MariaDB [db1]> select * from t1;
+------+
| x |
+------+
| -128 | #-129存成了-128
| -128 | #有符号,最小值为-128
| 127 | #有符号,最大值127
| 127 | #128存成了127
+------+ #设置无符号tinyint
MariaDB [db1]> create table t2(x tinyint unsigned);
MariaDB [db1]> insert into t2 values
-> (-1),
-> (0),
-> (255),
-> (256);
MariaDB [db1]> select * from t2;
+------+
| x |
+------+
| 0 | -1存成了0
| 0 | #无符号,最小值为0
| 255 | #无符号,最大值为255
| 255 | #256存成了255
+------+ ============有符号和无符号int=============
#int默认为有符号
MariaDB [db1]> create table t3(x int); #默认为有符号整数
MariaDB [db1]> insert into t3 values
-> (-2147483649),
-> (-2147483648),
-> (2147483647),
-> (2147483648);
MariaDB [db1]> select * from t3;
+-------------+
| x |
+-------------+
| -2147483648 | #-2147483649存成了-2147483648
| -2147483648 | #有符号,最小值为-2147483648
| 2147483647 | #有符号,最大值为2147483647
| 2147483647 | #2147483648存成了2147483647
+-------------+ #设置无符号int
MariaDB [db1]> create table t4(x int unsigned);
MariaDB [db1]> insert into t4 values
-> (-1),
-> (0),
-> (4294967295),
-> (4294967296);
MariaDB [db1]> select * from t4;
+------------+
| x |
+------------+
| 0 | #-1存成了0
| 0 | #无符号,最小值为0
| 4294967295 | #无符号,最大值为4294967295
| 4294967295 | #4294967296存成了4294967295
+------------+ ==============有符号和无符号bigint=============
MariaDB [db1]> create table t6(x bigint);
MariaDB [db1]> insert into t5 values
-> (-9223372036854775809),
-> (-9223372036854775808),
-> (9223372036854775807),
-> (9223372036854775808); MariaDB [db1]> select * from t5;
+----------------------+
| x |
+----------------------+
| -9223372036854775808 |
| -9223372036854775808 |
| 9223372036854775807 |
| 9223372036854775807 |
+----------------------+ MariaDB [db1]> create table t6(x bigint unsigned);
MariaDB [db1]> insert into t6 values
-> (-1),
-> (0),
-> (18446744073709551615),
-> (18446744073709551616); MariaDB [db1]> select * from t6;
+----------------------+
| x |
+----------------------+
| 0 |
| 0 |
| 18446744073709551615 |
| 18446744073709551615 |
+----------------------+

  zerofill测试整数类型的显示宽度

MariaDB [db1]> create table t7(x int(3) zerofill);
MariaDB [db1]> insert into t7 values
-> (1),
-> (11),
-> (111),
-> (1111);
MariaDB [db1]> select * from t7;
+------+
| x |
+------+
| 001 |
| 011 |
| 111 |
| 1111 | #超过宽度限制仍然可以存
+------+

注意:

  为该类型指定宽度时,仅仅只是指定查询结果的显示宽度,与存储范围无关,存储范围如下图所示,

  其实我们完全没必要为整数类型指定显示宽度,使用默认的就可以了,

  默认的显示宽度,都是在最大值的基础上加1。

    

  int的存储宽度是4个Bytes,即32个bit,即2**32

  无符号最大值为:4294967296-1

  有符号最大值:2147483648-1

  有符号和无符号的最大数字需要的显示宽度均为10,而针对有符号的最小值则需要11位才能显示完全,所以int类型默认的显示宽度为11是非常合理的

  最后:整形类型,其实没有必要指定显示宽度,使用默认的就ok

  2、浮点型

  浮点类型:float  double  (随着小数的增多,精度变得不准确

  定点数类型:dec 等同于 decimal (随着小数的增多,精度始终准确

  作用:存储薪资、身高、体重、体质参数等

  float

#FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

定义:
单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。m最大值为255,d最大值为30 有符号:
-3.402823466E+38 to -1.175494351E-38,
1.175494351E-38 to 3.402823466E+38
无符号:
1.175494351E-38 to 3.402823466E+38 精确度:
**** 随着小数的增多,精度变得不准确 ****

  double

#DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

定义:
双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。m最大值为255,d最大值为30 有符号:
-1.7976931348623157E+308 to -2.2250738585072014E-308
2.2250738585072014E-308 to 1.7976931348623157E+308 无符号:
2.2250738585072014E-308 to 1.7976931348623157E+308 精确度:
****随着小数的增多,精度比float要高,但也会变得不准确 ****

  decimal

decimal[(m[,d])] [unsigned] [zerofill]

定义:
准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。 精确度:
**** 随着小数的增多,精度始终准确 ****
对于精确数值计算时需要用此类型
decaimal能够存储精确值的原因在于其内部按照字符串存储。

  测试如下:

mysql> create table t1(x float(256,31));
ERROR 1425 (42000): Too big scale 31 specified for column 'x'. Maximum is 30.
mysql> create table t1(x float(256,30));
ERROR 1439 (42000): Display width out of range for column 'x' (max = 255)
mysql> create table t1(x float(255,30)); #建表成功
Query OK, 0 rows affected (0.02 sec) mysql> create table t2(x double(255,30)); #建表成功
Query OK, 0 rows affected (0.02 sec) mysql> create table t3(x decimal(66,31));
ERROR 1425 (42000): Too big scale 31 specified for column 'x'. Maximum is 30.
mysql> create table t3(x decimal(66,30));
ERROR 1426 (42000): Too-big precision 66 specified for 'x'. Maximum is 65.
mysql> create table t3(x decimal(65,30)); #建表成功
Query OK, 0 rows affected (0.02 sec) mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1 |
| t2 |
| t3 |
+---------------+
rows in set (0.00 sec) mysql> insert into t1 values(1.1111111111111111111111111111111); #小数点后31个1
Query OK, 1 row affected (0.01 sec) mysql> insert into t2 values(1.1111111111111111111111111111111);
Query OK, 1 row affected (0.00 sec) mysql> insert into t3 values(1.1111111111111111111111111111111);
Query OK, 1 row affected, 1 warning (0.01 sec) mysql> select * from t1; #随着小数的增多,精度开始不准确
+----------------------------------+
| x |
+----------------------------------+
| 1.111111164093017600000000000000 |
+----------------------------------+
row in set (0.00 sec) mysql> select * from t2; #精度比float要准确点,但随着小数的增多,同样变得不准确
+----------------------------------+
| x |
+----------------------------------+
| 1.111111111111111200000000000000 |
+----------------------------------+
row in set (0.00 sec) mysql> select * from t3; #精度始终准确,d为30,于是只留了30位小数
+----------------------------------+
| x |
+----------------------------------+
| 1.111111111111111111111111111111 |
+----------------------------------+
row in set (0.00 sec)

2️⃣ 日期类型

  DATE TIME DATETIME TIMESTAMP YEAR

  作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等

     YEAR
YYYY(1901/2155) DATE
YYYY-MM-DD(1000-01-01/9999-12-31) TIME
HH:MM:SS('-838:59:59'/'838:59:59') DATETIME YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y) TIMESTAMP YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

  year

MariaDB [db1]> create table t10(born_year year); #无论year指定何种宽度,最后都默认是year(4)
MariaDB [db1]> insert into t10 values
-> (1900),
-> (1901),
-> (2155),
-> (2156);
MariaDB [db1]> select * from t10;
+-----------+
| born_year |
+-----------+
| 0000 |
| 1901 |
| 2155 |
| 0000 |
+-----------+

  data,time,datetime

MariaDB [db1]> create table t11(d date,t time,dt datetime);
MariaDB [db1]> desc t11;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| d | date | YES | | NULL | |
| t | time | YES | | NULL | |
| dt | datetime | YES | | NULL | |
+-------+----------+------+-----+---------+-------+ MariaDB [db1]> insert into t11 values(now(),now(),now());
MariaDB [db1]> select * from t11;
+------------+----------+---------------------+
| d | t | dt |
+------------+----------+---------------------+
| 2017-07-25 | 16:26:54 | 2017-07-25 16:26:54 |
+------------+----------+---------------------+

  timestamp

MariaDB [db1]> create table t12(time timestamp);
MariaDB [db1]> insert into t12 values();
MariaDB [db1]> insert into t12 values(null);
MariaDB [db1]> select * from t12;
+---------------------+
| time |
+---------------------+
| 2017-07-25 16:29:17 |
| 2017-07-25 16:30:01 |
+---------------------+

  注意:  

1. 单独插入时间时,需要以字符串的形式,按照对应的格式插入
2. 插入年份时,尽量使用4位值
3. 插入两位年份时,<=69,以20开头,比如50, 结果2050
>=70,以19开头,比如71,结果1971
实例1:
MariaDB [db1]> create table t12(y year);
MariaDB [db1]> insert into t12 values
-> (50),
-> (71);
MariaDB [db1]> select * from t12;
+------+
| y |
+------+
| 2050 |
| 1971 |
+------+

 实例2:

MariaDB [db1]> create table student(
-> id int,
-> name varchar(20),
-> born_year year,
-> birth date,
-> class_time time,
-> reg_time datetime); MariaDB [db1]> insert into student values
-> (1,'alex',"","1995-11-11","11:11:11","2017-11-11 11:11:11"),
-> (2,'egon',"","1997-12-12","12:12:12","2017-12-12 12:12:12"),
-> (3,'wsb',"","1998-01-01","13:13:13","2017-01-01 13:13:13"); MariaDB [db1]> select * from student;
+------+------+-----------+------------+------------+---------------------+
| id | name | born_year | birth | class_time | reg_time |
+------+------+-----------+------------+------------+---------------------+
| 1 | alex | 1995 | 1995-11-11 | 11:11:11 | 2017-11-11 11:11:11 |
| 2 | egon | 1997 | 1997-12-12 | 12:12:12 | 2017-12-12 12:12:12 |
| 3 | wsb | 1998 | 1998-01-01 | 13:13:13 | 2017-01-01 13:13:13 |
+------+------+-----------+------------+------------+---------------------+

datetime与timestamp的区别

在实际应用的很多场景中,MySQL的这两种日期类型都能够满足我们的需要,存储精度都为秒,但在某些情况下,会展现出他们各自的优劣。
下面就来总结一下两种日期类型的区别。 1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。 2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,
操作系统以及客户端连接都有时区的设置。 3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。 4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),
如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

3️⃣ 字符类型 

 1、char和varchar括号内的参数指的都是字符的长度
#char类型:定长,简单粗暴,浪费空间,存取速度快
字符长度范围:0-255(一个中文是一个字符,是utf8编码的3个字节)
存储:
存储char类型的值时,会往右填充空格来满足长度
例如:指定长度为10,存>10个字符则报错,存<10个字符则用空格填充直到凑够10个字符存储 检索:
在检索或者说查询时,查出的结果会自动删除尾部的空格,除非我们打开pad_char_to_full_length SQL模式(SET sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';)
#varchar类型:变长,精准,节省空间,存取速度慢
字符长度范围:0-65535(如果大于21845会提示用其他类型 。mysql行最大限制为65535字节,字符编码为utf-8:https://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html)
存储:
varchar类型存储数据的真实内容,不会用空格填充,如果'ab ',尾部的空格也会被存起来
强调:varchar类型会在真实数据前加1-2Bytes的前缀,该前缀用来表示真实数据的bytes字节数(1-2Bytes最大表示65535个数字,正好符合mysql对row的最大字节限制,即已经足够使用)
如果真实的数据<255bytes则需要1Bytes的前缀(1Bytes=8bit 2**8最大表示的数字为255)
如果真实的数据>255bytes则需要2Bytes的前缀(2Bytes=16bit 2**16最大表示的数字为65535) 检索:
尾部有空格会保存下来,在检索或者说查询时,也会正常显示包含空格在内的内容

官网的解释如下:

  

额外知识:
length:查看字节数
char_length:查看字符数

  2、char填充空格来满足固定长度,但是在查询时却会很不要脸地删除尾部的空格(装作自己好像没有浪费过空间一样),

  然后修改sql_mode让其现出原形,过程如下:

mysql> create table t_char(x char(8),y varchar(8));
Query OK, 0 rows affected (1.66 sec) mysql> insert into t_char values('char','varchar');
Query OK, 1 row affected (0.91 sec) mysql> set sql_mode='';
Query OK, 0 rows affected (0.00 sec) mysql> select x,char_length(x),y,char_length(y) from t_char;
+------+----------------+---------+----------------+
| x | char_length(x) | y | char_length(y) |
+------+----------------+---------+----------------+
| char | 4 | varchar | 7 |
+------+----------------+---------+----------------+
1 row in set (0.00 sec) 略施小计,让char现出原形,让其显示实际存储所占用的字节数
mysql> set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH'; # 填满长度
Query OK, 0 rows affected (0.00 sec) mysql> SELECT x,char_length(x),y,char_length(y) from t_char;
+----------+----------------+---------+----------------+
| x | char_length(x) | y | char_length(y) |
+----------+----------------+---------+----------------+
| char | 8 | varchar | 7 |
+----------+----------------+---------+----------------+
1 row in set (0.00 sec) 输入中文时:
mysql> create table t4(x char(6),y varchar(6));
Query OK, 0 rows affected (0.55 sec)
mysql> set sql_mode ='';
Query OK, 0 rows affected (0.00 sec) mysql> insert into t4 values('你好吗 ','我好呀 ');
mysql> select x,char_length(x),y,char_length(y) from t4;
+-----------+----------------+------------+----------------+
| x | char_length(x) | y | char_length(y) |
+-----------+----------------+------------+----------------+
| 你好吗 | 3 | 我好呀 | 4 |
+-----------+----------------+------------+----------------+
1 row in set (0.00 sec) mysql> set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
Query OK, 0 rows affected (0.00 sec) mysql> select x,char_length(x),y,char_length(y) from t4;
+--------------+----------------+------------+----------------+
| x | char_length(x) | y | char_length(y) |
+--------------+----------------+------------+----------------+
| 你好吗 | 6 | 我好呀 | 4 |
+--------------+----------------+------------+----------------+
1 row in set (0.00 sec) #char类型:3个中文字符+2个空格=11Bytes
#varchar类型:3个中文字符+1个空格=10Bytes
mysql> select x,lentgth(x),length(y) from t4;
ERROR 1305 (42000): FUNCTION db1.lentgth does not exist
mysql> select x,lentgth(x),y,length(y) from t4;
ERROR 1305 (42000): FUNCTION db1.lentgth does not exist
mysql> select x,length(x),y,length(y) from t4;
+--------------+-----------+------------+-----------+
| x | length(x) | y | length(y) |
+--------------+-----------+------------+-----------+
| 你好吗 | 12 | 我好呀 | 10 |
+--------------+-----------+------------+-----------+
1 row in set (0.00 sec)

  3、虽然 CHAR 和 VARCHAR 的存储方式不太相同,但是对于两个字符串的比较,都只比 较其值,忽略 CHAR 值存在的右填充,

  即使将 SQL _MODE 设置为 PAD_CHAR_TO_FULL_ LENGTH 也一样,,但这不适用于like

  mysql> create table t5(myname char(10));
Query OK, 0 rows affected (0.38 sec) mysql> insert into t5 values('cc');
Query OK, 1 row affected (0.05 sec) mysql> select myname='cc',myname='cc ' from t5;
+-------------+--------------+
| myname='cc' | myname='cc ' |
+-------------+--------------+
| 1 | 1 |
+-------------+--------------+
1 row in set (0.00 sec) mysql> select myname='cc',myname like 'cc ' from t5;
+-------------+-------------------+
| myname='cc' | myname like 'cc ' |
+-------------+-------------------+
| 1 | 0 |
+-------------+-------------------+
1 row in set (0.00 sec)

  4、小结:

 常用字符串系列:char与varchar
注:虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,
有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡

4️⃣ 枚举(enum)与集合(set)类型

  字段的值只能在给定范围中选择,如单选框,多选框  

  enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female

  set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...) 

mysql> create table user(
-> id int ,
-> name char(12),
-> sex enum('male','female','other'),
-> level enum('vip1','vip2','vip3'),
-> hobbies set('play','music','read','run','swim')
-> ); mysql> insert into user values
-> (1,'cc','male','vip1','read,music,play');
Query OK, 1 row affected (0.08 sec) mysql> desc user;
+---------+-----------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------------------------------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | char(12) | YES | | NULL | |
| sex | enum('male','female','other') | YES | | NULL | |
| level | enum('vip1','vip2','vip3') | YES | | NULL | |
| hobbies | set('play','music','read','run','swim') | YES | | NULL | |
+---------+-----------------------------------------+------+-----+---------+-------+
5 rows in set (0.00 sec) mysql> select * from user;
+------+------+------+-------+-----------------+
| id | name | sex | level | hobbies |
+------+------+------+-------+-----------------+
| 1 | cc | male | vip1 | play,music,read |
+------+------+------+-------+-----------------+
1 row in set (0.00 sec)
 
 

MySQL数据库篇之数据类型的更多相关文章

  1. mysql数据库,当数据类型是float时,查询居然查询不出数据来

    mysql数据库,当数据类型是float时,查询居然查询不出数据来,类似如下: 以后mysql数据库不用float类型,而double类型可以查得出来.

  2. MySQL数据库的基本数据类型

    整数类型 数值型数据类型主要用来存储数字,包含的类型有: TINYINT.SMALLINT.MEDIUMINT. INT(INTEGER). BIGINT. 下面通过一个例子来查看各种类型的所占有的数 ...

  3. MySQL数据库篇之索引原理与慢查询优化之二

    接上篇 7️⃣  正确使用索引 一.索引未命中 并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果, 我们在添加索引时,必须遵循以下问题: #1 范围问题,或者说条件 ...

  4. MySQL数据库篇之存储引擎

    主要内容: 一.数据引擎 二.MySQL支持的存储引擎 三.使用存储引擎 1️⃣ 什么是存储引擎? MySQL中建立的库----> 文件夹,库中建立的表----->文件. 现实生活中我们用 ...

  5. MySQL数据库篇之库的增删改查

    主要内容: 一.系统数据库介绍 二.创建数据库 三.数据库增删改查 四.MySQL添加注释 1️⃣ 系统数据库介绍 1.初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱 ...

  6. Django中的app及mysql数据库篇(ORM操作)

    Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都 ...

  7. 百万年薪python之路 -- MySQL数据库之 常用数据类型

    MySQL常用数据类型 一. 常用数据类型概览 # 1. 数字: 整型: tinyint int bigint 小数: float: 在位数比较短的情况下不精确 double: 在位数比较长的情况下不 ...

  8. MySQL数据库篇之索引原理与慢查询优化之一

    主要内容: 一.索引的介绍 二.索引的原理 三.索引的数据结构 四.聚集索引与辅助索引 五.MySQL索引管理 六.测试索引 七.正确使用索引 八.联合索引与覆盖索引 九.查询优化神器--explai ...

  9. Python学习日记(四十二) Mysql数据库篇 十

    前言 当我们自己去写SQL代码的时候有时候会因为不熟练会导致效率低,再之后要进行许多的优化,并且操作也较为繁琐.因此ORM框架就能够解决上面的问题,它能根据自身的一些规则来帮助开发者去生成SQL代码. ...

随机推荐

  1. ballerina 学习十 streams

    ballerina 的streams 使用的是siddhi complex event processing 引擎处理,可以包含的语法有 projection filtering windows jo ...

  2. Spring Cloud feign 服务超时处理

    Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能会出现首次调用失败的问题 造成该问题的原因 Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入fa ...

  3. docker windows 2016 安装测试

    1. 安装方式      powershell Install-Module-NameDockerMsftProvider-RepositoryPSGallery-Force Install-Pack ...

  4. http链接

    1,打开一个网页是多少个请求:如果是一个html页面就是一个,解析后面css,js就是很多个  一般都是多个http请求 浏览器先根据地址栏地址发送一个http请求获取html网页 然后浏览器解析ht ...

  5. 如何使用JSON格式 POST数据到服务器

    1. JSON的数据格式a) 按照最简单的形式,可以用下面这样的 JSON 表示名称/值对: { "firstName": "Brett" } b) 可以创建包 ...

  6. eclipse导出jar,再转换为exe可执行程序

    转自: https://blog.csdn.net/mommomm/article/details/8227876 若只想知道如何把jar转换成exe,直接看第四步即可. 一.导出jar文件: 选中你 ...

  7. shell三剑客之find

    查找以ini结尾的文件[root@iZj6cbstl2n6r280a27eppZ app]# find / -name "*.ini"/app/myblog/config.ini ...

  8. 搭建基于hyperledger fabric的联盟社区(三) --生成公私钥证书及配置文件

    一.生成公私钥和证书 Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书.这些证书本来应该是由CA来颁发,但是目前只有两个社区,所 ...

  9. OpenCV在debug和release模式下选择不同的lib静态库文件

    这两天测试OpenCV显示到MFC的Picture控件上,终于测试成功了,但是换到release模式下就会imread失败.发现问题是导入的lib问题. 因为VS如果通过Property Manage ...

  10. 手写html表格熟练度练习

    table中的colspan和rowspan 经常手写表格时 查半天的两个属性,记下来 <!DOCTYPE html> <html lang="en" > ...