好尴尬

这么久,都学到数据库了,可是之前的感觉还没巩固!!!

数据库基础来啦:

--建表

create table abc(stdname varchar2(20),stdnum number(10));

--查看表结构

desc abc;

--规定表字段的值不能为 null

alter table abc modify(stdnum number(10) not null);

--查看当前系统的所有表

select * from tab;

--插入数据

insert into abc(stdname,stdnum)) values ('张三',20125555);

--如果没有指定字段,则必须按照字段的顺序对所有字段赋值

insert into abc values ('张三',20134444);

--如果只对部分字段赋值,则字段名和值必须对应

insert into abc(stdnum) values (20143333);

--查询表

select * from abc;

--修改数据(把张三改成李四 如果后面不加 while 则表中所有的 stdname 都会改成李四)

update abc set stdname='李四' where stdname='张三';

--删除该表的全部数据

delete abc;

--删除指定的数据( 把名字为李四的人的全部数据删掉 )

delete abc where stdname='李四';

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

--使用scott用户

--查看emp表结构

desc emp;

--查询一张表的所有数据(如果不是查询所有字段  尽量不要使用 * 来查询)

select * from emp;

--查询指定表中的指定字段(只查询 empno 和 ename 这两行) 查询结果会按照指定的字段顺序来显示字段数据

select empno,ename from emp;

--非重复的查询某个字段(不显示重复的 可用来判断种类数) --- 去掉的是结果集当中的重复语句,不是把表中的删除了

select distinct job from emp;

--条件查询

--查询 smith 所在的部门,工作,薪水

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;

--查询入职日期在 81 年 9 月 17 号之前的人

-- varchar 类型是可以比较大小的

select * from emp where hiredate<'17-11月-81';

--模糊匹配查询 ( % :表示通配任意个字符 , _ :表示通配一个字符 )

--查询名字中包含 K 的

select * from emp where ename like '%K%';

--查询名字中首字母是 S 的

select * from emp where ename like 'S%';

--查询名字第三个字母是 O 的(前两个打两个下划线 表示是任意字符)

select * from emp where ename like '__O%';

--查询没有上司的员工

select * from emp where mgr is null;

--使用别名查询(自己可更改组别的名字  as 可以省略)

select empno as 编号,ename as 名字 from emp where ename like 'S%';

--怎么查询 smith 的年薪?

select empno 编号,ename 姓名,sal*12 年薪 from emp where ename='SMITH';

--查询工资高于 500 或者是岗位为 MANAGER 的雇员,同时还要满足她们的姓名首字母为大写字母(记得括号的重要性)

select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';

--查询所有的数据,要按照薪水从高到低的顺序显示

select * from emp order by sal desc ;

select * from emp order by sal desc ; --从低到高

--统计所有员工的编号,姓名,年薪(月薪 + 奖金)

--nvl(comm,0) 取得 comm 的值,如果为 null 则改为 0 参与计算(因为 null 一参与计算值也为 null 了)

select empno 编号,ename 姓名,(sal+nvl(comm,0))*12 年薪 from emp;

--根据别名排序

select empno as 编号,ename as 名字 from emp order by sal 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 count(empno) 员工数 from emp;

--计算总工资数

select sum(sal) 总工资 from emp;

--计算员工的平均月薪

select avg(sal) from emp;

select sum(sal)/count(empno) 平均工资 from emp;

------------------------------------------------------------ 分组查询 -----------------------------------------------------------------

--显示平均工资和最高工资

select avg(sal) 平均工资,max(sal) 最高工资 from emp;

--显示每个部门的平均工资和最高工资

--分组的条件一定要查询出来

select avg(sal) 平均工资 ,max (sal) 最高工资,deptno 部门 from emp group by deptno;

--显示每个部门各种岗位的平均工资和最低工资

select avg(sal) 平均工资 ,min (sal) 最低工资,deptno 部门,job 岗位 from emp group by deptno,job

--显示平均工资低于 2000 的部门和它的平均工资

select avg(sal) 平均工资,deptno 部门 from emp group by deptno  having avg(sal)<2000;

--显示平均工资高于 2000 的部门和它的平均工资(总裁办 ( 部门编号10)不参与计算)

