zoukankan      html  css  js  c++  java
  • 继续体验mysql之数据表操作

    首先先了解一下sql中的数据结构

    1、整数类型:

    类型名称说明存储需求
    TINYINT -128〜127 0 〜255
    SMALLINT -32768〜32767 0〜65535
    MEDIUMINT -8388608〜8388607 0〜16777215
    INT (INTEGER) -2147483648〜2147483647 0〜4294967295
    BIGINT -9223372036854775808〜9223372036854775807 0〜18446744073709551615

    2、小数类型

    类型名称说明存储需求
    FLOAT 单精度浮点数 4 个字节
    DOUBLE 双精度浮点数 8 个字节
    DECIMAL (M, D),DEC 压缩的“严格”定点数 M+2 个字节

      对精度要求比较高的时候 用DECIMAL  

    3、日期和时间类型

    类型名称日期格式日期范围存储需求
    YEAR YYYY 1901 ~ 2155 1 个字节
    TIME HH:MM:SS -838:59:59 ~ 838:59:59 3 个字节
    DATE YYYY-MM-DD 1000-01-01 ~ 9999-12-3 3 个字节
    DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8 个字节
    TIMESTAMP YYYY-MM-DD HH:MM:SS 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC 4 个字节

    4、字符串类型

    类型名称说明存储需求
    CHAR(M) 固定长度非二进制字符串 M 字节,1<=M<=255
    VARCHAR(M) 变长非二进制字符串 L+1字节,在此,L< = M和 1<=M<=255
    TINYTEXT 非常小的非二进制字符串 L+1字节,在此,L<2^8
    TEXT 小的非二进制字符串 L+2字节,在此,L<2^16
    MEDIUMTEXT 中等大小的非二进制字符串 L+3字节,在此,L<2^24
    LONGTEXT 大的非二进制字符串 L+4字节,在此,L<2^32
    ENUM 枚举类型,只能有一个枚举字符串值 1或2个字节,取决于枚举值的数目 (最大值为65535)
    SET 一个设置,字符串对象可以有零个或 多个SET成员 1、2、3、4或8个字节,取决于集合 成员的数量(最多64个成员)

    5、二进制类型

    类型名称说明存储需求
    BIT(M) 位字段类型 大约 (M+7)/8 字节
    BINARY(M) 固定长度二进制字符串 M 字节
    VARBINARY (M) 可变长度二进制字符串 M+1 字节
    TINYBLOB (M) 非常小的BLOB L+1 字节,在此,L<2^8
    BLOB (M) 小 BLOB L+2 字节,在此,L<2^16
    MEDIUMBLOB (M) 中等大小的BLOB L+3 字节,在此,L<2^24
    LONGBLOB (M) 非常大的BLOB L+4 字节,在此,L<2^32

    创建一个数据表

    CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];

    首先use进入到一个数据库中

    然后使用刚才的语句创建一个数据表

     提示ok证明创建成功

    这里我想创建的就是一个这样子的表

      id name score sex
    1 12312312 tom 80
    2 12312322 jeryr 90

    当然了数据是要后面再填的,这里只是创建了每列的列头

    查看一下刚才的表是否创建成功

    使用这个命令查看数据库里所有的数据表

    mysql> SHOW TABLES;

    然后进入这个表查看一下表的结构

    mysql> DESCRIBE talble1;

    第三列 NULL 表示该值是否可以为空

    第四列 Key 表示该列是否编制索引

    第五列 Default 表示该属性是否有默认值

    第六列 Extra 表示附加信息

    mysql> SHOW CREATE TABLE talble1G;

    使用该语句可以查看创建表时所用的语句

    修改数据表

    { ADD COLUMN <列名> <类型>
    | CHANGE COLUMN <旧列名> <新列名> <新列类型>
    | ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
    | MODIFY COLUMN <列名> <类型>
    | DROP COLUMN <列名>
    | RENAME TO <新表名>
    | CHARACTER SET <字符集名>
    | COLLATE <校对规则名> }

    修改数据表的名字,比如我把刚才创建的表talble1 改名为 tb1

    mysql> ALTER TABLE talble1 RENAME TO tb1;

    刚才查看数据表的时候,可以从参数中看出来字符集用的是utf8

    那么现在将他改为gbk,顺带也修改一下校对规则

    mysql> ALTER TABLE tb1 CHARACTER SET gbk  DEFAULT COLLATE gbk_bin;

    修改字段名

    ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

    试用一下,把刚才表中的 score 改成 grade

    mysql> ALTER TABLE tb1 CHANGE score grade DOUBLE;

     可以看出 表中已经没了score  取而代之的是 grade

    添加字段

    ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];

    现在向表中添加一个 color,数据类型是varchar

    mysql> ALTER TABLE tb1 ADD color VARCHAR(10);

     这是添加在了末尾

    接下来我们在开头添加一个school

    mysql> ALTER TABLE tb1 ADD school VARCHAR(10) FIRST;

     school添加在了开头

    那么再试一下在 name 后面添加一个age

    mysql> ALTER TABLE tb1 ADD age INT(10) AFTER name;

    删除字段 

    ALTER TABLE <表名> DROP <字段名>;

    试一下把刚才添加的color删掉

    删除数据表

    DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

     图中可以看出,新建的数据表t2 被删掉了

  • 相关阅读:
    事件模型
    用jQ实现一个简易计算器
    自学如何去学习jQuery
    用原生的javascript 实现一个无限滚动的轮播图
    Android 代码注解初学者
    安卓实现textView次行缩进效果
    安卓 checkBox添加左边距
    安卓 垂直SeekBar
    安卓 API 19 低版本设置单选按钮替换
    安卓BLE测试apk
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/13094594.html
Copyright © 2011-2022 走看看