Oracle学习---3

Oracle学习之路③

今天这篇主要讲3个内容

  1. 认识sql
  2. 掌握Scott用户的数据表结构
  3. SQL的简单查询

一、认识sql

  • Sql,结构化的查询语言。
  • 如果每一套数据库都使用自己的一套操作命令,那会给我们开发者带来了非常大的难度。
  • 由IBM创建了SQL操作标准,而Oracle是世界上第一个支持SQL语法的数据库。
  • 所以如果你本身擅长DB2的数据库,那么你可以很轻松的上手Oracle数据库,或者sqlserver数据库,包括MySQL数据库。
  • Oracle大型海量数据库(上亿),MySQL小型数据库(四五百万条数据),SqlServer(八千万条),DB2(几十亿)-> aix操作系统下。
  • SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词: CREATE、 ALTER、DROP、 SELECT、 INSERT、 UPDATE、 DELETE、GRANT、 REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。

SQL分类:

  1. DML(数据操作语言,开始中使用的部分):主要指的是数据库的查询和更新操作
  2. DDL(数据定义语言,开发前的设计):指的是数据对象的创建(可能是用户,可能是表):create,drop,alter
  3. DCL(数据库设计控制语言,系统人员工作):通过GRANT或REVOKE实现权限控制

二、Scott用户的表结构(重点)

Scott用户一共四个表,这四张表是我们以后讲解和学习的主要素材

  1. 查询一个用户下所有的数据表:select * from tab;
  2. 查询表结构:desc dept;
  • 部门信息表:dept
NO列名称类型描述
1DEPTNONUMBER(2)表示部门编号,最多由两位数字组成
2DNAMEVARCHAR2(14)表示部门名称,最多由14个字符组成,1个中文等于两个字符,但oracle比较神奇,你要想插入中文,三个字符表示一个汉字,编码比较怪,所以这里只能保存4个中文
3LOCVARCHAR2(13)表示部门位置
查看表格内容:select * from dept;
  • 雇员信息表:emp

先查看表结构:desc emp;

NO列名称类型描述
1EMPNONUMBER(4)雇员编号,最多由四个数字组成
2ENAMEVARCHAR2(10)雇员姓名
3JOBVARCHAR2(9)雇员职位
4MGRNUMBER(4)领导也是雇员,每个雇员对应领导的编号
5HIREDATEDATE雇佣日期,包含日期和时间
6SALNUMBER(7,2)Salary,(7,2),小数最多两位,整数最多占5位,99999.99
7COMMNUMBER(7,2)佣金,基本工资+提成,只有销售才有佣金这一概念
8DEPTNONUMBER(2)部门编号,与上表是对应的
查看表格数据:Select * from emp;
表格显示瘦身:col ename for a10; (col代表列,a表示长度)
  • 工资等级表:salgrade

查看表结构:Desc salgrade;

NO列名称类型描述
1GRADENUMBER工资等级编号
2LOSALNUMBER此等级的最低工资
3HISALNUMBER此等级的最高工资
查看表格数据:Select * from salgrade;
  • 工资表:bonus

查看表结构:Desc bonus;
查看表格内数据:Select * from bonus;
此表无数据


三、SQL的简单查询

限定查询、函数查询、多表查询、统计查询
整个SQL结构就是由若干个关键字组成,所谓的简单查询,就是对关键字的使用

  • 简单查询的基本操作
  • 别名的设置
  • 在简单查询中实现四则运算与字符串的连接显示

简单查询
即查询一张表中的所有数据行的内容。

以下教程使用的格式如下:
大写:关键字
小写:可变的字段
与 : &&
或: ||

句式:
SELECT [DISTINCT] *(如果你要表示或者的概念,你就加一个|) 列名称 [别名],列名称 [别名],列名称 [别名] FROM 表名称 [别名];

执行顺序:
第一个执行的是FROM,第二个才是SELECT,首先得确定数据来源,再做针对数据的筛选操作,就通过SELECT子句完成。

【范例:查询emp表中的全部记录】
简单查询是不能控制数据行的,只能通过SELECT子句控制列,如果是查询所有列,那么使用“*”通配符完成。
SELECT * FROM emp;

【范例:查询每个雇员的编号、姓名、职位、工资的信息】
SELECT empno,ename,job,sal FROM emp;

【范例:查询所有的职位信息】
SELECT job FROM emp;

【范例:清除重复数据】
SELECT DISTINCT job FROM emp;

如果查询的数据是多个列,只有在多列数据都相同的时候,才可以消除
SELECT DISTINCT job,empno FROM emp;

别名的设置

【范例:查询每个雇员的编号、姓名、年工资的信息】
除了能够进行简单的查询,也可针对不同的查询的列返回结构进行四则运算
SELECT empno,ename,sal12 FROM emp;
这个时候,为了改善显示的效果,我们可以使用别名定义
将sal
12命名为income
SELECT empno,ename,sal*12 income FROM emp;
别名不建议使用中文

【范例:显示每个雇员的编号、姓名、基本年薪(每年有15个月的工资,200元的餐补,400元交通补贴,100元话费补贴,每年500的高温补贴)】
SELECT empno,ename,sal*15 + (200+400+100)*12 + 500 income FROM emp;

四则运算与字符串的连接显示

在使用SELECT子句的时候,除了可以查询列,还可以设置一些常量

  1. 如果常量是字符串,需要使用单引号“ ‘’ ”声明,如‘hello’
  2. 如果常量是数字,则直接输入,如10
  3. 如果常量是日期,则需要按照日期格式编写,如:17-12月-80

【范例:直接查询常量】
SELECT ‘雇员’,empno,ename FROM emp;

为什么要提常量,如果有需要也可以在SELECT子句中使用“||”连接查询结果

【范例:连接效果】
SELECT empno,ename FROM emp;
SELECT empno||ename FROM emp;
没什么意义

【范例:转换显示格式:雇员编号:7369,姓名:SMITH,收入:800】
SELECT ‘雇员编号:’|| empno || ‘姓名:’ || ename || ‘收入:’ || sal FROM emp
效果:雇员编号:xxx,姓名:xxx,收入:xxx;(大家实操一下看看效果哦)


今天简单和大家介绍了sql语言,和大家一起了解了Scott用户的表结构,还有简单查询;学习中实操非常重要,大家记得跟着实操哦
下次会讲限定查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值