1. 安装Oracle,配置环境 2. 实现查询From子句 3. 实现查询where子句 4. 实现查询order by子句
一、环境安装
1. 登录:以管理员身份登录
sqlplus 登录名/密码
管理员身份登录:sqlplus system/123456
2. 登录后,导入案例。下载scott.sql文件,执行下面一行的命令
SQL>@"E:\兄弟连文档\oracle\java 19\day01\script\scott.sql";
此时我们拥有非管理员的用户:scott
3. 激活scott的账号,激活用scott可登录
alter user scott identified by tiger;
alter user 登录 identified by 登录密码;
此时如果成功:
SQL> show user
显示:USER 为 "SCOTT"
4. 退出system管理登录,重新以scott/tiger登录
C:\..\sqlplus scott/tiger
登录成功
SQL> desc dept;
如成功
名称 是否为空? 类型
----------------------------------------- -------- ------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
---------------------------------------------------------------------------------------------
二、sql命令
0. 在Oracle环境下清空屏幕
SQL> host cls;
1. 查看表结构
SQL> desc 表名;
例如: desc dept; 查看dept部门表的表结构
desc emp; 查看emp员工表的表结构
2.专业词汇
数据库:存储数据的仓库。
数据存储经历的阶段
人工阶段 -- 很久很久以前...有一个屋子放置一台(巨大个的)计算机,用于实现科学计算。
文件阶段 -- 用文件实现【永久存储】
数据库阶段--用数据库实现存储
常见关系型数据库
DB2 -- IBM
Oracle -- Oracle公司(甲骨文)
Sql Server -- 微软
MySQL -- Oracle公司
java程序猿必备关系数据库:Oracle\MySql
数据库分类
非关系型数据库: 后续课程有说
关系型: 层次结构、网状结构、关系型数据库
数据库系统
DB -- 数据库
RDB -- 关系型数据库
RDBMS -- 关系型数据库管理系统
数据库存储的基本单位
表(实体描述) -- class Student{... ...}
字段(列) -- 属性
值(行) -- 实体对象值
dept表 列
行 DEPTNO DNAME LOC
------- ---------------------------- --------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Oracle常见数据类型:
数值型 number(有效长度,小数点保留位数); 举栗:number(10,2) 12345678.12
字符
可变长度字符 varchar2(有效长度) 举栗:varchar2(5) 'ab' 实际存 'ab'
varchar2(5) 'abcde' 最多存5个
不可变长度字符 char(有效长度) 举栗:char(5) 'ab' 实际存 'ab '
char(5) 'abcde' 最多存5个
char当实际存储字符不足时补空格,varchar2按实际字符长度存储不补空格
日期 date ... 月/日/年 小时:分钟:秒 ...
3.查询一个表的内容:from子句
前导条件:登录名scott 密码tiger
3.1 查询dept部门表的所有字段信息
select * from dept;
*表示所有的列字段: deptNo,dName,loc
3.2 查询显示emp员工表中:员工编号、员工姓名、工资、奖金、部门编号
语法:select 列名1,列名2,...,列名N from 表名;
练习:select empNo,eName,sal,comm,deptNo from emp;
3.3 查询显示dept部门的:部门编号,部门名称,所在地区
select deptNo,dName,loc from dept;
--【总结】from子句-------------------------------------------------------------------------------------
查询一个表的所有字段:字段名可用* 代替。
select 列名1,列名2,... ... ,列名N from 表名;
select * from 表名;
4. from 子句进阶
4.1 别称,给当前字段或这个表起外号:显示部门时统一部门字段标题dXxx的格式。
语法:select 列名1 别称1,列名2 别称2,... ,列名N 别称N from 表名;
默认:select deptNo,dName,loc from dept;
练习:select deptNo dNo,dName,loc dLoc from dept;
思考:
员工表emp里有字段:empNo,eName...deptNo(部门编号)
部门表dept里有字段:deptNo(部门编号),dName,loc
列字段同名了,此时必须用别称来区分
4.2 数学运算:+ - * / 求当前员工的年薪(忽略奖金) = 月薪*12. 显示员工姓名、月薪、年薪
select eName,sal, sal*12 from emp; 显示标题eName,sal,sal*12
select eName,sal, sal*12 yearSal from emp; 显示标题eName,sal,yearSal
思考:员工当月实发工资=工资sal+提成comm ,显示员工姓名和实发工资
select eName,sal,comm,sal+comm from emp; 此时没奖金的人没有实发工资,
oracle中 运算数1+运算数2 任何1个是null结果是null
当某个员工没有绩效奖金comm是,工资sal+奖金comm显示结果是null
没有控制处理时:select eName,sal,comm,sal+comm money from emp;
ENAME SAL COMM MONEY
-------------------- ---------- ---------- ----------
SMITH 800
... ...
4.3 null值的处理,查询奖金是null时依然计算实发工资
语法:nvl(字段,新值) 功能:将字段里时null的内容替换成新值
s
练习:将奖金是null的显示0
select eName,nvl(comm,0) from emp;
练习:当奖金是Null时依然计算实发工资(sal+comm)
select eName,sal,nvl(comm,0) cm, sal+nvl(comm,0) money from emp;
显示结果:
ENAME SAL CM MONEY
-------------------- ---------- ---------- ----------
SMITH 800 0 800
... ...
练习:查询所有员工年薪和年度提成(显示员工姓名、年薪yearSal、年度提成yearComm)
ename sal*12 nvl(comm,0)*12==对
select eName, sal*12 , nvl(comm,0)*12 from emp;
完美要求可加入别称
select eName, sal*12 yearSal, nvl(comm,0)*12 yearComm from emp;
4.4 字符链接。 当需要有显示前缀、后缀、中间链接赋的时候可用
练习:显示 部门名_所在地区
java的字符链接: "abc"+"123" 结果是 "abc123"
oracle的字符链接:'abc'||'123' 结果是 'abc123' select 'abc'||'123' from dual;
答:select dName||'_'||loc from dept;
练习:要求姓名以 Mr.开头
答:select 'Mr.'||eName,sal from emp;
思考:显示 abc 成 'abc' 即显示结果中有'号,特殊符号的处理
思考答1:select '''abc''' from dual;
思考答2:select ''''||'abc'||'''' from dual;
5、where子句 :有条件查询 ,表达满足什么条件显示数据。结合from使用
5.1 查工资大于1000的员工
select * from emp where sal>=1000; --显示当前工资在1000及以上员工的所有字段
select eName,sal from emp where sal>=1000; --查询工资大于1000及以上员工的姓名和工资
5.2 姓名是WARD的员工
select * from emp where eName = 'WARD';
select * from emp where eName = 'Ward'; 还能出来结果吗?答不出,'值'区分大小写
5.3 查询部门所在地区纽约的部门信息是什么?
select * from dept where loc='NEW YORK';
5.4 查没奖金的员工信息。
你们认为:select eName,comm from emp where comm = null;
答案1:select eName,comm from emp where nvl(comm,0) = 0 ;
6、order by 子句:排序,按指定规则排序
6.1 按部门编号从大到写显示部门信息
思路:排序依据是部门编号,排序规则是从大到小
答:select * from dept order by deptNo desc; --desc降序从大到小的排序规则。asc升序
6.2 按部门名称升序排列显示
答: select * from dept order by dname asc;
1. 安装Oracle,配置环境 2. 实现查询From子句 3. 实现查询where子句 4. 实现查询order by子句的更多相关文章
- java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)
最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...
- Java基础学习总结一(Java语言发展历史、JDK下载安装以及配置环境变量)
最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...
- Xamarin.Forms教程下载安装JDK配置环境变量
Xamarin.Forms教程下载安装JDK配置环境变量 Xamarin.Form环境配置下载安装JDK JDK是编程Java程序必须的软件.也许有人会问我们用的C#为什么还有Java呢?这是因为我们 ...
- JDK和TOMCAT的安装与配置环境变量
一.JDK该怎么安装与配置环境变量 步骤1.安装JDK选择安装目录,安装jdk1.8.0_77过程中会出现安装提示. 步骤2.(1)安装jdk随意选择目录 只需把默认安装目录\java之前的目录修改即 ...
- Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录
Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录 Hadoop 2.6 的安装与配置(伪分布式) 下载并解压缩 配置 .bash_profile : ...
- Golang入门(1):安装与配置环境变量的意义
摘要 在几年前学习Java的时候,环境的配置就会劝退一部分的初学者.而对于Golang来说,也需要从环境的配置开始学起.这一篇文章将从如何安装Golang开始讲起,随后将会提到Golang中的环境变量 ...
- jdk 安装过程配置环境变量 error 的解决过程
jdk 安装过程配置环境变量 error 的解决过程 问题背景: 我在安装 jdk 过程中在JAVA_HOME和path中添加路径后, cmd 中输入java 和javac均出现错误,因为之前在 D ...
- JDK下载、安装、配置环境变量笔记
自己总是在下载.安装.配置JDK的环境变量,但是这些需要的专业知识并不难,但有很多细节很重要,总是记不住,而且这些细节一旦出错影响还是很严重的,在网上查到的信息很多都比较零散,而且讲解得也不是很详细, ...
- Linux CentOS7.0下JAVA安装和配置环境变量
一.前言: CentOS7.0虽然自带JDK1.7和1.8,运行“java -version”命令也可以看到版本信息,但是jdk的安装环境不全,比如缺少tool.jar和dt.jar等,这就导致“ja ...
- jdk在linux下安装、配置环境变量
1.jdk下载: 下载地址:https://www.oracle.com/java/technologies/javase-downloads.html 2. 3. 4.解压jdk到/usr/loca ...
随机推荐
- rails安全性
如果你发布你的blog.那么其他人就可以随便修改和添加博客了. Rails提供了一个非常简单的http认证系统,可以非常有帮助的解决这种情况. 在PostsController里面我们需要一个方法阻止 ...
- 遇见CUBA CLI
原文:Meet CLI for CUBA Platform 翻译:CUBA China CUBA-Platform 官网 : https://www.cuba-platform.com CUBA Ch ...
- Node.js进程管理之子进程
一.理论 之前看多进程这一章节时发现这块东西挺多,写Process模块的时候也有提到,今天下午午休醒来静下心来好好的看了一遍,发现也不是太难理解. Node.js是单线程的,对于现在普遍是多处理器的机 ...
- 通过sql实现约束
--手动删除一列 alter table 表名 dropi column 列名 --手动增加一列(后面加列类型) alter table 表名 add 列名 nvarchar(1000) --手动修改 ...
- txt文本框设为密码模式后,后台(服务器端)设置不了值
txt文本框设为密码模式后,因为安全问题,后台(服务器端)设置不了值,只有在前台(客户端)复制才能显示
- [日常] CentOS安装最新版redis设置远程连接密码
wget http://download.redis.io/releases/redis-4.0.8.tar.gztar -zxvf redis-4.0.8.tar.gzmake完成后就会放在了src ...
- Servlet 思维导图
- secureCRT的文件上传技巧
现在我们经常会习惯性的使用windows系统,但现在开发项目和维护中经常都在使用linux服务器,以为它的性能更强.更精简. 学习大数据的同志们和维护后端的同志们,推荐一下secureCRT软件,用起 ...
- 山东第四届省赛C题: A^X mod P
http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=3232 Problem C:A^X mod P Time Limit: 5 Sec Memor ...
- Centos7 安装 ActiveMq
1.安装 # cd /usr/local/src/# wget http://mirrors.shu.edu.cn/apache//activemq/5.15.3/apache-activemq-5. ...