美文网首页Web前端之路Web 前端开发
5.MySQL约束以及修改数据表

5.MySQL约束以及修改数据表

作者: 你好星期四 | 来源:发表于2017-05-06 11:58 被阅读54次

    约束

    1. 约束保证数据的完整性和一致性
    2. 约束分为表级约束和列级约束
    3. 约束类型包括:
      1. NOT NULL
      2. PRIMARY KEY
      3. UNIQUE KEY
      4. DEFAULT
      5. FOREIGN KEY

    外键约束

    • FOREIGN KEY
    • 保持数据一致性,完整性
    • 实现一对一或一对多关系
    外键约束
    CREATE TABLE province(
        id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        pname VARCHAR(20) NOT NULL
    );
    
    CREATE TABLE users(
        id  SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(30) NOT NULL,
        pid SMALLINT UNSIGNED,
        FOREIGN KEY(pid) REFERENCES province(id)
    );
    
    外键
    CREATE TABLE users2(
        id  SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(30) NOT NULL,
        pid SMALLINT UNSIGNED,
        FOREIGN KEY(pid) REFERENCES province(id) ON DELETE CASCADE
    );
    

    表级约束与列级约束

    对一个数据列建立的约束,成为列级约束。NOT NULL等。

    对多个数据列建立的约束,成为表级约束。PRIMARY KEY等。

    列级约束既可以在列定义时声明,也可以在列定义后声明。

    表级约束只能在列定义后声明。

    修改数据表

    添加单列

    ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
    

    添加多列

    ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...)
    

    删除列

    ALTER TABLE tbl_name DROP [COLUMN] col_name
    

    添加主键约束

    ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
    

    添加唯一约束

    ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type] (index_col_name, ...)
    

    添加外键约束

    ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, ...) reference_definition
    

    添加/删除默认约束

    ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
    

    删除主键约束

    ALTER TABLE tbl_name DROP PRIMARY KEY
    

    删除唯一约束

    ALTER TABLE tbl_name DROP {INDEX|KEY} index_name
    

    删除外键约束

    ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol
    

    修改列定义

    ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRT | AFTER col_name]
    

    修改列名称

    ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name]
    

    修改表名称

    • 方法一
    ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name
    
    • 方法二
    RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_name2]...
    

    相关文章

      网友评论

        本文标题:5.MySQL约束以及修改数据表

        本文链接:https://www.haomeiwen.com/subject/czvetxtx.html