博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL数据类型
阅读量:5065 次
发布时间:2019-06-12

本文共 3184 字,大约阅读时间需要 10 分钟。

   

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(8,2); ///创建域ALTER DOMAN MONEY_D     ///添加约束ADD CONSTRAINT MONEY_CON1CHECK(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)   //主键约束);/// ORACLECREATE 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_TSTADD 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;

     

   

   

      

  

转载于:https://www.cnblogs.com/zhangzexdu/p/5127627.html

你可能感兴趣的文章
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
枚举的使用
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
日志框架--(一)基础篇
查看>>
关于源程序到可运行程序的过程
查看>>
转载:mysql数据库密码忘记找回方法
查看>>
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
【贪心+DFS】D. Field expansion
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>