zoukankan      html  css  js  c++  java
  • 第一天20160726

    --关系数据库

    --开始-->运行-->sqlplus

    用户名:system
    密码:dhee

    --Oracle执行脚本文件:@脚本路径

    --在关系数据库中查询表使用:SELECT语句

    --基本的SELECT语句

    SELECT 列名[,列名,……]|*
    FROM 表名;

    /*
    1.Oracle数据库中FROM子句不能省略。
    2.SQL语句不区分大小写。
    3.SQL语句可以写成一行或多行。
    4.通常情况下,SQL语句使用分号表示结束。
    5.只能直接使用半角的标点。
    6.不建议在SELECT语句中使用*,查询效率低。
    */

    --查询employees表中所有员工的last_name
    SELECT LAST_NAME
    FROM EMPLOYEES;

    --查询employees表中所有员工的last_name,salary
    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES;

    --查询departments表中所有部门的信息
    SELECT *
    FROM DEPARTMENTS;

    --列别名
    --查询employees表中所有员工的last_name,salary,年薪
    /*
    1.列名 列别名
    2.列名 AS 列别名
    3.当列别名区分大小写,或别名为关键字,或别名中包含了特殊字符时,需要将列别名放在一对双引号中。
    */

    SELECT LAST_NAME AS "USER NAME",SALARY,SALARY*12 AS 年薪
    FROM EMPLOYEES;

    --关系数据中单引号表示字符串。

    --连接符:||
    SELECT LAST_NAME||'.'||FIRST_NAME AS NAME
    FROM EMPLOYEES;

    --DISTINCT关键字:屏蔽查询结果中重复的数据。
    SELECT DISTINCT JOB_ID
    FROM EMPLOYEES;

    SELECT DISTINCT JOB_ID,SALARY
    FROM EMPLOYEES;

    --通常情况下,一个SELECT语句中只能出现一个DISTINCT关键字。
    --通常情况下,DISTINCT只能出现在SELECT与第一个列之间。

    --过滤与排序
    --过滤:WHERE子句
    SELECT
    FROM
    [WHERE 条件];

    --查询条件为数字类型
    --查询employees表中在50号部门工作的员工,显示last_name,salary,department_id
    SELECT LAST_NAME,SALARY,DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID=50;

    --查询条件为字符串类型:查询的值必须放在一对单引号中,并且英文查询时区分大小写
    --查询employees表中last_name为fay的员工的employee_id,last_name,hire_date
    SELECT EMPLOYEE_ID,LAST_NAME,HIRE_DATE
    FROM EMPLOYEES
    WHERE LAST_NAME='Fay';

    --查询条件为日期类型:查询的值必须放在一对单引号中,并且值必须为Oracle默认的日期格式:DD-MON-RR
    --查询employees表中1994-6-7入职员工的last_name,hire_date,salary
    SELECT LAST_NAME,HIRE_DATE,SALARY
    FROM EMPLOYEES
    WHERE HIRE_DATE='7-6月-94';

    --比较运算符:>,>=,<,<=,=,(!=,<>)
    --查询employees表中salary大于10000的员工,显示last_name,salary
    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES
    WHERE SALARY>10000;

    --查询employees表中在97年以后(不包含97年)入职的员工的last_name,hire_date
    SELECT LAST_NAME,HIRE_DATE
    FROM EMPLOYEES
    WHERE HIRE_DATE>'31-12月-97';

    --特殊的比较运算符
    --BETWEEN..AND..:查询在指定范围内的数据(包含边界值)。
    --查询employees表中salary在6000到12000之间的员工的last_name,salary
    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES
    WHERE SALARY BETWEEN 6000 AND 12000;

    --查询employees表中97-98年入职员工的last_name,hire_date
    SELECT LAST_NAME,HIRE_DATE
    FROM EMPLOYEES
    WHERE HIRE_DATE BETWEEN '1-1月-97' AND '31-12月-98';

    --IN(值列表):查询与值列表中某个值相等的数据。只能判断是否相等
    --查询employees表中在20号或50号部门工作员工的last_name,department_id
    SELECT LAST_NAME,DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID IN (20,50);

    --查询employees表中job_id为it_prog与sa_rep的员工的last_name,job_id,salary
    SELECT LAST_NAME,JOB_ID,SALARY
    FROM EMPLOYEES
    WHERE JOB_ID IN('IT_PROG','SA_REP');

    --LIKE:模糊查询
    /*
    %:任意长度的任意字符。
    _:一个长度的任意字符。
    */
    --查询employees表中last_name中包含a员工的last_name
    SELECT LAST_NAME
    FROM EMPLOYEES
    WHERE LAST_NAME LIKE '%a%';

    --查询employees表中last_name中倒数第二个字符为n人员工的last_name
    SELECT LAST_NAME
    FROM EMPLOYEES
    WHERE LAST_NAME LIKE '%n_';

    --查询employees表中job_id内包含A_的员工的last_name,job_id
    SELECT LAST_NAME,JOB_ID
    FROM EMPLOYEES
    WHERE JOB_ID LIKE '%A/_%' ESCAPE '/';

    --IS NULL/IS NOT NULL:判断列中的内容是否为NULL
    --关系数据库需要提供一个与类型无关,表示未知或不确定的值。

    --查询employees表中哪些员工没有部门,显示员工的last_name,salary
    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID IS NULL;

    --逻辑运算符:AND,OR,NOT
    --查询employees表中salary在6000到12000之间的员工的last_name,salary
    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES
    WHERE SALARY BETWEEN 6000 AND 12000;

    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES
    WHERE SALARY>=6000 AND SALARY<=12000;

    --查询employees表中在20号或50号部门工作员工的last_name,department_id
    SELECT LAST_NAME,DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID IN (20,50);

    SELECT LAST_NAME,DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE DEPARTMENT_ID=20 OR DEPARTMENT_ID=50;

    --查询employees表中工资在5000-12000之间,并且在20或50部门工作员工的last_name,salary,department_id
    SELECT LAST_NAME,SALARY,DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE SALARY BETWEEN 5000 AND 12000 AND DEPARTMENT_ID IN (20,50);

    --AND的优先级大于OR
    SELECT LAST_NAME,SALARY,DEPARTMENT_ID
    FROM EMPLOYEES
    WHERE (SALARY>=5000 AND SALARY<=12000) AND (DEPARTMENT_ID=20 OR DEPARTMENT_ID=50);

  • 相关阅读:
    双向链表循环
    双向链表的删除操作
    双向链表的插入操作
    双向链表的结构
    双向链表的删除操作
    双向链表循环
    OD使用教程17 调试篇17
    OD使用教程17 调试篇17
    双向链表的结构
    独生子女证办理
  • 原文地址:https://www.cnblogs.com/yzyqqhr/p/5712617.html
Copyright © 2011-2022 走看看