`
商山居士
  • 浏览: 8575 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

SQL语句Oracle数据库的基本增删改查

阅读更多

sql语句在很多中数据库中都是通用的,但是在不同的数据库中有着部分的差别,所以今天就只介绍sql在

Oracle中的基本应用,看以下例子

--建表
create table person(username varchar2(20),userage number(10),usersex char(2));

--查看表结构
desc person;

--修改表字段的值不能为null
alter table person modify(userage number(10) not null);

--查询某表的内容
select * from person;

--查看当前用户所有的表
select * from tab;

--插入数据(如果只给部分字段赋值,前后必须一一对应)
insert into person(username,userage,usersex)values('张四',20,'男');

--插入数据(不指定表的结构,就必须对所有字段都赋值)
insert into person values('杨过',30,'男');

--修改数据(如果后面没有where语句,则把所有的username都改了)
update person set username='张四'where username='张三';

--删除该表所有数据
delete person;

--删除指定的数据
delete person where username='张三'; 


----------------------------------------------------------------------简单查询

--查询一张表中的所有数据
select * from emp;

--查询指定的字段(结果集会按照查询的字段顺序来显示数据)
select empno,ename from emp;

--去掉结果集当中重复行
select distinct job from emp;

--条件查询(查询史密斯的部门,工作,薪水)(区分大小写)
select deptno,job,sal from emp where ename='SMITH';




--条件查询(查询部门编号为10和20的的员工)
select * from emp where deptno=10 or deptno=20;

--条件查询(查询薪水大于2000并且下雨2500)
select * from emp where sal>2000 and sal<2500;



--模糊查询           (  % 表示通配任意个字符     _ 表示通配一个字符  )
select * from emp where ename like '%K%';

--查询首字母是S的员工
select * from emp where ename like 'S%';

--查询第三个字母是O的员工
select * from emp where ename like '__O%';

--在where中使用in
--查询存在于数组中的(7369,7566)
select * from emp where empno in(7369,7566);


--显示没有上司的员工
select * from emp where mgr is null;

--以别名显示(as可以省略)
select empno as 编号,ename as 姓名,sal as 月薪 from emp where ename like 'S%';

--显示smith的编号和年薪
select empno 编号,ename 姓名,sal*12 年薪 from emp where ename='SMITH';

--显示工资小于1000或者职位为MANAGER,且名字开头为J的员工
select * from emp where (sal<1000 or job='MANAGER') and ename like 'J%';

--查询的所有数据,并且按照薪水从高到低排序  (desc 倒序排序 ; asc 顺序排序)
select * from emp order by sal desc;
select * from emp order by sal asc;

--统计所有员工的编号,姓名,年薪(月薪+奖金)     nvl(comm,0)  当comm为null的时候用0替代来计算
select empno 编号,ename 姓名,sal*12+nvl(comm,0) 年薪 from emp;

--根据别名来排序
select empno 编号,ename 姓名,sal*12+nvl(comm,0) 年薪 from emp order by 年薪 desc;

----------分组函数  max  min  avg  sum  count

--查询最高月薪是多少
select max(sal) 月薪 from emp;

--查询月薪最高的员工和月薪最低的员工
select empno 编号,ename 编号,sal 月薪 from emp where sal=(select max(sal) 月薪 from emp); --最高
select empno 编号,ename 编号,sal 月薪 from emp where sal=(select min(sal) 月薪 from emp); --最低
select empno 编号,ename 编号,sal 月薪 from emp where sal=(select max(sal) 月薪 from emp) or sal=(select min(sal) 月薪 from emp);--最高和最低一起

--计算员工的平均月薪
select  avg(sal) 平均月薪 from emp;
select sum(sal)/count(empno) 平均月薪 from emp;
--计算有多少员工
select count(empno) 员工数 from emp;
--计算一个月所有薪水总数
select sum(sal) 总月工资 from emp;


------------分组语句
--group by
--显示每个部门的最高工资和平均工资
--分组的条件一定要先查询出来
select max(sal) 最高月薪,avg(sal) 平均月薪,deptno 部门 from emp group by deptno;

--显示每个部门每种岗位的平均工资和最低工资
select avg(sal) 平均月薪,min(sal) 最低工资,job 岗位,deptno 部门 from emp group by job,deptno order by deptno;

--显示平均工资低于2000的部门和它的平均工资     分组之后的条件用having
select avg(sal) 平均工资,deptno 部门 from emp group by deptno having avg(sal)<2000;

--显示平均工资高于2000的部门和它的平均工资,并且财务部不参与
select deptno 部门,avg(sal) 平均月薪 from emp where deptno!=10 group by deptno having avg(sal)>2000 order by avg(sal);


-------------------------------------------------------------------------------------------------多表查询
--查询部门表
select * from dept;

--笛卡尔集,两个表的关联条件
select e.ename 姓名,e.sal 月薪,d.dname 部门名字 from emp e,dept d where e.deptno=d.deptno;

--显示部门号为10的部门名,员工名,月薪
select e.ename 姓名,e.sal 月薪,d.dname 部门名字 from emp e,dept d where e.deptno=d.deptno and e.deptno=10;

--显示各员工的姓名,工资,工资级别    没有一一对应的关联条件
select e.ename,e.sal,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;

--显示员工姓名,员工工资,所在部门的名字,并按照部门来排序
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno order by e.deptno desc;

-----思考题


1、	--选择部门30中所有的员工

2、	select * from emp where deptno = 30;

3、	--列出所有业务人员(CLERK)的姓名,编号,和部门编号。

4、	select empno,ename,deptno from emp where job = 'CLERK';

5、	--找出佣金高于薪水的员工

6、	select * from emp where comm>sal;

7、	--找出佣金高于薪水60%的员工

8、	select * from emp where comm>sal*0.6;

9、	--找出部门10中所有的经理和部门20中所有业务员的详细资料

10、	select * from emp where deptno =10 and job = 'MANAGER' or deptno =20 and job = 'CLERK';

11、--	找出部门10中所有的经理和部门20中所有业务员,既不是经理又不是业务员但薪水大于等于2000的所有的员工信息

12、	select * from emp where deptno =10 and job = 'MANAGER' or deptno =20 and job = 'CLERK' or job!='MANAGER' and job!='CLERK'and sal>=2000;
13、--	找出收取佣金的员工的不同工作;

14、	select distinct job from emp where comm is not null;

15、--	找出收取佣金且收取佣金低于100的员工;

16、	select * from emp where comm<100;

19、--	找出早于12年前的受雇员工
20、	select * from emp where hiredate <'1-1月 2012';

27、	--按名字排序员工

28、	select * from emp where ename like 'A%';

35、--	找出名字包含“A”的员工

36、	select * from emp where ename like '%A%';

 这些用法基本包括了oracle数据库的基本增删改查功能

分享到:
评论

相关推荐

    ORACLE常用增删改查语句

    ORACLE常用的查询语句以及数据库授权语句 表与表之间的内外连接查询 日期时间的SQL函数处理 值的收藏 由于一次性上传不了两份文档,下载了ORACLE.txt的童鞋可以再点我的资料免费下载数据库授权语句的文件

    SQL Server连接Oracle详细步骤和增删改查语句

    SQL Server连接Oracle详细步骤 和数据库增删改查语句

    JDBC链接Oracle数据库增删改查通用工具类

    只需传入sql语句和参数就可以执行增删改查操作,事务也可以用只需做一些简单的修改

    SQL语句的增删改查

    oracle数据库的建表语句,用来改变oracle数据的表结构,该语句在plsql中完成

    shell连接oracle数据库执行SQL工具脚本-支持select+inset+update

    shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor ... “SQL”要执行的SQL,可以是增删改查,自动commit 客户端安装环境博文:https://mp.csdn.net/postedit/87924877

    ExtJs+SSH的增删改查

    一个用ExtJs+SSH+Oracle写的增删改查,里面有数据库的Sql语句,非常完整,全面!Ext的资源文件也有,不用再添加!Ext用的是3.0

    SQL机试试卷

    SQL机试试卷,Oracle数据库语句增删改查练习。SQL机试试卷,Oracle数据库语句增删改查练习

    oracle数据库-select查询语句.txt

    长期从事oracle数据库监控运维维护工作总结,在工作中积累和实现了oracle数据的增删改查等工作,以及对oracle数据库的日常维护工作等。

    wpf通过datagrid操作数据库,实现datagrid增删改操作。

    wpf通过datagrid操作数据库,实现datagrid增删改操作。

    数据库的基础知识及增删改查—详解—适合初学者学习

    数据库的增删改查数据库数据库的分类常见的关系型数据库SQL分类MySql数据库的安装和使用数据库的表的设计数据库服务器的连接数据库表的设计插入—-insert修改表记录–update删除表中的记录—-delete查询—-select...

    oracle与mysql语法不同点总结

    本猿最近做数据库迁移,修改了大量sql语句,对oracle和MySQL语法之间的一些不同之处总结了一些。

    sql语句

    sql的基本操作,针对的是oracle数据库,包括增删改查,建库建表 表空间等等的sql语句

    五月:Oracle数据库总结(一)

    在没有数据库的时候,数据可以储存在普通的文件中,例如提txt、excel使用普通的文件储存数据,存储数据量比较小,不方便增删改查等操作,所以数据应运而生。 二、Oracle数据库 数据库分为关系型数据库和非关系型...

    oracle数据库

    oracle开发与应用 常用sql语句 增删改查等等

    数据库总结–SQL语句执行顺序

     我们这段主要是学习了SQL的增删改查语句,其中查询是我们的重点。我们是以SQL Server 2005来学习的SQL语句,关于SQL Server的图形界面操作,和关于视图、数据库备份还原这些大家下来要下来看一下。  关于...

    常用SQL语句

    数据库增删改查,mysql和oracle

    Oracle简单常用sql

    开发中常用到的简单sql语句命令,简单的增删改查,创建删除用户复制权限,数据库导入导出命令等

    oracle实验报告

    在块中对数据库查询,增、删、改等对数据的操作是由SQL命令完成的。在PL/SQL块中,可以使用SQL的数据查询命令,数据操纵命令和事务控制命令。可使用全部SQL函数。PL/SQL中的SQL语句,可使用SQL的比较操作等运算符...

    基于Java+MySQL的学生选课系统,Eclipse完美运行,满分数据库课程设计,新手必看!

    一.实验目的 数据库系统课程设计是为了配合数据库原理及应用开发而设置的,...将数据库操作SQL语言嵌入java语句中完成数据库各项增删改查等操作。同时用户操作界面也是使用java实现。Java加载MySQL的驱动,实现利用ja

    sql语句汇总

    我总结的sql语句,其中文档sql1.txt中是最基本的增删改查;文档sql2.txt中有模糊条件查询排序;文档sql3.txt是一些日期函数例子;最后的文档123.sql综合给出具体实例.有了这个宝典再也不怕数据库啦,随用随看,希望能带给...

Global site tag (gtag.js) - Google Analytics