zoukankan      html  css  js  c++  java
  • 菜鸟的MySQL学习笔记(二)

    3-1约束

    1、约束保证数据的完整性和一致性;
    2、约束分表级约束(两个或两个个以上字段的约束)和列级约束(一个字段约束);
    3、NOT NULL       非空;
    PRIMARY KEY       主键约束;
    UNIQUE KEY         唯一约束;
    DEFAULT               默认约束;
    FOREIGN KEY        外键约束。
    空值与非空值:
    NULL 与 NOT NULL 
    自动编号:
    AUTO_INCREMENT 自动编号,必须与主键组合使用,默认情况下起始值为1,每次增量为1;
    主键:
    PRIMARY KEY  主键约束,每张鼠标只存在一个主键,主键保证记录的唯一性,主键自动为NOT NULL;
    #CREATE TABLE tb3(
    id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,       #设置主键 和自动编号
    username VACHAR(20) NOT NULL);
    唯一约束:
    UNIQUE KEY 唯一约束,可以保证记录的唯一性,可以为空值(只有一个NULL值),每张数据表可以存在多个唯一约束
    #CREATE TABLE tb4(
    id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VACHAR(20) NOT NULL UNIQUE KEY,     #设置姓名唯一约束 
    age TINYINT UNSIGNED);
    默认约束:
    DEFAULT  当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
    #CREATE TABLE tb5(
    id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VACHAR(20) NOT NULL UNIQUE KEY,
    sex EMUI('1','2','3') DEFAULT '3');       #设置默认性别字段为3
    外键约束:
    要求:父表和子表必须使用相同的存储引擎,只能为InnoDB,且禁止使用临时表;外键列和参照列必须具有相似的数据类型,其中数字的长度或者是否有符号位必须相同;而字符的长度则可以不同;外键列和参照列必须创建索引。如外键列不存在索引,mysql将自动创建索引。
    #默认存储引擎:bin目录下 my.ini文件中  修改成INNODB;
    针对外键约束的参照操作:
    1、CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行;
    2、SET NULL:从父表删除或更新行,并设置子表中的外键列;
    3、RESTRICT:拒绝父表的删除或更新操作;
    4、NO ACTION:标准SQL的关键字,再mysql中与RESTRICT相同。
    表级约束和列级约束:对一个数据列建立的约束 为列级约束;对多个数据列建立的约束称为表级约束。
    表级约束只能再列定义后声明,列级约束可以再列定义时声明,也可以再列定义后声明。

     

  • 相关阅读:
    git rror: RPC失败
    linux加载模块报错:could not insert module xxx.ko: Unknown symbol in module
    Ubuntu 20.04 添加当前用户 Root 权限
    C程序编译过程
    静态代码块和非静态代码块
    java反射
    ==和equal的区别
    solr中配置域
    Solr的简介以及安装
    Spring Data Redis 小demo
  • 原文地址:https://www.cnblogs.com/wyf-349/p/5434422.html
Copyright © 2011-2022 走看看