日期:2014-05-16  浏览次数:20447 次

需要注意的问题

1.[]表示可有可无的项, <>不等于 。


2.distinct关键字放在列前面,只能是一个列的前面。


3.SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是 数值,请不要使用引号


4.数据量巨大的库,可以用限定返回查询的记录数目,各个数据库不一样oracle中 where ROWNUM< number

。标准sql:SELECT TOP 2 [PERCENT] * FROM Persons返回2条[2%]记录。


5.where columnN like与通配符连用%,_,[abc],[^eerf] ;WHERE column_name IN (value1,value2,...)


6. JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN?

? ? ? ?SELECT column_name(s)

? ? ? ?FROM table_name1

? ? ? ?INNER JOIN table_name2?

? ? ? ?ON table_name1.column_name=table_name2.column_name

? ? ? ?列出左、右、所有的记录行,没查到的用空补上。


7.UNION 操作符用于两个或多个 SELECT 语句的结果集的并集∪操作,不包含重复元素。请注意,UNION 。内部的 ? ? SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。UNION ALL并集操作,包含所有的值,可重复。

SELECT E_Name FROM Employees_China

UNION [ALL]

SELECT E_Name FROM Employees_USA


8.UNIQUE 约束唯一标识数据库表中的每条记录。

UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。


9.SQL 日期

当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。

只要数据包含的只是日期部分,运行查询就不会出问题。如果您希望使查询简单且更易维护,那么请不要在日期

中使用时间部分!


10.NULL 值是遗漏的未知数据

默认地,表的列可以存放 NULL 值。

如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新纪录或更新已有的记录。这意味着该字段将以 NULL 值保存。

NULL 值的处理方式与其他值不同。

NULL 用作未知的或不适用的值的占位符。---需要特殊处理。

注释:无法比较 NULL 和 0;它们是不等价的。无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。

我们必须使用 IS NULL 和 IS NOT NULL 操作符。

例如:SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)FROM Products

这里2*(1+NULL)的值未知,那么结果是 NULL。这就需要用到数据库中的函数来转换未知数据,这里应该把null转为0。

Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products