SQL Server 基础III

3/7/2017来源:SQL技巧人气:2622

一.查询数据

1.select top clause(子句)

SELECT TOP number|percent column_name(s) FROM table_name;

注:并不是所有数据库系统都支持select top子句

eg.显示表格中的前两行数据

SELECT TOP 2 * FROM Customers;

eg.显示表格中的前50%的数据

SELECT TOP 50 PERCENT * FROM Customers;

2.like Operator(操作符)

是用来用在where子句,在列中搜索指定模式的数据

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;

eg.在所有数据中寻找city列中,以s开头的数据

SELECT * FROM Customers WHERE City LIKE 's%';

这里的%用来指代其它字母

eg.在所有数据中寻找city列中,以s结尾的数据

SELECT * FROM Customers WHERE City LIKE '%s';

eg.在所有数据中寻找country列中,包含land的数据

SELECT * FROM Customers WHERE Country LIKE '%land%';

eg.在所有数据中寻找country列中,不包含land的数据

SELECT * FROM Customers WHERE Country NOT LIKE '%land%';

注:not关键字用来选择不匹配的数据

二.wildcards(通配符)

1.通配符可以用来代替字符串中的其它字母,通常和like操作符一起使用

2.以下是SQL用到的通配符

3.% wildcard(通配符)

eg.在所有数据中寻找city列中,ber开头的数据

SELECT * FROM Customers WHERE City LIKE 'ber%';

eg.在所有数据中寻找city列中,包含es的数据

SELECT * FROM Customers WHERE City LIKE '%es%';

4._ wildcard(通配符)

eg.在所有数据中寻找city列中,以任意一个字母开始,然后是erlin的数据

SELECT * FROM Customers WHERE City LIKE '_erlin';

eg.在所有数据中寻找city列中,以L字母开始,然后是任意一个字母,然后是n字母,然后是任意一个字母,然后是on字母的数据

SELECT * FROM Customers WHERE City LIKE 'L_n_on';

5.[charlist] wildcard(通配符)

eg.在所有数据中寻找city列中,以b或s或p开头的数据

SELECT * FROM Customers WHERE City LIKE '[bsp]%';

eg.在所有数据中寻找city列中,以a或b或c开头的数据

SELECT * FROM Customers WHERE City LIKE '[a-c]%';

6.[!charlist] wildcard(通配符)

eg.在所有数据中寻找city列中,不是以b或s或p开头的数据

SELECT * FROM Customers WHERE City LIKE '[!bsp]%';

SELECT * FROM Customers WHERE City NOT LIKE '[bsp]%';

三.查询数据

1.in operator(操作符)

在where子句中指定显示多个数据

SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...);

eg.在所有数据中寻找city列中,是paris和london的数据

SELECT * FROM Customers WHERE City IN ('Paris','London');

2.between operator(操作符)

在where子句中指定显示某个区间的数据,此区间可以是数字,文本,日期

SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;

eg.在数据中寻找PRice列中,介于10和20之间的数据

SELECT * FROM Products WHERE Price BETWEEN 10 AND 20;

eg.在数据中寻找price列中,介于10和20之外的数据

SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 20;

3.between和in一起用

eg.在数据中寻找price列中,介于10和20之间的数据,而且categoryID列中不是1或2或3的数据

SELECT * FROM Products WHERE (Price BETWEEN 10 AND 20) AND NOT CategoryID IN (1,2,3);

4.between用于文本区间

eg.在数据中寻找productname列中,开始字母介于C和M之间的数据

SELECT * FROM Products WHERE ProductName BETWEEN 'C' AND 'M';

eg.在数据中寻找productname列中,开始字母介于C和M之外的数据

SELECT * FROM Products WHERE ProductName NOT BETWEEN 'C' AND 'M';

5.between用于日期区间

eg.在数据中寻找orderdate列中,时间介于07/04/1996和07/09/1996之间的数据

SELECT * FROM Orders WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

注:不同的数据库中,between会产生不同的结果:

有的数据库中between是不包含两个区间值,

有的数据库中between包含两个区间值,

有的数据库中between包含前一个区间值,不包含后一个区间值。

所以要确认好所使用的数据库对between的运行结果。