select avg(sal) 平均工资,deptno 部门 from emp where deptno!=10 group by deptno  having avg(sal)>2000;

------------------------------------------------------------ 多表查询 -----------------------------------------------------------------

--查询部门表

select * from dept;

--显示雇员名,雇员工资及所在的部门的名字

select ename,sal,deptno from emp;

--笛卡尔积 ( 两个表的关联条件 )

select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno; --联系到了两张表

--显示部门号为 10 的部门名,员工名和工资 emp-->e 别名

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 d.dname;

----------------------------------------------------------------------------------------------------------------------------------------

--查询 smith 的上司

select mgr from emp where ename='SMITH';

select ename from emp where empno=7902;

--嵌套查询

select ename from emp where empno=(select mgr from emp where ename='SMITH');

--自连接查询

select e1.ename,e1.mgr,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno and e1.ename='SMITH';

--如何让查询部门 10 的工作相同上午雇员名字、岗位、工资、部门号

--查询部门 10 中的所有工作类型

select job from emp where deptno=10;

--如果子查询返回多个结果 则用 in 代替 =

select ename,job,sal,deptno from emp where job in (select job from emp where deptno=10);

--如何显示工资比部门 30 的所有员工的工资高的员工的姓名、工资和部门号

--查询部门 30 中工资最高的

select max(sal) from emp where deptno=30;

--使用 max 函数

select ename,sal,deptno from emp where sal>(select max(sal) from emp where deptno=30);

--使用 >all

select ename,sal,deptno from emp where sal>all(select sal from emp where deptno=30); -- 跟所有人比  并且

--如何显示工资比部门 30 的任意一个员工的工资高的员工姓名,工资和部门号

--用 any

select ename,sal,deptno from emp where sal>any(select sal from emp where deptno=30);  -- 跟任意一个人比  或者

--或者用 min 函数

select ename,sal,deptno from emp where sal>(select min(sal) from emp where deptno=30);

--如何查询部分数据

--伪列:ROWNUM (查表的时候不会出现 但是是默认存在的一列 可以人为特地查到 ( 表里没有的 只存在在结果集里面))

--查询结果只显示 10 条

select ROWNUM,ename from emp where ROWNUM<=10;

--查询第 5 到第 10 条数据(不能使用 where ROWNUM>5 and ROWNUM<11 )  (一定要用别名,要不然没结果  要从上一次的结果集中查询)

select ROWNUM,ename from ( select ROWNUM r,ename from emp where ROWNUM<=10) where r>4 and r<11;

--集合操作符 : union,union all,intersect,minus

--union 合并结果并且去掉重复行

select * from emp where job='SALESMAN' union select * from emp where sal>=1500;

--union all 合并结果 并且保留重复行

select * from emp where job='SALESMAN' union all select * from emp where sal>=1500;

--得到两个结果的交集

select * from emp where job='SALESMAN' intersect select * from emp where sal>=1500;

--得到在第一个结果中存在但是又不在第二个结果集中存在的

select * from emp where job='SALESMAN' minus select * from emp where sal>=1500;

---------------------------建表时设置某一段的唯一性

create table aabbcc(

userID number(10) primary key not null, --不可重复

..........

)

-----如果表中已经有了数据,就不能设置外键,

它对于我来说还是个神奇的东西,

怎么用java用它还不熟练,......

国庆七天兼职完了之后得了可怕的厌学症。。好想出去工作啊啊啊啊

会不会遭骂,,, 

