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 ******

  • 相关阅读:
    如何通过命令行窗口查看sqlite数据库文件
    eclipse自动补全的设置
    文本装饰
    注释和特殊符号
    文本装饰
    网页背景
    通过ArcGIS Server admin 查看和删除已注册的 Web Adaptor
    通过 ArcGIS Server Manager 查看已安装的 Web Adaptor
    通过 ArcGIS Server Manager 验证 DataStore
    Windows上安装ArcGIS Enterprise——以 Windows Server 2012 R2上安装 ArcGIS 10.8为例
  • 原文地址:https://www.cnblogs.com/zedong/p/9642759.html
Copyright © 2011-2022 走看看