zoukankan      html  css  js  c++  java
  • Oracle DB Day01(SQL)

    --时间为什么不是现在呢?
    --设置时区和显示时间
    ALTER DATABASE SET TIME_ZONE='+08:00'
    select to_char(current_timestamp at time zone dbtimezone,'YYYY-mon-DD hh:mi:ss am') from dual;
      --获取当前系统时间
    select to_char(current_timestamp at time zone '+08:00','YYYY-mon-DD hh24:mi:ss') from dual;
    
    
    
    SELECT SYSDATE FROM dual 
    --注释是这样写的
    --sql本身不区分大小写,但为了可读性,建议关键字全部大写,非关键字小写
    --支持选中执行该条语句,或用分号隔开执行最后一条语句,分号不是sql必备的;
    --数据库中所有类型的默认值都是null,
    
    
    --DDL数据定义,对数据库对象进行操作的语言,数据库对象包括:表、视图、索引、序列等
    --1 创建一个表,用DEFAULT初始化,不能创建同名对象表
        --创建表时可以使用DEFAULT为某个字段单独制定一个默认值
        --数据库中字符串用单引号,字符串的值支持大小写
        --NOT NULL非空是一种约束,确保字段值不为空,
        --NOT NULL 和DEFAULT二选一
    CREATE TABLE employee(
      id NUMBER (4),
      name  VARCHAR2(20) NOT NULL ,
      gender CHAR(1) DEFAULT 'M',
      birth DATE,
      salary NUMBER(6,2) DEFAULT 5000,
      job VARCHAR2(30),
      deptno NUMBER(2)
    )
    --1.1 查看表的结构
    DESC employee
    
    --1.2 删除表
    DROP TABLE employee
    
    --1.3 修改表(表已经使用尽量不要改):
    --1.3.1 修改表名
    RENAME employee TO myemp
    DESC myemp
    DESC employee
    --1.3.2 修改表的结构:
    --1.3.1.1 添加新字段,只能在表的末尾添加新字段;
    ALTER TABLE myemp
    ADD(
      hirodate DATE DEFAULT SYSDATE
    )
    DESC myemp
    
    --1.3.2 修改现有字段,可以改字段的类型、长度、默认值、是否非空等;
    --修改表结构应注意不要在表中有数据后进行
    --若表中有数据,修改字段时应避免修改类型
    --修改长度避免缩小,否则可能会失败
    ALTER TABLE myemp
    MODIFY(
      job VARCHAR(40) DEFAULT 'CLERK'
    )
    DESC myemp
    
    --1.3.3 删除现有字段;
    ALTER TABLE myemp 
    DROP(
    name
    )
    DESC myemp
    
    --2 DML是对表中数据进行操作的,伴随事务控制(TCL)
        --DML操作包括:增、删、改。
    --2.1
    INSERT INTO myemp(id,salary,deptno)
    VALUES(9,8888,10)
        --只是假装改了数据,还没提交或回滚;提交前自己能查到别人查不到
        --
    SELECT * FROM MYEMP
    --提交
    COMMIT
    
        --插入日期
      INSERT INTO myemp(birth)
      VALUES(TO_DATE('2019-3-16','yyyy-mm-dd'))
      SELECT * FROM MYEMP
    
    --修改表中数据,要用WHERE添加过滤,满足条件的才进行修改,否则是全表修改
    UPDATE myemp
    SET salary = 4566, ID=3 ,JOB = 'WORK'
    WHERE ID=2
    
    SELECT * FROM MYEMP
    
    --DELETE语句用来删除数据,删除数据通常也要添加WHERE语句来限定要删除数据的条件,否则是清空操作;
    DELETE FROM myemp
    WHERE ID = NULL
    
    SELECT * FROM MYEMP
    
    TRUNCATE TABLE myemp
    
    
    SELECT SYSDATE FROM DUAL;
    SELECT SYSTIMESTAMP FROM DUAL;
    SELECT TO_CHAR(SYSTIMESTAMP at time zone '+8:00','YYYY.MM.DD.HH24.MI.SS') FROM DUAL;
    
    SELECT NEXT_DAY(SYSDATE,5) FROM DUAL
    
    SELECT EXTRACT(YEAR FROM SYADATE) CURRENT_YEAR FROM DUAL
    SELECT EXTRACT(HOUR FROM TIMESTAMP '2008-10-10 13:10:10') FROM DUAL
  • 相关阅读:
    [LeetCode] Exclusive Time of Functions 函数的独家时间
    [LeetCode] Design Log Storage System 设计日志存储系统
    [LeetCode] Find the Derangement of An Array 找数组的错排
    [LeetCode] 632. Smallest Range Covering Elements from K Lists 覆盖K个列表元素的最小区间
    [LeetCode] 633. Sum of Square Numbers 平方数之和
    [LeetCode] Design Excel Sum Formula 设计Excel表格求和公式
    [LeetCode] Delete Operation for Two Strings 两个字符串的删除操作
    [LeetCode] Kill Process 结束进程
    [LeetCode] Course Schedule III 课程清单之三
    [LeetCode] K Inverse Pairs Array K个翻转对数组
  • 原文地址:https://www.cnblogs.com/kwinwei/p/10584042.html
Copyright © 2011-2022 走看看