首页 > 代码库 > SQL必知必会摘要
SQL必知必会摘要
数据检索 | 2.2 检索单个列 | SELECT prod_name FROM Products; | SQL语句不区分大小写 |
2.3 检索多个列 | SELECT prod_name,prod_id,prod_price FROM Products; | ||
2.4 检索所有列 | SELECT * FROM Products; | ||
2.5 检索不同的值 | SELECT DISTINCT vend_id FROM Products; | ||
2.6 限制结果 | SELECT TOP 5 prod_name FROM Products;(SQL server、Access) SELECT prod_name FROM Products FETCH FIRST 5 ROWS ONLY;(DB2) SELECT prod_name FROM Products WHERE ROWNUM <=5;(Oracle) SELECT prod_name FROM Products LIMIT 5;(MySQL、SQLite等) SELECT prod_name FROM Products LIMIT 4 OFFSET 3;(LIMIT 3,4) |
从第3行起的4行数据 | |
2.7 使用注释 | SELECT prod_name --这是一条注释(--之后的是注释) FROM Products; # 这是一条注释 (单行注释) /*这是一条注释,很长 (跨行注释,通常用于代码注释) 很长的注释*/ |
||
排序检索数据 | 3.1 排序数据 | SELECT prod_name FROM Products ORDER BY prod_name; | 字母升序拍;可以通过非检索列进行排序 |
3.2 按多个列排序 | SELECT prod_name,prod_id,prod_price FROM Products ORDER BY prod_price,prod_name; |
prod_price相同时才按照prod_name | |
3.3 按列位置排序 | SELECT prod_name,prod_id,prod_price FROM Products ORDER BY 2,3; |
表示先按prod_id,再按prod_price排序 | |
3.4 指定排序方向 | SELECT prod_name,prod_id,prod_price FROM Products ORDER BY prod_price DESC; |
降序排列,大小写字母在排序时是否区分取决于数据库的配置 | |
SELECT prod_name,prod_id,prod_price FROM Products ORDER BY prod_price DESC,prod_name; |
prod_name仍为升序,ASC表升序(默认) | ||
过滤数据 | 4.1 使用WHERR | SELECT prod_name,prod_price FROM Products WHERE prod_price = 3.49; |
|
SELECT prod_name,prod_price FROM Products WHERE prod_price = 3.49 ORDER BY prod_name; |
WHERE和ORDER BY组合用法 | ||
4.2 WHERE子句操作符 | =,<>,!=,<,<=,!<,>,>=,!>,BETWEEN,IS NULL | ||
4.2.2 不匹配检查 | SELECT vend_id,prod_name FROM Products WHERE vend_id<>‘DLL01‘; |
不匹配检查,字符串需要加引号<>与!=等价 | |
4.2.3 范围值检查 | SELECT prod_name,prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10 |
包括5和10 | |
4.2.4 空值检查 | SELECT prod_name,prod_price FROM Products WHERE prod_price IS NULL; |
NULL与非匹配:空值不会被返回 | |
高级数据过滤 | 5.1.1 AND操作符 | SELECT prod_id,prod_price,prod_name FROM Products WHERE vend_id = ‘DLL01‘ AND prod_price<=4; |
可用多个AND,增加过滤条件 |
5.1.2 OR操作符 | SELECT prod_id,prod_price,prod_name FROM Products WHERE vend_id = ‘DLL01‘ OR vend_id = ‘BRS01‘; |
第一个条件满足时,不管第二个条件是否满足,相应行都被检索出来 | |
SELECT prod_id,prod_price,prod_name FROM Products WHERE (vend_id = ‘DLL01‘ OR vend_id = ‘BRS01‘)AND prod_price<=10; |
组合使用,使用圆括号。AND优先级较高 | ||
5.2 IN操作符 | SELECT prod_name,prod_price FROM Products WHERE vend_id = IN( ‘DLL01‘,‘BRS01‘) ORDER BY prod_name; |
功能与OR相当 | |
SELECT prod_name,prod_price FROM Products WHERE vend_id = ‘DLL01‘OR vend_id = ‘BRS01‘ ORDER BY prod_name; |
改写IN语句 | ||
5.3 NOT操作符 | SELECT prod_name FROM Products WHERE NOT vend_id = ‘DLL01‘ ORDER BY prod_name; |
||
SELECT prod_name FROM Products WHERE vend_id <> ‘DLL01‘ ORDER BY prod_name; |
改写NOT语句 | ||
用通配符进行过滤 | 6.1.1 %通配符 | SELECT prod_id,prod_name FROM Products WHERE prod_name LIKE ‘Fish%‘; |
找出以Fish起头的词,Fish之后可以是0个字符;Acess需要使用*非%;大小写是否区分取决于数据库配置 |
SELECT prod_id,prod_name FROM Products WHERE prod_name LIKE ‘%bean bag%‘; |
匹配任何包含bean bag的值 | ||
SELECT prod_name FROM Products WHERE prod_name LIKE ‘F%y‘; |
匹配F开头,y结尾的值(b%@forta.com) %匹配0个、1个、多个字符 如果字符末尾是空格,则需要用F%y%来匹配 |
||
WHERE prod_name LIKE ‘%‘; | 不配匹配prod_name为NULL的行 | ||
6.1.2 _通配符 | SELECT prod_id,prod_name FROM Products WHERE prod_name LIKE ‘__ inch teddy bear‘; |
DB2不支持,Access用?非_ _只匹配单个字符,功能与%通,如需匹配2个字符,则需要使用__ |
SQL必知必会摘要
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。