作者:一乐乐 欢迎大家来一乐乐的博客园 一、分组(统计) 查询 1、语法 : select [distinct] *| 分组字段1[别名] [,分组字段2[别名],...] | 统计函数 from 表名 [别名] [where 条件(s)] [group by 分组字段1[,分组字段2]] [having 分组后的过滤条件(可以使用统计函数)] [order b
Mysql嵌套子查询 子查询就是指的在一个完整的查询语句之中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,为了让读者更加清楚子查询的概念。 子查询返回结果 子查询可以返回的数据类型一共分为四种: 单行单列:返回的是一个具体列的内容,可以理解为一个单值数据;
1.6、索引有失效的时候,什么时候失效呢?(重要) (失效1)select * from emp where ename like ‘%T’; type = ALL ename上即使添加了索引,也不会走所引,为什么? 原因是模糊匹配中以“%”开始 尽量避免模糊查询时以"%"开始 这是一种优化的手段/策略
5、limit 5.1、limit是将查询结果集的一部分取出来,通常使用在分页查询中 分页作用是为了提高用户体验,可以一页一页翻页看 5.2、limit用法:(非常重要) 完整用法:limit startIndex,length startIndex是起始下标,length是长度 缺
18、分组函数(多行处理函数) 多行处理函数的特点:输入多行,最终输出一行 5个: count 计数 sum 求和 avg 平均值 max 最大值 min 最小值 注意: 分组函数在使用的时候必须先进行分组,然后才能用 如果你没有对数据分组
数据表:dept: deptno(primary key), dname, locemp: empno(primary key), ename, job, mgr(references emp(empno)), sal,deptno(references dept(deptno)) 1、列出emp表中各部门的部门号,最高工资,最低工资 select max(sal) as 最高工资,min(sal) as 最低工资,deptno from emp
15、排序 15.1、查询所有员工薪资,排序? select ename,sal from emp order by sal; (默认升序) select ename,sal from emp order by sal desc; (指定降序) select ename,sal from emp order by sal asc;(指定升序) 15.3、可以两个字
数据库学习笔记 1.SQL,db,dbms他们之间的关系? sql: 结构化查询语言,是一门标准通用的语言。标准的sql适合于所有的数据库产品 DB:数据库 DBMS:数据库管理系统 DBMS负责执行sql语句,通过执行sql语句操作DB中的数据 2.什么是表? 表:table
多表查询、子查询、常用函数 一、多表查询 多表查询:通过不同表中具有相同意义的关键字段,将多个表进行连接,查询不同表中的字段信息。 对应关系 一对一:比如下图的人员信息表和人员身份证对应表,一个员工只会有一个身份证号码; 一对多:比如下图的部门信息表和部门人员表,一个部门可
目录 一、数据库系统基础 1.1概念 1.1.2 SQL语言分类 1.1.3数据独立性(物理独立性,逻辑独立性) 1.2概念模型 1.2.1实体,属性,码(键),实体类型,实体集,联系 1.2.2 ER图和关系模型 1.2.3.ER转逻辑结构模型 1.3数据库系统的结构 二、关系数据库 1.基础芝士 1.1概念: 1.2关系的完整性 三,数据
实际应用中我们可以通过sum()统计出组中的总计或者是累加值,具体示例如下: 1.创建演示表 create table emp as select * from scott.emp; alter table emp add constraint emp_pk primary key (empno); create table dept as select * from sco
select * from emp; select * from dept; –1.将emp表的职员信息按雇佣日期由早到晚的先后顺序列出 select * from emp order by hiredate; –2.查询职员表中没有奖金的员工信息 select from emp where comm is null; –3.查询工资高于所有员工平均工资的员工 select from em
1.统计各个岗位的平均工资 select deptno,avg(sal) from emp group by deptno having avg(sal)>2000; 运行结果: 也可给avg(sal)取个名字,后面也用名字替换,运行结果一样。 select deptno,avg(sal) 平均工资 from emp group by deptno having 平均工资 >2000; 运行结果: 也
1.如果想统计各个部门的平均工资该怎么办? select deptno,avg(sal) from emp; -- 字段和多行函数不可以同时使用 select deptno,avg(sal) from emp group by deptno; -- 字段和多行函数不可以同时使用,除非这个字段属于分组 运行结果: 还可以添加升降序: select deptno,avg(sal)
Oracle 通用表 /* emp 表 dept 部门表 salgrade 表 empno 员工编号 deptno 部门编号 grade 工资等级 ename 员工姓名 dname 部门名称
where子句:将过滤条件放在where子句的后面,可以筛选/过滤出我们想要的符合条件的数据 1.where子句 + 关系运算符 > < = >= <= <>不等于 !=不等于 查询deptno=10的:select * from emp where deptno = 10; 运行结果: 查询job='clerk'的:select * from emp where job = 'clerk';
Oracle 通用表 /* emp 表 dept 部门表 salgrade 表 empno 员工编号 deptno 部门编号 grade 工资等级 ename 员工姓名
什么是索引?有什么用? 相当于是一本书的目录,在MySQL中,可以快速定位到需要找到的数据 在MySQL中查询一张表有两种方式可以来进行操作 第一种:全表扫描,一条记录一条记录的扫描,直至扫描结束,扫描较慢 第二种:索引检索(效率贼高),根本的原理是缩小了扫描的范围。
MySQL 1.SQL,DB,DBMS分别是什么,他们之间的关系? DB: DataBase(数据库,数据库实际上在硬盘以文件的形式存在) DBMS: DataBase Management System(数据库管理系统,常见的有MYSQL Oracle DB2 Sybase sqlsever) SQL: 结构化查询语
Oracle练习题(九) (1) 创建一个存储过程,以员工号为参数,输出该员工的工资 --创建存储过程 create or replace procedure print_sal(n number) as val_sal emp.sal%type; begin select emp.sal into val_sal from emp where empno = n; dbms_output.put_line(n||'号员
一.连接查询: 1.1、什么是连接查询? 在实际开发中,大部分的情况下都不是从单表中查询数据,一般都是多张表联合查询取出最终的结果。 在实际开发中,一般一个业务都会对应多张表,比如:学生和班级,起码两张表。 stuno stuname classno
内连接 以两张匹配表,进行匹配,结果集只显示两张表的公有部分 内连接的特点:查询结果必须满足条件。 例如:SELECT * FROM emp e INNER JOIN dept d ON e.deptno=d.deptno; 外连接(左连接、右连接) 外连接的特点:查询出的结果存在不满足条件的可能。 左外连接 是以一张表为主表,另一
今天在做PG数据到HIVE的数据交换任务时,因为某个字段在PG中是Varchar类型,hive是bigint,而偏偏PG 中该字段的存储值都被加了小数点位,导致字段类型转换失败。 现在就需要将字符串中小数点后的部分给截掉。 开始时尝试使用的是CHARINDEX来获取小数点的位置,然后使用substring函数
-- 单行函数包含: -- 1.字符串函数 select ename,length(ename),substring(ename,2,3) from emp; -- substring字符串截取,2:从字符串下表2开始; 3:截取长度为3;下表从1开始 -- 2.数值函数 -- abs绝对值 ceil向上取整 floor向下取整 round四舍五入 select abs(-5),ceil(5.3),floor