一、走进Oracle
1、安装Oracle
oracle基目录(按照位置):F:\Oracle
软件位置:F:\Oracle\product\11.2.0\dbhome_1
数据库文件位置:F:\Oracle\oradata
全局数据库(数据库名在服务器网络中的唯一标识):orcl
密码:Aa123456
oracle中默认管理员:SYS和SYSTEM
普通用户:scott(默认锁定)
填写密码:111111
2、连接Oracle,sqlplus命令行工具
Cmd中,输入sqlplus,在输入用户名:scott密码:111111(注:密码输入后不显示)
3、本地服务器名:客户端与服务器的连接字符串
4、第三方开发工具:PL/SQL Developer工具
注意:客户端要连接服务器,要启动监听服务(OracleOraDb11g_home1TNSListener)
5、Oracle启动和关闭
代码:
Startup open;
Shutdown immediate;
6、创建用户及密码
代码:
Create user litao
Identified by 111111
Account unlock;
注意:命令以分号;结束,用斜杠/执行上次命令。
7、用户授权角色
Connect角色:临时角色,不能创建表
Resource角色:正式数据库角色
Dba角色:所有系统权限
代码:
Grant dba to litao
8、其他操作
//回收权限
Revoke 角色from用户名
//修改用户密码
Alter user 用户名identified by新密码
//修改用户处于锁定(非锁定)状态
Alter user 用户名account lock|unlock
二、SQL数据库操作和查询
1、创建表,约束
CREATETABLEINFOS
(
STUIDVARCHAR2(7)NOTNULL,--学号 学号='s'+班级+2位序号
STUNAMEVARCHAR2(10)NOTNULL,--姓名
GENDERVARCHAR2(2)NOTNULL,--性别
AGENUMBER(2)NOTNULL,--年龄
SEATNUMBER(2)NOTNULL,--座位
ENROLLDATEDATE,--入学时间
STUADDRESSVARCHAR2(50)DEFAULT'地址不详',--住址
CLASSNOVARCHAR2(4)NOTNULL--班号 班号=学期序号+班级序号
)
/
ALTERTABLEINFOSADDCONSTRAINTPK_INFOSPRIMARYKEY(STUID)--创建主键约束
/
ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_GENDER--check约束
CHECK(GENDER='男'ORGENDER='女')
/
ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_SEAT
CHECK(SEAT>=0ANDSEAT<=50)
/
ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_AGE
CHECK(AGE>=0ANDAGE<=100)
/
ALTERTABLEINFOSADDCONSTRAINTCK_INTOS_CLASSNO
CHECK((CLASSNO>='1001'ANDCLASSNO<='1999')OR
(CLASSNO>='2001'ANDCLASSNO<='2999'))
/
ALTERTABLEINFOSADDCONSTRAINTSUN_STUNAMEUNIQUE(STUNAME)--唯一约束
/
--注意:“/” 表示执行缓存区中的语句
CREATETABLESCORES
(
IDNUMBER,--ID
TERMVARCHAR2(2),--学期s1或s2
STUIDVARCHAR2(7)NOTNULL,--学号
EXAMNOVARCHAR2(7)NOTNULL,--考号 E+班号+序号
WRITTENSCORENUMBER(4,1)NOTNULL,--笔试成绩
LABSCORENUMBER(4,1)NOTNULL--机试成绩
)
/
ALTERTABLESCORES
ADDCONSTRAINTCK_SCORES_TERMCHECK(TERM='S1'ORTERM='S2')
/
ALTERTABLESCORES
ADDCONSTRAINTFK_SCORES_INFOS_STUIDFOREIGNKEY(STUID)REFERENCESINFOS(STUID)--外键约束
/
2、插入数据
insertintoinfosvalues('s100102','林冲','男',22,2,to_date('2009-8-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'西安','1001')
insertintoinfosvalues('s100105','张三','男',20,2,to_date('2009-8-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'广州','1001')
insertintoinfosvalues('s100106','张四','男',35,2,to_date('2009-8-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'北京','1001')
insertintoinfosvalues('s100107','王武','男',27,2,to_date('2009-1-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'武汉','1001')
3、将查询结果创建表
create table cs as select * from infos --将select * from infos查询结果创建cs表(表不存在)
4、将查询结果插入虚拟表,如果临时表存在,则删除
--事物临时表则不管是在事物提交(commit)、事物回滚(rollback)或会话结束,临时表中的数据都会被截断
createglobaltemporarytableemp_deleteoncommitdeleterows--建立事物临时表 emp_delete
asselect*frominfos
--会话级临时表只会在会话结束时,临时表中的数据才会被截断
createglobaltemporarytableemp_preserveoncommitpreserverows--建立会话临时表 emp_preserve
asselect*frominfos
insertintoEMP_DELETEselect*frominfos
insertintoemp_preserveselect*frominfos
select*fromEMP_DELETE
select*fromemp_preserve
SELECTcount(*)numFROMALL_OBJECTSWHEREOBJECT_NAME='EMP_DELETE'--判断虚拟表是否存在
droptableEMP_DELETE--存在,则删除表
5、更新
updateinfossetstuaddress='襄阳'wherestuname='张三'
二、子查询,常用函数
1、子查询
2、伪列 ROWID 记录的物理地址 ,ROWNUM 记录的行号
3、常用函数
三、表空间,数据库对象
同义词,
create public synonym别名for infos; --创建同义词
drop public synonym table_name; --删除同义词
select * from dba_synonyms --获得所有的同义词
序列,试图,索引,表空间
四、PL/SQL程序设计
PL/SQL数据类型
PL/SQL条件和循环控制
动态执行SQL
PL/SQL中的异常处理
五、Oracle应用于.NET平台
六、数据库的导入导出
导出表结构:
“工具”菜单 ->“导出用户对象”
导出表数据
“工具”菜单 ->“导出表”
数据库备份