SELECT
查询列名FROM表名
1. SELECT column_name,column_name FROMtable_name;
2. SELECT * FROM table_name;
DISTINCT
SELECT DISTINCT一个列包含多个重复值时,用于返回不同的值
1. SELECT DISTINCT column_name,column_name FROM table_name;
ORDER BY
排序
SELECT column_name,column_name FROM table_name
ORDER BY column_name,column_name ASC|DESC;
列名从左至右执行排序,若不写ASC DESC,默认为升序ASC
ASC 升序
DESC 降序
TOP
SELECT TOP number|precent column_name FROM table_name;
查询前x条记录或是查询x%的记录
LIMIT
SELECT column_name(s) FROM table_name LIMITnumber;
WHERE
加条件查询
SELECT column_name,column_name FROM table_name WHERE column_name operator value;
Select+要查询的列名可多个+From+表名+Where+限制条件执行值
下面的运算符可以在WHERE子句中使用:
运算符 | 描述 |
|
= | 等于 | 比较运算符 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
|
> | 大于 |
|
< | 小于 |
|
>= | 大于等于 |
|
<= | 小于等于 |
|
BETWEEN | 在某个范围内 |
|
LIKE | 搜索某种模式 |
|
IN | 指定针对某个列的多个可能值 |
|
逻辑运算
AND:与 同时满足两条件的值
SELECT * FROM table_name WHERE column1 >1000 AND column3 >2000;
查询表中column1列中大于 1000 与column3大于2000 的值,显示全部列名
OR:或 满足其中一个条件的值
SELECT * FROM table_name WHERE column1 =500 or column1 = 800;
AND & OR 运算符,
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
Not:非 满足不包涵该条件的值
SELECT * FROM table_mame WHERE NOT column1 > 1000;
查询表中column1小于1000的值,显示全部列
逻辑运算的优先级:() not and or
特殊条件
IS NULL:空值判断
SELECT * FROM table_name WHERE column1 IS NULL;
BETWEEN AND
在之间的值
SELECT * FROM table_name WHERE column1BETWEEN 300AND 500;
IN ( , ,)
有多个值时
SELECT column_name(s) FROM table_name
WHERE column_name IN (value1,value2,...);
IN可以规定多个值, = 等于规定一个值
LIKE
模糊查询
SELECT column_name(s) FROM table_name
WHERE column_name LIKE pattern ;
--LIKE后的值为非数字时需要加‘单引号’
% 表示多个字值,_ 下划线表示一个字符;
M% : 为通配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
%M% : 表示查询包含M的所有内容。
%M_ : 表示查询以M在倒数第二位的所有内容。
通配符 | 描述 |
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] | 不在字符列中的任何单一字符 |
1.^位运算中是异或的意思,即
1^1=0,
0^1=1,
1^0=1,
0^0=0
2.在like表达式中^表示非得意思,如
select name from tablename where name like 'a[^1,2,3]c'
表示的是选取name字段中name值中不包含a1c,a2c,a3c的其他值