MySQL数据类型及sql模型及服务器变量

myisam  不支持事物,表锁

  .frm: 储存表的结构

 

     

 

         

 

  

 

  
  .MYD: 储存数据,MYDATA的缩写

 

       
  .MYI:  储存索引,MYIndex的缩写

 

 

innodb (每表一个表空间文件 ) 支持事物,支持行锁,支持外键
   . frm 储存表结构
   .ibd  表空间(储存数据和索引)
mysql默认从储存引擎伟Innodb
mysql储存引擎详细见: mysql 的储存引擎
 
连接mysql
  1.应用程序连接服务器的方式
        动态sql:通过函数或方法与数据库服务建立连接,然后通过协议将语句发送到服务端
        嵌入式sql:通过api直接连接到服务器 
 
  2.客户端连接服务端时可以有多种协议
     --protocol=tcp|socket|pipe|memory (如果客户端服务端不在同一个机器上必须使用tcp,在同一个机器上uninx可以使用socket,windows可以使用pipe|memory)

 

启动mysql时实际用的是mysql_safe(以安全线程方式启动mysql)
mysql启动时会在多个地方找配置文件
  /etc/my.cnf ––>   /etc/myql/my.cnf ––>   安装目录下的/my.cnf   ––>   --defaults-extra-file=文件(指定配置文件)   ––>  用户家目录下的/my.cnf  如果找到多个配置文件,最后找到的是最终生效的

     <--- 查看mysql的配置文件的启动或者说是读取顺序 
                   mysqld --verbose --help | grep -A 1 'Default options'
                  --->

#mysqld --help -verbose 查看mysqld 默认的参数

mysql.cnf配置文件中
[mysqld] 只对mysqld生效
[client] 对所有客户端生效
[mysql] 只对mysql生效

 

sql模型,mysql不同的处理处理机制:

  ANSI QUOTES :               双引号""和反撇号``是相同的只能引用字段名,表名。单引号''只能引用字符串
    IGNORE_SPACE :             在内建的函数中忽略多余的空白字符
    STRICT_ALL_TABLES :    只要违反了数据规则都不允许,而且会返回错误
    STRICT_TARNS_TABLES  :向一个支持事物的表插入非法数据时是不允许的,而且会返回一个错误

查看sql模型 show global variables like 'sql_mode'  查看全局的变量


mysql服务器变量

  作用域划分:
    全局变量:查看全局变量 show global variables
    会话变量:查看会话变量 show [session] variables ,
        会话一终止会话变量就失效了(简单的说会话变量作用当前会话,全局变量作用于所有会话),当会话变量和全局变量冲突时,会话变量覆盖全局变量

  生效时间:
    动态:立即生效,重启失效, 修改会话变量只对当前会话有效
      修改全局变量,对当前会话无效 <(因为修改的是全局变量而会话变量还是以前的,当会话变量和全局变量冲突时,会话变量覆盖全局变量)>,只对新建立会话有效

    静态:重启生效,静态的参数写到配置文件中或通过参数传递给mysqld

  调用服务器变量(内置变量): @@
  调用用户自定义变量: @
  显示变量: select @@global.sql_mode     显示全局sql模型
       select @@session.sql_mode     显示会话sql模型

  设置变量: set {global|session} 变量名='value'

 


show character set ; 查看mysql支持的字符集
show collaction ; 查看mysql的排序规则

 
数据类型 (unisined表示无符号类型)

整型: 
类型                  占用字节      最小值                          最大值 
TINYINT           1               有符号-128,无符号0               有符号127,无符号255 
SMALLINT          2     有符号-32768,无符号0                有符号32767,无符号65535 
MEDIUMINT    3     有符号-8388608,无符号0             有符号8388607,无符号1677215 
INT和INTEGER  4     有符号-2147483648,无符号0            有符号2147483647,无符号4294967295 
BIGINT          8     有符号-9223372036854775808,无符号0          有符号9223372036854775807,无符号18446744073709551615

浮点型: 
类型           字节 
FLOAT(g,f)  4 或8
  g:表示整体多少个字符
  f:表示小数点后多少个字符

DOUBLE  8 
说明:当需要精确到小数点后10位以上,使用DOUBLE类型

定点数: 
类型 字节 最小值 最大值 
DEC(M,D)和DECIMAL(M,D) M+2 
说明:有效取值范围由M和D确定,浮点型存储的是近似值,定点数型存储的是字符串

位类型: 
类型   字节   最小值   最大值 
BIT(M)    1-8       BIT(1)   BIT(64) 
说明:字节数是M,取值范围为1-8

日期时间型: 
类型     字节     最小值         最大值 
DATE      4           1000-01-01         9999-12-31 
DATETIME   8     1000-01-01 00:00:00    9999-12-31 23:59:59 
TIMESTAMP  4      19700101080001         2038年某个时刻 
TIME      3   -835:59:59          838:59:59 
YEAR     1     1901           2155

字符串类型: 
  CHAR系列: 
  类型           字节描述 
  CHAR(M)           M为0-255的整数      char列的长度被固定为创建表时所声明的长度
  VARCHAR(M)    M为0-65535的整数   VARCHAR列值长度可变   如果长度小于255,需要多占据一个字符作为结束符,如果超过255个字符需要占据两个字符作为结束符

  
  TEXT类型:
   类型         字节       描述 

  TINYTEXT       0-255           值的长度为+2个字节 
  TEXT       0-65535       值的长度为+2个字节 
  MEDIUMTEXT     0-167772150    值的长度为+3个字节 
  LOANGTEXT    0-4294967295   值的长度为+4个字节 
  说明:用于存储大量字符串 

  BINARY系列: 
  类型         字节描述 
  BINARY(M)      允许长度为0-M 
  VARBINARY(M)    允许长度为0-M 
  说明:存储二进制数据,VARBINARY长度可变 

  BLOB系列: 
  类型         字节 
  TINYBLOB      0-255 
  BLOB         0-2^16 
  MEDIUBLOB        0-2^24 
  LOANGBLOB       0-2^32 
  说明:存储大量的二进制数据

       Enum("value1","value2",....)     最大值65535    该类型的列只可以容纳所列值之一或为空
  Set("value1","value2",....)   最大值64   该类型的列可以容纳一组值或为空

posted @ 2018-03-12 14:16  IT小能手  阅读(253)  评论(0编辑  收藏  举报