• MySQL数据库-数据表、以及列的增删改查


    1、创建一个表

      CREATE(创建)
      TABLE(表)

      ENGINE(引擎)

      ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNODB引擎,INNODB引擎支持事务(回滚),也就是一个事务执行时如果没有完成数据可以回滚

      CHARSET(字符编码)

      CREATE TABLE(创建表)

    -- 创建表说明:
    -- create table 表名(
    --     列名  类型(最大字符数)  是否可以为空,
    --     列名  类型(最大字符数)  是否可以为空
    -- )ENGINE=InnoDB DEFAULT CHARSET=utf8
    
    
    -- 参数说明:
    --     列是否可以为空
    --     not null    - 不可空
    --     null        - 可空
    -- 
    --     ENGINE=InnoDB    -表示引擎使用的InnoDB引擎
    --     DEFAULT     -默认
    --     CHARSET=utf8 -字符编码
    
    -- 举例
    CREATE TABLE biao(
        id INT(10) NOT NULL,
        yh CHAR(20) NULL
    )ENGINE=INNODB DEFAULT CHARSET=utf8;
    列内容默认值
    --     DEFAULT(列内容默认值,后面跟的是默认的值,可选),如果设置了内容默认值,当用户添加数据时没写值,将自动写入默认值
    CREATE TABLE biao(
        id INT(10) NOT NULL,
        yh CHAR(20) NULL DEFAULT '100'
    )ENGINE=INNODB DEFAULT CHARSET=utf8;

    2、创建表之-列自增以及列主键,一般自增和主键配合使用设置id

    列自增

        AUTO_INCREMENT(自增),自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)

        注意:1、对于自增列,必须是索引(含主键,主键是索引的一种)。

      列主键

        PRIMARY KEY(作为主键列的名称),主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。

        create table user_info(
        id int not null auto_increment primary key,
        name char(20),
        age int,
        gender char(1)
        )engine = innodb default charset=utf8;

    创建表之-常用数据类型
    整数型:TINYINT,SMALLINT,INT,BIGINT

    类型

    字节

    最小值

    最大值

     

     

    (带符号的/无符号的)

    (带符号的/无符号的)

    TINYINT

    1

    -128

    127

     

     

    0

    255

    SMALLINT

    2

    -32768

    32767

     

     

    0

    65535

    MEDIUMINT

    3

    -8388608

    8388607

     

     

    0

    16777215

    INT

    4

    -2147483648

    2147483647

     

     

    0

    4294967295

    BIGINT

    8

    -9223372036854775808

    9223372036854775807

     

     

    0

    18446744073709551615


    浮点型:FLOAT,DOUBLE,DECIMAL(M,D)

    float 浮点型(长度越长越不精准)
    double 浮点型(双精度,精度比float稍高) 范围比float更大
    decimal 精准(内部使用字符串进行存储的) -> 适合对精度有要求的

    类型

    字节

    最小值

    最大值

    FLOAT

    4

    +-1.175494351E-38

    +-3.402823466E+38 

    DOUBLE

    8

    +-2.2250738585072014E-308

    +-1.7976931348623157E+308 

    DECIMAL

    可变

    它的取值范围可变。 

    字符型:CHAR,VARCHAR

    CHAR支持空字符,用于性别、密码 

        char数据类型用于表示固定长度的字符串,可以包含最多达255个字符。其中m代表字符串的长度。
        PS: 即使数据小于m长度,也会占用m长度,char优点查询速度快

      VARCHAR不支持空字符,空字符会自动被清除,所占字节是字符数加1,用于用户名、标题

        varchars数据类型用于变长的字符串,可以包含最多达255个字符。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。
        注:虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡,varchars优点储存占用空间小

    ps:

    text() 65535个字符

    TEXT常用,用于大文章、帖子、新闻内容

    mediumtext() 16777215个字符

    longtext() 4294967254个字符

     日期型:DATETIME,DATE,TIMESTAMP

    日期型常用的是DATETIME可表示年月日时分秒

    列类型

    “零”值

    DATETIME

    '0000-00-00 00:00:00'       年月日时分秒

    DATE

    '0000-00-00'          年月日

    TIMESTAMP

    00000000000000        年月日时分秒,无分隔符

    TIME

    '00:00:00'               时分秒

    YEAR

    0000               时分秒无分隔符

    
    
    删除表
    DROP TABLE 表名,删除一个指定的表
    -- drop table 表名,删除一个指定的表
    
    DROP TABLE fgh
    
    
    
    

    清空表

    DELETE  FROM 表名,清空表不清除自增的序号

    -- delete from 表名,清空表不清除自增的序号
    
    DELETE FROM xue_yuan

    TRUNCATE TABLE 表名,清空表并且清空自增序号

    -- TRUNCATE TABLE 表名,清空表并且清空自增序号
    
    TRUNCATE TABLE xue_yuan;

    修改表

    alter table 表名 add 列名 类型:添加列

    -- alter table 表名 add 列名 类型:添加列
    
    ALTER TABLE xue_yuan ADD gz INT(20);

    alter table 表名 drop column 列名:删除列

    -- alter table 表名 drop column 列名:删除列
    
    ALTER TABLE xue_yuan DROP COLUMN gz;

    修改列:
    alter table 表名 modify column 列名 类型; -- 修改列类型
    alter table 表名 change 原列名 新列名 类型; -- 修改列列名,类型

    复制代码
    -- 修改列:
    -- alter table 表名 modify column 列名 类型; -- 修改列类型
    -- alter table 表名 change 原列名 新列名 类型; -- 修改列列名,类型
    
    -- 修改列类型
    -- ALTER TABLE xue_yuan MODIFY COLUMN you_jian INT;
    
    -- 修改列列名,类型
    ALTER TABLE xue_yuan CHANGE you_jian yj INT;
    复制代码

    添加主键:
    alter table 表名 add primary key(列名);

    -- 添加主键:
    -- alter table 表名 add primary key(列名);
    
    ALTER TABLE xue_yuan ADD PRIMARY KEY(yj);

    删除主键:
    alter table 表名 drop primary key;
    alter table 表名 modify 列名 int, drop primary key;

    复制代码
    -- 删除主键:
    -- alter table 表名 drop primary key;
    -- alter table 表名 modify 列名 int, drop primary key;
    
    -- ALTER TABLE xue_yuan DROP PRIMARY KEY;
    ALTER TABLE xue_yuan MODIFY yj INT,DROP PRIMARY KEY;
    复制代码

    修改默认值:
    ALTER TABLE  表名称  ALTER  列名称  SET DEFAULT 1000;

    -- 修改默认值:
    -- ALTER TABLE  表名称  ALTER  列名称  SET DEFAULT 1000;
    
    ALTER TABLE xue_yuan ALTER xing_ming SET DEFAULT 1000;


    删除默认值:
    ALTER TABLE  表名称  ALTER  列名称  DROP DEFAULT;

    -- 删除默认值:
    -- ALTER TABLE  表名称  ALTER  列名称  DROP DEFAULT;
    
    ALTER TABLE xue_yuan ALTER xing_ming DROP DEFAULT;
     
  • 相关阅读:
    fullCalendar改造计划之带农历节气节假日的万年历(转)
    Linked List Cycle
    Remove Nth Node From End of List
    Binary Tree Inorder Traversal
    Unique Binary Search Trees
    Binary Tree Level Order Traversal
    Binary Tree Level Order Traversal II
    Plus One
    Remove Duplicates from Sorted List
    Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/zjltt/p/7149447.html
Copyright © 2020-2023  润新知