zoukankan      html  css  js  c++  java
  • 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就是针对查询结果(也可以是原表)发挥作用

  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/HKUI/p/3192611.html
Copyright © 2011-2022 走看看