• 1. 查询语句
  • 2. SELECTSELECT [DISTINCT] {*,column alias,..} FROM table Distinct alias Column alias Column “alias” Column as alias
  • 3. Dual 表dual表是系统提供的一张虚表,这张表中只有一条记录,查询此表时也只会返回一条记录 如果我们需要测试某个表达式或函数,测试的结果又与具体的表无关就可以使用dual这张表。 sysdate在oracle中用来表示当前的系统时间
  • 4. 含有别名的SQL语句字段名并不能够直接体现字段的内容,我们可以为该字段起一个别名 默认别名换转换成全大写,如果别名中有空格,或要对别名严格限制大小写,可以使用双引号。
  • 5. 处理含有空值的字段含有任何null值的数学表达式最后的结果都为空值。 含有任何null值的字符串表达式中,null被当作空字符串处理。 数据中含有空值时往往会增加程序的处理难度,强烈建议在实际当中开发数据库应用系统的时候不要使用空值
  • 6. 消除重复的值用distinct关键字来消除结果集中的重复信息 当distinct用来修饰多个字段的时候,指的是需要消除后面所有字段的组合重复结果。
  • 7. where条件比较 =,!=,<>,<,>,<=,>=,any,some,all is null,is not null between x and y exsits(sub-query) in(list),not in(list) like _ ,%,escape ‘\‘ _\% escape ‘\’ not like 逻辑复合条件 not,and,or
  • 8. where 判断字符串是否相等时需要将字符串用单引号引起来 单引号中的字符串内容是要区分大小写的 between .. and .. 的时候,包含了最大和最小值(>= and <=)
  • 9. 处理日期oracle的默认日期格式为’DD-MON-RR’,即两位的日期-月份缩写(对中文来说就是全称)-两位的年份,
  • 10. like‘%’表示零个或多个字符; ‘_’表示一个字符; 查询名字中含有‘%’使用转义字符 escape ‘\’;
  • 11. order by order by column asc order by column desc 数据大多数的时候是按照插入数据时的顺序进行显示 不指定排序字段的排列方式时,结果就会按照升序排列。
  • 12. functioncharacter: lower 小写 upper 大写 concat 连接两个字符串(||) length 字符串长度 substr 提取字符串的一部分substr(ename,1,2) Chr与某个ASCII码数值所对应的字符 Ascii求一个字符的ASCII码数值
  • 13. number functionround(number,n) 指定四舍五入到小数点后第几位 可以用负数指定小数点前面第几位
  • 14. 转换函数to_char to_number to_date to_char(date|number[,’fmt’]) to_number(char) to_date(char[,’fmt’])
  • 15. to_char数字格式 格式控制符含义9代表一位数字,如果该位没有数字则不进行显示,但对于小数点后面的部分仍会强制显示0代表一位数字,如果该位没有数字则强制显示0$显示美元符号L显示本地货币符号.显示小数点,显示千分位符号
  • 16. to_char日期格式格式控制符含义YYYY、YY代表四位、两位数字的年份MM用数字表示的月份MON月份的缩写、对中文月份来说就是全称DD数字表示的日DY星期的缩写,对中文的星期来说就是全称HH24、HH1212小时或者24小时进制下的时间MI分钟数SS秒数
  • 17. 通用函数 nvl用来处理空值,这个函数有两个参数,第一个参数为字段名或表达式,如果这个参数的值为null,那么就返回第二个参数的值,否则返回第一个参数的值
  • 18. 组函数avg count max min sum 和
  • 19. 使用Group by 对数据进行分组 在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。
  • 20. 使用Having 对分组进行限制having子句过滤掉不符合条件的分组
  • 21. 总结Select {*, column[alias], …} From table [where …] [group by …] [having …] [order by …] 首先执行where语句将原有记录过滤; 第二执行group by 进行分组; 第三执行having过滤分组; 然后将select 中的字段值选出来; 最后执行order by 进行排序;
  • 22. 多表查询select table1.column,table2.column from table1,table2 where table1.column=table2.column
  • 23. (本页无文本内容)
  • 24. (本页无文本内容)
  • 25. (本页无文本内容)
  • 26. sql:1992语法的连接select table1.column,table2.column from table1,table2 where table1.column=table2.column
  • 27. sql:1999语法的连接Select table1.column,table2.column From table1 (Inner|left|right|full outter ) join table2 on table1.column=table2.column
  • 28. 连接Join 交叉连接 笛卡尔积 Inner join 内连接 Left join 左外连接 Right join 右外连接 Full outer join 全连接
  • 29. Inner joinABa11a21a33a44BC1c15c2ACa1c1a2c1Select a,c from t1 inner join t2 on t1.b=t2.b
  • 30. Left joinABa11a21a33a44BC1c15c2ACa1c1a2c1a3nulla4nullSelect a,c from t1 left join t2 on t1.b=t2.b
  • 31. Right JoinABa11a21a33a44BC1c15c2ACa1c1a2c1nullc2Select a,c from t1 right join t2 on t1.b=t2.b
  • 32. Full outer JoinABa11a21a33a44BC1c15c2Select a,c from t1 full outer join t2 on t1.b=t2.bACa1c1a2c1a3nulla4nullnullc2
  • 33. 子查询在Where语句中使用子查询 在From子句中使用子查询
  • 34. 使用rownum 一个伪字段存在,这个字段的名字叫做rownum, 用来标识每条记录的行号,行号从1开始,每次递增1, 当rownum和order by 一起使用时,会首先选出符合rownum条件的记录,然后再排序
  • 35. (本页无文本内容)