三、数据库杂项
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。
10.返回第一行或者一定数量的行: sql server :top; oracle:rownum; mysql: limit 5 offset 5(从第5行起的5行)
11.不等式 <> != 和 not
12.链接字符: sqlserver: + 其他为:|| mysql为: concat
13.从一个表复制到另外一个表: create table new.表名 as select * from old.表名
(select *into new.表名 select old.表名 from old.表名)
14.删除: delete from 表名(truncate)
15.oracle、mysql、sqlserver是数据库管理系统DBMS,而不是数据库
16.唯一约束和主键的区别
1)唯一约束可以是多个,主键只能是一个
2)唯一约束可以为null,但是主键不可以
3)唯一约束不能作为外键,但是主键可以作为外键
4)在sqlserver中有两种索引,唯一约束采用非聚集索引,主键采用聚集索引。
简单理解,聚集索引就是目录的主页,类似查字典,根据拼音查找到字,只有这一种方法。唯一约束是非聚集索引,类似根据偏旁体查找到字,首先找到偏旁,在根据偏旁找到字,根据字找到对应页面的字。
17.在mysql中,help data types查看mysql支持的数据类型。在时间类型中,设置时区,默认为东8区,设置为东9区为:
set time_zone='+9:00'

浙公网安备 33010602011771号