Sql的常见指令、函数、关键字、视图、索引等

一:sql基础

1.查询不重复的数据关键字

DISTINCT

2.列取别名可以直接用As或者

price(sale/2)或者直接取:WHOLESALE * 0.9 NEWPRICE

3.模糊查询的关键字:like,通配符%,在前表示以什么结尾,在后表示以什么开头。某一确定的位置上有字符的数据,可用通配符_

SELECT * FROM PARTS WHERE LOCATION LIKE “%BACK%”;

SELECT * FROM FRIENDS WHERE PHONE LIKE "555-6_6_";

SELECT * FROM FRIENDS WHERE FIRSTNAME LIKE " _L%";//联合使用查询第二个字符为L的

4.sql判断非空,用is,=更多作比较

5.union连接两表时,会直接返回不重复的字段,也就是去重,union all则会返回重复的字段。INTERSECT 相交 INTERSECT 返回两个表中共有的行。MINUS 返回的记录是存在于第一个表中但不存在于第二个表中的记录。查询格式都是:

select 字段 from A union/union all/INTERSECT/minus   select 字段 from B;

6.in关键字,某列制定一个范围寻找,如:

SELECT *  FROM FRIENDS  WHERE AREACODE IN (100,381,204);

二:sql的函数

1.汇总函数:count、sum、AVG、MAX,MIN等,count是统计数量的函数。sum,AVG,MAX,MIN只处理数字,可以同时使用,而且都可以统计几个不同的行,这些查询都不能在where中使用,这个时候就可以子查询。举例如下:

SELECT COUNT(column1), SUM(column2) AVG(column1), Max(column2) FROM your_table;

2.时间函数:

ADD_MONTHS:在指定的时间列进行增加月的函数,使用格式ADD_MONTHS(字段,数字),LAST_DAY:在指定的时间列推算出当月或者年最后一天。

MONTHS_BETWEEN:计算两个列的月数相差,类似于做减法,所以可能有负数,这样正好可以判断月数的顺序。用法:MONTHS_BETWEEN(列1,列2)

NEW_TIME:可以调节时间字段的时区。用法:NEW_TIME (“ENDDATE”," EDT"," PDT")

3.数学函数:

ABM:取整函数, COS SIN TAN :函数可以返回给定参数的三角函数值,MOD:相除后的余数

4.字符串函数:

CONCAT将两个字符串连接起来,INITCAP首字母大写,LOWER 将参数转换为全部小写字母而 UPPER 则把参数全部转换成大写字 母,LENGTH将返回指定字符串的长度。

5.转换函数:

TO_CHAR:该函数的功能是将一个数字转换为字符型。

TO_NUMBER :该函数与 TO_CHAR 函数相对应 显而易见 它是将一个字符串型数字转换为数值型。

三:子句

where:where就是做条件限制的,后面不能跟汇总函数做限制。

Starting with:作用与like相同,用法:SELECT PAYEE ,AMOUNT ,REMARKS FROM CHECKS WHERE PAYEE STARTING WITH('Ca');

order by子句:排序子句,根据字段的类型,如果是数字则按大小,字符串则是字母顺序,汉字则是按照拼音。

group by:group by多用于多对多,如:SELECT PAYEE ,SUM (AMOUNT )FROM CHECKS GROUP BY PAYEE,这样就查出了每个payee花的总钱数。汇总函数,后面就经常用group by。

having子句:having子句也是条件限制,总是跟group by,能够跟汇总函数,经典的例子,求平均工资小于多少的Sql就不能用where,用having。如:SELECT TEAM ,AVG (SALARY) FROM ORGCHART GROUP BY TEAM HAVING AVG (SALARY)>38000;

四:连表

1.左外连接和右外连接,左外连接会保留左表的所有数据,以及右表匹配的数据,右外连接反之。

左外连接结果为:Aid:1,1.2,2,2,2,3,3,4,5

 Bid:1,1,2,2,2,2,3,3,null,null,左外连接是以左表数据为主加上匹配的,右表匹配符合的保留,不匹配的为null

右外连接:Aid:1,1,2,2,2,2,3,3

Bid: 1,1,2,2,2,2,3,3右外连接以右表数据为主,再加上匹配的,左表匹配的保留,不匹配的为null,左表明显小于右表,所以没有为null的。

五:子查询

子查询可以让你把查询的结果与另一个查询绑定在一起 通用的语法格式 如下:  SELECT * FROM TABLE1 WHERE TABLE1.SOMECOLUMN = (SELECT SOMEOTHERCOLUMN FROM TABLE2 WHERE SOMEOTHERCOLUMN = SOMEVALUE)

嵌套就是将一个子查询嵌入到另一个子查询中去 例如 Select * FROM SOMETHING WHERE ( SUBQUERY(SUBQUERY(SUBQUERY)));

六:视图索引

1.视图:视图像是java中的封装,只是它是一个虚拟表,创建一个视图,指定视图代表的Sql语句,后面可以直接调用视图简化代码,提高复用性。简单的例子:

CREATE VIEW DEBTS AS SELECT * FROM BILLS;//创建

SELECT * FROM DEBTS;//使用

2.索引:索引跟group by接近,但是性能更加高,为表的一个列,创建index后,每次查询该表都会按照该列,进行排序。对于小表索引不会提升性能,对于大表才是提升。索引会占空间,空间换时间,提升性能。举个例子:create index Cname on class(C_name);

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值