代码改变世界

SQL 学习

2013-01-15 21:20  VVG  阅读(325)  评论(0编辑  收藏  举报

注:SQL语句对大小写不敏感,但数据库中的数据却是大小写敏感的。 蓝色的文字是关键字!!

1、查询——SELECT 语句     

SELECT NAME, STARTTERM, ENDTERM FROM PRESIDENTS WHERE NAME = 'CINCOLN';

 

--------  列  名     列  名     列  名   ----- 表 名 -----  条 件 语 句  ----------

查看不重复数据:

select DISTINCT amount from checks;

2、表达式、条件语句与运算     

SELECT * FROM BIKES WHERE NAME = 'BURLEY'

运算是需要对从数据库中返回的数据进行数学处理时所用到的运算,可归为六组:数值型,比较型,字符型,逻辑型和备注型以及混合型;

举个栗子:

SELECT ITEM,WHOLESALE,WHOLESALE + 0.15 FROM PRICE;

计算+别名:

SELECT ITEM,WHOLEASALE,(WHOLESALE + 0.15) DIYNAME FROM PRICE; -- 也可以不用括号,计算可以使用加减乘除取模(+ - * / %)

查询空值: 

SELECT * FROM PRICE WHERE WHOLESALE IS NULL;  --而不使用“=” ;相反非空值为 IS NOT NULL;

比较: 

SELECT * FROM FRIENDS WHERE AREACODE > 300;   --查询大于300的记录 比较符号(>   =   <   !=   <>    >=    =<)

LIKE语句: 

SELECT * FROM PARTS WHERE LOCATION LIKE '%BACK%'; --查询含有BACK这几个字符的数字

% 是一种通配符,表任意值,比如A开头的为 A%

_ 下划线,表示任意一个字符,只占一位,如C开头的两位数:C_ ;也可以使用多个下划线如: W_E_E 可以匹配WHERE ;   _L% 表示所有第2个字母为L的记录

|| 连接数据

SELECT FIRSTNAME || LASTNAME ENTIRENAME FROM FRIENDS;  -- 连接两个列 组成一个名为ENTIRENAME的列

SELECT LASTNAME ||  ',' || FIRSTNAME NAME FROM FRIENDS;  -- 这条语句在姓与名之间插入了一个逗号。  不能使用+号连接,会出错

AND 逻辑运算:同时满足条件

OR 逻辑运算:任意一个条件满足就会返回记录。

集合运算:

      重复——UNION  与  UNION ALL

      UNION 返回两个查询的结果并除去重复部分:

 SELECT NAME FROM SOFTBALL UNION SELECT NAME FROM FOOTBALL;   --UNION ALL 包括重复的

      相交——INTERSECT:返回两个表中共有的行。                

SELECT * FROM FOOTBALL  INTERSECT  SELECT * FROM SOFTBALL;

       相减——MINUS:返回的记录是存在一第一个表中,但是不存在于第二个表中的记录                

SELECT * FROM FOOTBALL MINUS SELECT * FROM SOFTBALL;

       从属运算:

      (IN and BETWEEN)                

SELECT * FROM FRIENDS WHERE STATE = 'CA' OR STATE = 'CO' OR STATE = 'LA';  -- 也可以直接如下:

SELECT * FROM FRIENDS WHERE STATE IN('CA','CO','LA');  -- IN中也可以使用数字   如:*****WHERE ID IN(122,123,1234)

      BTWEEN :  

SELECT * FROM PRICE WHERE WHOLESALE BETWEEN 0.25 AND 0.75   -- BTWEEN 包括边界值

  待续。。。