数据类型:×××、浮点型,字符型,时间型


    1, 数字:

     整数类型如下:


     tinyint 1B

     

     1B=8bit  1字节=8位 对于tinyint类型最大存储255,如果在数据库中插入

     255,在数据库中显示127,这是因为数字有正数和负数,会用1b来存储正负数

     只有7字节来存放数据,因此是127


     unsigned

     create table cc (age tinyint unsigned); ----创建一个表CC,并指定类型为tinyint型,不存储正负数

     当使用zerofill 属性时,通常自动unsigned属性



     smallint 占用2B

     存放的数据范围:(+-)0-2^15


     int 占用4B


     bigint 占用8B

     整数使用规则,能用小的就不用大的,好处:占用空间小,查询速度快


     浮点型数据如下

     float(x.y)   占用4B,x是数据的总长度(包括整数和小数)y是指定小数点后面的长度

     eg:float(3,1) ----  11.2 这个数据能满足这个类型,表示这个数据必须是3位长度,小数点后面

                          的长度为1.

     float有时候不够精确,会出现四舍五入的情况

     

     decimal(x,y) 类型   占用x+2B字节

     跟float用法类似,只是更精确


     double 占用8字节。占用空间大

     


    2,字符型

       char(x)   -------定长的字符串类型,最长为里面的X值,这里的X并

                        不是字节的意思,而是字符的个数,如输入“亚历山大大帝”为6个字符,

                         如果X为10,则不足10个字符的部分用空格补齐,如果超过10个字符,则只

                         取10个,超过部分被舍弃。

                         char类型特点:因为是定长,所以会很比较浪费空间,因为是定长,操作的

                                       时候,无需另行计算表的长度,所以操作起来会很快。

                         建议:如果你的数据相差不大,而且你的数据引擎是myisam,那么建议用char

                               如果是innodb引擎,建议用varchar


       varchar(x)  -----可变长的字符串类型,最大容纳X个字符。比如varchar(10),如果输入的值达不到10,

                        那么使用多少用多少,如果大于10,则舍弃超出的部分


                        varchar的特点:节省空间,拖慢速度,如果插入的字符串中有空格,则还是会被显示


       enum   -----如果说插入的数据是有限的几个,那么可以考虑使用enum或者set类型,比如性别,则适合使用enum

                   类型。





       3.日期格式

          year的时间范围:1901-2155

          create table b1 (column1 year);-----定义列类型为year类型

          正常情况下,我们插入数据year的值范围

          00-69  表示的是2000-2069

          70-99  表示的是1970-1999

          

          date格式 3B 范围1000-01-01到9999-12-31

          create table b2 (column1 date);----定义列为date类型数据

          datetime 8B 范围,能精确到秒

          create table b3 (column1 datetime);

 


     

       表的操作

       创建表的基本命令格式

       create table tablename (

       column1 int,

       column2 varchar(10)

       );

     

       create table newtablename like oldtablename;----创建一个和老的表一样的新表格,

                                                    复制老的表的结构,不复制数据,但是某些属性复制不过来

       字段的常见属性

       primary key

       auto_increment  ----自增长,默认从1开始自增长1个值,如果设定一个值,则可以指定从哪个值开始增

       auto_increment=100  ----指定自增长值从100开始

       not null  ----指定值不能为空,在创建表的时候,最好把字段设置为Not null

       default  ----默认值,设定字段一个默认值

       unique  -----唯一性约束,如果某列有unique属性,则不容许有重复值



       表的属性

       engine=myisam  ----更改表的引擎

       charset=utf8   ----修改编码

       create table a1 (id int) engine=myisam charset=utf8;


       删除表

       drop table a1;  ----删除a1表

       临时表(temporary)

       比如写了比较复杂的SQL语句,这个结果可以临时的放在一张表中,然后再去引用

       

       更改表,经常需要为表添加,删除或者更改字段的属性

       alter

       alter table 表名 动作(add|drop|modify|change) 修改的值;

       例如

       alter table a1 add age tinyint unsigned; ----为a1表增加了一列age字段,

       增加的此列位于列的最后,如果要指定到相关的位置,可以使用

       (first|after column)

       如:alter table a1 add age1 tinyint unsigned first; ----把age1这列添加到表的第一列

           alter table a1 add age2 tinyint unsigned after name;  ---把age2这个字段列增加到name字段后面

      

        删除列(drop)

        alter table a1 drop 列名   ------删除一列


        修改(modify|change)

        alter table a1 modify 列名 列属性值;  -----修改列的属性值

        alter table a1 modify 列名 列属性值 first;----修改表到第一列位置


        

        show create table tablename\G; ------查看表的属性命令

        show create database databasename\G; -----查看数据库的属性

        

        alter修改表的属性

        alter table tablename charset=utf8; ----用alter修改表的编码属性

        alter database databasename charset=utf8; -----用alter修改数据库的属性


        repair table ------用来修复表的命令,如果表出现问题,让表损坏,可以使用此命令


        check table tablename;   -----用来检测表是否正常的命令

        repair table tablename quick extended;----用此命令对table进行修复表,如果修复不成功

        repair table tablename use_frm;  ----修复表数据

     

2:命令分为2类

      客户端类型:\c --提前终止语句执行

                              \s (status) ----查看数据库状态

                              \r (connect) ----重新连接数据库

                              \g  ----无论结束符是什么,直接将此语句送至服务器执行

                              \G ----无论结束符是什么,直接将此语句送至服务器执行,结果以纵向显示。

                              \! (system) ----在mysql模式中,可以使用此命令查询Linux系统数据

      服务器类型:mysql默认结束符为;分号。可以使用\d 来定义语句结束符

                              help command -----命令帮助模式

                              mysqladmin -uroot -poldpassword password newpassword  ----修改密码的命令

                              如:mysqladmin -uroot -p123456 password 123  ------把mysql的密码修改为123

                                      mysqladmin -uroot -ppasswd status --sleep 2  -----查看服务器状态2秒更新一次

                                      variables:显示服务器变量

                                      flush-hosts:刷新登陆限制错误缓存

                                      flush-status:重置大多数的服务器状态变量

                                      shutdown:关闭Mysql进程

                                      version:显示mysql状态信息

                                      start-slave :启动复制,启动从服务器复制线程

                                       stop-slave:关闭复制