【检索】
SELECT #a,b,c为列名,tableA为表名
检索不同
SELECT DISTINCT a, b, c
FROM tableA;
#符号*代表全部,井号为整行注释
SELECT * FROM tableA;
检索限制
SELECT Top 5 a FROM tableA;
SELECT a FROM tableA
LIMIT 5 OFFSET 6; --从第7行开始输出5行(7-11行)--为行内注释
/*框定范围注释*/
排序检索
#按照表名排序,ODDER BY语句一定是SELECT语句的最后一个子句
SELECT a,b,c
FROM tableA
ORDER BY b,c;
#按照表在select语句中相对位置排序
SELECT a,b,c
FROM tableA
ORDER BY 2,3;
#排序方向选定,默认升序,降序为DESCENDING
SELECT a,b,c
FROM tableA
ORDER BY 2 DESC,3; --先降序2,然后默认升序3
【过滤】
WHERE子句指定搜索条件
范围、多条件过滤
SELECT a,b,c
FROM tableA
WHERE a=‘DLL01’ AND b<>5 --多条件同时满足
ORDER BY 2 DESC,3; --ORDER BY在WHERE后
SELECT a,b,c
FROM tableA
WHERE a=‘DLL01’ or b BETWEEN 2 AND 4; --满足一个条件即可
#SQL优先处理AND语句,因此有OR语句在先时需要括号
SELECT a,b,c
FROM tableA
WHERE (a='DLL01' OR a='BLL02' ) AND b>=4;
#IN语句等于OR语句的用法,不过更快速且动态
SELECT a,b,c
FROM tableA
WHERE a IN ('DLL01','BLL02','CLL03')
ORDER BY a;
#否定语句NOT
SELECT a,b,c
FROM tableA
WHERE NOT a='DLL01'
ORDER BY 2,3;
空值检查
#空值不是0
SELECT a
FROM tableA
WHERE a IS NULL;
通配符过滤(只能用于文本字段)
LIKE语句
#百分号%通配符:表示任意字符出现任意次数,区分大小写,不匹配NULL,注意空格与否
SELECT a
FROM tableA
WHERE a LIKE '%LL%' OR '%01' OR ‘% bean bear’; --LL在中间或者01结尾
#下划线_通配符:注意空格与否,只匹配单个字符
SELECT a
FROM tableA
WHERE a LIKE '__ inch teddy bear'; --两个下划线,只能输出两位数的,字符数和下划线数严格对应,不能多也不能少
#方括号[]通配符:匹配方括号内任意一个字符
SELECT a
FROM tableA
WHERE a LIKE '[JM]%' --J或者M开头的任意行
ORDER BY a;
【计算字段】
创建计算字段
#拼接字段:将一个值附加到另一个值,联结在一起构成单个值,操作符为+或者||
SELECT a + '(' + b + ')' --a&(&b&) 拼起来
FROM tableA
ORDER BY a;
SELECT a || '(' || b || ')'
FROM tableA
ORDER BY a;
#在MySQL和MariaDB中用Concat
SELECT Concat (a,'(',b,')') --Concat(列,括号,列,括号)
FROM tableA
ORDER BY a;
#去掉空格拼接:RTRIM去掉右边空格,LTRIM去掉左边空格。TRIM去掉所有空格
SELECT RTRIM(a) + '(' + LTRIM(b) + ')' AS ab_title --去空格拼接的字段重命名为ab_title
FROM tableA
ORDER BY a;
#执行算术计算,
SELECT id,
quantity,
price,
quantity*price AS total_price
FROM ordertable
WHERE order_code=20008;