alter tabel abc add c number; 修改表 加个字段
alter table abc drop column c;删除一个字段
ALTER TABLE table_name modify (name varchar2(30)default 'hebei'); 或者用ALTER TABLE table_name modify name varchar2(30)default 'hebei'; 修改字段

grant select on 表名 to 用户名; 授权操作
revoke select on 表名 from 用户名 解除

select length('abc') from dual;
select substr('abc',1,3) from dual; 接字符串
select to_char(sysdate,'yyyy hh24') from dual; 需加24来标示是 24小时制的

dual是oracle数据库默认提供的一个一行一列的数据库空表,常常用来使用一些oracle函数,如:select sysdate from dual; 存在于sys 数据库中

select 7*9 from dual;

在oracle中 mm 和MM 都代表月份, 但字段中有空值的时候用count无法准确查找这个天数
decode()--> decode(列名,'可能值',代替值,否则值)
selecet sum(decode(sex,'男',1,0)) from lin;
-------------------------------------------------------
sqlplus "sys/密码 as sysdba" 只要是sys登录一定是以sysdba或者是身份的
sql*plus下:connect to sys/密码 as sysdba
startup
shutdown immediate 立即断开 而 shutdown 要等所有用户操作后才断开
-------------------------------------------------------
help index 支持的命令
?或者help 查看命令
set SQLBLANKLINES on 设置可以跨行操作
select * from v$parameter where name=&name 变量的代替

list 用来查看在缓冲区写的命令 简写为l l3表示查看缓存中第三条语句
c/FRON/FROM c简写change --但貌似好像只修改缓存中的最后一条语句
可用 /来重复执行缓冲区里的命令
DEL 4 删除缓冲区第4行
DEL 2 3 删除2到3行
A FROM students 用来在缓冲区里追加语句 再用/执行
save c:\oracle.txt 保存缓冲区的语句
@c:\oracle.txt 用来执行一个文件里的语句
get c:\oracle.txt 获取文件里的语句 但没有被执行
执行缓冲区的命令用/方式来执行
edit
describe 来显示描述 简写desc

set LINESIZE 50
ITITLE CENTER "我的标题" SKIP 1-
LEFT "测试表格" RIGHT "页" -
ITITLE OFF

spool c:\oracle.txt 保存结果集到文件中
select * from stud
spool off

edit c:\oracle.txt 可以打开文本编辑器编辑

------------------------------------------
SQLPLUS / nolog --不登陆连接
sqlplus / as sysdba --通过操作系统验证之后
sqlplus scott/trigger@t:32.1.11.20:1521:orad
@t:网络协议,表示TCP/IP

select name,type,value from v$parameter where name=&name
&name的可能取值:(db_2k_cache_size,sga_max_size,log_buffer,shared_pool_size,java_pool_size)

selecet name, type,value,description from v$parameter where name like'%processes%'用来查看 进程的情况 value指系统能启动进程的最大值,但等于该值时就不能再创建进该程了

select * from v$session where type='user' 用来获取用户的会话信息
select name,status,enabled ,bytes from v$datafile;用来查找数据文件的语句,通过动态性能表

操作视图就是操作基本表
create or replace view myview as selecet * from lin where no>30 with check option(用来限制视图);
| with read only (视图只读)

在视图中 若视图是基于2个以上的基表时 则不允许同时对基表进行插入
desc user_views 查看试图结构
select text from user_views where view_name='..';

----------------------------------------------------
使用decode()
decode()--> decode(列名,'可能值',代替值,否则值)
selecet sum(decode(sex,'男',1,0)) from lin;

查看用户下所有的表
SQL>select * from user_tables;

查看名称包含log字符的表
SQL>select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
学会instr函数的用法

查看序列号,last_number是当前值
SQL>select * from user_sequences;

查看视图的名称
SQL>select view_name from user_views;

查看函数和过程的状态
SQL>select object_name,status from user_objects where object_type='FUNCTION';
SQL>select object_name,status from user_objects where object_type='PROCEDURE';

查看控制文件

