zoukankan      html  css  js  c++  java
  • 第三章 sql 的约束


        1.0 约束分类

    约束类型: 主键 默认值 唯一 外键 非空
    关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN NOT NULL



        2.0 建立含约束的表


        3.0 主键
            约束英文:constraint
            约束实际上就是表中数据的限制条件

            主键是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到一行,主键不能有重复且不能为空
            复合主键

     CONSTRAINT P_ID PRIMARY KEY (s_name,d_age)


        4.0 默认值约束
            当有 DEFAULT 约束的列,插入数据为空时,将使用默认值
                p_num int(10)DEFAULT'10',
                p_num 有默认约束,默认值为10

                # 正常插入数据

      INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);

                #插入新的数据,people_num 为空,使用默认值

     INSERT INTO department(dpt_name) VALUES('dpt2');

            SELECT + 表字段名 + FROM +数据表名
            表字段名那个,如果想要获得所有的字段或者不知道有哪些字段的情况下用*代表所有字段。
            比如
                SELECT * FROM 获取每条信息全部字段的值
                SELECT id , name FROM 只能获取每条信息的id字段和name字段的值

        5.0 唯一约束 (UNIQUE)
            当 INSERT 语句新插入的数据和已有数据重复的时候,如果有 UNIQUE约束,则 INSERT 失败
            比如:

    INSERT INTO employee VALUES(01,'Tom',25,3000,110110,'dpt1');
    INSERT INTO employee VALUES(02,'Jack',30,3500,110110,'dpt2'); 

        6.0 外键约束 (FOREIGN KEY)
            既能确保数据完整性,也能表现表之间的关系。一个表可以有多个外键,每个外键必须(参考)另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。




        7.0 非空约束
      非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。
            
            在MySQL中违反非空约束,会报错,比如以下语句:
                #INSERT 成功 age 为空,因为没有非空约束,表中显示 NULL
                INSERT INTO employee(id,name,salary,phone,in_dpt) VALUES(03,'Jim',3400,119119,'dpt2');

                #报错 salary 被非空约束,插入数据失败
                INSERT INTO employee(id,name,age,phone,in_dpt) VALUES(04,'Bob',23,123456,'dpt1');


        PRIMAPY是主键的意思,表示定义的该列值在表中是唯一的意思,不可以有重复。
        NSIGNED是无符号的意思,代表该字段没有正负。
        AUTO_INCREMENT可以理解为自动递增的意思,每增加一条记录,值会自动加1。(例如在上面的例子中,ID列每增加一条记录,便会从100自增) 。

  • 相关阅读:
    HDOJ1003 MaxSum【逆推】
    HDOJ1698 Just a hook【线段树成段更新lazy标志】武科大ACM暑期集训队选拔赛4题
    HDOJ1102 Constructing Roads【最小生成树】武科大ACM暑期集训队选拔赛1题
    POJ2828 Buy Tickets【线段树,逆序遍历】
    HDOJ1215 ( 七夕节 )【居然还可以这么解~】
    HDOJ1089HDOJ1096【格式练习】
    HDOJ1233 ( 还是畅通工程 ) 【最小生成树,kruscal】
    HDOJ1035 ( Robot Motion ) 【递归】
    POJ3468 A Simple Problem with Integers【线段树 成段更新+求和 lazy标志】
    HDOJ1216 Assistance Required【打表】武科大ACM暑期集训队选拔赛7题
  • 原文地址:https://www.cnblogs.com/mysterious-killer/p/9881588.html
Copyright © 2011-2022 走看看