学习笔记(三)

1:windows下手工建立数据库

2:WINDOWS下手动启动数据库

3:临时表的学习

4:SQLPLUS中的NEW_VAL的用法

5:UNION中的ORDER BY

[@more@]

1:手工创建数据库

1.1:准备初始化参数文件
1.2:ORADIM创建实例。
(创建口令文件,创建服务) --假如实例名love
1.3:$ORA_BASE变量指定的目录下的ADMIN子目录,建立一个love文件夹及子文件夹
(可以拷贝D:oracleora92adminsample文件夹下的内容到love子文件夹下)
1.4:STARTUP NOMOUNT PFILE=D:ORACLEADMINLOVEPFILEINITLOVE.ORA';
可以创建SPFILE:CREATE SPFILE FROM PFILE;
1.5:准备创建数据文件和日志文件的目录
1.6:CREATE DATABASE LOVE
DATAFILE '....' SIZE ... ---这个数据文件是系统表空间数据文件
若是不知道创建数据库的脚本可以到目录:.../rdbmsbulid_db.sql脚本
1.7:建立数据字典
执行脚本:...rdbmscatalog.sql,..catproc.sql...

2:手工启动数据库

net start oracleservicewang;
net stop oracleservicewang;
这些命令受注册表参数:ORA_SID_AUTOSTART的影响。

3:临时表的学习

临时表分为事务级和会话级(通过ON COMMIT CLAUSE控制)
事务级:表定义的结构每个会话都可以看见,但是数据只有这个事务能够看见。ON COMMIT PRESERVE ROWS
会话级:表定义的结构每个会话都可以看见,但是数据只能够此会话看见,即使COMMIT了(既事务结束),此会话也能够看见数据

1:如何创建临时表
CREATE GLOBAL TEMPORARY TABLE TEST
(ID NUMBER)
ON COMMIT PRESERVE ROWS; ---会话级(PRESERVE换成DELETE就是事务级)

备注:默认创建的是事务级。

测试案例:
1>:事务级测试
SQL> create global temporary table test
2 (id number);

表已创建。

SQL> insert into test values(1);

已创建 1 行。

SQL> select * from test;

ID
----------
1

SQL> commit;

提交完成。

SQL> select * from test;

未选定行


2>:会话级测试:
SQL> CREATE GLOBAL TEMPORARY TABLE TEST
2 (ID NUMBER)
3 ON COMMIT PRESERVE ROWS;

表已创建。

SQL> INSERT INTO TEST VALUES(1);

已创建 1 行。

SQL> SELECT * FROM TEST;

ID
----------
1

SQL> COMMIT;

提交完成。

SQL> SELECT * FROM TEST;

ID
----------
1

SESSION2:开另外一个会话查看数据

SQL> SELECT * FROM TEST;

未选定行

4:SQLPLUS的NEW_VAL

new_val其实是SQLPLUS中COLUMN的一个选项:

SQL> select id,dat from test;

ID DAT
---------- ----------
1 02-1月 -05
2 02-2月 -55

SQL> column id new_val id2;
SQL> select id,dat from test;

ID DAT
---------- ----------
1 02-1月 -05
2 02-2月 -55

SQL> select &id2 from test;
原值 1: select &id2 from test
新值 1: select 2 from test

2
----------
2
2

SQL>

5:UNION 中的ORDER BY

我在UNION中可以使用ORDER BY 但是ORDER BY 后的列名必须是表1的名(别名)而不是表2的。
select id id1,name from test
union
select id,name from t order by id1 --(此处必须是ID1,不能是ID)
对于SELECT * FROM TEST UNION SELECT * FROM T 不能够使用ORDER BY

请使用浏览器的分享功能分享到微信等