zoukankan      html  css  js  c++  java
  • 第三天20160728

    --TO_CHAR(N,F):将数字类型N根据模板F转换为字符类型的值。
    SELECT TO_CHAR(2546.9974,'999999.99'),
    TO_CHAR(2546.9874,'999'),
    TO_CHAR(2546.9974,'000000.00'),
    TO_CHAR(2546.9974,'999,999.00'),
    TO_CHAR(2546.9974,'FM$999,999.00'),
    TO_CHAR(2546.9974,'FML999,999.00')
    FROM DUAL;

    --TO_DATE(C,F):根据模板F将字符类型C转换为日期类型
    SELECT TO_DATE('1999-1-1','YYYY-MM-DD')
    FROM DUAL;

    SELECT TO_DATE('2016-10-1','YYYY-MM-DD') - SYSDATE
    FROM DUAL;

    --TO_NUMBER(C,F):根据模板F将字符类型C转换为数字类型
    SELECT TO_NUMBER('1,000.00','9,999.99')
    FROM DUAL;

    --通用的单行函数
    --NVL():当第一个参数不为NULL,返回第一个参数。当第一个参数为NULL,返回第二个参数。两个参数的类型必须一致。
    SELECT LAST_NAME,NVL(TO_CHAR(COMMISSION_PCT,'FM0.00'),'没有佣金')
    FROM EMPLOYEES;

    --当算术运算中出现NULL时,结果一定为NULL。
    --查询employees表中所有员工的last_name,salary,commission_pct,年薪,年收入(年薪+年薪*佣金)
    SELECT LAST_NAME,SALARY,COMMISSION_PCT,SALARY*12 AS 年薪,(SALARY*12) + (SALARY*12*NVL(COMMISSION_PCT,0)) AS 年收入
    FROM EMPLOYEES;

    --NVL2():当第一个参数不为NULL,返回第二个参数。当第一个参数为NULL,返回第三个参数。
    SELECT LAST_NAME,NVL2(COMMISSION_PCT,'有佣金','没有佣金')
    FROM EMPLOYEES;

    --CASE表达式与DECODE()函数:分支选择
    --查询employees表中所有员工的last_name,job_id,salary,新工资。当job_id为IT_PROG时,工资增加10%。当job_id为ST_CLERK时,工资增加15%。当job_id为SA_REP时,工资增加20%,其它job_id工资不变。
    SELECT LAST_NAME,JOB_ID,SALARY,
    CASE
    WHEN JOB_ID='IT_PROG' THEN SALARY*1.10
    WHEN JOB_ID='ST_CLERK' THEN SALARY*1.15
    WHEN JOB_ID='SA_REP' THEN SALARY*1.20
    ELSE SALARY
    END AS 新工资
    FROM EMPLOYEES;

    --只能判断是否相等
    SELECT LAST_NAME,JOB_ID,SALARY,
    CASE JOB_ID
    WHEN 'IT_PROG' THEN SALARY*1.10
    WHEN 'ST_CLERK' THEN SALARY*1.15
    WHEN 'SA_REP' THEN SALARY*1.20
    ELSE SALARY
    END AS 新工资
    FROM EMPLOYEES;

    --只能判断是否相等
    SELECT LAST_NAME,JOB_ID,SALARY,
    DECODE(
    JOB_ID,
    'IT_PROG',SALARY*1.10,
    'ST_CLERK',SALARY*1.15,
    'SA_REP',SALARY*1.20,
    SALARY) AS 新工资
    FROM EMPLOYEES;

    --表
    --创建表
    CREATE TABLE 表名(
    列名 数据类型[长度] [约束],
    列名 数据类型[长度] [约束],
    ……
    列名 数据类型[长度] [约束]
    );

    --Oracle常用的数据类型
    /*
    数字类型:NUMBER
    1.整数:NUMBER(5),长度可以省略,如果省略长度默认为38位的数字。
    2.浮点数:NUMBER(8,2),表示整个数字为8位,其中有两位小数。

    字符类型:长度不能省略
    1.CHAR:保存固定长度的字符串,当内容长度不够时,使用空格在内容的右面补齐长度。
    2.VARCHAR2:保存可变长度的字符串,不会使用空格补齐长度。

    日期类型:不能指定长度。
    DATE:日期+时间
    */

    CREATE TABLE STUDENTS(
    STU_ID NUMBER(5),
    STU_NAME VARCHAR2(10 CHAR),
    STU_SEX CHAR(1 CHAR),
    STU_BIRTHDAY DATE
    );

    --查看表结构:DESC 表名;

    /*
    数据操作
    一、添加数据:INSERT INTO语句
    1.向表中添加一行新的数据,并向新行中所有的列赋值。
    格式:INSERT INTO 表名 VALUES(值,值,……);
    例:INSERT INTO STUDENTS VALUES(1,'Tom','男',TO_DATE('1995-1-20','YYYY-MM-DD'));

    2.向表中添加一行新的数据,并向新行中指定的列赋值。
    格式:INSERT INTO 表名(列名,列名,……) VALUES(值,值,……);
    例:INSERT INTO STUDENTS(STU_NAME,STU_ID,STU_SEX) VALUES('张三',2,'女');

    3.将其它表中的数据复制到指定的表中
    格式:INSERT INTO 表名[(列名,列名,……)] SELECT语句;
    例:INSERT INTO STUDENTS(STU_ID,STU_NAME) SELECT EMPLOYEE_ID,LAST_NAME FROM EMPLOYEES;

    二、修改数据:UPDATE语句
    格式:UPDATE 表名 SET 列名=值[,列名=值,……] [WHERE 条件];
    例:
    UPDATE STUDENTS SET STU_BIRTHDAY=SYSDATE WHERE STU_ID=2;
    UPDATE STUDENTS SET STU_SEX='男',STU_BIRTHDAY=TO_DATE('1990-2-14','YYYY-MM-DD') WHERE STU_ID=100;
    UPDATE EMPLOYEES SET SALARY=SALARY+300 WHERE SALARY=2500;

    三、删除数据:DELETE语句
    格式:DELETE [FROM] 表名 [WHERE条件];
    例:
    DELETE FROM STUDENTS WHERE STU_BIRTHDAY IS NULL;

    --删除STUDENTS表中STU_BIRTHDAY列中所有的数据。
    UPDATE STUDENTS SET STU_BIRTHDAY=NULL;
    */

    --约束
    1.主键约束:PRIMARY KEY。主键不能为NULL,不能重复。通过主键可以在表中找到唯一的一行数据。
    2.非空约束:NOT NULL。列不能为NULL。
    3.检查约束:CHECK。向列中添加与修改数据时,检查值是否合法。

    --数据库中不能出现同名的元素。

    --删除表:DROP TABLE 表名;
    DROP TABLE USERS;

    CREATE TABLE USERS(
    USER_ID NUMBER(6) PRIMARY KEY,
    USER_NAME VARCHAR2(20) NOT NULL,
    USER_AGE NUMBER(2) CHECK(USER_AGE BETWEEN 20 AND 50)
    );

    INSERT INTO USERS VALUES(1,'AA',19);

  • 相关阅读:
    js实现快速排序(in-place)简述
    手把手原生js简单轮播图
    基于superagent 与 cheerio 的node简单爬虫
    浅谈HTTP事务的一个过程
    css小技巧
    DesignPatternPrinciple(设计模式原则)二
    DesignPatternPrinciple(设计模式原则)一
    Attribute(特性)与AOP
    Thread(线程)四
    Thread(线程)三
  • 原文地址:https://www.cnblogs.com/yzyqqhr/p/5716303.html
Copyright © 2011-2022 走看看