zoukankan      html  css  js  c++  java
  • SQL语法(2)

    一、约束:

      概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。

      分类:

        1、主键约束:primary key

        2、非空约束:not null

        3、唯一约束:unique

        4、外键约束:foreign key

    ---非空约束:not null,值不能为null

    1. 创建表时添加约束

    CREATE TABLEstu(

       id INT, NAME VARCHAR(20) NOT NULL -- name为非空 );

    2. 创建表完后,添加非空约束

      ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;

    3. 删除name的非空约束

      ALTER TABLE stu MODIFY NAME VARCHAR(20);

    ---唯一约束:unique,值不能重复

    1. 创建表时,添加唯一约束

      CREATE TABLE stu(

      id INT,

      phone_number VARCHAR(20) UNIQUE -- 添加了唯一约束

      );

    * 注意:mysql中,唯一约束限定的列的值可以有多个null

    2. 删除唯一约束

      ALTER TABLE stu DROP INDEX phone_number;

    3. 在创建表后,添加唯一约束

      ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;

    --- 主键约束:primary key。

    1. 注意:

      1. 含义:非空且唯一

      2. 一张表只能有一个字段为主键

      3. 主键就是表中记录的唯一标识

    2. 在创建表时,添加主键约束

      create table stu(

      id int primary key,-- 给id添加主键约束

      name varchar(20)

      );

    3. 删除主键

      alter table stu modify id int ; -- 错误

      ALTER TABLE stu DROP PRIMARY KEY;--正确方式

    4. 创建完表后,添加主键

      ALTER TABLE stu MODIFY id INT PRIMARY KEY;

    5. 自动增长:

      1. 概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长

      2. 在创建表时,添加主键约束,并且完成主键自增长

        create table stu(

        id int primary key auto_increment,-- 给id添加主键约束

        name varchar(20)

        );

      3. 删除自动增长

       ALTER TABLE stu MODIFY id INT;

      4. 添加自动增长

       ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;

    --- 外键约束:foreign key(让表于表产生关系,从而保证数据的正确性。)

    1. 在创建表时,可以添加外键

       语法:

       create table 表名(

       ....

       外键列

       constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)

      );  

    2. 删除外键

       ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

    3. 创建表之后,添加外键

      ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

    4. 级联操作

      1. 添加级联操作

      语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称

         FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE ;

      2. 分类:

        1. 级联更新:ON UPDATE CASCADE

        2. 级联删除:ON DELETE CASCADE

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/liuhuan425/p/10961046.html
Copyright © 2011-2022 走看看