天天看点

sql之约束sql之约束

sql之约束

常见约束

  • 主键约束
    • 用来标识某一行,在这张表中通过主键就能确定位到一条记录。主键要求这一行的数据总体上不能重复且不能为空。
    • 设置方式
      • 方式一
        create table SN( 
         sno int not null PRIMARY KEY,
         sname VARCHAR(20) not null,
         Stat VARCHAR(50) not null,
         city varchar(50)
        );
                   
      • 方式二
        create table SNO( 
         sno int not null ,
         sname VARCHAR(20) not null,
         Stat VARCHAR(50) not null,
         city varchar(50),
         PRIMARY key(sno)
        );
                   
      • 查看表结构
        sql之约束sql之约束
      • 方式三
        • 额外补
          create table snk(
           s int not null,
           a int not null
          );
          alter table snk add PRIMARY key(s);
          desc snk;
                     
        • 查看表结构
          sql之约束sql之约束
    • 注:带有主键的记录不能重复,是指主键不能一样。数据库允许有两个主键,如果两个主键一样的话,插入失败,两条记录中的一个主键一样没问题。
  • 默认值约束
    • 有default约束列时,当插入数据为空时那么就插入该默认值。
    • 示例
      • 修改snk中a的默认值为1,作用是如果插入数据为空的的话,则插入默认值。
        alter table snk MODIFY a int DEFAULT 1 not null;
        desc snk;
        insert into snk (s) VALUES(2)
                   
        sql之约束sql之约束
        sql之约束sql之约束
  • 非空约束
    • 必须插入值(可以是空格)
    • 示例略

空、空格、NULL区别

  • String s1 = "";
    //创建出了对象(已经开辟了内容空间,对象已经实例化),这个对象内容为空,也就是空字符串。
    s1.length = 0; 
    s1.isEmpty() = true;
               
  • 空格
    String s2 = " ";
    //创建出了对象(已经开辟了内存空间,对象已经实例化),这个对象内容不为空,而是空格。
    s2.length=1;
    s2.isEmpty()=false;
               
  • NULL区别
    • 这个没创建出对象
sql