zoukankan      html  css  js  c++  java
  • MySql数据库操作之数据约束

      首先数据库的外键是数据库提供的一种完整性约束。在许多数据库的书上也会介绍到,然而对于外键这个完整性性约束究竟应该在数据库端实现,还是在项目业务端实现很多人有着不同的意见。

      个人开发(小型应用)、数据库读写资源充足(数据库并发低),集中式数据库系统,则应该使用外键保障数据的完整性,减少开发端的负担,有利于数据库开发与程序开发的分离。

      团队开发(大型应用)。数据库的读写成为瓶颈(数据库并发高),分布式数据库系统(分割式存储数据),(如阿里巴巴)则应该在项目业务端实现,团队合作开发模块化突出,通过在业务端设置外键可以减小项目开发时有外键带来的各种不便。同时外键的分布式的数据库存储,数据库中表的分割也使得在数据库端实现外键比较复杂,而在业务端通过代码实现则更灵活。

    1、创建表时数据默认值的设置:(默认值可以为NULL)

    create table 表名(
            字段名 字段类型 default 默认值 ,
            字段名 字段类型
    )
            

    2、数据的非空限制:

    create table 表名(
            字段名 字段类型 not null,
            字段名 字段类型
    )

    3、数据的唯一性的设置:(可以插入多个NULL,不是重复,是都没有值)

    create table 表名(
            字段名 字段类型 unique,
            字段名 字段类型
    )

    4、主键:(非空+唯一)

    create table 表名(
            字段名 字段类型 primary key ,
            字段名 字段类型,
            字段名 字段类型       
    )    

    5、自增长(必须是int类型,而且是主键)

    create table 表名(
            字段名 字段类型 primary key auto_increment,
            字段名 字段类型,
            字段名 字段类型       
    )    

    6、外键约束(减少冗余):(正常字段1与字段5名一样,如一个为部门表,一个为员工表)

    create table 表名1(
            字段名1 字段类型1 primary key ,
            字段名2 字段类型2
    )    
    
    
    create table 表名2(
            字段名3 字段类型3 primary key ,
            字段名4 字段类型4,
            字段名5 字段类型5
           constraint 外键名字(如 fk_表1_表2)foreign key (字段名5) references 表1(字段1)                      
    )      

    注:

    添加数据时先添加主表;删除及修改数据时先删除、修改副表。

  • 相关阅读:
    C#分割字符串
    Android中this、super的区别
    Android activity跳转方式
    Android中的各种单位
    Android布局方式_RelativeLayout
    Parallelism , Partitioner
    编译hadoop,spark遇到的问题总结
    scala,spark练习题提高
    元组复杂例子
    sparksql 操作hive
  • 原文地址:https://www.cnblogs.com/21-forever/p/10852625.html
Copyright © 2011-2022 走看看