zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    PHP保留两位小数的几种方法
    解决PHP下载大文件失败,并限制下载速度
    MySQL索引
    商城商品部分-数据表创建
    string 函数
    array函数
    BTREE这种Mysql默认的索引方式,具有普遍的适用性
    mysql索引类型 normal, unique, full text
    typedef的意义和函数指针
    35. 搜索插入位置-7月17日
  • 原文地址:https://www.cnblogs.com/sunqian/p/5067231.html
Copyright © 2011-2022 走看看