• 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

     

  • 相关阅读:
    Delphi中QuotedStr介绍及使用
    <<编写可维护的JavaScript>>之避免使用全局变量
    JavaScript中的继承模式总结(九)
    JavaScript中的继承(原型链)
    Javascript中函数的四种调用方式
    apply()和call()的区别
    在mui中遇到的内容覆盖导航栏的问题
    相等(==)运算符和等同(===)运算符之间的区别
    理解Javascript参数中的arguments对象
    Javascript之类型检测(一)
  • 原文地址:https://www.cnblogs.com/lfdingye/p/9315703.html
Copyright © 2020-2023  润新知