5.MySQL概念补充

By youfang

MySQL概念补充

MySQL中容易忽视的概念的细节。

存储过程和函数

函数:
如now()、date_format()、ifnull()、sum()、count() 、format()、locate()、cell()、floor()…等

  1. 函数必须指定返回值,且参数默认为IN类型。

  2. 存储过程没返回值,参数可以是 IN,OUT,IN OUT类型,有的人可能会理解成OUT 也算是返回值。

  3. 调用方式:函数 select my_fun() ;过程 call my_pro( ) ;

函数可以直接写在sql 语句中,存储过程需要单独call。

视图

视图是一个虚拟表,是sql的查询结果,其内容由查询定义。

基表的数据变化也会影响到视图[insert update delete ];

视图就是执行select语句后返回的结果。

  • 简单,用户不需要关心相应表的结构、关联条件等。对于用户来说,视图就是他们想要查询的结果集。
  • 使用视图的用户只能访问被允许查询的结果,使用视图可以限制用户访问一些敏感信息列。

MYSQL的varchar类型能存放多少字符

  • varchar(10) 存放10个字符。可以是10个汉字,或者是10个字母。

  • varchar的最大长度受字符集影响,最大65535字节。

    • UTF8字符集,每个字符大小3字节,所以65535/3 = 21845,最大支持21845字符,因此VARCHAR()括号中最大填写21845字符
    • GBK字符集,每个字符大小2字节,所以65535/2 = 32767.5,最大支持32767字符,因此VARCHAR()括号中最大填写32767字符
    • UTF8MB4字符集,每个字符4字节,所以65535/4 = 16383.75,最大支持16383字符。
  • TEXT类型:

字符集名称 大小 文件大小
TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB

CHAR最大255字符,字符集对CHAR没有影响,CHAR()括号内填写最大字符数255