mysql补充

Posted jason-lin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql补充相关的知识,希望对你有一定的参考价值。

char 和 varchar的区别

char 固定长度
varchar 可变长

char:定长
varchar:变长

#宽度指的是字符的个数
create table t13(name char(5));
create table t14(name varchar(5));

insert into t13 values(‘李杰 ‘); #‘李杰   ‘
insert into t14 values(‘李杰 ‘); #‘李杰 ‘

select char_length(name) from t13; #5
select char_length(name) from t14; #3


select name from t13 where name=‘李杰‘;
select name from t13 where name like ‘李杰‘;

name char(5)
egon |alex |wxx  |

name varchar(5)
1bytes+egon|1bytes+alex|1bytes+wxx|
4+egon|4+alex|3+wxx|
注意:

1、char填充空格来满足固定长度,但是在查询时却会很不要脸地删除尾部的空格(装作自己好像没有浪费过空间一样),然后修改sql_mode让其现出原形

 SET sql_mode = ‘pad_char_to_full_length‘;

2、 虽然 CHAR 和 VARCHAR 的存储方式不太相同,但是对于两个字符串的比较,都只比 较其值,忽略 CHAR 值存在的右填充,即使将 SQL MODE 设置为 PAD_CHAR_TO_FULL LENGTH 也一样,,但这不适用于like

mysql> SELECT myname = ‘Monty‘, myname = ‘Monty  ‘ FROM names;
+------------------+--------------------+
| myname = ‘Monty‘ | myname = ‘Monty  ‘ |
+------------------+--------------------+
|                1 |                  1 |
+------------------+--------------------+
row in set (0.00 sec)

mysql> SELECT myname LIKE ‘Monty‘, myname LIKE ‘Monty  ‘ FROM names;
+---------------------+-----------------------+
| myname LIKE ‘Monty‘ | myname LIKE ‘Monty  ‘ |
+---------------------+-----------------------+
|                   1 |                     0 |
+---------------------+-----------------------+
row in set (0.00 sec)

总结:

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

delete 和 truncate 的区别

使用方法:
情况1,清空表所有记录

1、delete from [table]; 
2、truncate [table];

情况2,删除表部分记录,只能用select

select from table where [condition]
区别:

1、delete 可以返回被删除记录数,而truncate返回的是0.

2、如果一个表中有自增字段,truncates删除所有记录后,新增数据id从1开始,

delete删除所有记录 新增的数据,仍然是以删除前的最后一条记录作为起始。

3、truncate速度快,delete速度慢。



以上是关于mysql补充的主要内容,如果未能解决你的问题,请参考以下文章

vs 2010代码片段

js常用代码片段

26个jQuery代码片段使用技巧

部分代码片段

linux中怎么查看mysql数据库版本

VSCODE snippets的使用