Oracle 10g数据库管理、应用与开发(二)
三、安装成功后进入DOS界面操作在进行以下操作时,需启动oracle服务。
A、进入sql界面:开始→运行→cmd:输入sqlplus 回车,提示输入正确的用户名和密码。
B、开始→所有程序→oracle的开始菜单选项→运行sql命令→直接采用conn 用户名/密码 进入。
用户名默认的是 sys,system。
输入正确的用户名及密码即可进入界面。
四、密码修改
当忘记密码时,可以采用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; //创建用户并为用户设置密码为redarmyUser createdSQL>grant connect,resource to redarmychen; //给用户授权 connect,resourceGrant succeededSQL> conn redarmychen/redarmy; //切换到新创建的用户中来Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 Connected as redarmychenSQL> start D:\emp.sql;//导入外部sql文件的方式SQL> select * from tabs; //查询该用户下面的所有表SQL> select table_name from user_tables; //查询该用户下的所有的表的名称TABLE_NAME------------------------------PRODUCTORDERSORDERITEMTMPPAGESSTUDENTCOURSESCTESTDEPTEMPSALGRADEUSERS13 rows selectedSQL> 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 *|{ column|expression ,...}
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||enameas "员工编号和员工姓名" from emp;//效果同上SQL> select '员工的编号是'||empno from emp;//字符的链接SQL> select '姓名为'||ename||'员工,所在的部门是:'||deptno as "新列" from emp;//字段的链接包号字符连接SQL> select distinct(deptno) from emp;//查询去掉重复行的员工部门编号
B、条件查询
SELECT *|{ column|expression ,...}
FROM table ;
Condition(s)要使用到比较运算符常用的比较运算符如下:
操作符
说明
=
等于
>
大于
>=
大于等于
<
小于
<=
小于等于
<>
不等于 等效于!=
其它操作
And
逻辑与
Or
逻辑或
Not
逻辑否
Between 起始值 and 结束值
使用 BETWEEN 运算来显示在一个区间内的值,包含(起始结束值)
In:使用 IN运算显示列表中的值。 In(,,,)相当于一个集合,只要出现集合中匹配的就显示
Like:
使用 LIKE 运算选择类似的值
选择条件可以包含字符或数字:
% 代表零个或多个字符(任意个字符)。
_ 代表一个字符。
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
备注:可以采用括号改变优先级
页:
[1]