Sql入门

SQL: 结构化查询语言

  1. ddl:数据库定义语言  alter drop create truncate
  2. dml:数据库操作语言 insert update delete
  3. dcl:数据库控制语言 安全 授权 qrant revoke
  4. dql:数据库查询语言 select from where 等

dual:虚表,伪表,用于补齐语法结构

select 1+1 from dual;

别名查询:

select ename 姓名,sal 工资 from emp;

去除重复数据:(一列都一样才算重复)

select distinct job from emp;

sql四则运算:

select 1+1 from dual;
select sal*12 from emp;
select sal*12 + nvl(comm,0) from emp;

nvl()函数,如果第一个参数为空,则返回第二个参数

注意:包含null的表达式都为null;空值(未知,不可预测的值)永远不等于空值

连接符: ||

mysql形式:

select concat(ename,'的工资是',sal,) from emp;

oracle:

select '工资:' || sal from emp;

where语句:

  • 非空和空的查询
select * from emp where comm is null;
select * from emp where comm is not null;
  • 范围限制
select * from emp where sal >1000;
select * from emp where comm is null and not(sal>1000);
select * from emp where sal between 1000 and 2000;
select * from emp where sal in (1000,3000);
select * from emp where comm is not null or sal >1800;
  • 模糊查询
select * from emp where ename like '李%';
select * from emp where ename like '李_';

排序查询:

order by (asc:升序;desc:降序,默认升序)

select * from emp order by eid;
select * from emp order by eid desc;

遇到空值问题时,利用nulls first 或 nulls last 来解决

select * from emp order by sal desc nulls last;

sql的函数:

D:\BaiduNetdiskDownload\oracle\day1\源码\预习(本机资源)

sql的常用函数参考:https://www.cnblogs.com/canyangfeixue/p/3203588.html

注意:where 和having的最大区别,where后面不能跟组函数

错误示范:

select deptno avg(sal) from emp group by deptno where avg(sal)>3000; 
select sal deptno,count(ename) from emp group by deptno;
select sal deptno,count(ename) from emp;
posted @ 2019-06-14 23:40  WuHJ  阅读(227)  评论(0编辑  收藏  举报