• mysql建表时候的五种约束


      一共有五种约束 主键约束、外键约束、唯一约束、非空约束、默认约束:

      程序实例:

    //外键约束,需建立两张表
    create table provinces(
        id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        pname VARCHAR(20) NOT NULL
    );
    
    insert into provinces (pname) values ("A");
    insert into provinces (pname) values ("B");
    insert into provinces (pname) values ("C");
    insert into provinces (pname) values ("D");
    
    select * from provinces;
    
    create table user (
        id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(10) NOT NULL,
        pid SMALLINT UNSIGNED,
        FOREIGN KEY (pid) references provinces(id)
    );
    
    insert into user1(username,pid) values ("tom",1);
    insert into user1(username,pid) values ("jack",2);
    insert into user1(username,pid) values ("rose",3);
    
    create table user1 (
        id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(10) NOT NULL,
        pid SMALLINT UNSIGNED,
        FOREIGN KEY (pid) references provinces(id) on delete cascade
    );
    
    show index from provincesG;  //4,查看索引
    show create table user;       //查看建表语句
    
    //修改表结构,增加删除列
    alter table user1 add age tinyint unsigned not null default 10;
    alter table user1 add column password  VARCHAR(20) not null after username;
    alter table user1 drop age, drop password;
    //增加、删除约束
    alter table user2 add constraint PK_user2_id PRIMARY KEY (id); //主键约束
    alter table user2 drop PRIMARY KEY;
    alter table user2 add unique (username);//唯一约束
    alter table user2 drop unique username;
    alter table user2 drop index username;//删除索引
    
    alter table user2 add foreign key (pid)  references provinces (id);//外键约束
    alter table user2 drop foreign KEY (pid);//没有删除索引
    
    alter table user2 alter age set default 15;//默认约束
    alter table user2 alter age drop default; //删除默认约束
    alter table user2 alter username drop unique key;
    
    //修改表列信息
    alter table user2 modify id SMALLINT UNSIGNED not null first; //改变顺序第一位
    alter table user2 modify id TINYINT UNSIGNED not null ; //修改列数据类型
    alter table user2 change pid p_id tinyint unsigned not null ;//修改列名称和数据类型
    
    //修改表名称
    alter table user2 rename user_2;
    rename table user_2 to user_22;
  • 相关阅读:
    C++的内存管理
    PostgreSQL学习手册(函数和操作符<一>)
    C++位操作
    C++的预处理
    PostGIS之路——几何对象编辑(二)
    C++运算符重载
    PostgreSQL学习手册(函数和操作符<二>)
    PostGIS之路——几何对象处理函数(一)
    postgresql命令
    不要迷失在技术的海洋中
  • 原文地址:https://www.cnblogs.com/sunqian/p/5067231.html
Copyright © 2020-2023  润新知