构建数据表

一、创建表:

create table 表名(

    字段名 数据类型  字段约束,

    字段名 数据类型  字段约束,

    ...

    字段名 数据类型 字段约束

  );

 

二、数据类型:

    整型: 

      tinyint  1个字节  (-128,127)

     smallint 2个字节  (-32768-32767)   3万多

     mediumint   3个字节 (-8388608-8388607) 800多万

     int               4个字节   (-2147483648-2147483647) 21个亿

     bigint          8个字节   很大的整数

     

   浮点型:

        float             4个字节

      注:

单精度IEEE754由

一位尾符
八位阶码
二十三为尾数
组成
要使表示的数最大,尾符一定为0表正数,阶码一定最大,但八位全1不符合规范,最大是11111110表示254,减去偏移量127,得127
尾数23位都取1,小数点之前也可以保存一个1,因此是20+2-1+…+-23=2-2-23
又阶码最大为127,故最大正数为2127 * (2-2-23),得2128-2104

        double         8个字节

      decimal  对应 decimal(m:d)   依赖于M和D的值 如:decimal(16,2)  表示的数最多只能16位,整数部分最多是 16-2=14位,小数两位,多余的小数四舍五入

 

 

      字符串型:

      char  0-255字节  定长字符串

      varchar 0-65535字节  变长字符串

      tinyblob  0-255字节    不超过255个字符的二进制字符串

      tinytext   0-255字节   短文本字符串

      blob      0-65535字节  二进制形式的长文本数据

      text      0-65535字节   长文本数据

      mediumblob   0-16777215字节   二进制形式的 中等长度文本数据

      mediumtext    0-16777215字节  中等长度文本数据

      longblob      0-4294967295字节  二进制形式的极大文本数据

      longtext      0-4294967295字节  极大文本数据

     

    枚举型:

      enum:从给定的集合中选择一个值

      定义格式 :enum('魏国','蜀国','吴国'...)

      set :从给定的集合中选择一个或者多个值

      定义格式:set('唱歌','跳舞','吟诗'....)

 

     时间日期型:

      date    3个字节        yyyy-mm-dd

      time   3个字节         hh:mm:ss

      year   1个字节               年

      datetime: 8个字节    yyyy-mm-dd  hh:mm:ss

      timtstamp:4个字节   yyyy-mm-dd  hh:mm:ss

 

    时间日期函数:

      now()  返回服务器当前日期,格式对应datetime类型。

      curdate()返回当前日期,格式对应date类型。

      curtime() 返回当前时间,格式对应time类型。

 

    时间运算:

      语法格式  select * from 表名 where 字段名 运算符(时间-interval 时间间隔单位);

    时间间隔单位: 2 hour | 1 minute  |  2  second | 2 year | 3  month  | 1  day

    e.g.:查找注册时间在一周以内的记录

    select * from marathon  where registeration_time > (now()-interval 7 day);

 

三、字段约束

如果你想设置数字为无符号则加上unsigned

如果你不想字段为null,可以设置字段属性为 not null,在操作数据库时如果输入该字段的数据为Null,就会报错。

default  表示设置一个字段的默认值

auto_increment定义列为自增列

primary key  关键字用于定义列为主键。主键的值不能重复,且不能为空。

 

如:创建班级表

  create table   cls(id int primary key  auto_increment,

         name varchar(32) not null,

           age tinyint unsigned not null,

           sex  enum('w','m') ,

          score float  default 0.0

          );

 

四、数据表操作

  查看数据表:show tables;

  查看已有表的字符集:show create table 表名;

  查看表结构 :desc  表名;

  删除表:drop table 表名;

 

五、修改表结构

  添加一个字段

  alter  table  表名  add   字段名  数据类型;                          :默认位置放到最后面

  alter  table 表名   add   字段名  数据类型  first;                    :  放到最前面字段

  alter  table 表名  add  字段名   数据类型 after  字段名;      :放到 某个字段的后面 

   

  删除一个字段

  alter table 表名    drop  字段

  

  修改子段类型

  alter table  表名  modify  字段  新字段类型;

 

  修改字段名称

  alter table 表名 change  旧字段名  新字段名 新数据类型;

 

  修改表名

  alter table 表名 rename  新表名;

 

      

 

posted @ 2021-04-15 14:28  苍山如海,残阳如血  阅读(325)  评论(0)    收藏  举报