MySQL概念补充
MySQL中容易忽视的概念的细节。
存储过程和函数
函数:
如now()、date_format()、ifnull()、sum()、count() 、format()、locate()、cell()、floor()…等
函数必须指定返回值,且参数默认为IN类型。
存储过程没返回值,参数可以是 IN,OUT,IN OUT类型,有的人可能会理解成OUT 也算是返回值。
调用方式:函数 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