SQL语句备忘录

这个主要是写给自己的,方便自己以后查阅,当然不是很全面,只是镇对我自己写的,但是发出来共享一下,希望对大家有帮助,日后会慢慢补充的。

常用SQL语句总结

1.       去掉重复行
select DISTINCT amount from checks;

2.       判断输入的是否是空值
SELECT * FROM PRICE WHERE WHOLESALE IS NULL

3.       模糊查询
SELECT * FROM FRIENDS WHERE STATE LIKE ‘C_’
SELECT * FROM PARTS WHERE LOCATION LIKE ‘%BACK%’

4.       SQL语句中进行字符串连接用|| 例子是将两个名字中间连接’,’号。
SELECT LASTNAME ||’,’ || FIRSTNAME NAME FROM FRIENDS

5.       并集查询 UNION 将两个集合连接在一起
select * from a
UNION
select * from b
将两个表的查询并在一起并去掉了重复行。如果用 UNION ALL 则不去重复行全部显示。

6.       交集查询 INTERSECT 返回两个集合中共同的行。用法和并集一样。

7.       相减 MINUS 返回的记录是存在于第一个表中但不存在于第二个表中的记录。
SELECT * FROM FOOTBALL MINUS SELECT * FROM SOFTBALL
这句话意思是在队FOOTBALL中的队员但是不在SOFTBALL中。

8.       从属运算(IN and BETWEEN)
如果你想找一个你在Colorado, California,Louisiana 的朋友,可以输入:
SELECT * FROM FRIENDS WHERE STATE= 'CA' OR STATE ='CO' OR STATE =’LA’;
也可以输入: SELECT * FROM FRIENDS WHERE STATE IN('CA','CO','LA');
如果你想要查找符合某一范围的记录,可以这样做:
SELECT * FROM PRICE WHERE WHOLESALE 0.25 AND WHOLESALE<0.75;
也可以: SQL>SELECT * FROM PRICE WHERE WHOLESALE BETWEEN 0.25 AND 0.75

9.       函数的使用:

1.汇总函数

a)         COUNTSUMAVGMAXMIN

b)        VARIANCE(方差)STDDEV(标准差)

2.日期函数

       ADD_MONTHS(字段,增加值); 该函数对指定字段增加相应的月数。

    LAST_DAY(字段/日期值i); 该函数反回指定字段/日期的月份的最后一天。

       MONTHS_BETWEEN(日期1/日期2)返回给定的两个日期/字段中有多少个月.

    NEW_TIME把时间调整到你所在的时区。

    NEXT_DAY 将返回与指定日期在同一个星期或之后一个星期内的你所要求的星期天数的确切日期

       SYSDATE 将返回系统的日期和时间

3.数学函数

              ABS(字段/数值) 函数返回给定数字的绝对值
       
CEIL 返回与给定参数相等或比给定参数在的最小整数FLOOR 则正好相反它返回

与给定参数相等或比给定参数小的最大整数。

    COS SIN TAN SINH TAN TANH 函数可以返回给定参数的三角函数值默认的参数认定为弧度制

       EXP 将会返回以给定的参数为指数以e 为底数的幂值

LN LOG这是两个对数函数其中LN 返回给定参数的自然对数
   
MOD 返回余数
       POWER(
参数1/参数2) 该函数可以返回某一个数对另一个数的幂在使用幂函数时第一个参数为底数第二个指数
    SIGN如果参数的值为负数那么
SIGN 返回-1 如果参数的值为正数那么SIGN 返回1如果参数为零那么SIGN 也返回零
    SQRT()该函数返回参数的平方根由于负数是不能开平方的所以我们不能将该函数应用于负数

4 字符函数

CHR该函数返回与所给数值参数等当的字符返回的字符取决于数据库所依赖的字符集
    CONCAT(参数1/参数2)该函数将两个参数进行字符串连接。

INITCAP(参数)该函数将字段的第一个字母变为大写,其它的字母变为小写。
       LOWER
UPPERLOWER 将参数转换为全部小写字母而UPPER 则把参数全部转换成大写字

LPADRPAD 该函数为字符串扩展函数,需要3个参数,参数1为目标字符串,参数2为要扩充的宽度,如20,参数3为填充字符,默认是空格。区别,一个是左填充,一个是右填充。注意:原来数据库中定义的字符长度。
       LTRIM
RTRIM(参数1/参数2)为剪切指定参数中的指定字符串,参数2默认为空格。
       REPLACE
()该函数需要三个参数第一个参数是需要搜索的字符串第二个参数是搜索的内容第三个参数则是需要替换成的字符串如果第三个参数省略或者是NULL 那么将只执行搜索操作而不会替换任何内容。
   
SUBSTR()这个函数有三个参数,允许你将目标字符串的一部份输出第一个参数为目标字符串,第二个字符串是将要输出的子串的起点第三个参数是将要输出的子串的长度
   
TRANSLATE123这一函数有三个参数目标字符串源字符串和目的字符串在目标字符串与源字符串中均出现的字符将会被替换成对应的目的字符串的字符.

INSTR用于返回字符串中满足特定的内容的位置。(返回的是数字)。它有三个参数,它的第一个参数是目标字符串第二个参数是匹配的内容第三和第四个参数是数字用以指定开始搜索的起点以及指出第几个满足条件的将会被返回。如果第三个数值为负数那么将会从后向前搜索

LENGTH 将返回指定字符串的长度

       5转换函数

TO_CHAR()该函数的最初功能是将一个数字转换为字符型,也可以将日期型函数转换成字符串
   
TO_NUMBER()它是将一个字符串型数字转换为数值型。
   
GREATESTLEAST这两个函数将返回几个表达式中最大的和最小的。注意GREATEST 将会返回在字母表中最靠后的字符开头的字符串

USER该函数返回当前使用数据库的用户的名字

10.   ORDER BY 例子SQL>SELECT * FROM CHECKS ORDER BY REMARKS ASC,PAYEE DESC

11.   EXISTS ANY ALL
如果子查询返回的内容为非空时EXISTS 返回TRUE 否则返回FALSE

为了优化SQL语句性能,在使用多个OR的情况下尽可能的使用in来代替,如:
SQL> SELECT *

2 FROM FACT_TABLE

3 WHERE STATUS_CD = 'A'

4 OR STATUS_CD = 'B'

5 OR STATUS_CD = 'C'

6 OR STATUS_CD = 'D'

7 OR STATUS_CD = 'E'

8 OR STATUS_CD = 'F'

9 ORDER BY STATUS_CD;
可替换成
SQL> SELECT *

2 FROM FACT_TABLE

3 WHERE STATUS_CD IN ('A','B','C','D','E','F')

4 ORDER BY STATUS_CD;

以提高性能和使语句更简洁易读。

12.   同理,避免多次使用Like OR,可以用SUBSTR(......) IN 来代替。

SQL 语言自身很强大,尤其是许多软件对其进行了扩展,但是由于我的使用紧用于 java 里调用预编译语句,因此这里就不详细介绍了。
先写到这,以后会补充的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值