笛卡尔集 l 笛卡尔集会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 l 为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件. 自连接 select m.last_name,m.email,m.salary from employees e,employees m where e.employee_id = m.manager_id and m.last_name='Chen'; 自己和自己连接,将一张表分为两张表查询使用 非等值连接 SELECT e.l
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句--select DML语句--insert,upate,delete等(关键
注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里. 1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要) 例如,有如下数据库表: A B 1 abc 1 bcd 1 asdfg 如果有如下查询语句(该语句是错误的,原因见前面的原则) select A,B fr
Demo: SELECT USER_ID, USER_NAME, USER_SEX, MAX(USER_AGE), SUM(USER_MONEY) AS USER_MONEY USER_TEL, USER_EMAIL, USER_ADD, USER_STATUS, FROM USERS ORDER BY USER_NAME, USER_SEX, USER_STATUS; 类似这种,多个字段的GROUP BY该怎么写. 1.USER_TEL, USER_EMAIL, U
分组函数:(五个) 1···max(expr):求expr的最大值 }\ 2···min(expr):求expr的最小值 }-- 数据类型是有规定的 3···sum(expr):求expr的总和 }-- 必须是字符型或数字 4···avg(expr):求expr的平均值 }/ 5···count(expr):求expr的个数 expr的类型不能是空,如果是空,则不计入其中, 因此需要用到nvl()来进行转换 group by expr1,expr2,...的用法: group by 的后面跟的是
2018-07-10 08:29:55 思考应用场景 异常数据的测试 6.显示能挣得奖金的雇员的姓名.工资.奖金,并以工资和奖金降序排列.select ename,sal,commfrom empWHERE comm>0--两列都要descorder by sal desc,comm desc; 8. 显示姓名中两次出现字母L并且在30部门工作,或者其管理员编号是7782的雇员的姓名.SELECT ename FROM emp --模糊查询WHERE ename LIKE '%L%L%' AND
字符串函数 1.concat 函数 drop table test;create table test(id int(4), name varchar(10), sex char(2));insert into test values(1, 'Tom', '男');select concat(id, name, sex) from test; //查询结果:1Tom男select concat(id, '-', name, sex) from test; //查询结果:1-Tom男update
一.多表查询 所有的连接分析,参考之前随笔:http://www.cnblogs.com/jiangbei/p/7420136.html 1.笛卡尔积 select last_name, department_name from employees, departments 产生无效的笛卡尔积可以通过where进行过滤 连接查询: 2.等值连接 select e.last_name, d.department_name from employees e, departments d where
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句——select DML语句——insert,upate,delete等(关键字后带表
组函数:avg sum max min count group by having group by 增强:rollup cube grouping grouping set 一.分组函数 1.常用分组函数 AVG([DISTINCT|ALL]n) -- 求平均值,忽略空值 COUNT({*|[DISTINCT|ALL]expr}) -- 统计个数,其中expr用来判定非空值(使用*计算所有选定行,包括重复行和带有空值的行) MAX([DISTINCT|AL
/* 分组函数 不能再select子句中出现普通的列,除非这个列在group by中给出 所有的空值都会被分为一组 分组过滤 SELECT FROM WHERE GROUPBY HAVING ORDERBY */ --求出每种工作的平均薪资 SELECT JOB,AVG(SAL),MAX(SAL),MIN(SAL) FROM EMP GROUP BY JOB; SELECT MAX(SAL) FROM EMP; SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY D