数据约束

  默认值  

    当用户对使用默认值的字段不插入值的时候,就使用默认值,默认值的字段允许为null。

  非空

    gender VARCHAR(2) NOT NULL -- 非空

    非空字段必须赋值且非空字符不能插入null

  唯一

    id INT UNIQUE, -- 唯一

    对字段的值不能重复可重复插入null,类似主键 非空唯一 NOT NULL UNIQUE

  自增长

    sid INT PRIMARY KEY AUTO_INCREMENT,         

     不能插入null,可以不赋值,自动递增

  零填充

    sid INT(3) ZEROFILL PRIMARY KEY AUTO_INCREMENT,

    如图:

      

 

   主键

    id INT PRIMARY KEY, -- 主键

    非空+唯一

  外键

    CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)

           --                     外键名称            外键                              参考表(参考字段)

    注意事项:

        添加数据: 先添加主表,再添加副表

        修改数据: 先修改副表,再修改主表

        删除数据: 先删除副表,再删除主表

多表查询

  交叉连接:

    SELECT * FROM empp JOIN dept

    将两个表不设定任何条件的连接起来

  内连接:

    SELECT * FROM empp JOIN dept ON empp.`did`=dept.`did`

    找到两个表中相同字段后按照值对应连接起来

  左[外]连接:

    SELECT * FROM empp LEFT JOIN dept ON empp.`did`=dept.`did`

    内连接的结果基础上,加上左边表中所有不符合连接条件的数据,相应放右边表的字段的位置就自动补为“null”值。

    如图:

      

  右[外]连接:

    SELECT * FROM empp RIGHT JOIN dept ON empp.`did`=dept.`did`

    如图:

      

 

   全[外]连接:

    SELECT * FROM empp FULL JOIN dept ON empp.`did`=dept.`did`

    其实是左右连接的“并集”(消除重复项),加上左表中不满足条件的所有行(右边对应补null),再加上,右表中不满足条件的所有行(左边对应补null)。

    在MYSQL中不适用

  in子查询:

    SELECT protype_name FROM product_type WHERE protype_id=(SELECT protype_id FROM product  WHERE pro_name LIKE '%素尼%4G手机%')

    表示该操作数(字段值) 等于 该子查询的其中任意一个只,就算满足条件。

  联合查询:

    SELECT pro_id,pro_name FROM product

    UNION

    SELECT protype_id,protype_name FROM product_type

    将两个表上下合并,下边没有字段及字段类型,通用第一个的属性

    如图:

      

 

posted on 2019-09-06 10:36  仰望星空77  阅读(151)  评论(0编辑  收藏  举报