码迷,mamicode.com
首页 > 其他好文 > 详细

Oracale数据处理和约束

时间:2015-03-03 01:12:03      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:oracle   记录   

数据处理

其他DML语句:

  1. INSERT
    ①INSERT INTO table [(column [, column…])]
    VALUES (value [, value…]);
    使用这种语法一次只能向表中插入一条数据。
    不能使用这种方式同时向表中插入多条数据
    ②通过创建脚本的方式
    如:INSERT INTO departments
    (department_id, department_name, location_id)
    VALUES (&department_id, ‘&department_name’,&location);
    和C语言中取地址符类似
    ③INSERT INTO sales_reps(id, name, salary, commission_pct)
    SELECT employee_id, last_name, salary, commission_pct
    FROM employees
    WHERE job_id LIKE ‘%REP%’;
    从其他表中拷贝数据,可以根据WHERE子句来确定是否插入数据,以及插入什么数据

  2. UPDATE
    UPDATE table
    SET column = value [, column = value, …]
    [WHERE condition];
    可以一次更新多条数据:同样的用WHERE子句来控制
    同样的也可以在UPDATE语句中使用子查询

  3. DELETE
    DELETE FROM table
    [WHERE condition];
    同样的也可以在DELETE语句中使用子查询

  4. 事务控制
    事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。
    组成:
    一个或多个DML 语句
    一个 DDL(Data Definition Language – 数据定义语言) 语句
    执行:
    以第一个 DML 语句的执行作为开始
    以下面的其中之一作为结束:
    COMMIT 或 ROLLBACK 语句
    DDL 语句(自动提交)
    用户会话正常结束
    系统异常终止
    事务控制:
    COMMIT
    ROLLBACK
    SAVEPOINT(ROLLBACK TO SAVEPOINT)

约束

约束是一种规定
**NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK**
创建表的同时可以创建约束
创建表后可以修改约束

可以在表级或列级定义约束
可以通过数据字典来查看约束
表级约束和列级约束:

  1. 作用范围:
    ①列级约束只能作用在一个列上
    column [CONSTRAINT constraint_name] constraint_type,

    ②表级约束可以作用在多个列上(当然表级约束也
    可以作用在一个列上)
    column,…
    [CONSTRAINT constraint_name] constraint_type
    (column, …),

  2. 定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。

  3. 非空(not null) 约束只能定义在列上

UNIQUE :
唯一约束,允许出现多个空值:NULL。

FOREIGN KEY:
FOREIGN KEY: 在表级指定子表中的列
REFERENCES: 标示在父表中的列
ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除
ON DELETE SET NULL(级联置空): 子表中相应的列置空

CHECK:
可以理解为自定义约束

约束的添加和删除
  1. 添加约束
    ALTER TABLE table
    ADD [CONSTRAINT constraint] type (column);
    添加或删除约束,但是不能修改约束
    有效化或无效化约束
    添加 NOT NULL 约束要使用 MODIFY 语句
  2. 删除约束
    ALTER TABLE employees
    DROP CONSTRAINT emp_manager_fk;
  3. 无效化约束
    ALTER TABLE employees
    DISABLE CONSTRAINT emp_emp_id_pk;
    Table altered.
  4. 激活约束
    ALTER TABLE employees
    ENABLE CONSTRAINT emp_emp_id_pk;
查询约束
  1. 查询约束:
    查询数据字典视图 USER_CONSTRAINTS
    SELECT constraint_name, constraint_type,
    search_condition
    FROM user_constraints
    WHERE table_name = ‘EMPLOYEES’;
  2. 查询定义约束的列:
    查询数据字典视图 USER_CONS_COLUMNS
    SELECT constraint_name, column_name
    FROM user_cons_columns
    WHERE table_name = ‘EMPLOYEES’;

练习的话,我会单独写一篇。因为学sql主要就是的练,最难的部分就是子查询,需要多练,这里给大家说一下我认为比较高效的联系方法,就是一定要注意书写格式,例如:

--查询平均工资最低的部门信息和该部门的平均工资
SELECT d.*, (SELECT avg(salary)
          FROM employees
          WHERE department_id = d.department_id)
FROM departments d
WHERE department_id = (
                      SELECT department_id
                      FROM employees
                      GROUP BY department_id
                      HAVING avg(salary) = (
                                           SELECT min(avg(salary))
                                           FROM employees
                                           GROUP BY department_id
                      )
)

这样的书写格式方便分析

Oracale数据处理和约束

标签:oracle   记录   

原文地址:http://blog.csdn.net/sloverpeng/article/details/44029593

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!