zoukankan      html  css  js  c++  java
  • SQL数据类型

       

    SQL数据类型

    SQL最基本的数据类型包括三种

    •字符串类型

    •数值类型

    •日期和实践类型

    字符串类型    

    1.定长字符串的标准CHARACTER(n).    

    2.变长字符串类型的标准 CHARACTER VARYING(n)

    •常见的变长字符串类型有:VARCHAR, VARBINARY, VARCHAR2;    

    3.大数据类型 BLOB TEXT.

    数值类型的标准

    BIT(n)

    BIT VARYING(n)

    DECIMAL(p,s)

    INTEGER

    SMALLINT

    BIGINT

    FLOAT(n)

    DOUBLE PERSION(p,s)

    REAL(s)

    SQL中通用的一个数据类型是NUMERIC

    日期和时间类型    

    DATE    

    TIME    

    DATETIME    

    TIMESTAMP

    DATETIME类型的元素包括    

    YEAR    

    MONTH    

    DAY    

    HOUR    

    MINUTE    

    SECOND

    NULL数据类型

    布尔数据类型

    布尔值的取值范围是:TRUE, FALSE, NULL

    自定义数据类型 

       

    CREATE TYPE PERSON AS OBJECT 
    (   NAME   VARCHAR(30),
        SSN    VARCHAR(9);
    )
    CREATE TABLE EMP_PAY
    (   EMPLOYEE    PERSON,
        SALARY      DECIMAL(10,2),
        HIRE_DATE   DATE;
        
    )

    CREATE DOMAIN MONEY_D AS NUMBER(82); ///创建域
    
    ALTER DOMAN MONEY_D     ///添加约束
    ADD CONSTRAINT MONEY_CON1
    CHECK(VALUE > 5);
    
    CREATE TABLE EMP_PAY
    (   EMP_ID      NUMBER(9),
        EMP_NAME    VARCHAR(30);
        PAY_RATE    MONEY_D;
    )

    SQL完整性约束

    • 主键约束
    • NOT NULL约束
    • UNIQUE约束
    • 外键约束
    • 检查约束
    1. 主键约束
    2. NOT NULL约束
    3. UNIQUE约束
    4. 外键约束
    5. 检查约束
      CREATE TABLE EMPLOYEE_TBL
      (   EMP_ID      CHAR(9)     NOT NULL    PRIMARY KEY, //主键约束
          EMP_NAME    VARCHAR(40) NOT NULL,
          EMP_ST_ADDR VARCHAR(20) NOT NULL,
          EMP_CITY    VARCHAR(15) NOT NULL,
          EMP_ST      CHAR(2)     NOT NULL,
          EMP_ZIP     INTEGER(5)  NOT NULL,
          EMP_PHONE   INTEGER(10) NULL        UNIQUE,   //唯一性约束
          EMP_PAGER   INTEGER(10) NULL
      );
      
      CREATE TABLE EMPLOYEE_TBL
      (   EMP_ID      CHAR(9)     NOT NULL,
          EMP_NAME    VARCHAR(40) NOT NULL,
          EMP_ST_ADDR VARCHAR(20) NOT NULL,
          EMP_CITY    VARCHAR(15) NOT NULL,
          EMP_ST      CHAR(2)     NOT NULL,
          EMP_ZIP     INTEGER(5)  NOT NULL,
          EMP_PHONE   INTEGER(10) NULL            NUIQUE,
          EMP_PAGER   INTEGER(10) NULL,
          PRIMARY KEY (EMP_ID)   //主键约束
      );
      
      /// ORACLE
      CREATE TABLE PRODUCT_TST
      (   PROD_ID     VARCHAR2(10)    NOT NULL,
          VEND_ID     VARCHAR2(10)    NOT NULL,
          PRODUCT     VARCHAR2(10)    NOT NULL,
          COST        NUMBER(8,2)     NOT NULL,
          PRIMARY KEY(PROD_ID, VEND_ID)    //主键约束
      );
      
      ALTER TABLE PRODUCT_TST
      ADD CONSTRAINT PRODUCTS_PK PRIMARY KEY (PRODUCT_ID, VEND_ID);
      
      CREATE TABLE EMPLOYEE_PAY_TST
      (   EMP_ID      CHAR(9)         NOT NULL,
          POSITION    VARCHAR2(15)    NOT NULL,
          DATE_HIRE   DATE            NULL,
          PAY_RATE    NUMBER(4,2)     NOT NULL,
          DATE_LAST_RAISE     DATE    NULL,
          CONSTRAINT EMP_ID_FK FOREIGN KEY(EMP_ID) REFERENCE EMPLOYEE_TBL (EMP_ID)  //外键约束
      );

       CHECK约束

      CREATE TABLE EMPLOYEE_PAY_TBL
      (   EMP_ID      CHAR(9)         NOT NULL,
          POSITION    VARCHAR2(15)    NOT NULL,
          DATE_HIRE   DATE            NULL,
          PAY_RATE    NUMBER(4,2)     NOT NULL,
          DATE_LAST_RAISE     DATE    NULL,
          CONSTRAINT EMP_ID_FK FOREIGN KEY (EMP_ID) REFERENCE EMPLOYEE_TBL (EMP_ID),
          CONSTRAINT CHK_PAY CHECK (PAY_RATE > 12.50)
      );
      
      CREATE TABLE EMPLOYEE_TBL
      (   EMP_ID      CHAR(9)     NOT NULL,
          EMP_NAME    VARCHAR(40) NOT NULL,
          EMP_ST_ADDR VARCHAR(20) NOT NULL,
          EMP_CITY    VARCHAR(15) NOT NULL,
          EMP_ST      CHAR(2)     NOT NULL,
          EMP_ZIP     INTEGER(5)  NOT NULL,
          EMP_PHONE   INTEGER(10) NULL            NUIQUE,
          EMP_PAGER   INTEGER(10) NULL,
          PRIMARY KEY (EMP_ID),
          CONSTRAINT CHK_EMP_ZIP CHECK (EMP_ZIP IN ('46243', '46227', '46745'))
      );

      去除约束

      ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;

       

       

          

      

  • 相关阅读:
    博客地址
    node学习2
    正则表达式总结
    Git命令操作
    IDEA快捷键
    hibernate多对多(权限管理)
    所有国家的下拉框英文全称
    所有国家的下拉框英文简写
    所有国家的下拉框中文
    poj-1248 Safecracker
  • 原文地址:https://www.cnblogs.com/zhangzexdu/p/5127627.html
Copyright © 2011-2022 走看看