`
金R在奋斗着
  • 浏览: 14786 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

数据库的这些你都知道吗?

 
阅读更多

尴尬尴尬尴尬尴尬尴尬尴尬尴尬尴尬

好尴尬

 

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

 

数据库基础来啦:

 

--建表

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用它还不熟练,......

 

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

会不会遭骂,,, 吐舌头

4
3
分享到:
评论
2 楼 金R在奋斗着 2014-10-14  
人生难得糊涂 写道



    
1 楼 人生难得糊涂 2014-10-10  

相关推荐

    ASP技术常遇问题解答-能用〈br〉来代替数据库的换行符吗?.zip

    这样,当你从数据库检索数据并在网页上输出时,无需额外的转换步骤,直接输出包含` `标签的字符串即可达到换行效果。 然而,这种方法也存在一些潜在问题: 1. **兼容性**:如果数据不仅用于HTML展示,还可能...

    创建MDB数据库和修改数据库密码

    这将打开一个新的空数据库,你可以开始添加表和其他元素。 当涉及到数据库的安全性时,密码保护是至关重要的。在Access中,可以为数据库设置打开密码,以限制对数据库的访问。修改数据库密码的步骤如下: 1. 打开...

    数据库课程设计源程序(音乐播放器)

    开发者可能创建了一个或多个表来组织这些数据,每个表都有相应的主键和外键来维护数据的一致性和完整性。 其次,源代码部分涵盖了前端用户界面和后端数据库的连接与交互。前端可能使用了如Java、C#或Python等编程...

    仿百度知道 access数据库

    【标题】"仿百度知道 access数据库"涉及到的关键技术点主要包括两个方面:一是网站设计与开发,特别是模仿知名问答平台——百度知道的实现;二是数据库管理,这里使用的是Microsoft Access数据库。 1. **网站设计与...

    数据库系统概念实验知道加习题

    "数据库系统概念实验知道加习题"这个主题涵盖了数据库系统的基本概念、设计原理以及实际操作的练习,旨在帮助学习者深入理解和掌握数据库的工作机制。 首先,我们要理解数据库(Database)的概念,它是按照一定规则...

    连接其他oracle数据库信息创建本地视图

    在Oracle数据库环境中,有时我们需要访问和操作不在本地服务器上的其他Oracle数据库的数据。这可以通过创建数据库链接(Database Links)实现,标题“连接其他Oracle数据库信息创建本地视图”正是围绕这一主题展开。...

    学了这么久数据库,你知道五大系统数据库是什么吗?

    在SQL sever系统中,系统运行时会用到的相关信息,如系统对象的组态设置等,都是以系统的形式存在,而存放这些系统信息的数据库成为系统数据库。成功安装SQL sever后,系统会自动建立master、model、msdb、tempdb及...

    开放数据库互联(ODBC)技术与应用

    驱动程序知道如何与特定的数据库进行交互,例如SQL语法、数据类型等。 3. **应用程序(Application)**:使用ODBC的应用程序通过调用ODBC API(应用程序编程接口)来访问数据库。这些API函数提供了如连接数据库、...

    Linux数据库配置手册

    在IT领域,Linux操作系统是许多企业和开发者首选的服务器平台,尤其在数据库管理方面。本《Linux数据库配置...通过深入学习和实践,你将能够有效地管理和维护Linux环境下的数据库系统,为业务提供稳定、高效的服务。

    云南大学数据库实验

    在实验报告中,我们可以看到每个数据库都有其自己的数据库配置文件,包含数据库以及各种调整参数的信息。在控制中心中,我们可以查看 CLINICDB 数据库的配置文件,并修改一些参数的值。 本实验报告涵盖了创建数据库...

    加入数据库mysql实现android注册登陆功能的客户端服务器源码与解析

    你需要知道如何在这些组件中处理用户输入,显示进度条,以及接收和解析服务器响应。 - **SQLite数据库**:虽然主要的用户数据存储在服务器上,但Android客户端可能还需要本地SQLite数据库来缓存用户信息或处理离线...

    用IP地址在本地访问远程数据库

    在开始之前,需要知道远程数据库的端口号,假如端口号为 1433,IP 地址为 222.2.112.55。这个信息非常重要,因为它将决定我们如何配置客户端以访问远程数据库。 配置 SQL Server 配置管理器 打开开始菜单,选择...

    数据库x学习知道

    "数据库x学习知道"这个主题涵盖了广泛的知识点,包括但不限于数据库基础、SQL语言、数据库设计、事务处理、并发控制以及数据库优化等。 1. **数据库基础**:数据库是一种组织和存储数据的方式,常见的类型有关系型...

    DB2数据库与SQLServer数据库的异同.doc

    为此企业在选型的时候往往会在这三个数据库之间犹豫,不知道该选哪个数据库 好。笔者这里就以DB2 数据库与SQLServer数据库为例,谈谈他们的差异。为企业选择数据库提供一些参考。 一、适用平台上的差异。 到目前为止...

    dreamweaverCC 数据库 面板

    dreamweaver CC装数据库面板移除了,需要自己安装,个人找了十多天才从不知道到知道了呢。操。。耽误了学习。。。 dreamweaverCC 数据库 面板 com.adobe.serverbehaviordatabase_1.0.0_62afbb.zxp

    数据库系统工程师:数据库原理选择题总结

    数据库系统工程师在备考过程中需要掌握一系列数据库原理的知识点。以下是对这些选择题的解析和相关知识点的详细说明: 1. **外模式**:单个用户使用...学习并理解这些知识点对于成为合格的数据库系统工程师至关重要。

    Kepserver通过ODBC 读写SQL数据库

    在数据库层面,你需要创建一个用户数据库,比如在描述中的"Text"数据库。这个数据库将包含你要读取或写入的数据表。 配置ODBC数据源是实现KEPServerEX与SQL Server通信的关键步骤。在系统ODBC数据源管理器中,定义...

    数据库连接文本文件

    本文将深入探讨如何连接和操作这些文本文件,以便将数据导入数据库。 首先,我们需要理解数据库的基本概念。数据库是一个组织化的数据集合,它使用结构化查询语言(SQL)进行操作。常见的关系型数据库管理系统...

    数据库实验一 基于Sakila的数据库操作

    【知识点详解】 在这个数据库实验中,我们主要涉及了MySQL数据库管理系统以及Sakila数据库的使用。Sakila是一个示例数据库,通常用于教学和演示目的。...对于数据库初学者来说,这些都是非常基础且重要的技能。

    greenDao3数据库加密

    不过,现在这些实体类需要继承自`EncryptedEntity`,以便GreenDao知道如何处理加密字段。 4. **运行时的加密与解密** 当你需要读写数据时,GreenDao会自动处理加密和解密的过程。你不再需要手动处理这些细节,只需...

Global site tag (gtag.js) - Google Analytics