• Mysql常用数据类型详细说明及实例说明(学习笔记一)


    1.Mysql 在windows

    Net start mysql[启动]

    Net stop mysql[停止]

    Quit[退出mysql命令行]

    c[取消输入的命令]

    Select version(),current_date()

    Mysql 版本号,现在的日期(年月日如2013-7-15)

    Now()现在时间(年月日时分秒如 2013-07-15 08:29:56)

    User() 用户

    2.当简单的计算器

    select sin( pi()/6),100/3;

    3.不必全在一个行内给出一个命令,较长的命令可以输入到多个行中。Mysql 通过寻找终止分号而不是输入行的结束来决定语句在哪结束。

    Mysql状态

     

    提示符

    含义

    Mysql>

    准备好接受新命令

    ->

    等待多行命令的下一行

    >

    等待下一行,等待以单引号(“’”)开始的字符串的结束

    等待下一行,等待以双引号(“’”)开始的字符串的结束

    `

    等待下一行,等待以反斜点(`)开始的字符串的结束

    /*

    等待下一行,等待以/*开始的注释的结束

     

    注意:当输入’, “, `时若不输入与之对应的结束符则无法输入新的命令

     

    4.Mysql常用列类型

     

    ①串数据数据类型

    数据类型

                  说明

    char

    1-255个字符的定长串。他的长度必须在创建时指定否则Mysql假定为char(1)

    varchar

    长度可变,整体体最大长度是65,532字节如果创建时指定为varchar(n),则可存储0-n个字符的变长串(n<=65535)字符集而定

    tinytext

    与text相同,最大长度为255字节

    mediumtext

    与text相同,但最大16k

    text

    最大长度为64k的变长文本

    longtext

    与text相同,但最大长度为4GB

    enum

    接受最多64k个串组成的一个预定义集合的某个串

    set

    接受最多64k个串组成的一个预定义集合的0个或多个串

    数值数据类型 

    数据类型

              说明

    tinyint

    整数值,支持-128-127(如果unsigned,为0-255)的数 1字节

    smallint

    整数值,支持-32768-32767(unsigned,0-65535)    2字节

    mediumint

          -8388608-8388607(undesigned 0-)  3字节 223

        -223-223-1

    int

                                     231        4字节 

    bigint

                                               8字节

    float

    单精度浮点值

    double

    双精度浮点值

    boolean

    布尔

    decimal

    精度可变的浮点值

    peal

    4字节的浮点值

    bit

    为字段,1-64位.(mysql5之前功能上等于tinyint)

     

     

     

    日期和时间数据类型

    数据类型

            说明

    DATE

    表示1000-01-01至9999-12-31的日期,格式(YYYY-MM-DD)

    DATETIME

    DATE和TIME的组合

    TIMESTAMP

    功能上同DATETIME(但范围较小)

    TIME

    格式 HH:MM:SS

    YEAR

    用2位数字表示,范围是70(1970)-69(2069),4位表示,1901-2155

     

    二进制数据

    数据类型

            说明

    TINYBLOB

    Blob最大长度为255字节

    BLOB

                   64kb

    MEDIUMBLOB

                    16MB

    LONGBLOB

                      4GB

     

    5.相关数据类型说明补充

    列声明中可选属性 unsigned ,zerofill

    Tinyint时默认tinyint(4)

    只有当给zerofill时括号里给定长度才有意义

    比如定义了zerofill tinyint(5) 插入1时则插入的是00001   

    小数型:

    浮点型(不太标准),定点型(48个字节较复杂)

    Float(M,D)  M不算.的总位数,D小数点后的位数

    比如float(6,4)范围是

    -9999.99-9999.99

    688.896插入进去是688.90

    1,3,7,9舍去

    2,4,6,8,5进位

    定点型:

    Decimal(M,D)

    插入时数据与存入的数据差异小

    字符型:

    Char(M) M均代表可容纳的字符长度而非字节大小一个汉字z3字节而它仍是一个字符(据编码而定)插入的数据小于规定长度时用空格补齐 取出时去掉尾部空格,如果插入的数据尾部就是带有空格的,则一存一取后尾部空格会丢失,小于M时也占M个字符,利用率<=100%;

     

    Varchar(M) 小于M个,最大有65535字节(ascii时),如果实存n个字符,n<=M,它必须还得用1-2个字节来记录实际存多少,取时取多少,尾部有空格也不会丢失,利用率=n/(n+1~2字节)<100%,小于255记录时用一个字节,大于时用2个字节

    证明以上差异实例:

    创建表t2

    CREATE TABLE `t2` (

      `id` int(10) unsigned NOT NULL auto_increment,

      `name` char(7) NOT NULL,

      `pass` varchar(8) NOT NULL,

      PRIMARY KEY  (`id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    插入尾部带空格的数据

    insert into t2(name,pass)

    value('hk   ','hk   ');

    取出数据

     select concat(name,'!'),concat(pass,'!') from t2;

    会发现

    Charvarchar区别

    1.Char :1-255定长串  Varchar:0-65535

    2.实占空间与利用效率不一样

    3.对尾部空格的处理

    Char(可以不给长度默认1),varchar在表创建时都必须给定长度,tinytext类型的不能给定长度,text可以不给可以给定长度,text类型的数据不能设置默认值

     对于日期型的数据,默认为   CURRENT_TIMESTAMP等自动填充的值时,为保证修改某条相关的信息时这条里的时间也随着修改,长加on update 改变的因素

    比如创建一个时间型字段 

    列声明为:

    ·stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP

    修改列数据属性

    法一:

    ALTER TABLE `t1` CHANGE `id` `id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT

    alter table 表名 change 字段名 字段列声明(包括字段名)

    其中unsigned 必须放在类型之后

    法二:

    alter table 表名  modify column 字段名 属性声明 ...

     where与having

    数据在表中,表在硬盘或内存中以文件形式存在

    where针对表文件发挥作用

    查询出的结果也可以看做一张表,其文件一般临时存在缓冲区,

    having就是针对查询结果(也可以是原表)发挥作用

  • 相关阅读:
    【特种兵系列】String中的==和equals()
    windows7 x64下maven安装和配置
    微信开发之本地接口调试(非80端口,无需上传服务器服务器访问)
    Java微信公众平台接口封装源码分享
    jdk安装
    用户权限管理
    Linux常用命令(一)
    Xshell显示中文乱码问题
    伪装虽易测试不易之微信浏览器
    每次新建项目出现appcompat_v7 解决方法
  • 原文地址:https://www.cnblogs.com/HKUI/p/3192611.html
Copyright © 2020-2023  润新知