Oracle数据库
文章目录
1 学习目标
2 OracleXE安装
官方网站下载地址:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
选择下一步,下一步…完成
测试:
开始—>运行SQL命令行—> 输入测试命令 conn sys as sysdba —>输入密码(密码不会显示)
3 安装客户端
选择下一步,下一步…完成
导入scott.sql
文件:
1.使用管理员进入dos(SQL)
conn sys as sysdba;
2.查找scott.sql 文件位置
C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql
3.执行脚本文件
@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql
;
4.使用 sql(dos) || plsql 登录
dos窗口:
conn scott as sysdba;
密码为TIGER
select * from scott.emp;
plsql登录
登录界面 scott/TIGER
数据库 XE 身份normal
select table_name from tabs;
desc emp;
select * from emp;
4 数据库入门
数据库(DataBase
):按照数据结构来组织、存储和管理数据的仓库。
常用的数据有:
MySQL
、Oracle
、ServerSQL
、DB2
、sybase
DBMS
数据库管理系统(DataBase Management System
)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。
DBMS提供了数据定义语言DDL(Data Definition Language
)、数据操作语言DML(Data Management Language
)供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
根据存储模型可将数据库划分为关系型数据库和非关系型数据库。关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
Oracle Database
,又名 Oracle RDBMS
,或简称 Oracle
。是甲骨文公司的一款关系数据库管理系统。
SQL语言
SQL(Structured Query Language
)结构化查询语言是的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系型数据库语言。
SQL的分类
DML:Data Manipulation Language
数据操纵语言
DDL:Data Definition Language
数据定义语言
DCL:Data Control Language
数据库控制语言
DQL:Data Query Language
数据库查询语言
命令分类操作:
分类 | 描述 | 命令 |
---|---|---|
DDL | 数据定义语言 | create:创建;drop:删除;alter:修改;rename: 重命名; truncate:截断 |
DML | 数据操作语言 | insert:插入;delete:删除;update:更新;select:查询 |
DCL | 数据控制语言 | grant:授权;revoke:回收权利;commit:提交事务;rollback:回滚事务 |
5 数据库–表
表(Table)
查询表(用户名.表名),当前用户查询自己的表时,用户名.可以省略,其他用户查询别的用户表 ,不能省略,同时必须存在权限。
表是逻辑表概念表,不是物理表。
块(8k) —>区(连续块)–>段(连续区) -->表(多个段) ,数据段不全是表,表一定是数据段。还有其他段:如索引段
表结构
表由表名、字段(名称+类型+约束)、记录 组成。与Java对应。
DB | Java |
---|---|
表名 | 类名 |
字段名 | 属性名 |
字段类型:numeric char varchar date… | 属性类型:基本数据类型、引用数据类型 |
字段约束:约束行为->创建表结构时加入,操作数据时生效 | 方法检查条件 |
记录:数据 | 对象:new |
注意:Mysql命令不区分大小写(SELECT 与 select), 存储数据|内容 区分大小写
6 SELECT(表查询)
1 简单查询
select 字段名称列表 from 表名;
2 部分列
select 列名1,列名2 from 表名;
eg: select deptno,dname,loc from dept; -- 查询部门表的deptno,dname, loc字段的数据
3 所有列
select * from 表;
通配符 * ( 书写方便、可以检索未知列;但是降低检索的性能)
eg: -- 1)、检索所有列1 select * from dept; --查询部门的所有信息 -- 2)、检索所有列2 select deptno,dname,loc from dept; --查询部门的所有信息
4 去除重复
使用 distinct 去重,确保查询结果的唯一性
select distinct 字段名 from 表名;
5 别名
使用别名便于操作识别 、隐藏底层信息。存在字段别名和表别名
as:字段别名可以使用as;表别名不能使用as
“”:原样输出,可以存在空格与区分大小写
select 字段名 as "字段别名" from 表名 表别名;
select 字段名 "字段别名" from 表名 表别名;
eg: select ename as 雇员姓名 from emp e; select ename "Ename" from emp e;
6 伪列
不存在的列,构建虚拟的列
select empno,1*2 as count,'cmj' as name,deptno from emp;
7 虚表
dual表:用于计算表达式,显示单条记录的值
select 1+1 from dual;
8 null(空)
null 遇到数字参与运算的结果为 null,遇到字符串为空串
1.筛选 where
判断是null: 字段名 is null
判断不是null: 字段名 is not null
not 字段名 is null
2.处理具有null的字段
nvl()函数:nvl(expression, alt_value)
如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值
eg: nvl(comm,0) 解释:当comm值为null时,取0替代。
9 查询行(记录)
where 过滤行记录,条件有:
a)、= 、 >、 <、 >=、 <=、 !=、 <>、 between and
b)、and 、or、 not、 union、 union all
c)、null :is null、 is not null、 --not is null
d)、like :模糊查询 % _ escape('单个字符')
f)、in 、 exists(难点) 及子查询
1 比较
= 、>、 <、 >=、 <=、 !=、 <>(不等于)
2 且 或 非
and、 or、 not
3 null (空)
null不能使用条件判断,只能使用 is
4 like:模糊查询
- %:0个及以上(任意个)字符
- _:一个任意字符
- escape:遇到内容中包含 % _ 使用escape(‘单个字符’)指定转义符
5 in
in相当于使用or的多个等值,定值集合 ,如果存在 子查询,确保类型相同、字段数为1,如果记录多,效率不高,用于 一些少量定值判断上
10 排序(order by)
排序不是真实改变存储结构的顺序,而是获取的集合的顺序
- 顺序 :asc(默认) desc ascending 升序 ,descending 降序
- 多字段: 在前面字段相等时,使用后面的字段排序
- 空排序: 降序为 desc,注意 null 为最后
select 字段列表 from 表名 order by 要排序的字段名 asc|desc;
eg: select ename,sal from emp order by sal desc; -- 将sal字段进行降序排列;
明日继续来我博客,持续更新,加油!