一、了解oracle:
二、Oracle的安装
三、启动oracle:
(1)、使用oracle中自带的sql*plus工具进入oracle。
(2)、利用sqlplus和sqlplusw打开oracle。
(3)、使用sql/pl developer进入oracle.
(4)、使用oracle企业管理器
四、常用sql*plus命令:
(1)、连接数据库: conn (ect) 用户名/密码@网络服务名(数据库名) (as sysdba/sysoper);
例如: conn scott/tiger;
(2)、退出:exit;
(3)、运行sql脚本: start/@ 脚本地址。
例如:start d:\test.sql;
(4)、修改sql脚本: edit 脚本地址。
(5)、截取屏幕代码spool,例如:spool d:\demo.txt…………….spool off;
(6)、创建用户(以sysoper以上权限创建):create user 用户名 identified by 密码;
(7)、删除用户(以sysoper以上权限删除):drop user 用户名;
(8)、修改用户密码:passw(ord)或alter user 用户名 identified by 密码。
(9)、显示当前用户名:show user;
(11)、断开数据库连接:disc(onnect);
(12)、行距与每页显示次数:set linesize(pagesize) 数目。
(13)、给予权限:
grant conn(连接权限)/resource(在system中创建表权限)/dba(最高权限) to 用户名 with admin(系统权限下传)/grant(对象权限下传) option ;
(14)、收回权限:
revoke conn(连接权限)/resource(在system中创建表权限)/dba(最高权限) from 用户名
(15)、使用profile文件管理用户:
限定用户登录次数:
Create profile 文件名 limit failed_login_attempts 3 password_lock_time 2;
Alter user 用户名 profile 文件名
用户解锁:
Alter user 用户名 account unlock;
终止口令:
Create profile 文件名 limit password_life_time 10 password_grace_time 2;
Alter user用户名 profile 文件名
六、简单sql语句:
(1) 建表(也可利用pl/sql developer进行表创建):
Create table 表名 (属性1,属性2,属性3….);
例如:create table student(
stuName varchar2(20),
age number(3)
);
(2)、删除表:
Delete * from 表名(此操作只是删除表中数据,并且数据库会进行写日志。因此可以保存节点来进行恢复)
Drop table 表名(删除表的数据和结构)
Trunnate table 表名(删除表中的数据,不写日志)
(3)、保存节点及恢复节点信息:
Savepoint 节点名;
Rollback 节点名;
(4)、变量介绍:
数值型:number(个数,小数点位置):例如:number(5,2)范围为-999.99~999.99
字符型:
Char(),固定长度字符串,用户需要频繁搜索。
Varchar2(),可变长度字符串,节省存储空间。
Clob(),超大字符串。
时间日期:
Date(),系统默认格式为dd-mm-yy,可以通过set nls_date_format来进行格式设定。
Timestamp(),时间戳,相比date()更精确,多用于银行等高精度的地方。
图片音乐存储:
Glob()
(5)、insert语句:
Insert into 表名 (属性1,属性2,属性3….) values (值1,值2,值3,….);
例如:
Insert into student (stuName,age) values(‘zy’,21);
(6)、修改语句:
Update 表名 set 属性名=属性值 where 条件;
(7)、删除语句:
Delete from 表名 where 条件;
(8)、查询语句:
Select (属性1,属性2,属性3….) from 表名 where 条件;
(9)、为属性取别名:
Select 属性1 别名,属性2 别名 from 表名 where 条件;
(10)、取消重复列distinct:
Select distinct 属性1,属性2 from 表名 where 条件;
(11)、查看表结构:
Desc 表名;
七、复杂查询
(1)、使用算数表达式,例如:
Select sal*13 "年薪"from emp;
Select sal*13+nvl(comm,0)*13 "年收入" from emp;
注:nvl()函数的意思为:若comm为null.则赋值为0,若不为null,则为原数。
(2)、null条件的查询:
Select 属性1 from 表名 where 属性 is null( is not null);
(3)、where中的like语句:
%,匹配任意多个字符,_匹配任意单个字符
例如,查询以s开头的姓名的人的名字;
Select ename from emp where ename like 's%';
(4)、where中使用in:例如:
Select * from emp where sal in (2500,3000,3500);
(5)、where中查询date数据;例如:
Select * from emp where date>'日-月-年";
注意:我们可以通过set nls_date_format来进行date数据的格式化,但是查询时,我们仍然需要用day-month-year的格式来进行查询。
(6)、条件连接符:and、or等
(7)、order by:
系统默认order by为升序,可以通过desc来进行降序设定:
Select sal from emp order by sal;
Select sal '薪水' from emp order by '薪水';
(8)、max、min、avg、count、sum分组函数:
Select max(sal) from emp;
Select count(*) from emp;
(9)、group by,having:
Group by 对查询结果进行分组显示
Select avg(sal) from emp group by detpno;
Having对group by的结果进行条件限制
Select avg(sal) from emp group by detpno having avg(sal)>2500;
(10)、数据分组的总结:
分组函数只能用在选择列表、having、order by中;
如果select中出现group by,having,order by,则他们的顺序是group by---->having------>order by;
在选择列中如果有列、表达式和分组函数,那么列和表达式必须有一个属性出现在group by中,例如:
Select detpno,avg(sal),max(sal) from emp group by detpno having avg(sal)>2500;