1.
//创建表,将test_1中的列数据保存到test_2中 (务必不能少了as)
CREATE TABLE TEST_2 as (
SELECT ID,NAME,PASSWORD FROM TEST_1)
2.
一个列别名既能用在SELECT子句也能用在ORDER BY子句中。不能在WHERE子句中使用列别名
如果别名中包含特殊字符或者空格,需要用“”
3. 查询 Test_2 中password 以%%开头,中间包含A 的 行
select * from TEST_2 where PASSWORD like '\%\%%A%' escape'\'
4.password 不为 123 和admin123 的行
select * from TEST_2 where PASSWORD not in('123','admin123')
5.LOWER(c) 转小写 ;UPPER(c) 转大写;initcap(c)将字符串中所有单词的第一个字符变大写,其他为小写
Select Initcap('whaT is this') From Dual -->What Is This
6.concat 字符串拼接函数
select concat('aaa','bbb')from dual -->aaabbb
select concat(12,23)from dual -->1223
7.SUBSTR函数 第二个参数:截取的开始位置 ,如果为负数,则从后往左数;第三个参数:截取的长度
SELECT SUBSTR('WHAT IS THIS', -5,3) FROM DUAL -->TH
8.length函数
Select Length('A123中') From Dual; -->5 | length('') -->null
9.
select sysdate, current_date from dual //sysdate 和 current_date 功能一样
10. ADD_MONTHS() 返回指定日期月份+n之后的值 ;MONTHS_BETWEEN(d1,d2) 返回d1与d2间的月份差
Select Months_Between(Sysdate, Sysdate),
Months_Between(Sysdate, Add_Months(Sysdate, -1)),
Months_Between(Sysdate, Add_Months(Sysdate, 1))
From Dual
Months_Between(Sysdate, Add_Months(Sysdate, -1)),
Months_Between(Sysdate, Add_Months(Sysdate, 1))
From Dual
11. replace 函数 .三个参数('需要被修改的字符串','被替换的字符串','替换字符串’)
select replace('aaabbbccc','aa','bb') from dual -->bbabbbccc
12. CASE WHEN...THEN...ELSE...END
相当于switch...case...default...语句
13 trunc函数 (1.获取时间 2.截取数字)
select trunc(sysdate) from dual --> 2014-11-18 上午12:00:00 //获取当前系统时间
select trunc(22.22) from dual -->22
select trunc(22.22,1) from dual -->22.2 (保留一位小数)
14 to_date函数 (日期转换)
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss')
from dual -->2005-1-1 下午1:14:20
from dual -->2005-1-1 下午1:14:20
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH:mi:ss')
from dual -->error : 小时值必须介于 1 和 12 之间
from dual -->error : 小时值必须介于 1 和 12 之间