Oracle 数据库之中基本的分类:
xxxI:表示是“internate”,代表 Oracle 8i,Oracle 9i
xxxg: 表示网格计算,指的是进行更加高效的数据查询处理
xxxc: 表示进行云计算,使用了云计算的形式实现了数据库的处理高效
Oracle 11g ,里面所提供的数据库的存储结构相对简单(大部分都简单)。
SQLPlus基础命令
Oracle数据库安装完成之后实际上现在获得了两项内容:
Oracle数据库管理平台;
Oracle实例数据库的安装(MLDB数据库).
1.登陆数据库
sqlplus scott/tiger
2.只输入用户名会提示输入密码
sqlplus scott
3.进入到sqlplus 环境里面那么将连接当前仅有的一个数据库“mldn”,那么这个时候可以利用以下的命令查看数据库之中的数据表信息(命令使用“;”完结):
SElECT * FROM tab ;
4.如果现在在的进行浏览的时候发现结构显示的混乱,主要是由于格式化的处理问题,可以采用如下的两个命令进行配置
设置每行显示的数据长度:SET LINESIZE 100
设置每页显示的数据行数:SET PAGESIZE 30
在每次启动完成sqlplus工具之后都需要重复进行设置。
数据库组成
此时发现显示的数据表的信息是按照一个“行列结构”(表)的形式进行显示的,其中“TNAME”太长了,所以可以针对与某一个列上进行格式化的调整。
5.针对tname的列进行格式化显示控制
COL tname FOR A20
6.此时可以发现mldn数据库下的scott用户里面有四张表。
模式
当前使用的是scott用户进行的sqlplus登录,则意味着,当前就会列出全部的scott用户的数据表,如果想要查看数据表的详细内容,则可以:
SELECT * FROM 表名称;
查看dept表中的全部内容:
SELECT * FROM dept;
7.一个数据库下会有多个同时存在的用户,也可以使用如下语法结构进行用户的切换:
CONN[ECT] 用户名/密码 [AS SYSDBA | SYSUSER]
此时表示要是使用特定的用户名和面膜进行登陆,如果现在登陆的是超级管理员则应该在登陆后面追加“AS SYSDBA”选项。
8.使用sys(超级管理员)账户进行登陆:
CONN sys/change_on_install AS SYSDBA
此时如果使用的是system登陆就可以不需要使用“as sysdba”(它只是一个普通的管理员)
CONN sys/manager
不同的用户拥有不同的数据表信息,所以现在可以查看sys账户下的所有的数据表信息;
9. 在不同用户模式下如果想要访问其他用户定义的数据表信息,则需要在数据表前追加上“用户名”(模式名)。
当前是在system账户中,那么如果进行数据表查询,则查询的一定是用户的表,但是system没有detp表信息,如果不确定测可以使用如下的命令进行验证:
SHOW USER
范例: 使用表的完成名称进行查询(scott.deqt)
SELECT * FROM scott.dept;
10.为了解决在非桌面操作系统的代码复制问题,在Oracle里面提供本机默认记事本调用的程序“ED”,
定义一个执行文件:ed mldn(默认的文件后缀就是“*.sql”)
定义要执行的命令:SELECT * FROM scott.dept;
执行sql文件:@mldn(默认使用的是“*.sql”后缀)
11.在使用sqlplus的时候还有一点比较方便,就是可以直接调用本机操作系统的命令。
在dos中有一个copy命令,语法:
copy 源文件目录 目标文件目录
这个命令可以直接在sqlplus中调用,但是在调用命令前需要编写一个“HOST ”标记。
HOST copy d:\hellp.jpg d:\info.jpg
好处:利用此操作对于一些数据库的管理人员会非常的方便。
清屏:clear src
SQL标准
由IBM推出,为解决数据库操作不统一,最早由Oracle数据库支持SQL标准的关系型数据库。
SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常用于数据库的通讯。
sql语法一共分为几类:
1.DML数据操作语言: 数据查询(SELECT * FROM dept)、数据更新处理(增加、修改、删除)、事务管理问题
2.DDL数据定义语言: 数据表结构定义,进行数据库对象定义(用户、数据表、模式名称)
3.DCL数据控制语言: 授权管理。
在scott用户下有四张数据表
查看每一张数据表的组成可以使用“DESC 表名称”的语法形式
例:查看的dept表结构 DESC dept;
1.部门信息表
部门信息表之中一共保存有三列的数据信息
2.雇员信息表
一个部门会有多位雇员,在雇员表里面需要记录好对应的部门信息(deptno)。
Oracle 之中的Date数据类型可以保存日期时间两个单元结构,但很多其他的数据库中的日期只能保存日期时间就是时间结构。
3.工资登记表
给定一共等级的范围,那么只要在此范围内的数值就是此等级信息。
4.工资表
工资表是在所有表中没有数据存在的信息表。
SELECT * FROM bonus;
查询
分类:简单查询,限定查询,查询排序,多表查询,统计查询,分组查询,这些查询统一作为DML的一部分。
简单查询的本质是通过一张数据表获取相对应的信息,以及对这些信息进行一些简单的处理操作,简单查询基本语法:
SELECT [DISTINCT] * | 列 [别名],列 [别名],列 [别名],...
FROM 数据表[别名]
作用:
FROM子句:是定义要查询的数据资源,位置可能是数据表也可能是某些查询(行列集合);
SELECT子句:确定要显示的查询列。
简单查询操作的最大特点在于,会将指定数据表中全部的数据行进行列出,但是可以自己控制数据列,SELECT子句实现显示数据列的控制,如果使用通配符“*”表示将查询所有列的内容。
例:查询emp表中的全部数据SELECT * FROM emp;
默认的简单查询会返回全部的数据行信息,但是如果有需要可以只查询几列的信息
例:查询每个雇员的编号(empo),姓名(ename),职位(job),基本工资(sal)
SELECT empno ,ename,job,sal
FROM emp ;
在进行简单查询的操作过程之中,也可以进行列内容的数学计算.
例:查询每个雇员的编号,姓名,职位,基本年收入*12.
SELECT empno , ename , job, sal*12 income
FROM emp ;
income(代表别名)
在编写别名的时候尽量不要去使用中文进行别名的标.
SQL标准的语法结构,所有的别名需要"as"关键字来进行设置,但是Oracle由于内部的设计比较方便,所有可以简化 as.
在使用四则运算的过程中,可以使用"()"修改运算的优先级.
DISTINCT关键字可以取消重复信息(只要在所有的内容全部重复的时候才会进行重复数据的消除)
例:查询所有雇员的职位(job)信息
SELECT DISTINCT job
FROM emp;
在使用查询的司会除了输出数据列的信息之外,也可以输出一些常量的内容,在数据库操作中给出两类常量:
字符串:所有的字符串必须使用"'"(单引号)声明;
数字:可以直接定义数字内容.
SELECT '雇员信息' , ename ,18 FROM emp;
但是在定义常量定义的时候,别名和常量的作用不同.
在使用简单查询的时候,可以使用"||"实现数据连接,最终会变成一列内容返回.
例:实现数据的连接显示(格式:"雇员姓名:xxx,雇员工资:xxx")
SELECT '雇员姓名:' || ename || '雇员工资:' || sal 信息
FROM emp;
限定查询
主要作用是通过一些条件的筛选,选择出部分内容进行显示.在之前使用的简单查询最大的特点是只能够控制数据列的显示,如果想要进行数据行的显示控制,就必须利用限定查询来完成,此时只有满足条件的数据行才可以进行展示: