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相同。
    表级约束和列级约束:对一个数据列建立的约束 为列级约束;对多个数据列建立的约束称为表级约束。
    表级约束只能再列定义后声明,列级约束可以再列定义时声明,也可以再列定义后声明。

     

  • 相关阅读:
    Django admin的一些有用定制
    django后台中如何在result_list内优雅的显示及使用过滤器?
    DataFrame 的函数
    pandas的替换和部分替换(replace)
    HTML5中的Web Notification桌面右下角通知功能的实现
    sqlalchemy 实现select for update
    SQLAlchemy 使用经验 (查询 事务 锁表)
    concat()
    某数据防泄漏 越权修改管理员密码
    齐治堡垒机 远程命令执行漏洞[CNVD-2019-20835]
  • 原文地址:https://www.cnblogs.com/wyf-349/p/5434422.html
Copyright © 2011-2022 走看看