一.查询数据
1.selecttop 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_nameWHERE column_name LIKE pattern;
eg.在所有数据中寻找city列中,以s开头的数据
SELECT * FROM CustomersWHERE City LIKE 's%';
这里的%用来指代其它字母
eg.在所有数据中寻找city列中,以s结尾的数据
SELECT * FROM CustomersWHERE City LIKE '%s';
eg.在所有数据中寻找country列中,包含land的数据
SELECT * FROM CustomersWHERE Country LIKE '%land%';
eg.在所有数据中寻找country列中,不包含land的数据
SELECT * FROM CustomersWHERE Country NOT LIKE '%land%';
注:not关键字用来选择不匹配的数据
二.wildcards(通配符)
1.通配符可以用来代替字符串中的其它字母,通常和like操作符一起使用
2.以下是SQL用到的通配符
3.% wildcard(通配符)
eg.在所有数据中寻找city列中,ber开头的数据
SELECT * FROM CustomersWHERE City LIKE 'ber%';
eg.在所有数据中寻找city列中,包含es的数据
SELECT * FROM CustomersWHERE City LIKE '%es%';
4._ wildcard(通配符)
eg.在所有数据中寻找city列中,以任意一个字母开始,然后是erlin的数据
SELECT * FROM CustomersWHERE City LIKE '_erlin';
eg.在所有数据中寻找city列中,以L字母开始,然后是任意一个字母,然后是n字母,然后是任意一个字母,然后是on字母的数据
SELECT * FROM CustomersWHERE City LIKE 'L_n_on';
5.[charlist] wildcard(通配符)
eg.在所有数据中寻找city列中,以b或s或p开头的数据
SELECT * FROM CustomersWHERE City LIKE '[bsp]%';
eg.在所有数据中寻找city列中,以a或b或c开头的数据
SELECT * FROM CustomersWHERE City LIKE '[a-c]%';
6.[!charlist] wildcard(通配符)
eg.在所有数据中寻找city列中,不是以b或s或p开头的数据
SELECT * FROM CustomersWHERE City LIKE '[!bsp]%';
或
SELECT * FROM CustomersWHERE City NOT LIKE '[bsp]%';
三.查询数据
1.in operator(操作符)
在where子句中指定显示多个数据
SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...);
eg.在所有数据中寻找city列中,是paris和london的数据
SELECT * FROM CustomersWHERE City IN ('Paris','London');
2.between operator(操作符)
在where子句中指定显示某个区间的数据,此区间可以是数字,文本,日期
SELECT column_name(s)FROM table_nameWHERE column_name BETWEEN value1 AND value2;
eg.在数据中寻找PRice列中,介于10和20之间的数据
SELECT * FROM ProductsWHERE Price BETWEEN 10 AND 20;
eg.在数据中寻找price列中,介于10和20之外的数据
SELECT * FROM ProductsWHERE Price NOT BETWEEN 10 AND 20;
3.between和in一起用
eg.在数据中寻找price列中,介于10和20之间的数据,而且categoryID列中不是1或2或3的数据
SELECT * FROM ProductsWHERE (Price BETWEEN 10 AND 20)AND NOT CategoryID IN (1,2,3);
4.between用于文本区间
eg.在数据中寻找productname列中,开始字母介于C和M之间的数据
SELECT * FROM ProductsWHERE ProductName BETWEEN 'C' AND 'M';
eg.在数据中寻找productname列中,开始字母介于C和M之外的数据
SELECT * FROM ProductsWHERE ProductName NOT BETWEEN 'C' AND 'M';
5.between用于日期区间
eg.在数据中寻找orderdate列中,时间介于07/04/1996和07/09/1996之间的数据
SELECT * FROM OrdersWHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;
注:不同的数据库中,between会产生不同的结果:
有的数据库中between是不包含两个区间值,
有的数据库中between包含两个区间值,
有的数据库中between包含前一个区间值,不包含后一个区间值。
所以要确认好所使用的数据库对between的运行结果。
新闻热点
疑难解答