• 编程学习记录12:Oracle数据库的一些基本操作2,表相关操作,添加约束


    数据库中表的创建一般需要考虑三部分:表名、列名及类型、列的约束

    表名:没什么要求,只要不重名就行。

    常用数据类型:

      1、字符类型

        1)CHAR(长度):定长字符串,位数不足时用空格填充

        2)VARCHAR2(长度):变长字符串,不会自动填充空格,比较常用

      2、数字类型

        1)NUMBER(p,s):p表示精度(总长度),s表示小数位

        2)INT:普通整型

      3、日期类型

        1)DATE:精确到秒

        2)TIMESTAMP:精度小于秒

      4、大文件

        1)BLOB:一般用来存储二进制数据,图像等,最大4GB

        2)CLOB:一般用来存储文本信息,最大4GB

    约束:用来防止无效的数据进入数据库,保持数据的完整性。

    约束分类:

      1、NOT NULL非空

      2、UNIQUE:唯一,能有一个空

      3、PRIMARY KEY:主键,非空和唯一

      4、FOREIGN KEY:外键,表中的某个属性值在另外表中有出现

      5、CHECK:检查约束,缩小数据值域,如年龄必须非负

      6、DEFAULT:默认约束,如果没有指定插入的值则使用默认值

    具体语句:

      1、创建表(没有约束)

      CREATE TABLE <表名> (

        <列名> <列类型>

        [,<列名> <列类型>...]

      );

      2、行级约束(直接写在列类型后面)

       CREATE TABLE <表名> (

        id INT PRIMARY KEY, --主键

        sex VARCHAR2(2) DEFAULT '男', -- 默认

        name VARCHAR(10) NOT NULL, -- 非空

        tel VARCHAR2(11)  UNIQUE, -- 唯一

        deptno INT CONSTRAINT <约束名> REFERENCES  <引用表名>(<引用列名>), -- 外键

        age INT CONSTARINT <约束名> CHACK(<条件>) -- 检查约束

      );

      3、表级约束(写在最后一个列申明后面) 

      CREATE TABLE <表名> (

        id INT ,

        sex VARCHAR2(2) ,

        name VARCHAR2(10),

        tel VARCHAR2(11) ,

        deptno INT ,

        age INT ,

        PRIMARY KEY(<列名>), -- 主键

        UNIQUE(<列名>), -- 唯一

        CHECK(<条件>), -- 检查约束

        CONSTRAINT <约束名> PRIMARY KEY(<列名>), -- 主键

        CONSTRAINT <约束名> UNIQUE(<列名>), -- 唯一

        CONSTRAINT <约束名> FOREIGN KEY(<列名>) REFERENCES <引用表名>(<引用列名>), -- 外键

        CONSTRAINT <约束民> CHECK(条件) -- 检查约束,

      );

      4、修改约束

        1)添加约束

        ALTER TABLE <表名> ADD PRIMARY KEY(<列名>) -- 主键

        ALTER TABLE <表名> ADD UNIQUE(<列名>) -- 唯一

        ALTER TABLE <表名> ADD FOREIGN KEY(<表名>) REFERENCES <引用表名>(<引用列名>) -- 外键

        ALTER TABLE <表名> ADD CHECK(<条件>) -- 检查约束

        2)删除约束

        ALTER TABLE <表名> DROP PRIMARY KEY -- 删除主键

        ALTER TABLE <表名> DROP UNIQUE(<列名>) -- 删除唯一

        ALTER TABLE <表名> DROP CONSTRAINT <约束名> -- 根据约束名删除约束

      

      5、添加数据

      INSERT INTO  <表名> VALUES(<列的值>[,<列的值>]) -- 这种方式必须给全部列赋值,且必须按顺序赋值

      INSERT INTO  <表名>(<列1名字>[,<列2名字>]) VALUES(<列1的值>[,<列2的值>]) -- 根据指定列的顺序给列赋值,其他列若没有默认值则会赋空

      6、查询数据

      SELECT * FROM <列名> [WHERE <条件>] -- 会输出满足条件的数据的所有列

      SELECT <列名1> [重命名1], <列名2>[重命名2] FROM <列名> [WHERE <条件>] -- 会输出满足条件的数据指定列,若有重命名则列名为重命名的值 

      

      7、删除数据

      DELETE <表明> [WHERE <条件>] -- 会删除满足条件的所有数据,不加条件则删除所有数据

      8、更新数据

      UPDATE <表明> SET <列名> = <值>[,<列名> = <值>] [WHERE <条件>] -- 更新指定列的值,不加条件则前部修改

  • 相关阅读:
    uva 10269(floyd+Dijkstra)
    Codeforces Round #223 (Div. 2) 解题报告
    uva 11280(Dijkstra+递推)
    uva 10246(变形floyd)
    闲来无事:跳台阶
    opencv和javacv版本不一致
    javaCV:爱之初体验
    mevan引入容联云通讯jar
    复杂度函数的表示
    MySQL与mabits大小比较、日期比较示例
  • 原文地址:https://www.cnblogs.com/HMTT-RIN/p/11234727.html
Copyright © 2020-2023  润新知