Oracle

Oracle常用sql操作整理总结

日期:2015/6/28来源: IT猫扑网

  一、选择行

  COURSEID COURSENAME SCORE

  ———- ———- ———-

  1  java  70

  2  oracle  90

  3  xml  40

  4  jsp 30

  5  servlet  80

  SQL> select courseid, coursename ,score ,decode(sign(score-61),-1,’fail’,'pass’) as mark from course_v;

  COURSEID  COURSENAME  SCORE  MARK

  ———-  ———-  ———-  —-

  1   java  70  pass

  2  oracle   90  pass

  3  xml  40   fail

  4  jsp   30   fail

  5   servlet    80  pass

  12、

  已经知道原表

  year salary

  ——————   ———————

  2000     1000

  2001     2000

  2002     3000

  2003     4000

  显示查询结果

  year salary

  ——————   ———————

  2000     1000

  2001     3000

  2002     6000

  2003     10000

  即salary为以前年的工资的和;

  解答过程如下:

  select b.year,sum(a.salary)

  from test a,test b

  where a.year<=b.year

  group by b.year

  order by year

  1. 简单的SELECT 语句

  SELECT 字段名1 [AS] ‘字段名1 解释’ FROM table;

  2. 处理NULL

  NVL函数可把NULL转换成其它类型的符号

  编程技巧: NVL函数在多条件模糊查询的时候比较有用

  NVL函数可返回多种数据类型:

  返回日期 NVL(start_date,’2002-02-01′)

  返回字符串 NVL(title,’no title’)

  返回数字 NVL(salary,1000)

  3. 使用SQL*PLUS

  SQL> desc table; 显示表结构

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

  SQL> set pause on; 可以使大量结果集在用户按"Enter"(回车)后翻页

  SQL> set pagesize 100; 设定SQL语句返回结果集一页的行数100, 默认值是14

  SQL> set linesize 100; 设定SQL语句返回结果集一行的宽度100, 默认值是80

  4. SQL*PLUS里规定字段的显示格式

  规定数字的显示格式

  SQL>column 字段名 format 99999999999;

  SQL>column 字段名 format 999,999,999,999;

  SQL>column 字段名 format a数字 [word_wrapped];

  规定long字符的显示宽度

  SQL>set long 200;

  规定字段名的显示内容

  SQL> column 字段名 heading ‘字段名显示内容’;

  SQL> set heading off; 查询时不显示字段名称

  规定字段的对齐方向

  SQL> column 字段名 justify [left | right | center];

  清除字段的格式

  SQL> column 字段名 clear;

  5. SQL*PLUS里规定字段的显示格式例子

  SQL> column last_name heading ‘Employee|Name’ format a15;

  SQL> column salary justify right format $99,999.99;

  SQL> column start_date format a10 null ‘Not Hired’;

  说明:如果start_date为null, 显示字符串’Not Hired’

  6. 判断题(T/F)

  (1). SQL command are always held in sql buffer. [T]

  (2). SQL*PLUS command assit with query data. [T]

  7、 SQL*PLUS命令只控制SELECT结果集的显示格式及控制文件.只有SQL命令能访问数据库.

  二、限制选择行

  1. 按指定的规则排序

  SELECT expr FROM table [ORDER BY {column, expr} [ASC | DESC] ];

  默认的排序是ASC升序(由小到大)

  还可以ORDER BY 字段名的位置[1]| [2] ASC| DESC;

  2. 用WHERE限制选择行(1)

  比较操作符 = > < >= <= != <> ^= 与NULL比较不能用上面的比较操作符 ANY SOME ALL

  SQL操作符 BETWEEN … AND… IN LIKE IS NULL

  NOT BETWEEN … AND… NOT IN NOT LIKE IS NOT NULL

  逻辑操作符 AND OR NOT

  3. 用WHERE限制选择行(2)

  比较顺序(可以用括号改变它们的顺序)

  (1). = < > >= <= in like is null between

  (2). and

  (3). Or

  4. LIKE操作

  % 零到任意多个字符 _ 一个字符

  例如: 字段名 like ‘M%’ 字段名 like ‘%m%’ 字段名 like ‘job_’

  如果要找含下划线的字符, 要加反斜线 例如:字段名 like ‘%X/_Y%’ escape ‘/’

  5. 日期字段的比较

  举例:

  日期字段 between to_date(’2001-12-12′,’YYYY-MM-DD’) and to_date(’2002-02-01′,’YYYY-MM-DD’)

  日期字段> to_date(’2001-12-12′,’YYYY-MM-DD’) and日期字段<=

  to_date(’2002-02-01′,’YYYY-MM-DD’);

  6. 不能用到索引的比较操作符

  IS NULL IS NOT NULL  LIKE ‘%m%’

  三、单行函数

  1. 数字函数

  ABS 取绝对值 POWER 乘方 LN 10为底数取0

  SQRT 平方根 EXP e的n次乘方 LOG(m,n) m为底数n取0

  数学运算函数:ACOS ATAN ATAN2 COS COSH SIGN SIN SINH TAN TANH

  CEIL 大于或等于取整数

  FLOOR 小于或等于取整数

  MOD 取余数

  ROUND(n,m) 按m的位数取四舍五入值如果round(日期): 中午12以后将是明天的日期.

  round(sysdate,’Y')是年的第一天

  TRUNC(n,m) 按m的位数取小数点后的数值如果trunc(日期), 确省的是去掉时间

  2. 字符函数

  CHR 按数据库的字符集由数字返回字符

  CONCAT(c1,c2) 把两个字符c1,c2组合成一个字符, 和 || 相同

  REPLACE(c,s,r) 把字符c里出现s的字符替换成r, 返回新字符

  SUBSTR(c,m,n) m大于0,字符c从前面m处开始取n位字符,m等于0和1一样,

  m小与0,字符c从后面m处开始取n位字符

  TRANSLATE(c,f1,t1) 字符c按f1到t1的规则转换成新的字符串

  INITCAP 字符首字母大写,其它字符小写

  LOWER 字符全部小写

  UPPER 字符全部大写

  LTRIM(c1,c2) 去掉字符c1左边出现的字符c2

  RTRIM(c1,c2)

  TRIM(c1,c2) 去掉字符c1左右两边的字符c2

  LPAD(c1,n,c2) 字符c1按制定的位数n显示不足的位数用c2字符串替换左边的空位

  RPAD(c1,n,c2)

  3. 日期函数

  ADD_MONTHS(d,n) 日期值加n月

  LAST_DAY  返回当月的最后一天的日期

  MONTHS_BETWEEN(d1,d2) 两个日期值间的月份,d1<d2 返回负数

  NEXT_DAY  返回日期值下一天的日期

  SYSDATE 当前的系统时间

  DUAL是SYS用户下一个空表,它只有一个字段dummy

  4. 转换函数(1)

  TO_CHAR(date,’日期显示格式’)

  TO_CHAR(number) 用于显示或报表的格式对齐

  TO_DATE(char,’日期显示格式’)

  TO_LOB 把long字段转换成lob字段

  TO_NUMBER(char) 用于计算或者比较大小

  4. 转换函数(2)

  to_date里日期显示格式

  YYYY 年 YEAR YYY YY Y

  Q 季度

  MM 月 MONTH MON

  W 星期 (week of month) WW, IW (week of year)

  (说明:周计是按ISO标准,从1月1日的星期数到后面七天为一周,不一定是从周一到周日)

  DD 日 DAY DY

  HH24 小时 HH12 HH

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消