• Oracle学习笔记之四,SQL语言入门


    1. SQL语言概述 

    1.1 SQL语言特点

    • 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理。
    • 统一性,操作任务主要包括:查询数据;插入、修改和删除数据;建立、修改和删除数据对象;控制对数据和数据对象的读写;保证数据库一致性和完整性。
    • 易于移植性。

    1.2 SQL语言的分类

    • 数据查询语言(DQL),主要是SELECT语句、
    • 数据操纵语言(DML),主要包括INSERT、UPDATE、DELETE。
    • 事务控制语言(TCL),主要包括COMMIT、ROLLBACK、SAVEPOINT。
    • 数据定义语言(DDL),用于建立、修改和删除数据库对象,主要包括CREATE、ALTER、DROP。
    • 数据控制语言(DCL),用于执行权限授予和权限收回操作,主要包括GRANT、REVOKE。

    2. 检索数据

    select {[distinct|all]columns|*}

    [into table_name]

    from {tables|views|other select}

    [where conditions]

    [group by columns]

    [having conditions]

    [order by columns] 

    筛选查询:

    • 比较筛选,主要有6种情况:=,!=,>=,<=,<,>
    • 特殊关键字筛选,LIKE/IN/BETWEEN/IS NULL等关键字,它们都可以与NOT合用。如:NOT...BETWEEN...AND
    • 逻辑筛选,AND、OR、NOT(正常情况,可以用“AND”和“比较运算符”来代替“BETWEEN...AND”关键字)。

    分组查询:

    排序查询:

    多表关联查询:

    • 内连接(INNER JOIN),当只合用JOIN关键字时,默认内连接操作。
    • 外连接(LEFT JOIN/RIGHT JOIN/FULL JOIN),左外连接查询表示查询结果还包含左表中不满足连接条件的数据行,以此类推。
    • 自连接,如:select emp2.ename 上层管理者,em1.ename as 下属员工 from emp em1 left join emp em2 on em1.mgr=em2.empno order by em1.mgr;
    • 交叉连接(CROSS JOIN),交叉连接实际上就是不需要任何连接条件的连接,执行结果是一个笛卡尔积,这种查询结果是冗余的,但可以通过WHERE子句来过滤出有用的信息。

    3. Orcale常用系统函数

    参考:Oracle学习笔记之五(实践:常用函数)

    4. 子查询

    4.1 单行子查询

    单行子查询是指返回一行数据的子查询语句。当在WHERE子句中引用单行子查询时,可以使用单行比较运行符(=、>、<、>=、<=、<>)。

    select empno,ename,sal from emp where sal>(select avg(sal) from emp);

    4.2 多行子查询

    多行子查询是指返回多行数据的子查询语句。当在WHERE子句使用多行子查询时,必须使用多行运算符(IN、ANY、ALL)。

    select empno,ename,job from emp where deptno IN (select deptno from dept where dname<>’SALES’);

    ANY运算符必须与单行比较运算符结合使用,并且返回行只要匹配子查询的任何一个结果即可。

    select deptno,ename,sal from emp where sal > ANY (select sal from emp where deptno=10) and deptno<>10;

    ALL运算符必须与单行比较运算结合使用,并且返回行必须匹配所有子查询结果。

    select deptno,ename,sal from emp where sal > ALL (select sal from emp where deptno=30);

    4.3 并联子查询

    内查询的执行需要借助于外查询,而外查询的执行又离不开内查询的执行。

    比如:列出员工工资大于此员工所在岗位的平均工资的清单

    select empno,ename,sal from emp f where sal>(select avg(sal) from emp where job=f.job) order by job;

    5. 操作数据库

    5.1 插入数据(INSERT语句)

    INSERT INTO table_name [(column_name1[,column_name2]…)]

    VALUES(express1[,express2]…)

    INSERT INTO table_name [(column_name1[,column_name2]...) selectSubquery

    5.2 更新数据(UPDATE语句)

    UPDATE table_name

    SET   {column_name1=express1[,column_name2=express2...]

    | (column_name1[,column_name2…])=(selectSubquery)}

    [WHERE condition]

    在将UPDATE语句与SELECT语句组合使用时,必须保证SELECT语句返回单一的值。

    5.3 删除数据(DELETE语句、TRUNCATE语句)

    DELETE FROM table_name

    [WHERE condition]

    TRUNCATETABLE table_name 

  • 相关阅读:
    虚拟机的三种联网模式(桥接模式、NAT 模式、仅主机模式)
    Vue 分页器 Pagination 实现点击分页器,平滑到对应的dom组件,而不是直接切换对应的组件
    img图片的处理技巧
    Vue中在DOM组件上动态绑定数据
    vue3.0中使用postcss-pxtorem
    vue中实现点击div有样式去除样式 无样式添加样式
    网易云音乐API,的调用方法 ,vue项目中(在本地使用)
    我的mixin.scss文件
    kendo-ui 几个有用的数据操作
    开发中常见的common.js--1
  • 原文地址:https://www.cnblogs.com/nayitian/p/3218041.html
Copyright © 2020-2023  润新知