SQL中的DDL与DML

一、DDL

DDL(data definition language)数据库定义语言:

  1. Create table 语句建立表

    Create table t1
    (name char(8),
    Salary number(5) default 0,
    Content char(4 char),
    Hiredate  date );
    
  2. 在现有表的基础上建立表

    Create table t2 
    as select ename name,sal salary from emp;
    
  3. 修改表结构

    alter table t1 modify(name char(4));
    alter table t2 modify(name char(8));
    
  4. 修改表的名称

    rename t1 to t_1;
    
  5. 修改列的名称(10g 才可以)

    alter table t3 rename column c1 to name;
    
  6. 表注释

    comment on table emp is 'employee table';
    select COMMENTS from user_tab_comments where table_name='EMP';
    
  7. 列注释

    COMMENT ON COLUMN EMP.SAL IS ‘员工工资’;
    select COMMENTS  from  user_col_comments
    where table_name='EMP' AND column_name='SAL';
    
  8. 丢弃表

    Drop table t2;    #并没有将表真的删除,只是改了名称。
    
  9. 将回收站的表还原

    FLASHBACK TABLE t2 TO BEFORE DROP;
    
    # 还原表的同时修改表的名称。
    FLASHBACK TABLE T2 TO BEFORE DROP RENAME TO TT2;
    
  10. 清空回收站内指定的表

    PURGE TABLE T2;
    # 清除当前用户的回收站,不会影响其它用户的回收站
    PURGE RECYCLEBIN; 
    # 绕过回收站,彻底的删除表,在10G 前是没有回收站的,就是彻底的删除。
    # 回收站内没有的表是不容易恢复的,我只能取备份来恢复了。
    Drop table t2   PURGE; 
    

二、DML

DML(data manipulation language)数据操纵语言:

  1. 从无到有insert into

    Insert  into t1(c1,c2,c3) values(v1,v2,v3);
    

    关键字写全,列的个数和数据类型要匹配。这种语法每次只能插入一行。

  2. 数据变化update set

    Update emp set sal=sal+1;
    Update emp set sal=2000 where empno=7900;
    Update emp set comm=null where deptno=30;
    
  3. 删除数据delete where

    Delete t1;--所有的行都删除。
    Delete  emp2 where sal>2000;
    
  4. 表的融合merge into

    MERGE INTO table_name table_alias
      USING (table|view|sub_query) alias
      ON (join condition)
      WHEN MATCHED THEN
        UPDATE SET 
        col1 = col_val1,
        col2 = col2_val
      WHEN NOT MATCHED THEN
        INSERT (column_list)
        VALUES (column_values);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

great-wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值