zoukankan      html  css  js  c++  java
  • MySQL数据库约束与列操作

    ——数据库的约束和列操作
    1、show create table province;可以用来展示新创建表格的引擎类型和基本信息内容
    2、外键约束主要是为了建立起来父表和子表之间的关系,必须为innoDB的存储引擎,主要有唯一约束,主键约束,外键约束,not null等
    3、另外对于父表和子表之间的参照列必须具有相似的属性(数字则相同,字符串则相似),具有外键约束的是字表,参照的父表
    4、外键列和参照列必须创建索引,如果不创建,MySQL将要自动创建
    5、显示数据表的索引语句:show indexes from tablenameG(表格形式展示)
    6、外键约束的参照操作:CASCADE、SET NULL、RESTRIC、NO ACTION等
    create table users1(
    -> id smallint unsigned primary key auto_increment,
    -> username varchar(10) not null,
    -> pid smallint unsigned,
    -> foreign key(pid) references province(id) on delete cascade);
    7、外键约束在操作数目的多少角度上可以划分为列级约束(1个列)和表级约束(多个列)
    8、not null 和default约束不存在表级约束,唯一,主键和外键约束既有表及约束,也有列级约束
    9、数据表添加列操作语句
    alter table users1 add age tinyint unsigned not null default 10;(默认往最后添加)
    alter table users1 add password varchar(30) not null after username;(after在某一列之后添加)
    alter table users1 add truename varchar(10) not null first;(first在数据表第一列添加)
    10、添加多列不能指定添加的位置,只可以添加子最后面
    11、数据表删除列语句:
    alter table users1 drop truename;(单列删除)
    alter table users1 drop id,drop age;(多列删除)
    12、添加约束:
    alter table users2 add constraint pk_users2_id primary key (id);添加主键约束
    alter table users2 add unique(username);添加唯一约束
    alter table users2 add foreign key(pid) references province(id);添加外键约束
    alter table users2 alter age set default 15;添加默认约束
    alter table users2 alter age drop default;删除默认约束
    13、删除约束:
    alter table users2 drop primary key;删除主键约束
    alter table users2 drop index username;删除唯一约束
    alter table users2 drop foreign key users2_ibfk_1;删除外键约束使用约束名称即可
    alter table users2 drop index pid;删除外键约束需要注意还要删除索引
    14、修改列定义(change和modify均可,change更加全面)
    (1)修改列的位置前后-modify
    alter table users2 modify id smallint unsigned not null first;把某一列放在前面
    alter table users2 modify id smallint unsigned not null after username;把某一列放在username列之后
    (2)修改列的属性定义,数据类型等-modify
    alter table users2 modify id tinyint unsigned not null first;修改列属性定义,数据类型等,从大类型到小类型注意一定要防止数据丢失
    (3)修改列名称-change
    alter table users2 change pid p_id tinyint unsigned not null;
    15.修改数据表的名称:
    (1)alter table users2 rename users3;
    (2)rename table users3 to users2;

  • 相关阅读:
    MySQL too many connections
    【MySQL】 清除等待连接
    wmic 获得系统硬件信息
    Linux 修改用户名
    初步了解虚拟化
    MySQL show 语句
    php去除bom
    jq闭包
    git
    地址收藏
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12615650.html
Copyright © 2011-2022 走看看