SQL Server 基础III

一.查询数据

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的运行结果。


IT文库 » SQL Server 基础III
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址