zoukankan      html  css  js  c++  java
  • MySql数据库约束,主键和外键约束的添加删除,代码实现,sql语句实现

    --概述 

    对表中的数据进行限定,保证数据的正确性、有效性和完整性。

    1. primary key:主键约束  要求表中有一个列 唯一 且 非空,通常我们使用id作为主键
    
    2. unique:唯一约束
    
    3. not null:非空约束
    
    4. default:默认值
    
    5. foreign key:外键约束

    1.主键约束

    -- 给student表添加主键约束
    ALTER TABLE student ADD PRIMARY KEY(id);
    
    -- 创建表,指定主键约束
    CREATE TABLE stu1(
     id INT PRIMARY KEY AUTO_INCREMENT,
     `name` VARCHAR(32)
    );
    
    -- 创建表时,可以指定主键约束(多个字段) 联合主键
    CREATE TABLE stu2(
     id INT,
     `name` VARCHAR(32),
     PRIMARY KEY(id,`name`)
    );
    
    -- 修改自增器起始值...
    ALTER TABLE stu3 AUTO_INCREMENT=10000;
    
    -- 先移除自增器
    ALTER TABLE stu3 MODIFY id INT;
    
    -- 再移除主键约束
    ALTER TABLE stu3 DROP PRIMARY KEY;

    2.唯一约束

    限定某一列的值不能重复,不能限定NULL

    -- 创建表时指定字段为唯一约束
    create table 表名(
      列名 数据类型 unique
    );

    3.非空约束

    create table 表名(
      列名 数据类型 not null, -- 非空约束
      列名 数据类型 unique not null -- (唯一+非空) 约束
    );
    -- 唯一 + 非空 
    CREATE TABLE stu5(
        id INT PRIMARY KEY AUTO_INCREMENT,
       `name` VARCHAR(32) UNIQUE NOT NULL
    );

    4.默认值

    限定某一列的默认值,再没有指定的情况下所有列的默认值为null

    --创建表时指定字段默认值
    create table 表名(
       列名 数据类型 default 默认值,
       ...
       ...
    );
    -- 默认值
    CREATE TABLE stu6(
       id INT PRIMARY KEY AUTO_INCREMENT,
       `name` VARCHAR(32) DEFAULT NULL,
       sex VARCHAR(5) DEFAULT ''
    );
  • 相关阅读:
    JavaScript测试工具chai
    gradle初始仓库依赖(含junit)
    汇编和中断
    oracle-12c-ee安装
    pickle
    Python (zip, lambda, map, shallow copy, deepcopy)
    豆瓣源下载tensorflow
    Linux上XRDP可作为WIN的远程连接
    VNC连接远程Linux——废弃电脑作为运算机器
    MACOS 运行Keras报错
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13434322.html
Copyright © 2011-2022 走看看