数据库应用开发技术
前言:这篇博客是大三Oracle课程,我根据数据库老师的PPT复习做的总结。写这篇的目的一是为了我自己巩固加强Oracle基础内容,二是给未学习、刚学习的小伙伴,提供一丝丝便利吧。大家一起在学习中得到提升,是最大的目的。我也会把老师讲过的题,敲一遍,放在博客中,希望小伙伴在学习的时候也要打开Oracle数据库,敲出来的才叫代码。
没做总结之前,看那些PPT不起眼,总结起来,害~
感谢老师辛苦付出!!!【打call】【打call】【打call】
(小伙伴们也要养成记笔记的好习惯哦~)
内容:学习并掌握面向Oracle数据库的开发与管理
参考书籍:Oracle 11g数据库基础教程(第2版),xx著
工欲善其事必先利其器
Oracle版本:Oracle 11g R2 64位
官网地址:https://www.oracle.com/database/technologies/112010-win64soft.html
Oracle数据库的简介
Oracle(甲骨文)公司推出的一款大型关系型数据库管理系统。
拉里·埃里森(Larry Ellison)以及另外三位创始人以此开发了商用的关系型数据库,并且命名为Oracle(希腊语里代表神谕、预言)
这是老师为我们找的图片,在此谢过了。【抱拳】【抱拳】【抱拳】
Oracle数据库的特点
目前应用最广泛的数据库之一(其他如Mysql,SqlServer等)
-
支持C/S或者B/S架构
-
支持分布式数据库管理
-
提供支持SQL的统一数据库访问接口语言PL/SQL
-
稳定,安全,可扩展性强
-
免费
对于知之甚少的我,这些特点可能会在以后的实际开发中,理解到吧…
Oracle数据库操作和管理方法
-
命令行方式
-
通过图形化界面
图形化界面,可视化好,入手难度低,规范化的图形界面。
所以,我们选择命令行方式_
进入Oracle数据库命令行操作
首先在服务里开启Oracle数据库 ,不用的时候关闭服务。也可以不关(电脑足够好的话555) win +r ->输入: services.msc 回车 ->找到Oracle服务启动(禁用的不要开启!!!) 进入Oracle数据库的命令行 win +r ->输入: sqlplus 确定 ->输入: 用户名/密码 (或者 用户名回车,密码回车) win===>四个■的键(操碎了心) 忘了密码的小伙伴,请到这边排队:用户名/密码 ---> sys/change_on_install as sysdba 老师专业版本: 如果在Oracle安装过程中忘记设置用户和密码,则可以命令行来重新设置。 参考链接:https://jingyan.baidu.com/article/eae078278680c11fec548509.html
注意:学习Oracle可不象是SQL Server 、Mysql 那样,先从建库、表的一系列操作(增删改查)开始,而是从查询语句开始,至于为什么呢?我也不知道。。。
Oracle数据库用户类型
-
数据库管理员
-
安全官员
-
网络管理员
-
应用程序开发员
-
应用程序管理员
-
数据库用户
这些用户都是做什么的?…
Oracle数据库创建了一些用户
用户名 | 描述 |
---|---|
SYS | 在后来的学习中,我想创建表、视图等操作没有权限的时候,授权用过。 |
SYSTEM | 没有用过 |
SCOTT | 做练习,几乎都是用这个 |
SH | 作业中用过 |
敷衍吧,学生就是学生,最后还得是老师_
用户名 | 描述 |
---|---|
SYS | 数据库管理帐户系统用户,数据字典所有者,只能以系统管理员(sysdba)或系统操作员(sysoper) 的权限登录 |
SYSTEM | 数据库默认管理用户,拥有DBA角色权限,通常用来创建一些用户查看管理信息的表或视图。不建议使 用 system 用户来创建一些与管理无关的表或者视图。 |
SCOTT | 提供了一些学习 oracle 操作的数据表。如: emp、dept、 salgrade、bonus 表 |
SH | 实验、测试用户,含有例表customers,products等 |
SQLPlus常用基础命令
清屏 命令: clear scr 或 ho cls (DOS清屏命令:cls)
退出命令:exit 或者 quit (DOS退出命令: exit)
查看命令:show user 查看当前用户
设置命令:set linesize 100 设置每行长度100
set pagesize 200 设置每行页数200
帮助命令:help【指令】
注意:sql 语句记得加 分号“ ; ” , 或者斜杠“ / ” 其他命令加不加均可。所以设置命令的时候,不要纠结加不加分号。都对!
切换用户 :conn 用户名 /密码
如果是sys用户,需要加上as sysdba
用户密码修改: alter user 用户名 identified by 密码
锁定用户:alter user 用户名 account lock/unlock
查看表结构:desc 表名;
SQLPlus 文件操作(特别好用)
编辑文件:edit 文件名.后缀名
执行文件:@文件名.后缀名
例如
edit test.sql --> 编写完代码 -->Ctrl +s (保存) -->关闭 -->@ test.sql
也可以在其他位置创建文件 :文件名前面加上路径(绝对路径) d:\test\test.sql
另外sql类型文件,可以省略后缀名。
SQLPlus调用系统命令
SQL> host copy d:\test\test.sql d:\
这个操作,我快学完了,也没用到-_-‘’‘
SQL 语言
贴心的老师~
SQL简介
SQL,指结构化查询语言,全称是 Structured Query Language。
通过SQL 可以访问和处理数据库。
SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。
SQL是IBM提出的数据库语言标准,经过几十年的发展,成为了行业内的事实标准。
注意:除了SQL标准之外,大部分SQL数据库程序都拥有自己的专有扩展。
SQL语言分类
DML(Data Manipulation Language)数据操作语言(数据操作)
增加—INSERT,删除—DELETE,修改—UPDATE,查询—SELECT
DDL(Data Definition Language)数据定义语言(数据库,表等对象操作)
创建—CREATE,修改—ALTER,删除—DROP
DCL(Data Control Language)数据控制语言(用来设置或者更改数据库用户或角色权限)
授权—GRANT,拒绝授权—DENY,授权回收—REVOKE
TCL(Transaction Control Language)事务控制语言
COMMIT—提交,SAVEPOINT—保存点,ROLLBACK—回滚
看着这些定义,我心里五味杂陈。定睛一看,原来我已经用了这么久啊
DML :就是 增删查改
DDL :就是 创建 修改 删除
DCL : 授权 (在出现权限问题的时候,grant 会格外的醒目)
TCL : 打扰了。。。 暂时学习阶段没有碰到
下面就要边学习边敲代码了哦~~~
首先,了解将要操作表的结构,查询,不清楚表的结构怎么查询呢?
SCOTT用户表结构
EMP(雇员表)
了解表的结构了,开始吧~~~
顺便提一句:不要眼高手低,寻思题很简单,看一眼就出答案,要用代码说话。打基础阶段,不怕麻烦。
简单查询
SELECT 语句从数据库中选取数据,结果被存储在一个结果表中,称为结果集。
语法:
SELECT [DISTINCT] *| 列名1 ,列名2…
FROM 表名;
结束时记得加分号!!!
DISTINCT消除重复字段
温馨提示:输出样式。如果出现没对齐情况,请回忆设置命令。数值:200
在温馨提示:方向键可以有妙用哦 ,可以查看历史命令。
最后温馨提示,此时自行盖住答案!!!自觉!!!
set linesize 200
set pagesize 200
1.
select *
from emp;
2.
select empno ,ename,sal
from emp;
3.
select job
from emp;
4.
select ename,sal*12 yearsal
from emp;
此时,老师给出的技术小结,美滋滋!
限定查询
WHERE +条件 (用于查询在满足指定条件下的记录)
select
from
where 条件
条件:主要运算符 -->
-
逻辑运算 AND OR NOT
-
关系运算 > , < ,= ,<> ,>=, !=
-
特殊运算符(BETWEEN AND LIKE IN )
题来咯~~~
set linesize 200
set pagesize 200
/*
1.
select *
from emp
where sal>1500;
2.
select job ,sal
from emp
where ename='SMITH';
3.
select *
from emp
where sal between 1000 and 2000 and job !='SALESMAN';
4.
select *
from emp
where job ='CLERK' or job ='MANAGER';
select *
from emp
where to_char(HIREDATE,'yyyy')=to_char(to_date('1981','yyyy'),'yyyy');
select *
from emp
where hiredate like '%81%';
*/
//注意审题!!! 最终答案
5.
select *
from emp
where to_char(hiredate,'yyyy-mm-dd') between '1981-10-01' and '1981-12-31' ;
模糊查询LIKE
LIKE 可以用过匹配符号‘ _’和’%'实现对特定需求的信息筛选。
LIKE 包含% 或者_的字符串
_ : 对应一个字符。
%:对应多个字符。
/*
select *
from emp
where ename like '%S%';
select *
from emp
where ename like '_M%';
select *
from emp
where empno like '77%';
*/
select *
from emp
where to_char(hiredate,'yyyy-mm-dd') not like '%80%';
LIKE技术总结
NULL值
习题:
/*
select *
from emp
where comm =0 or comm is NULL;
*/
select *
from emp
where comm is not NULL and comm !=0;
IN操作符
/*
select empno,ename,sal
from emp
where ename in ('SMITH','ALLEN','WARD','JONES');
*/
select *
from emp
where job not in ('SALESMAN','CLERK');
IN技术小结
查询排序 order by
升序:ASC
降序:DESC
/*
select *
from emp
order by ename ASC;
*/
select ename,job,sal ,deptno
from emp
order by deptno ASC,sal DESC;