zoukankan      html  css  js  c++  java
  • day57-mysql-五种约束和sql语句逻辑执行顺序

    二、sql语句逻辑执行顺序
            (7)     SELECT 
            (8)     DISTINCT <select_list>     去重复
            (1)     FROM <left_table>
            (3)     <join_type> JOIN <right_table>
            (2)     ON <join_condition>
            (4)     WHERE <where_condition>
            (5)     GROUP BY <group_by_list>
            (6)     HAVING <having_condition>
            (9)     ORDER BY <order_by_condition>  
            (10)    LIMIT <limit_number>
    
    三、五种约束:    
    1.外键约束:对两个表的关系进行一些约束。例如dept表里面有部门id,那么person表的部门id不能为空,否则无法一一对应。
        如果需要外键约束,最好创建表同时创建外键约束:
        create table person(dept_id int(11) DEFAULT NULL,
            CONSTRAINT fk_id FOREIGN key(dept_id) REFERENCES dept(did));
        
        已经创建表后,追加外键约束:
        添加外键:
            alter table person add CONSTRAINT fk_id FOREIGN key(dept_id) REFERENCES dept(did);
    
        删除外键
            alter table person DROP FOREIGN key fk_id
    
        注:插入数据时,先插入主表中的数据,再插入从表中的数据。
    
               删除数据时,先删除从表中的数据,再删除主表中的数据。
    
    
    2.唯一约束 -- UNIQUE,也叫唯一索引约束,id_name添加到设计表的索引那里。设置唯一约束之后,id和name无法重复,
             例如id是1,name是tom,那么将无法插入id是1,name是tom的值。
        create table t4(
                id int(10) not null,
                name varchar(255) ,
                unique id_name(id,name));
    
        ALTER table t4 add UNIQUE id_name(id,name) --表格创建之后添加唯一约束。
    
        alter table t4 DROP index id_name --删除
    
    3.默认值约束(defaultcreate table t5(
            id int(10) not null primary key,
            name varchar(255) default '张三');
    
        INSERT into t5 VALUES(3,DEFAULT),(4,DEFAULT);
        insert into t5(id) values(5),(6);
    
    4.非空约束
         关键字: NOT NULL ,表示 不可空. 用来约束表中的字段列
        create table t1(
                   id int(10) not null primary key,
                   name varchar(100) null );       
    
    5.主键约束
         用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。
        create table t2(id int(10) not null primary key); 
        注意: 主键这一行的数据不能重复且不能为空。
        
        还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识
        create table t3(
            id int(10) not null,
            name varchar(100) ,
            primary key(id,name));
    
        alter table t3 add primary key(id,name); --表格创建之后添加主键约束
    
    6.表与表之间关系
        1.一对多  ,一对一 ,多对多
    
    
    7.数据库设计三范式
        1.第一范式(确保每列保持原子性)
        2.第二范式(确保表中的每列都和主键相关)
  • 相关阅读:
    PythonStudy——数据类型总结 Data type summary
    PythonStudy——可变与不可变 Variable and immutable
    PythonStudy——列表操作 List operatio
    PythonStudy——列表的常用操作 List of common operations
    PythonStudy——列表类型 List type
    PythonStudy——字符串扩展方法 String extension method
    PythonStudy——字符串重要方法 String important method
    AWT,Swing,RCP 开发
    JQuery插件机制
    最新知识网站
  • 原文地址:https://www.cnblogs.com/python-daxiong/p/12257524.html
Copyright © 2011-2022 走看看