select name from v$controlfile;
查看控制文件中记录文档段的信息:
select type,record_size,records_total,records_used from v$controlfile_record_section where type='datafile' --查看数据文件的相关信息

5、查看日志文件 select member from v$logfile;

9、查看数据库的创建日期和归档方式 Select Created, Log_Mode, Log_Mode From V$Database;
-----------------------------------------
用系统管理员,查看当前数据库有几个用户连接:
SQL> select username,sid,serial# from v$session;

如果要停某个连接用

SQL> alter system kill session 'sid,serial#';
如果这命令不行,找它UNIX的进程数

SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;

说明:21是某个连接的sid数

然后用 kill 命令杀此进程号。

b、在sqlplus下得到帮助信息
列出全部SQL命令和SQL*Plus命令
SQL>help
列出某个特定的命令的信息
SQL>help 命令名

使用INPUT命令可以在SQL缓冲区中增加一行或多行
SQL>i
SQL>输入内容

a、表的创建、修改、删除
创建表的命令格式如下:
create table 表名 (列说明列表);

为基表增加新列命令如下:
ALTER TABLE 表名 ADD (列说明列表)
例:为test表增加一列Age,用来存放年龄
sql>alter table test
add (Age number(3));

修改基表列定义命令如下:
ALTER TABLE 表名
MODIFY (列名 数据类型)
例:将test表中的Count列宽度加长为10个字符
sql>alter atble test
modify (County char(10));

年-月-日 小时:分钟:秒 的格式YYYY-MM-DD HH24:MI:SS

CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1
MAXVALUE 99999 CYCLE NOCACHE;
----------------------------------------------
DELETE FROM表名 WHERE 条件;

注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.
如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间
TRUNCATE TABLE 表名;
此操作不可回退.
4.TRUNCATE (清空表里的所有记录, 保留表的结构)
-----------------------
把表放在或取出数据库的内存区
ALTER TABLE 表名 CACHE;
ALTER TABLE 表名 NOCACHE;

查看放在ORACLE的内存区里的表
SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
--------------------------
函数大全:
NVL(EXPR1, EXPR2)函数
F EXPR1=NULL
RETURN EXPR2
ELSE
RETURN EXPR1

DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数
解释:
IF AA=V1 THEN RETURN R1
IF AA=V2 THEN RETURN R2
..…
ELSE
RETURN NULL

LPAD(char1,n,char2)函数
解释:
字符char1按制定的位数n显示,不足的位数用char2字符串替换左边的空位

INSTR(字段名, ‘字符串’)>0
字段名 LIKE ‘字符串%’ [‘%字符串%’]

每个表都有一个隐含的字段ROWID, 它标记着记录的唯一性.

ROWID中内容的意义:
OOOOOO:表示该条记录所在数据对象编号,同一个表所有的记录的ROWID前六个都一样
FFF:表示该条记录所在的某一表空间中的数据文件编号。若相同则表示存储在同一个数据文件中
BBBBBB:表示数据文件中数据块的编号,而不是相对于表空间的,所以判断两条记录是不是在同一个块
要判断FFF和BBBBBB都一样
RRR:该条记录的编号,同一个表中的所有记录该RRR都不一样

利用ROWID可以唯一标示一条记录,查询表的存储结构,快速查找一条记录
-----------------------------------------
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

to_char(sysdate,"yyyy-MM-dd"); 其中一定要为date类型的转化
to_date("2008-9-7","yyyy-MM-dd") 其中一定要为char类型的转化

