oracle
1.sql中reference是对某列的约束
reference 是约束:create table purchase(customerId number(8) references customer(customerId))
2.合并查询:union(union在其他mysql和server 中和oracle是不一样的)
在实际中,为了合并多个select语句的结果,可以用union等,这里只说union,union是并集,也就是重复的会去掉。
例如:
select ename ,sal,job from emp where sal>25000 union select ename ,sal ,job from emp where job='MANAGER';
3.解锁用户
alter user scott account unlock;(用户在创建的时候是在默认的profile文件中,设定了一定次数的锁定,所以解锁命令背过就行)
4.sql是标准化语言,是第四代语言,无需定义;有两套标准,1992和1999,;所以大多数数据库都支持,但是不同的数据库之间有轻微的不同,这是很头疼的,需要查手册。
5.oracle数据库的打开和关闭:
一、shutdown命令:
SHUTDOWN有四个参数:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不带任何参数时表示是NORMAL。
SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。
二、startup命令:
STARTUP OPEN:STARTUP缺省的参数就是OPEN,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。
STARTUP MOUNT:MOUNT数据库,仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。
STARTUP NOMOUNT:仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。
STARTUP PFILE= filename:以filename为初始化文件启动数据库,不是采用缺省初始化文件。
STARTUP FORCE:中止当前数据库的运行,并开始重新正常的启动数据库。
STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。
STARTUP RECOVER:数据库启动,并开始介质恢复。
6.不停止orcl服务,停止监听的话,sql/pl需要用到监听,所以是连接不上的
7. linux下开启/关闭/查看监听状态: lsnrctl start/stop/status;windows下tnsping(netstat -ano|findstr 1521)
8. select distinct deptno,job from emp 中,找的是组合不重复的。
9.在表的select结果集中,有一个伪字段是rownum。