zoukankan      html  css  js  c++  java
  • 编程学习记录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 <条件>] -- 更新指定列的值,不加条件则前部修改

  • 相关阅读:
    WSP部署错误—SharePoint管理框架中的对象“SPSolutionLanguagePack Name=0”依赖其他不存在的对象
    Elevate Permissions To Modify User Profile
    Error with Stsadm CommandObject reference not set to an instance of an object
    ASP.NET MVC3添加Controller时没有Scaffolding options
    测试使用Windows Live Writer写日志
    配置TFS 2010出现错误—SQL Server 登录的安全标识符(SID)与某个指定的域或工作组帐户冲突
    使用ADO.NET DbContext Generator出现错误—Unable to locate file
    CSS
    HTML DIV标签
    数据库
  • 原文地址:https://www.cnblogs.com/HMTT-RIN/p/11234727.html
Copyright © 2011-2022 走看看