zoukankan      html  css  js  c++  java
  • Python 40 数据库-约束

    约束

    1、什么是约束 ?

    除了数据类型以外额外添加的约束

    2、为什么要使用约束 ?

    为了保证数据的合法性 完整性

    分类:

    1、not null 非空约束,数据不能为空-------------------create table student (id ind,name char(10) not null);

    2、default  默认值约束   可以指定字段的默认值--------create table user (id ind,name char(10) not null,sex char(1) default "woman");

    3、unique   唯一性约束  该字段的值不能重复,unique其实是一种索引索引是一种数据结构 用于提高查询效率,可以为空,一张表中可以有多个唯一约束

    单列唯一约束---------------------create table t5(idcard char(18) unique);    

    多列联合唯一约束---------------create table t6(idcard char(18),phonenumber char(11),unique(idcard,phonenumber));

    4、primary key  (******)称之为主键约束,

    用于唯一标识表中一条记录,该字段只要是惟一的,并且不为空即可,也就是说,从约束的角度来看主键约束和非空约束,唯一约束没有区别,

    它们之间的区别是,

    唯一约束是一种索引,必然存在硬盘上的某个文件中,是物理层面(实实在在存在的数据)

    primary key 是一种逻辑意义上的数据 (实际上不存在)

    换句话说,主键就是由唯一约束和非空约束组成的约束,就像 一男一女,可以组成夫妻,但是夫妻只是一种称呼,不实际存在

    语法:

    create table stu (stuid int primary key,name char(3));    

    create table t7(id int unique not null,name char(3));

    有主键和没有主键的区别

    1.无法区分两个相同记录,比如班级里有两个人名字相同

    2.有主键则意味有这索引,效率更高

    3.可以建立关联关系

    多列联合主键---------------create table t8(idcard char(18),phonenumber char(11),primary key(idcard,phonenumber));

    要不要主键?

    必须的,每个表都应该有主键 哪怕不用唯一标识 也应该考虑提升效率,主键的字段名 几乎都叫id    

    同一个表中可以不可以有多个主键?    

    不可以,没有任何意义,主键的类型需要设置为整型,当然别的也行!建议你别这么干!

    5、auto_increment ******    

    中文:自动增长    

    作用:通常搭配主键字段使用,可以自动为你的数据分配逐渐    

    分配的方式是,添加一条就自动加1  计数从1开始

    语法: ******    

    create table t9(id int primary key auto_increment,name char(3));

    如果主键是自动增长  你可以跳过这个字段 也可以为它插入null  都可以,修改自动增长的起始位置  **     alter table t9 auto_increment = 7;

    注意: 自动增长 只能用于整型

    6、foreign key ******

  • 相关阅读:
    UITextField editingDidEnd 不调用(不响应)
    修改 Navigation Bar 返回按钮文字和图片
    HTTPS抓包
    brew 基本使用方法
    Linux基本命令
    AR 初探
    汇编学习
    ios GCD ---- (1)
    axios导出或者下载
    Vue绑定图片src出现的问题
  • 原文地址:https://www.cnblogs.com/zedong/p/9642759.html
Copyright © 2011-2022 走看看