zoukankan      html  css  js  c++  java
  • mysql约束

    1.主键约束

       主键是表中一列或者多列的组合,不为空,要求数据唯一
    
        create table tb_emp3( id int, name varchar(25), tept varchar(25) ,primary key(id,name));
    
      (分为单组件约束和双组件约束,单组件约束一般为ID ,多主键约束一般为部分+姓名 确定唯一值)

    2.外键约束

    外键就是保证数据的完整性,一个表可以有多个外键,外键可以为空值,if not 每一个外键(可以不是本表的主键)必须对应关联表的主键,例如 部门表的主键是  id,在员工表中有一个键(deptid)与这个id相关联
    格式为:
    constraint 外键名称 foreign key 字段 123.。。
    reference 主表(字段 123,,n)
    constraint:约束
    foreign  :国外
    reference :参考
    
    mysql> create table dept01
        -> (
        -> id int(11) primary key,
        -> name varchar(22) not null,
        -> location varchar(50)
        -> );
    主表
    
    下表为从表
    mysql> create table test02
        -> (
        -> deptid int(11) primary key,
        -> name varchar(25),
        -> deptIDD int(11),
        -> salary float,
        -> constraint outkey_name foreign key(deptIDD) references dept01(id)
        -> );

    3.非空约束

    mysql> create table tb_emp6
        -> ( id int(11) primary key,
        -> name varchar(25) not null,
        -> deptId int(11),
        -> salary float
        -> );
    Query OK, 0 rows affected (0.11 sec)

    4.唯一性约束

    mysql> create table tb_dept2
        -> (
        -> id int(11) primary key,
        -> name varchar(22) unique,
        -> location varchar(50)
        -> );
    Query OK, 0 rows affected (0.18 sec)

    5.默认约束

    mysql> create table tb_emp7
        -> (
        -> id int(11) primary key,
        -> name varchar(25) not null,
        -> deptid int(11) default 1111,
        -> salary float
        -> );
    Query OK, 0 rows affected (0.09 sec)
    
    mysql> insert into tb_emp7(id,name) values(1,"fd");
    Query OK, 1 row affected (0.02 sec)
    
    mysql> select * from tb_emp7;
    +----+------+--------+--------+
    | id | name | deptid | salary |
    +----+------+--------+--------+
    |  1 | fd   |   1111 |   NULL |
    +----+------+--------+--------+
    1 row in set (0.00 sec)
    
    mysql> 

    6.主键自动增加

    mysql> create table tb_emp8
        -> (
        -> id int(11) primary key auto_increment,
        -> name varchar(25) not null,
        -> deptid int(11),
        -> salary float
        -> );
    Query OK, 0 rows affected (0.30 sec)
    
    mysql> insert into tb_emp8 (name,deptid) values ('ds',2),('fr',7),("ds",99);
    Query OK, 3 rows affected (0.02 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> select * from tb_emp8;
    +----+------+--------+--------+
    | id | name | deptid | salary |
    +----+------+--------+--------+
    |  1 | ds   |      2 |   NULL |
    |  2 | fr   |      7 |   NULL |
    |  3 | ds   |     99 |   NULL |
    +----+------+--------+--------+
    3 rows in set (0.00 sec)
    RUSH B
  • 相关阅读:
    ASP.NET CORE 使用Consul实现服务治理与健康检查(2)——源码篇
    ASP.NET CORE 使用Consul实现服务治理与健康检查(1)——概念篇
    Asp.Net Core 单元测试正确姿势
    如何通过 Docker 部署 Logstash 同步 Mysql 数据库数据到 ElasticSearch
    Asp.Net Core2.2 源码阅读系列——控制台日志源码解析
    使用VS Code 开发.NET CORE 程序指南
    .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net
    重新认识 async/await 语法糖
    EF添加
    EF修改部分字段
  • 原文地址:https://www.cnblogs.com/tangsonghuai/p/11002035.html
Copyright © 2011-2022 走看看