`
孔雀王子
  • 浏览: 40710 次
  • 性别: Icon_minigender_1
  • 来自: 河北
文章分类
社区版块
存档分类
最新评论

Oracle 10g数据库管理、应用与开发(二)

阅读更多

三、安装成功后进入DOS 界面操作

    在进行以下操作时, 需启动oracle 服务。

A 、进入sql 界面:开始→运行→cmd :输入sqlplus 回车,提示输入正确的用户名和密码。

B 、开始→所有程序→ oracle 的开始菜单选项→运行sql 命令→直接采用conn 用户名/ 密码 进入。

用户名默认的是 syssystem

输入正确的用户名及密码即可进入界面。

四、密码修改

当忘记密码时, 可以采用sqlplus sys/aaa as sysdba; 以数据库管理员的身份登录. 如果在本机登录密码可以随意输入。

修改密码:

// 修改system 用户的密码是system

 

alter user system identified by system;
alter user identified by 都是关键字。

五、切换用户操作

    A 、先退出,再登陆。

       exit; 退出。

       1 、登录命令 sqlplus system/system 直接登录

       2 sqlplus

     -- 提示输入用户名

     -- 提示输入密码

B 、也可以不退出直接在sql →操作中采用 conn scott/tiger  conn/ 用户名/ 密码切换用户

注意:登录的时候没有分号结束。

六、Oracle 中的表是按照用户进行分类的

   sys 超级用户( 权限最高)

   system 数据库管理员( 执行大部分管理操作)

七、简单入门命令

select * from tabs;---查询当前用户下有哪些表(多查询出系统表);
select table_name from user_tables; ---查询当前用户下的所有表的名称;
desc 表名 ---查看表有哪些列(表的结构) 


 


 

八、创建用户命令

A 、连接到用户:SQL> conn system/root

B 、创建用户:SQL> create user scott identified by tiger;

C 、切换用户:SQL> conn scott/tiger     // 用户切换失败

Not logged on

     备注:出现用户没有session 权限的提示,应当分配session 权限。

 

九、分配权限

grant 权限名 to 用户名;

SQL> conn system/root;	//第一步切换到管理员
SQL> grant create session to scott; //为用户受权
Grant succeeded	//受权成功

备注:当受权成功后,scott 就可以登录, 但是登录后, 当用户创建表时, 也会出现权限不足. 然在oracle 中是通过用户的角色来给用户分配权限的。

十、角色( 一个角色包含多个权限)

1 、创建用户(切换到system 管理员中 以system 管理员进行登录)

1) Create user 用户名 identified by 密码;( 不能是全数字)

2) grant create session,create table,resource to 用户名;// 给用2 、户分配权限

 

3) start 目录(D:\emp.sql); // 注意该文件不能放在桌面 为什么呢( 目录中不能包含空格否则会出现如下错误:

SQL> start C:\a a a\emp.sql;
Error reading file

 

)

3 、完成操作案例:

SQL> conn system/red; //切换到system用户
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 
Connected as system 
SQL> create user redarmychen identified by redarmy; //创建用户并为用户设置密码为redarmy
User created
SQL>  grant connect,resource to redarmychen; //给用户授权 connect,resource
Grant succeeded
SQL> conn redarmychen/redarmy; //切换到新创建的用户中来
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 
Connected as redarmychen
SQL> start D:\emp.sql;  //导入外部sql文件的方式

SQL> select * from tabs; //查询该用户下面的所有表
SQL> select table_name from user_tables; //查询该用户下的所有的表的名称
TABLE_NAME
------------------------------
PRODUCT
ORDERS
ORDERITEM
TMP
PAGES
STUDENT
COURSE
SC
TEST
DEPT
EMP
SALGRADE
USERS
13 rows selected
SQL> desc product //查看商品表的结构
Name    Type       Nullable Default Comments 
----------- ------------ -------- ------- -------- 
PRODUCTID NUMBER(6)                           
PRODUCTNAME VARCHAR2(30)                           
PRICE     NUMBER(10,2)
1)、SQL Plus常见的命令:
	conn		切换连接用户 
	desc		显示表结构 
	host		执行操作系统命令 
	start		执行文件系统SQL语句 
	exit		退出 
	col			格式化输出 
	/			执行最近一条SQL或新定义过程 
	startup	启动数据库实例 (DBA)
	shutdown	关闭数据库实例 (DBA) 
2)、采用start命令导入并执行数据库库脚本文件:
SQL> start D:/emp.sql
/ :执行最近一条SQL 例如:

 

十二、Oracle 内置数据类型介绍

    数据是信息数字表现形式, 信息的加工处理是以大量的结构化数据为载体进行的, 数据库管理系统的核心是数据库, 数据库的主要对象是表, 表是结构化数据存储的地方。

   Oracle 系统也提供了大量的数据类型主要包括两大类:

1 用户自定义的数据类型

2 内置的数据类型

A 、字符型

字符数据类型可以用于声明包含了多个字母数字数据的字段。

1) 、固定长度的字符类型

char: 用于存储固定长度的字符, 一旦声明长度固定( 不论你存储的实际大小, 但是大小绝对不能大于声明的长度) 长度不足时, 采用空格补充。1B 的默认大小, 最大尺寸为2000B

Nchar char 的解析是一样的不过,ncarh 存储的是Unicode 字符数据。

2) 、可变长度的字符类型

varchar2 char 类似, 但是它是用于存储可变的字符串,char 用于存储固定的字符串。

Nvarchar varchar 解析是一样的, 不过nvarchar 用于存储的数据位双字节的数据。

B 、日期型

    date 短日期格式(1990-10-10)

    Timestamp 长日期格式(1990-10-10 10:10:10)

C 、数字型

Number(2), 代表:声明一个2 位数字的整数。

Number(3,2) 代表:声明为3 数字位, 并且小数后有2 位。

D 、文本型  LOB 数据类型

Blob :可以存储图像, 音频文件及视频等文件。

Clob :字符格式的大型对象,oracle 数据 unicode 格式的编码

Bfile :用于存储二进制格式的文件。

E rowid 伪劣类型:用于在oracle 内部保存表中的每条记录的物理地址。

十三、SQL 基本查询

    SQL structured Query Language( 结构化查询语言) 的缩写。可以使用sql 语句建立或删除数据库的对象, 插入, 修改和更新数据库中的数据,并且可以对数据库执行各种日常管理的操作。它是所有关系数据库管理系统的标准语言. 换句话说使用sql 可以对所有的关系数据库进行操作。

   SQL 按照功能分类:

1 数据库定义语句   

DDL Data Definition Language: 用于创建、修改、删除数据库对象。

2 数据库操作语句

DML Data Manipulation Language )用于:查询,添加修改或删除存在数据库对象中的数据。

3 数据库控制语句DCL

DCL(Data Control Language) 用于控制访问数据库中特定对象的用户、grant revoke

Oracle 系统中经过对Sql 语言扩展被称为PL/SQL 语言。

A 、基本的sql 语句:

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM   table;

SQL> select * from emp;//查询所有的字段信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;//查询所有
SQL> select empno from emp;//查询部分字段
SQL> select empno "员工编号" from emp;//采用别名查询
SQL> select empno as "员工编号" from emp;//采用别名查询 等效于上面的效果
SQL> select distinct(hiredate) from emp;//查询所有员工的入职日期并且去掉重复的日期
SQL> select sal+comm from emp;//注意:包含空值的数学表达式求出的结果为空值
SQL> select empno||ename from emp;//||连接符 把empno与ename作为一个字段显示
SQL> select empno||ename  as "员工编号和员工姓名" from emp;//效果同上
SQL> select '员工的编号是'||empno from emp;//字符的链接
SQL> select '姓名为'||ename||'员工,所在的部门是:'||deptno as "新列" from emp;//字段的链接包号字符连接
SQL> select distinct(deptno) from emp;//查询去掉重复行的员工部门编号

 

B 、条件查询

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM   table [WHERE  condition(s)];

Condition(s) 要使用到比较运算符常用的比较运算符如下:

 

操作符

说明

=

等于

大于

>=

大于等于

小于

<=

小于等于

<> 

不等于 等效于 !=

其它操作

And

逻辑与

Or

逻辑或

Not

逻辑否

Between 起始值 and 结束值

使用 BETWEEN 运算来显示在一个区间内的值,包含 ( 起始结束值 )

In :使用 IN 运算显示列表中的值。 In(,,,) 相当于一个集合 , 只要出现集合中匹配的就显示

Like

使用 LIKE 运算选择类似的值

选择条件可以包含字符或数字:

% 代表零个或多个字符 ( 任意个字符 )

_ 代表一个字符。

Escape

   回避特殊符号的:使用转义符。例如:将 [%] 转为 [\%] [_] 转为 [\_] ,然后再加上 [ESCAPE ‘\’] 即可

Null :使用 IS (NOT) NULL 判断空值。

C SQL 语句实例

//查询部门号为10的员工信息  部门为整数类型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno=10; 
//查询职位号为MANAGER的员工信息  岗位的类型为字符类型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER';
//查询部门号为10并且员工的职位为MANAGER的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER' and deptno=10;

注意:

     字符和日期要包含在单引号中。

     字符大小写敏感,日期格式敏感。 

     默认的日期格式是 DD-MON-RR

//查询部门号大于10的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno>10;
//查询薪水大于等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=3000;
//查询薪水不等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal<>3000;
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal !=3000;
//查询薪水大于2000并且小于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>2000 and sal<3000;
//查询薪水大于等于2000并且小于等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal between 1600 and 3000;
//等效于
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=1600 and sal<=3000;
//查询部门号位10,20的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno in(10,20);
//注意:相当于如下操作:
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno =10 or deptno=20;
//查询员工名称以S开头的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like 'S%';
//查询员工名称以S结尾的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%S';
//查询员工名称第三个字符为N的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '__N%';
//查询员工名称中含有N的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%N%';
//查询员工名称中倒数第二个字符为%的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%_'escape'\';
//查询员工名称总含有%的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%%'escape'\';
//查询奖金为null的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is null;
//查询奖金非null的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is not null;

运算符优先级

 

优先级

说明

1

算术运算

2

连接符

3

比较符

4

Is not null like not in

5

Not between

6

not

7

and

8

or

备注:可以采用括号改变优先级

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics