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语法大全 oracle语法大全
可将常规的sqlserver 的sql语句转换为 oracle语法,核心逻辑在SqlConvertToOracle.pas,便于入门。
oracle语法大全 个人整理 oracle语法大全 个人整理 oracle语法大全 个人整理
pg与oracle语法差异
Oracle语法,有关于oracle的基础知识。
UltraEdit/UEStudio Oracle 语法高亮/语法着色文件
oracle语法详细介绍,简单易懂,很实用
Oracle语法指南.zip , 相当详尽的语法参考和实例描叙,绝对物超所值,嘿嘿嘿嘿! 我的微笑很甜蜜的!
Oracle 语法大全 知识库
一份本人自行整理的关于Oracle语法的文档,应该算是比较全面的了,呵呵,相当于一本便捷查找字典,会省去你很多搜索网络和书籍的时间。希望对你有帮助
Oracle语法详解视频教程(二)part1,一共6个部分,需6个全部下载才能解压。 该视频内容为:介绍Oracle语句的条件查询和排序操作。
Oracle基本语法全集+终级整理版+全集文档版
本猿最近做数据库迁移,修改了大量sql语句,对oracle和MySQL语法之间的一些不同之处总结了一些。
oracle语法大全oracle语法大全 经典 语法都有
Oracle是一个对象关系数据库管理系统,是基于(Client/Server)"客户/服务器"系统结构.Oracle的体系结构,服务器和组件再此就不详细讲解了.以下主要让朋友们了解些基本的语法知识.
这一部分概述了 Transact-SQL 和 PL/SQL 语言语法之间的相同点和不同点,并给出转换策略。 要将 Oracle DML 语句和 PL/SQL 程序迁移到 SQL Server 时,请按下列步骤执行: 1. 验证所有 SELECT、INSERT、UPDATE 和 ...
ORACLE和SQL语法区别归纳 对于新手有帮助
oracle sql 语法大全 oracle sql 语法大全
这是我的个人收集的oracle语法大全及其经验,对初学者来说更有价值.里面有对查询,动态建表及传值,触发器,存储过程,函数,及常用命令和还有更多的内容等都有描述.