汇总
SQL 多表查询 多表连接基本查询 使用一张以上的表做查询就是多表查询。语法:SELECT {DISTINCT} * | 列名 .. FROM 表名 别名,表名1 别名 {WHERE 限制条件 ORDER BY 排序字段 ASC | DESC .. .}范例:查询员工表和部门表员工表部门表查询员工表和部门表我们发现产生的记录数是 48 条,我们还会发现 emp 表是12条,
SQL 单行函数 转换函数 ● TO_CHAR:字符串转换函数范例:查询所有的雇员的入职日期,并将年月日分开,此时可以使用 TO_CHAR 函数来拆分拆分时需要使用通配符 年:y,年是四位使用 yyyy 月:m,月是两位使用 mm 日:d,日是两位使用 dd 时:HH 分:mi 秒:ss示例图:范例:得到当前日期示例图范例:查询入职日期,在结果中 10 以下的月前面被补了前导零,可以使
oracle 的命令行常用操作● 登录运行 cmd 进入命令行(以管理员身份运行)sqlplus 用户名/密码 [as sysdba]如果是超级管理员需要在用 户名/密码 后面加上 as sysdba,是以系统管理员的身份来登录的,如图:如果是普通用户不需要 as sysdba ,但是在连接的时候可能会出现如下情况:此时就需要解锁用户,解锁方法如下: ① 首先需要以管理员身份连接数据库;
oracle 基本概念● 数据库Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个大数据库。● 实例一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguou
安装 Oracle12cOracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。注:来源百度百科。链接:https://pan.baidu.com/s/10DNZCVATsFi3SXf9XBuEKA ,提取码:74vy 。内附安装教程。 安装 PLSQL DeveloperPlsq
Scott 用户下的表结构打开 PL/SQL Developer 使用 scott 用户登录连接数据库。如有错误,欢迎指正!
SQL SQL 简介● 结构化查询语言(Structured Query Language)简称 SQL (发音:/ˈɛs kjuː ˈɛl/ “S-Q-L”),结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需
SQL 单行函数 字符函数 接收字符输入返回字符或者数值,dual 是伪表字符的大小写转换示例图:首字符大写示例图:字符串的连接可以使用 concat ,也可以使用 “ || ” ,建议使用 “ || ”。示例图:字符串的截取,使用 substr,第一个参数是源字符串,第二个参数是开始索引,第三个参数结束的索引,开始的索引使用 1 和 0 效果相同示例图:获取字符串的长度
简单查询● 查询语法Select * |列名 from 表名示例图:● 别名用法在查询的结果列中可以使用别名Select 列名 别名,列名 别名,... from emp;示例图:● 除重复的数据使用 distinct 可以消除重复的行,如果查询多列的必须保证多列都重复才能去掉重复。Select distinct *|列名, ... from emp...
SQL
oracle介绍● ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或 B/S 体系结构的数据库之一。比如 SilverStream 就是基于数据库的一种中间件。ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系...
SQL外连接 外连接(左右连接) ● 左右连接当我们在做基本连接查询的时候,查询出所有的部门下的员工,我们发现编号为 40 的部门下没有员工,但是要求把该部门也展示出来,我们发现上面的基本查询是办不到的。使用 ( + ) 表示左连接或者右连接,当 ( + ) 在左边表的关联条件字段上时是左连接,如果是在右边表的关联条件字段上就是右连接。范例:查询出所有员工的上级领导分析:我们发...
SQL限定查询● 在查询绝大多数都会有条件的限制。语法:select *|列名 from 表名 where 条件例如:查询工资大于1500的所有雇员。范例:查询每月能得到奖金的雇员分析:只要字段中存在内容表示不为空,如果不存在内容就是null,语法:列名 IS NOT NULL-- 为空列名 IS NULL--不为空 示例图:范例:查询工资大...
SQL单行函数日期函数● Oracle 中提供了很多和日期相关的函数,包括日期的加减,在日期加减时有一些规律:日期 – 数字 = 日期日期 + 数字 = 日期日期 – 日期 = 数字(天)范例:查询雇员的进入公司的周数分析:查询雇员进入公司的天数 (sysdate – 入职日期) / 7 就是周数范例:查询所有雇员进入公司的月数分析:获得两个时间段中的月数:MONT...
SQL单行函数通用函数 空值处理 nvl 范例:查询所有的雇员的年薪示例图:我们发现很多员工的年薪是空的,原因是很多员工的奖金是 null,null 和任何数值计算都是 null,这时我们可以使用 nvl 来处理。示例图: Decode 函数该函数类似 if…else if…esle语法:DECODE(col/expression, [search1,result...
SQL多表查询 分组统计 ● 分组统计分组统计需要使用 GROUP BY 来分组语法:SELECT * |列名 FROM 表名 {WEHRE 查询条件} {GROUP BY 分组字段,分组字段1,...} ORDER BY 列名1 ASC|DESC,列名2...ASC|DESC范例:查询每个部门的人数示例图:范例:查询出每个部门的平均工资示例图:...
SQL多表查询 分组函数 ● 统计记录数 count()用于计算有多少条数据范例:查询出所有员工的记录数示例图:不建议使用 count(*),可以使用一个具体的列以免影响性能。● 最小值查询 min()范例:查询出来员工最低工资示例图:● 最大值查询 max()范例:查询出员工的最高工资示例图:● 查询平均值 avg()范例:查询出员工的平均工资...
SQL多表查询 SQL1999 对 SQL 的支持 ● 交叉连接(了解)语法:CROSS JOIN交叉连接会产生笛卡尔积示例图:● 自然连接(了解)语法:NATURAL JOIN自然连接会自动的分析管理条件进行连接,去掉笛卡尔积。示例图:USING 子句(了解)直接管理操作示例图:ON 子句(重要)自己编写连接条件,相当于 whe...
SQLrownum 和 分页 rownum ROWNUM:表示行号,实际上此是一个列,但是这个列是一个伪列,此列可以在每张表中出现。范例:查询 emp 表带有 rownum 列示例图:可以根据 rownum 来取结果集的前几行,比如前 5行示例图:但是我们不能取到中间几行,因为 rownum 不支持大于号,只支持小于号,如果想实现我们的需求怎么办呢?答案...
SQL子查询 子查询 ● 子查询在一个查询的内部还包括另一个查询,则此查询称为子查询。SQL 的任何位置都可以加入子查询。范例:查询比 7654 工资高的雇员分析:查询出 7654 员工的工资是多少,把它作为条件示例图:注意:所有的子查询必须在 “()” 中编写。子查询在操作中有三类:① 单列子查询:返回的结果是一列的一个内容② 单行子查询:返回多个列,有可能是一个...
SQL多表查询 分组统计 ● 分组统计分组统计需要使用 GROUP BY 来分组语法:SELECT * |列名 FROM 表名 {WEHRE 查询条件} {GROUP BY 分组字段,分组字段1,...} ORDER BY 列名1 ASC|DESC,列名2...ASC|DESC范例:部门人数大于 5 人的部门分析:需要给 count(ename) 加条件,此时在本查询中...
SQL 子查询 exists 和 not exists 关键字的用法 范例:查询出有员工的部门有哪些示例图:● exists 关键字的用法exists (sql 返回结果集为真)示例图:范例:● not exists 关键字的用法not exists (sql 不返回结果集为真)示例图:以上操作完整源码:--查询出有员工的部门有哪些--in关键字尽量要少使用,因为性能比较
SQL 子查询 Union 和 Union All 的用法 ● Union:对两个结果集进行并集操作,不包括重复行。范例:工资大于 1000 和大于2000 的员工做并集示例图:● Union All:对两个结果集进行并集操作,包括重复行。范例:工资大于 1000 和大于2000 的员工做并集示例图:● 合并需要注意的事项示例图:以上操作完整源码:--union把两个集合做并集
上一讲说明了单表的建立 在此基础上,现在我们来看多表的建立完成以上操作以后,点击应用加确定,这样订单表就建立完成了。到此,我们现在拥有两张表,这两张表之间是存在一定关系的,同一个用户可以拥有多个订单,但是一个订单只能拥有一个用户,所以,用户表对订单表是一对多的关系,而订单表对用户表是多对一的关系,订单表就存在一个外键,用于关联用户表,这个外键也只能是两张表都具有的属性——用户ID。一对多箭头所指
SQL约束在数据库开发中,约束是必不可少,使用约束可以更好的保证数据的完整性。 外键约束 之前所讲的都是单表的约束,外键是两张表的约束,可以保证关联数据的 完整性。我们在两张表中插入数据时,如果没有主外键关系,我们发现在 order_detail 表中插入的 order_id 在 order 表中并不存在,这样在数据库中就产生了脏数据,此时需要外键来约束它。范例:创建两张表,一张...
SQL数据库事物 数据库事物 注意:本节使用的仍是上节复制的表 myemp!范例:删除员工8001;示例图:从结果上看似乎数据已经删除,但是我们再打开另一个窗口查看发现 8001 的员工还在。说明:事务处理:所谓的事务管理就是要保证数据的完整性,要么同时成功,要么同时失败。当我们执行完 delete 语句时,我们去数据库中去查看数据,发现并没有我们删除数据,这是因为...
SQL约束在数据库开发中,约束是必不可少,使用约束可以更好的保证数据的完整性。 主键约束 主键约束都是在 id 上使用,而且本身已经默认了内容不能为空,可以在建表的时候指定。创建一张表,把 person_id 作为主键示例图:查看表的信息主键不可为空主键不可重复(唯一), SCOTT.SYS_C0017981是系统自动分配的约束的名字可以自定义主键...
SQL数据库变更 数据库变更 为了保存原始 emp 的信息保存,我们复制一份 emp 表Create table myemp as select * from emp;示例图:● Insert(增加)标准写法语法:INSERT INTO 表名[(列名1,列名2,...)] VALUES(值1,值2,...)示例图:简单写法(不建议)语法:...
SQL序列 序列 在很多数据库中都存在一个自动增长的列,如果现在要想在oracle 中完成自动增长的功能, 则只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。语法:CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{C...
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号