数据库的这些你都知道吗?相关推荐

  1. 常见的关系型数据库和非关系型都有哪些?

    常见的关系型数据库和非关系型都有哪些? 关系型数据库: 关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织. 常见的有:Oracle.DB2.PostgreS ...

  2. 今天修改了数据库结构,XSD文件都要重新生成,郁闷!

    今天修改了一下数据库其中一个表的结构,结果导致整个XSD文件都要修改,搞的真是焦头烂额,所以,有时候真的不好说是ELB好用还是使用强类型集更好用,如果真的使用强类型集的时候,建议你一定要先规划好数据库 ...

  3. java数据库连接类,已经把数据库操作的方法都封装好了

    在这里分享一个已经封装好了的java数据库连接类,只要创建对象就可以实现数据库的增删改查操作,用过都说好.其实这个不是我自己写的,是一个理解和学习能力超高的朋友写的,他也很乐于分享交流,本人也深受他的 ...

  4. 盘点一下数据库的误操作都有哪些后悔药?

    [CSDN 编者按]在处理数据库时出现失误操作,一定很头疼吧,特别是在一些高并发,或者单表数据量非常大的情况下,一点小失误可能会全军覆没.本文分享了10种减少数据库误操作的方法,相信一定对你有帮助的. ...

  5. 微信小程序获取用户手机号存数据库,前后端都有《Java后台版 》

    开发这个功能的时候走了很多弯路磨了很多时间,我发一下我自己用的来帮助大家 流程图 前端 index.wxml <view>我的首页内容</view><button cla ...

  6. mysql 备份 第三方工具_目前主流的数据库备份第三方工具都有哪些比较好用

    只有InnoDB表,仅上备份锁 请点击输入图片描述 若有非InnoDB表,上全局锁 请点击输入图片描述 特性2:Redo Log Archiving MEB能做到在线热备,备份时不影响数据库读写,这是 ...

  7. 分库分表 PK NewSQL数据库!看了都说好!

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Sometimes people only change because o ...

  8. 太out了,字节跳动、美团java后端社招题:多线程+分布式+算法+数据库+JVM,你都不知道?

    写在前面: 字节跳动是近几年发展特别迅速的互联网公司,凭借短视频平台[抖音]和自由创作平台[今日头条]等一系列以内容创造价值的应用异军突起,已经成为动摇BAT地位的一大狠角色. 同时,字节跳动公司也是 ...

  9. 药物靶点信息数据库有哪些?都有哪些特点?

    药物靶点信息数据库的应用不仅能够高效地扩大靶点信息获取,而且能深化科研人员对于靶点的认识,从而服务于新靶点发现.药物筛选.药物设计.疾病治疗及药理学机制的研究等领域. 药物靶点可以分为受体.酶.离子通 ...

最新文章

  1. iOS-禁止scrollview垂直方向滚动,只允许水平方向滚动;或只允许垂直方向滚动...
  2. 设置tomcat服务为80端口,tomcat虚拟主机,tomcat日志
  3. HDU-4456 Crowd 二维树状数组+坐标转换
  4. 用微软安全工具加固网站安全 (URLScan Tool IIS Lock Tool)
  5. day12 装饰器进阶
  6. Google C++单元测试框架GoogleTest---AdvancedGuide(译文)上
  7. 详细解读Spring2.5 +Struts1.3 框架(使用Spring声明式事物管理和springjjdbc模板)
  8. [AH2017/HNOI2017]礼物
  9. 加拿大大数据:正在升温的大数据市场
  10. Splunk学习心得
  11. idea多级目录不展开的问题
  12. Mac 安装 home Brew以及 XCTool的过程记录
  13. 计蒜客 第一场 搜狗输入法
  14. Luogu1005 矩阵取数游戏
  15. RabbitMq 406错误
  16. 纯手工焊接七彩圣诞树
  17. Rancher+k3s+阿里云流水线详细配置教程
  18. 金仓数据库 KingbaseES SQL 语言参考手册 (10. 查询和子查询)
  19. 技术狂潮下的生理性健忘:科技产品如何影响我们的大脑?
  20. 保持激昂斗志的18种有效方法

热门文章

  1. java 实现pdf转化为批量图片(两步走)
  2. 免费的中医方剂管理软件
  3. 网络知识入门,用户如何连接互联网,ADSL调制解调器的妙用,PPP上网的三种方式(十二)
  4. winform 右键右下角小图标菜单
  5. 高等数学 第四章 第二类换元法
  6. 计算机水平vb,2020年计算机等级VB考试强化练习题及答案
  7. 学术造假导致导师自杀,后将这段学术丑闻经历出书贩卖,一年收入上百万......
  8. 分手厨房2联机得买两份吗_你在厨房里表现出色吗?
  9. 如何忽悠iPhone粉丝换安卓?(总共分6步)
  10. 学习用5W1H来管理自己的项目/工作