zoukankan      html  css  js  c++  java
  • Oracle

    Oracle学习

    1      SQL初步

    SQL语句分为三种类型:

    DML:数据操纵语言

    DDL:数据定义语言

    DCL:数据控制语言

    1.1   DML

    INSERT   UPDATE   DELETE   SELECT

    1.2   DDL

    CREATE TABLE     ALTER TABLE    DROP TABLE    CREATE INDEX    DROP INDEX

    1.3   DCL

    GRANT    REVOKE   COMMIT   ROLLBACK   SAVEPOINT     LOCK

    2      基本查询语句SELECT

    查看表结构:desc table_name;

    在select的语句中可以加上算术运算符;

    查看系统当前时间:select sysdate from dual;

    空值是无效的,未指定的,未知的,或不可预知的值;空值不是0或者空格;

    使用别名三种方式:

    第一种:select cloumn_name1 alias_name1 from table_name;

    第二种:select column_name1 as alias_name from table_name;

    第三种:select column_name1 “aliasName” from table_name;

    第一、  二种的别名都是默认的大写,第三种大小写默认的不变

    查询中的连接符“||”:

    可以将两个列的查询结果合成一个:

    Select last_name || employee_id from employees;

    显示的结果:

    employees

    -----------------------------------

    BaerPR_REP

    HigginsAC_MGR

    GietzAC_ACCOUNT

    Select last_name,employee_id from employees;

    显示的结果:

    LAST_NAME                 EMPLOYEE_ID

    ------------------------- -----------

    Baer                              204

    Higgins                           205

    Gietz                             206

    日期和字符只能在单引号中出现,每当返回一行时,字符串被输出一次,

    Select lastname || ‘ is a ’ job_id as “employee details” from employees;

    删除重复行:

    Select dinstinct department_id from employees;

    但结果可能返回为空

    Sql语句和SQL plus的区别:

    Sql语句是一种语言,一种标准,关键字不能缩写

    Sql plus是一种环境,Oracle的特性之一,关键字可以缩写

    Desc实际上就是describe的缩写

    Select last_name,distinct department_id from employees;

    语句错误,last_name有107条,而department_id用distinct修饰后,只剩12条,不能匹配

    显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT:

    Select employee_id || ‘,’ || last_name || ‘,’ ||salary from employees;

    3      过滤和排序行

    过滤使用where加上查询条件,需要注意的是,where后的条件如果是字符/日期,需要用单引号来修饰,数字类型不需要修饰。

    比较运算:>  <   <=   >=   <>

    其他运算比较: between and, in(set),like, is null

    Like ‘s%’; like ‘_o%’:%代表一个多个字符,_代表一个字符

    判断是否为空:is(not) null

    Escape: select * from job_id where job_id like ‘IT\_%’ escape ‘’,这代表的是_就是_

    Order by asc/desc: 升序/降序

    多个列排列:

    选择名字中有a或e的员工:

    Select * from employees where last_name like ‘%a%e%’ or ‘%e%a%’

     

    4      单行函数

    大小写函数:

    Lower()

    Upper()

    Initcap():字符首字母大写

    字符控制函数:

    函数

    结果

    CONCAT('Hello', 'World')

    SUBSTR('HelloWorld',1,5)

    LENGTH('HelloWorld')

    INSTR('HelloWorld', 'W')

    LPAD(salary,10,'*')

    RPAD(salary, 10, '*')

    TRIM('H' FROM 'HelloWorld')

    REPLACE(‘abcd’,’b’,’m’)

    HelloWorld

    Hello

    10

    6

    *****24000

    24000*****

    elloWorld

    amcd

    数字函数:

    ROUND(四舍五入)     ROUND(45.926,2)

    45.93

    TRUNC(截断)         TRUNC(45.926)

    45.92

    MOD(求余)           MOD(1600,300)

    100

    5      多表查询

    Select employees.employee_id,employees.department_id, departments.department_id

    From    employees,departments;

    上面的语句查询结果有2000多条记录,这种现象被称为笛卡儿积。

    笛卡儿积的产生情况在下面这些条件产生:

    (1)省略连接条件;

    (2)连接条件无效;

    (3)所有表中的所有行互相连接。

    避免笛卡儿积的方式可以加上where过滤

     

    内连接与外连接:

    内连接:合并具有同一列的两个以上的表的行,结果集中不包含一个表与另一个表不匹配的行;

    外连接:两个表在连接的过程中,除了返回满足连接条件的行以外,还返回左表或右表中不满足条件的行,这中连接称为左外连接或右外连接。外连接的where子句条件类似于内部连接,但连接条件中没有匹配行的表的列后面要加外连接运算符,即用圆括号括起来的加号(+).

    左连接:左边的全都显示,右边的用null来补上

    Select table1.column,table2.column

    From table1,table2

    Where table1.column= table2.column(+);

    右连接:右边的全都显示,左边的用null来补上

    Select table1.column,table2.column

    From table1,table2

    Where table1.column(+) = table2.column

     

  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/lfdingye/p/9315703.html
Copyright © 2011-2022 走看看