Oracle中常用的SQL语句语法一
来源:优易学  2011-12-9 15:50:50   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  三.查询语句 (SELECT) 部分

  SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 条件;

  字段名可以带入函数

  例如:   COUNT(*), MIN(字段名),   MAX(字段名),   AVG(字段名), DISTINCT(字段名),

  TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS')

  NVL(EXPR1, EXPR2)函数

  解释:

  IF 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字符串替换左边的空位

  字段名之间可以进行算术运算

  例如:   (字段名1*字段名1)/3

  查询语句可以嵌套

  例如: SELECT …… FROM

  (SELECT …… FROM表名1, [表名2, ……] WHERE 条件) WHERE 条件2;

  两个查询语句的结果可以做集合操作

  例如: 并集UNION(去掉重复记录), 并集UNION ALL(不去掉重复记录), 差集MINUS,   交集INTERSECT

  分组查询

  SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] GROUP BY字段名1

  [HAVING 条件] ;

  两个以上表之间的连接查询

  SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE

  表名1.字段名 = 表名2. 字段名 [ AND ……] ;

  SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE

  表名1.字段名 = 表名2. 字段名(+) [ AND ……] ;

  有(+)号的字段位置自动补空值

  查询结果集的排序操作, 默认的排序是升序ASC, 降序是DESC

  SELECT字段名1, 字段名2, …… FROM 表名1, [表名2, ……]

  ORDER BY字段名1, 字段名2 DESC;

  字符串模糊比较的方法

  INSTR(字段名, ‘字符串’)>0

  字段名 LIKE   ‘字符串%’   [‘%字符串%’]

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

  四.ORACLE里常用的数据对象 (SCHEMA)

  1.索引 (INDEX)

  CREATE INDEX 索引名ON 表名 ( 字段1, [字段2, ……] );

  ALTER INDEX 索引名 REBUILD;

  一个表的索引最好不要超过三个 (特殊的大表除外), 最好用单字段索引, 结合SQL语句的分析执行情况, 也可以建立多字段的组合索引和基于函数的索引

  ORACLE8.1.7字符串可以索引的最大长度为1578 单字节

  ORACLE8.0.6字符串可以索引的最大长度为758 单字节

  ORACLE DOC上说字符串最大可以建索引的长度约是:数据块的大小(db_block_size)*40%

  2.视图 (VIEW)

  CREATE VIEW 视图名AS SELECT …. FROM …..;

  ALTER VIEW视图名 COMPILE;

  视图仅是一个SQL查询语句, 它可以把表之间复杂的关系简洁化.

  3.同义词 (SYNONMY)

  CREATE SYNONYM同义词名FOR 表名;

  CREATE SYNONYM同义词名FOR 表名@数据库链接名;

  4.数据库链接 (DATABASE LINK)

  CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘数据库连接字符串’;

  数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

  数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样

  数据库全局名称可以用以下命令查出

  SELECT * FROM GLOBAL_NAME;

  查询远端数据库里的表

  SELECT …… FROM 表名@数据库链接名;

上一页  [1] [2] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训