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);

  • 相关阅读:
    HDU 1114 Piggy-Bank
    HDU 2955 Robberies
    NTOJ 290 动物统计(加强版)
    POJ 3624 Charm Bracelet
    HDU 2602 Bone Collector
    POJ 1523 SPF(无向图割顶)
    HDU 5311 Hidden String
    HDU 1421 搬寝室
    HDU 1058 Humble Numbers
    POJ 3259 Wormholes(spfa判负环)
  • 原文地址:https://www.cnblogs.com/yzyqqhr/p/5716303.html
Copyright © 2011-2022 走看看