oracle--认识表与约束

一 、认识表

1、数据类型

   <1>数值型

       NUMBER(p,s)  p表示有效位数,s把小数点后面的位数

          eg:NUMBER(5,2)     123.45

     float(n)主要用来存储二进制数

   <2>字符型

      CHAR(n)、  NCHAR(n):固定长度类型,nchar是unicode编码的

      VARCHAR(n)、NVARCHAR(n):可变长度类型,nvarchar是unicode编码的

   <3>日期型

     DATE(精确到秒)、TIMESTAMP(时间戳类型,精确到小数秒)

   <4>其他型

    BLOB(4GB,存放二进制形式的数据)

    CLOB(4GB,字符串形式)

2、管理表基本语法

   <1>创建表

        CREATE TABLE table_name

        (colume_name datatype,...);

  <2>修改表结构

        (1)添加字段

             ALTER TABLE table_name

             ADD  clomumn data typa

        (2)更改字段数据类型

            ALTER TABLE table_name

            MODIFY  clomumn_name  data typa

        (3)删除字段

             ALTER TABLE table_name 

             DROP  COLUME  clomumn_name

        (4)修改字段名

            ALTER TABLE table_name

            RENAME  COLUMN  clomumn_name data  TO new_column_name

        (5)修改表的名字

            RENAME table_name TO new_table_name

<3>删除表

        TRUNCATE TABLE table_name //删除表中全部数据

        DROP TABLE table_name//删除表结构

 3、操作表中的数据

<1>添加数据

         (1)插入数据

         •  INSERT  INTO  table_name

            (column1,lolumn2.....)

            VALUES(value1,value2.....)//数据与字段一一匹配

           (2)复制数据

            --在建表时复制   CREATE TABLE table_new

                                          AS

                                          SELECT    column1,.....|* 

                                          FROM table_old

            --在添加时复制 INSERT INTO table_new

                                        [(colum1,....)]

                                         SELECT column1,....|*

                                         FROM table_old

<2>修改数据

       UPDATE table_name

       SET column1=value1,....

       [WHERE conditions]

<3>删除数据

       DELETE FROM table_name

       [WHERE conditions]



二 、约束

1、约束的作用

      •定义规则   •确保完整性


2、约束的类型

(1)非空约束:在插入值时不能为空

       --在建表时设置非空约束

          CREATE TABLE table_name(

                column_name datatype NOT NULL,...

                 );

        --在修改表时添加非空约束

            ALTER TABLE table_name

            MODIFY column_name datatype NOT NULL;

       --在修改表时去除非空约束

            ALTER TABLE table_name

            MODIFY column_name datatype  NULL;

(2)主键约束:确保表中每一行数据的唯一性(一张表中只能设置一个主键约束,一个约束可以有多个字段构成)

       --在建表时设置主键约束

          CREATE TABLE table_name(

                column_name datatype PRIMARY KEY,...

                 );

       --在修改表时添加主键约束

           ADD CONNSTRAINT constraint_name

           PRIMARY KEY(column_name1,...);

       --更改约束名称

         RENAME CONSTRAINT old_name

         TO new_name

      --删除主键约束

         •DISABLE|ENABLE CONSTAINT  constraint_name  //禁用/启用主键约束

         •DROP CONSTRAINT constrain_name

         •DROP PRIMARY KEY[CASCADE]//其他应用该表的地方删掉

(3)外键约束

        --在建表时设置外键约束(从表中外键字段的值必须来自主表中相应字段的值,要么来自主表要么为null

          CREATE TABLE table1(//从表

                column_name datatype REFERENCES

                table2(column_name),...);//主表

         --在修改表时添加外键约束

           ADD CONNSTRAINT constraint_name  FOREIGN KEY(column_name)

           REFERENCES table_name(column_name)[ON DELETE CASCADE]

          --删除主键约束

           •DISABLE|ENABLE CONSTAINT  constraint_name  //禁用/启用主键约束

           •DROP CONSTRAINT constrain_name

(4)唯一约束

       与主键约束的区别:

                                       • 主键字段必须为非空,唯一约束允许一个空值

                                       • 主键在表中只有一个,唯一约束可以多个

      --在建表时设置唯一约束

          • CREATE TABLE table_name(

                column_name datatype UNIQUE,...

                 );

          •  CONNSTRAINT constraint_name

              UNIQUE(column_name);//每个唯一约束有一个约束名字

     --在修改表时添加唯一约束

           ADD CONNSTRAINT constraint_name

            UNIQUE(column_name)

     --删除与其他约束相同

(5)检查约束:让字段的值满足一定条件,是指具有实际意义

         --在建表时设置唯一约束

          • CREATE TABLE table_name(

                column_name datatype CHECK(expressions),...

                 );

          •  CONNSTRAINT constraint_name

              CHECK(column_name);

        --在修改表时添加唯一约束

           ADD CONNSTRAINT constraint_name

            CHECK(expressions),

         --删除与其他约束相同





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值