zoukankan      html  css  js  c++  java
  • 了解mysql之约束篇

    约束

    约束

    是SQL规范以约束的方式对表数据进行额外的条件限制,创建时候规定(CREATE TABLE),创建之后规定也可以(使用ALTER TABLE语句)

    分类

    具体有以下几种

    NOT NULL 非空约束,规定某个字段不能为空
    UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
    PRIMARY KEY 主键(非空且唯一)
    FOREIGN KEY 外键
    CHECK 检查约束(mysql不支持,但可以使用,没有效果便是)
    DEFAULT 默认值
    

    还可以分为单列和多列约束;列级和表级约束;

    使用方法

    NOT NULL

    1.CRATE TABLE table1(
    id INT(10) NOT NULL
    );
    # 创建之后的
    2.ALTER TABLE emp 
    MODIFY sex VARCHAR(30) NOT NULL;
    # 还可以取消
    1.ALTER TABLE emp
    MODIFY sex VARCHAR(30) NULL;
    #(使用DEFAULT 'abc'增加默认值)
    

    UNIQUE :唯一约束,允许出现多个空值:NULL。

    ALTER TABLE USER ADD UNIQUE(NAME,PASSWORD);
    # 删除约束
    ALTER TABLE USER DROP INDEX uk_name_pwd;
    # 表级约束
    ALTER TABLE USER ADD CONSTRAINT uk_name_pwd UNIQUE(NAME,PASSWORD
    

    PRIMARY KEY 约束 :相当于唯一约束和非空约束

    /*MySQL的主键名总是PRIMARY,当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引*/
    
    # 组合模式
    CREATE TABLE emp6(
    id INT NOT NULL,
    NAME VARCHAR(20),
    pwd VARCHAR(15),
    CONSTRAINT emp7_pk PRIMARY KEY(NAME,pwd)
    );
    # 删除 DROP 修改 MODIFY 添加 ADD
    ALTER TABLE emp5 DROP PRIMARY KEY;
    
    

    FOREIGN KEY 约束:外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。

    /*
    外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列
    -FOREIGN KEY: 在表级指定子表中的列
    –REFERENCES: 标示在父表中的列
    */
    # 主表
    CREATE TABLE classes(
        id INT,
        NAME VARCHAR(20),
        number INT,
        PRIMARY KEY(NAME,number)
        );
        # 从表
    CREATE TABLE student(
        id INT AUTO_INCREMENT PRIMARY KEY,
        classes_name VARCHAR(20),
        classes_number INT,
        FOREIGN KEY(classes_name,classes_number)     	
        REFERENCES classes(NAME,number)
        );
        
        #删除 添加和之前那些约束差不多
    

    MySQL中使用limit实现分页

    limit子句必须放在整个查询语句的最后!
    前10条记录:SELECT * FROM table LIMIT 0,10;
    第11至20条记录:SELECT * FROM table LIMIT 10,10;
    第21至30条记录:SELECT * FROM table LIMIT 20,10;
    
  • 相关阅读:
    POJ 1811 Prime Test 素性测试 分解素因子
    sysbench的安装与使用
    电脑中已有VS2005和VS2010安装.NET3.5失败的解决方案
    I.MX6 show battery states in commandLine
    RPi 2B Raspbian system install
    I.MX6 bq27441 driver porting
    I.MX6 隐藏电池图标
    I.MX6 Power off register hacking
    I.MX6 Goodix GT9xx touchscreen driver porting
    busybox filesystem httpd php-5.5.31 sqlite3 webserver
  • 原文地址:https://www.cnblogs.com/yhycoder/p/12544329.html
Copyright © 2011-2022 走看看