Oracle数据库基础02-Oracle数据库的结构与简单查询

1.Oracle数据库中的数据是按照表的形式来存储的;

表结构实例:

在数据库操作中,查询是最常用的操作,也是最复杂的操作。根据不同的需求可以写出不同的SQL语句,甚至同一个需求也可以写出多个SQL语句。就像数学中的一题多解一样,其中肯定有一种高效率的写法。所以写好一个SQL语句是非常重要的,它甚至可以影响程序的执行效率,进而决定程序的好坏。

 为了从数据库中查询数据,需要使用SQL中的select语句。(关键字不区分大小写,规范的操作是关键字大写),有时候并不需要获取表中所有数据,也可以使用SQL中的一些关键字来对行或者列进行限制。

使用select语句可以进行列选择,即选择表中的列,这些列就是要获取的制定列;使用select语句还可以进行行选择,即根据条件选择表中的行,并返回这些指定的行。使用select语句还可以进行多表连接,这些数据原本就存储在不同的表中,通过select语句在他们之间建立连接,形成一个满足特定连接需求的数据集合。

2.基本select语句

select语句的基本语法形式如下:

SELECT *|字段名|表达式 FROM 表名 [WHERE 条件 [ORDER BY 字段名]]

在最简单的形式中,select语句必须包含一个select子句,制定需要显示的字段;还需要一个FROM子句,指定从那个表获取数据。

语法解释如下。

  • *:选择表中的所有字段。
  • 字段名:选择表中的字段名称,可以选择多个字段,各个字段间用逗号分隔。(列名)
  • 表达式:由字段、函数组成。
  • 表名:指定包含字段的表。
  • where 条件:查询的条件,可以通过该条件进行行选择。
  • order by 字段名:要求在查询结果中进行排序,默认是升序ASC,若希望是降序则使用关键字DESC。

新建一个SQL文件进行写代码;

注意:点击螺帽按钮进行执行语句,也可以使用F8快捷键来执行。

假设要通过SQL语句查询emp表中的所有列、所有行的数据,可以使用下面的语句:

select * from emp;

结果如上图;

注意:在表的上面一绿色箭头,用来显示余下屏幕中未显示的数据(即被屏幕遮挡的数据信息)。

还可以通过字段名来查询,例如:

select  ename,job,sal from emp;

查询结果为:

3.算术表达式

数据库表中存储的数据,可能并不是最终要显示的数据,会存在需要修改数据显示内容以达到显示所需数据的目的,这样就可能会用到算数表达式。一个算数表达式可以包含字段名、固定数字值和算数运算符。

Oracle数据库中的算术运算符没有Java的算术运算符丰富,只有“+”、“-”、“*”、“/”四个,其中“/”运算符的结果是浮点数。求余运算符只能借助函数MOD(x,y)来完成,这个函数的作用就是返回x除以y的余数。

要特别说明一点,在Oracle中,可以对DATE和TIMESTAMP类型进行加、减操作。

例如显示员工工作12个月工资都涨了500的工资,查询姓名,工作和工资:

select ename,job,sal*12+500 from emp;

结果为:

4.字段别名

在显示月薪、年薪的例子中,月薪字段的标题为“SAL*12+500”,这样的描述难以理解,不能满足用户的需求,接下来通过字段别名的方法来解决这个问题。

在select所选的字段后面可以指定别名,字段名和别名之间用空格分开。在默认情况下,别名标题用大写字母显示,如果别名中包含空格或者特殊字符(如&或#),或者大小写敏感,需要将别名放在双引号中。

例如:

select ename"姓名",sal"月工资" from emp;

或者select  ename as "姓名",sal as "月工资" from emp;

结果:

5.连字运算符

在实际编程过程中,因为业务需求。可能需要将两个或多个字段连接成一个字段显示,这就要用到连字运算符“||”。使用连字运算符,可以进行字段与字段、字段与表达式、字段与常熟值之间的连接,来创建一个字符表达式,连字运算符两边的字段被合并成一个单个的列输出。

例如:select ename||'的工资',sal||'元' from emp;

结果:

注意:如果连接的是数字,则可以不用单引号;如果是字符串或日期类型,则必须使用单引号;如果字符串常量中包含了单引号,则可以使用两个单引号表示一个单引号常量。

6.去重复行

如果查询员工的部门编号,非常简单;

例如:select deptno from emp;

结果:

可以看出有很多的重复部门编号,想去除重复的行可以使用DISTINCT关键字,用来修饰字段。

例如:select distinct deptno from emp;

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值