zoukankan      html  css  js  c++  java
  • mysql入门 — (2)

    创建表

      CREATE TABLE 表名称 [IF NOT EXISTS](

                字段名1 列类型[属性] [索引]

                字段名2 列类型[属性] [索引]

                ...

                字段名n 列类型[属性] [索引]            

                 )[表类型] [表字符集];

                表名称和字段名需要自己定义名称

    SQL是不区分大小写的,但是表就是一个文件名,windows不区分大小写,linux区分大小写。

    1.名称和字段名要有意义,比如说用英文或英文的组合;

    2.自己定义的名称最好都小写;

    3.SQL语句需要大写。

    数据值和列类型

      数据库是按照空间大小区分的

      1.数值型

        整型(整数)

          小的整型       1字节  -128-127          0-255                         TINYINT

          较小的整型    2字节  -32768-32767  0-65535                     SMALLINT

          中等的整型    3字节                                                             MEDIUMINT

          标准的整型    4字节  -2147483648-2147483647                INT

          大整数型       8字节                                                             BIGINT

      指定了表中的数据的类型为tinyint,那么数值的范围为(-128-127),当存储的数据范围超过这个范围的话,会提示错误。

      指定了数据类型为无符号数以后,如果数值为负,或者超出了范围,都会报错。

        浮点型(小数)

          float(M,D)            4字节

          double(M,D)         8字节

          定点数          

          decimal(M,D)       M+2字节

      数据总长度为M,小数点后面保留D位。如果超出了长度范围,会报错,如果长度不够,会自动补全到指定的长度。

      浮点数是存在误差的,在小数点后边会存在四舍五入的情况。

     

      如果位数够的话,会存在四舍五入的情况,如果位数不够的话,不会进行四舍五入的进位。

       由于浮点数存在误差,所以在存储金额的时候,需要使用定点数来存储,定点数的存储精度高,但是因为是以字符串的形式存储的,所以比较耗时。 

      2.字符型

          可以使用“”和''来存储。

          char、varchar的长度都是255。

       如果超出了指定的长度,就会保存失败。

      char属于固定长度的字符串,varchar属于可变长度字符串。

            char(4)                                      varchar(4)

              ''           (4字节)                ''               (1字节)

              'ab'        (4字节)             'ab'             (3字节)

              'abcd'   (4字节)       'abcd'           (5字节)

              'abcdefg'  (4字节)     'abcdefg'     (5字节)

      如果是固定的数据长度,建议使用char,因为速度比varchar更快。但是缺点是浪费存储空间。

      对于长度不大、对查询速度有较高要求可以考虑使用char类型数据,对于变化较大的可以考虑使用varchar类型的数据。

            text  文本数据(文章)

                MEDIUMTEXT

                LONGTEXT 

            blob  二进制数据(相片)

                MEDIUMBLOB 

                LONGBOLB  

            

            ENUM    枚举   1或2字节

          

            SET        集合      1,2,3,4,8字节

      指定了值的范围,因为插入的值为'w'和'w'的时候,不是在指定的范围中,所以有警告。

      枚举ENUM一次只能插入一个数据,而集合SET一次可以插入多个数据值

      如果值是固定的,比如说:性别、星期几、月份......

      3.日期型  

          DATE                       YYYY-MM-DD

          TIME                        hh:mm:ss

          DATETIME       YYYY-MM-DD hh:mm:ss

          TIMESTAMP           YYYYMMDDhhmmss

          YEAR

      创建表的时候,最好不要使用这些中的时间格式。建议使用int保存时间,这样子方便进行计算。

    数据字段属性

      1.unsigned可以让空间增加一倍, -128-127, 0-255,只能用在数值型字段;

      2.zerofill 零填充,前导0,自动用0填充。

       加入zerofill会自动使用0在前边进行填充。

       3.AUTO_INCREMENT

        只能是整数,数据每增加一条,就会自动加1,而且这个字段上的值不允许重复。

        NULL 0 留空都会再次字段上加上1。

      

      每个表最好都有一个id字段设置为AUTO_INCREMENT。

      4.NULL 和NOT NULL

      如果不指定,则默认允许插入NULL。

      在创建表的时候,每个字段都不要插入空值,可能后续不好处理,所以设置为NOT NULL。

      5.缺省值

       CREATE TABLE user(

               id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

               name VARCHAR(20) NOT NULL DEFAULT '',

               height DOUBLE(10,2) NOT NULL DEFAULT '0.0',

               age INT NOT NULL DEFAULT 0,

               sex CHAR(4) NOT NULL DEFAULT '男'

                )

    创建索引

      1.主键索引

        最常见的索引,主要作用是确定数据库表中一条特定数据记录的位置。

        两条id为1的记录。

      2.唯一索引

        

      3.常规索引

        

      4.全文索引

         

    能让一个男孩子热血的,不仅有梦想,还有姑娘。
  • 相关阅读:
    简单数学问题
    MFC 注册表编程
    Windows多线程端口扫描
    MFC Socket双向通信
    凯撒加密
    单片机滤波
    大数素性检验
    大数加法乘法
    Unsafe Code
    委托
  • 原文地址:https://www.cnblogs.com/Mr24/p/6634190.html
Copyright © 2011-2022 走看看