Oracle语法札记相关推荐

  1. oracle insert into values select from,ORACLE语法中的INSERT INTO。。。SELECT。。。 收藏

    ORACLE语法中的INSERT INTO...SELECT... 收藏 今天写INSERT语句,想直接把一表里的数据取出直接插进另外一表.结果语法忘记了.找了半天.真是白痴啊自己,先把找到的语法记录 ...

  2. oracle切换sqlserver,ORACLE语法转换成sqlserver,该如何解决

    ORACLE语法转换成sqlserver 小弟在 ORACLE写了一个小函数,但是在sqlserver里执行不了,小弟不怎么懂得sqlserver的语法,大家帮忙看看,给指正指正 CREATE OR  ...

  3. oracle语法垃圾,oracle 语法

    1.基本语法:SELECT *[列名 [[AS] 别名], 列名2...] FROM 表名 [[AS] 别名]; 2. 使用||做连接:Oracle中的字符串用单引号. 例:SELECT '姓名:'| ...

  4. oracle语法官方文档,Oracle官方文档必备语法知识

    很多Oracle DBA虽然接触Oracle时间很长,但是一旦想不起语法或找不出相应参数时,习惯百度或谷歌.虽然已经下载了官方文档,但是 Oracle官方文档必备语法知识 [日期:2015-04-21 ...

  5. oracle中代表任意一个字符的,oracle 语法

    1.基本语法:SELECT *[列名 [[AS] 别名], 列名2...] FROM 表名 [[AS] 别名]; 2. 使用||做连接:Oracle中的字符串用单引号. 例:SELECT " ...

  6. Javamysql语法转化oracle_MySQL到Oracle语法错误(限制/偏移/更新)

    我有一个MySQL查询,可以在我当前的MySQL数据库上运行 . 我被迫转移到oracle,所以我试图将所有存储过程/程序移植到使用Oracle SQL语法 . 我在一个特定的查询上遇到了很多麻烦 . ...

  7. mysql与oracle语法对比(实用)

    oracle sql语法不同于mysql的sql语法 不同点: 1. mysql: IFNULL(a,b) oracle: NULLIF(a,b) 2. mysql: 可以用Date类型的日期进行比较 ...

  8. Oracle语法大全

    基础知识 ORACLE支持五种类型的完整性约束 NOT NULL (非空)–防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)–检 ...

  9. Kingbase兼容Oracle语法--连接操作符(+)

    问题 Kingbase如何兼容Oracle加号(+)连接操作符? 文档概述 本文主要是通过调研Oracle的加号(+)操作符的功能,然后分析如何基于Kingbase实现兼容Oracle加号(+)连接操 ...

最新文章

  1. UVA10881蚂蚁
  2. 一起来学习android自定义控件3——边缘凹凸的View
  3. 【Linux】一步一步学Linux——mktemp命令(263)
  4. Spring Data JPA 从入门到精通~方法的查询策略的属性表达式
  5. iOS开发-Object-C获取手机设备信息(UIDevice)
  6. Tomcat映射虚拟目录的三种方式(2021版)
  7. python获取局域网在线主机_pythond的icmp广播报获取局域网主机IP
  8. 两位小数乘两位小数竖式_冀教版五年级数学上册2.4小数乘小数微课视频 | 练习...
  9. Python科学计算——前期准备
  10. JAVA调试出现不断在ClassLoader类中执行时的问题?
  11. React入门---组件-4
  12. Android Framework - 学习启动篇
  13. Dynamics AX 2012 的工业物联网解决方案
  14. 北京高级项目经理市场需求
  15. 2021年中国危险废物产量、处理量及回收利用量分析[图]
  16. 深圳大学计算机专业评级,泰晤士中国学科评级榜单2021 南科大上榜学科全为A
  17. 人民日报谈美国减税:是在挑起税务战,国际税收秩序将陷混乱(zz)
  18. 社群是什么?真正的社群是怎么样的?
  19. 7个等级 容灾等级_详细分析容灾备份的区别以及容灾的级别分类
  20. Unity 镜面反射

热门文章

  1. 华为架构师撰写的Netty核心笔记,从Java NIO到Netty的高级特性
  2. Windows批处理常用命令
  3. 杀毒Trojan.DL.Agent.xdw,清除弹出网页
  4. Dreamweaver cs3 cpu使用100%的解决方法
  5. Viso制作循环流程图(含实例步骤制作)
  6. vue打包放到java中启动_Springboot+Vue打包部署总结
  7. 技嘉H370 HD3主板的物理机上安装 Linux CentOS7 解决无网卡驱动
  8. 关于应用~试玩,你想知道的都在这儿了----超详细总结(下篇)
  9. 镇三山在此!”三个 水浒传
  10. 手机流量翻牌抽奖活动HTML页面