数据库记录说明 1.case when then else end 用法: 例如: SELECT (CASE H.STARUS WHEN 'PENDING' THEN '送审中' WHEN 'APPROVED' THEN '完成' ELSE '新建' END) AS STARUS FROM TABLE H 2.增加表字段,修改表字段长度等 alter table CM_USERS add (REMARK varchar2(500) ); alter table <表名> alter column <字段名> 新类型名(长度) alter table T1 alter column F1 varchar(10) alter table A rename column a to c
sql修改字段长度的语法:
alter table 表名 modify 字段名 字段类型;
标准SQL,对任何数据库都适用 如: alter table HT_XMINVC modify WID VARCHAR2(4000);
修改字段名名称
ALTER TABLE TABLENAME RENAME COLUMN COL1 TO COL2; 如: ALTER TABLE HT_XMINVC RENAME COLUMN WID TO WIDS; 添加字段
alter table "表名" add "新增字段" CHAR(1) 如: alter table HT_XMINVC add KO CHAR(1)
LEFT JOIN ON 和JOIN ON区别: LEFT JOIN后条件为假也可查询出数据,而JOIN ON后条件必须为真
查询提高效率
1.尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0
3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num=10 or num=20 可以这样查询: select id from t where num=10 union all select id from t where num=20
5.in 和 not in 也要慎用,否则会导致全表扫描,如: select id from t where num in(1,2,3) 对于连续的数值,能用 between 就不要用 in 了: select id from t where num between 1 and 3
6.下面的查询也将导致全表扫描: select id from t where name like '%abc%'
7.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如: select id from t where num/2=100 应改为: select id from t where num=100*2
8.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where substring(name,1,3)='abc'--name以abc开头的id
应改为:
select id from t where name like 'abc%'
9.用 exists 代替 in 是一个好的选择:
select num from a where num in(select num from b)
用下面的语句替换:
select num from a where exists(select 1 from b where num=a.num)
10,不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段
创建用户、表空间 例子2: 创建用户 CREATE USER DDZN IDENTIFIED BY DDZN DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp; 授予DBA权限 GRANT connect,dba to DDZN;
CREATE TABLESPACE NNC_DATA01 DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\nnc_data01.dbf' SIZE 1000M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPACE NNC_DATA02 DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\nnc_data02.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPACE NNC_DATA03 DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\nnc_data03.dbf' SIZE 1000M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ;
CREATE TABLESPACE NNC_INDEX01 DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\nnc_index01.dbf' SIZE 1000M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
CREATE TABLESPACE NNC_INDEX02 DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\nnc_index02.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
CREATE TABLESPACE NNC_INDEX03 DATAFILE 'F:\oracle\product\10.2.0\oradata\orcl\nnc_index03.dbf' SIZE 1000M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
例子2:
CREATE TABLESPACE NNC_DATA01 DATAFILE 'F:\forest\tablespace\nnc_data01.dbf' SIZE 256M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPACE NNC_DATA02 DATAFILE 'F:\forest\tablespace\nnc_data02.dbf' SIZE 256M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPACE NNC_DATA03 DATAFILE 'F:\forest\tablespace\nnc_data03.dbf' SIZE 256M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ;
CREATE TABLESPACE NNC_INDEX01 DATAFILE 'F:\forest\tablespace\nnc_index01.dbf' SIZE 256M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
CREATE TABLESPACE NNC_INDEX02 DATAFILE 'F:\forest\tablespace\nnc_index02.dbf' SIZE 256M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ;
CREATE TABLESPACE NNC_INDEX03 DATAFILE 'F:\forest\tablespace\nnc_index03.dbf' SIZE 256M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE USER erpceshi IDENTIFIED BY 1 DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp; GRANT CONNECT,RESOURCE,DBA TO erpceshi;
导入数据库: imp "数据库名"/"密码"@ORCL full=y file=F:\导入的数据库实例.dmp ignore=y log =F:"日志".log imp erpceshi/1@ORCL full=y file=F:\PIP.dmp ignore=y log =F:\20180625.log imp forest/forest@localhost:1521/ORCL file="F:\forest\pip.dmp" full=y ignore=y
修改sysdba密码; 运行-cmd set oracle_sid=orcl sqlplus / as sysdba SQL>alter user sys identified by newpassword;
解决思路:先解锁,再为用户重新设定密码。
具体实现:
(1)以sysdba身份登录,不需要提供用户名和密码,此sql深得我心。
conn / as sysdba ;
(2)为用户解锁。
alter user system account unlock;
ps:触类旁通,锁定用户语句即为, alter user system account lock;
(3)重新设定密码。
alter user system identified by system123456;
更改之后的用户名/密码是:system/system123456
<mirror>
<!--This sends everything else to /public -->
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。