zoukankan      html  css  js  c++  java
  • oracle学习笔记系列------oracle 基本操作之表的增删改查

    --创建一个表
    CREATE TABLE employee_souvc(
          id NUMBER(4),
          name VARCHAR2(20),
          gender CHAR(1),
          birth DATE,
          salary NUMBER(6,2),
          job VARCHAR2(30),
          deptno NUMBER(2)
    );
    --DESC table_name:查看表结构,看到表的列的名字,以及对应的类型,长度等
    DESC employee_souvc;
    --DROP TABLE table_name 删除一张表的语法
    DROP TABLE employee_souvc;
    --DEFAULT 关键字 用于为给定的列(字段)设置默认值
    --数据库中字段无论是什么类型,默认值都是NULL,若使用DEFAULT指定了默认值,则使用指定的。
    --NOT NULL约束 在创建表的时候可以为列添加非空约束,被约束的列在插入数据时必须给值。此列不允许为空。
    
    CREATE TABLE employee_souvc(
        id NUMBER(4),
        name VARCHAR2(20) NOT NULL,
        gender CHAR(1) DEFAULT 'M',
        birth DATE,
        salary NUMBER(6,2),
        job VARCHAR2(30),
        deptno NUMBER(2)
    );
    --RENAME old_name TO new_name 修改表名 
    --需要注意:新的表名不能是数据库中现有的表
    RENAME employee_souvc TO emp_souvc;
    --修改表:为表添加新的字段(列),总是在表的最后一列追加
    --sysdate是一个日期的值,表示当前系统时间。
    ALTER TABLE emp_souvc 
    ADD (hiredate DATE DEFAULT sysdate);
    --从表中删除一列
    ALTER TABLE emp_souvc 
    DROP (hiredate);
    --修改表中现有的列
    ALTER TABLE emp_souvc 
    MODIFY (
       job VARCHAR2(40) DEFAULT 'CLERK'
    );

    修改表字段时的注意事项:

    1:尽量不修改字段类型。
    2:字段长度尽量不要减少。
    3:修改后的字段,只对新插入的数据产生影响,修改字段前的所有数据不影响。

    --DML操作,向表中插入数据
    INSERT INTO emp_souvc(id,name,salary) VALUES(1,'boss',1500);

    INSERT语句是向表中插入数据
    INSERT语句指定的列对应的值会被插入到表中没有列举的列会插入NULL,但是,若该列有设置默认值(DEFAULT关键字设置的),那么就插入设置的默认值。
    若某列为NOT NULL,执行INSERT语句时又没有指定该列,那么插入会抛出违反为空约束的异常

    执行INSERT语句时,若没有指定插入任何列,那么就是全列插入,注意,给的值顺序必须与表中列的顺序完全一致,并且不能忽略任何一个列的值

    --查询表数据
    SELECT   *   FROM   emp_souvc;
    INSERT INTO emp_souvc(id,name,salary)
    VALUES(2,'tom',2500);
    
    INSERT INTO emp_souvc(id,name,salary)
    VALUES(3,'JERRY',3500);
    
    --事务控制:
    --用于提交事务。
    COMMIT;
    --用于回滚事务。那么本次事务中所有的增删改操作全部失效。
    ROLLBACK;
    --TO_DATE()函数
    --TO_DATE('2009-09-01','YYYY-MM-DD');
    
    INSERT INTO emp_souvc 
      (id,name,birth)
    VALUES
      (1,'jack',TO_DATE('1990-09-01','YYYY-MM-DD'));
      
    SELECT   *   FROM   emp_souvc;
    --修改表中的数据
    UPDATE emp_souvc
    SET job='MANAGER' 
    WHERE salary=3500;

    注意:通常情况下,更改表时,要添加WHERE来指定过滤条件,若不指定WHERE则是全表修改通常不会这样做。

    --从表中删除数据
    DELETE FROM emp_souvc
    WHERE name='tom';
    
    SELECT   *   FROM   emp_souvc;

    删除数据时更要注意,添加WHERE.否则是全表删除。

    TRUNCATE  TABLE emp_souvc;
    SELECT   *   FROM   emp_souvc;

    --序列的创建
    create sequence seq_newsId increment by 1 start with 1 maxvalue 999999999;


    --得到序列的SQL语句
    select seq_newsid.nextval from sys.dual;


    --删除序列的SQL
    DROP SEQUENCE seq_newsId;

  • 相关阅读:
    学习ASP.NET Web API框架揭秘之“HTTP方法重写”
    学习、摘录、目标——学习任务
    ASP.NET Core学习零散记录
    通过Nginx实现负载均衡
    通过IIS共享文件夹来实现静态资源"本地分布式"部署
    python2.7 django 错误汇总
    【心得】算法练习
    【数据结构】思维导图
    【算法】思维导图
    记录一次面试中二分查找的算法题
  • 原文地址:https://www.cnblogs.com/liuhongfeng/p/5294183.html
Copyright © 2011-2022 走看看