Oracle
1. 范式理论
a) 第一范式:把基本数据划分为实体或表的逻辑单元(具体细分)
b) 第二范式:每个非属性完全函数依赖于候选键
c) 第三范式:所以非主属性对任何候选键都不存在传递依赖
2. 对缓存区命令操作
a) 保存命令到文件:save c:\xx.sql
b) 读取命令文件到缓存区:get c:\xx.sql
3. 数据格式化
a) COL 列名 heading 代替的列名 formata10 (后面的format a10,a表示字符,10个)
b) COLUMN xx FOR $999,999.99(这个列名的数据被格式化成$999,999.99)
4. select
a)||来连接两个字符串
5. to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。
即按照第二个参数的格式解释第一个参数。
to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。
6. NVL(xx,0.0)当xx为空时,以0代替
NVL(xx,x1,x2)当x1非空,返回x1。为空时,返回的是x2。
7. Group by xx,以xx为基准进行查找 后加having判断条件
8. Order by默认按升序
倒序 DESC
9.注释 COMMENT on table xx id xx;表 COMMENT on Column xx.xxx is ‘xx’;列名
10.查看注释 select comments …
11. 查看表整体结构 desc xx;
12. CONSTRAINTpk_表名 PRIMARY KEY (列名)主键
13.创建外键 constraint xx别名 Foreign key(表列名)References xx要绑定的表名(xx列名)
14. 保存点和撤销 savepoint x;设置保存点 rollback to x保存点;撤销到x的位置
Oracle与mysql的不同:
1. mysql有usedatabases;但是oracle没有,因为每个用户都有各自的数据库,所以不会冲突
Oracle sql
1. 不区分大小写
2. Connect sys/password as sysdba;
3. 用户信息储存在dba_users
4. 用户解锁,alter user xx account unlock;
5. 备份,恢复相关的查看表空间:select default_tablespace,temporary_tablespace from dba_users whereusername=’xx’; 修改表空间alter user xx default tablespace xx;
6. 创建表空间 永久:createtablespace xx datafile ‘xx.dbf’ size xxm; 临时:createtemporary tablespace xx tempfile ‘xx.dbf’size xxm;
7. 只有在表空间为online时,才能修改成只读或者其他操作(可读可写)。Alter tablespace xx online; 只读:altertablespace xx read only;
8. 数据库类型 NUMBER(p,s)p:有效数字,s小数点后的位数
9. Oracle增加新的一列altetable xx add xx 类型; 修改列类型 alter table xx modify xx 类型; 修改列约束: alter table xx modify column_name xx not null 删除列:alter table xx drop column xx; 修改列名:alter table xxrename column xx to xx; 更改表名:renamexx to xx; 删除表的数据(和delete一样):truncate table xx; 创建联合主键 create … ,constraint pk_xx primary key(列名,列名); 创建外键约束 1)必须是主键2)相同的类型 create …,xx 类型 references 表名(列名) 删除约束 alter table xx disable constraint 约束名
10. 创建时复制表 create table xx asselect … 插入时复制 insert into xx select …
11. 级联表create … ,constraint fk_列名 foreign key(列名)references 表名(列名)on delete cascade
12. Case when then end as select name,case name when 'aaa'then 'hello' else 'hi' end as 恩恩 from test; decode也有类似功能select xx,decode(列名,’条件’,’输出’,’条件’,’输出’,’其他的输出’)as xx from xx;