目录
SELECT 语法:
SELECT column_name, column_name FROM table_name;
与
SELECT * FROM table_name
SELECT DISTINCT 语法:
SELECT DISTINCT column_name, column_name FROM table_name;
仅从 "table_name" 表的 "column_name, column_name" 列中选取唯一不同的值,也就是去掉 "column_name, column_name" 列中的重复值。
在表中,一个列可能会包含多个重复值,但有时希望仅仅列出不同(distinct)的值。
WHERE 语句:
SELECT column_name, column_name FROM table_name WHERE column_name operator value;
SELECT * FROM Websites WHERE country='CN';
该语句从“Websites”表中选取国家为“CN”的所有网站,结果为:
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
在上个实例中 'CN' 文本字段使用了单引号。
如果是数值字段,请不要使用引号。
- WHERE 子句中的运算符:
下面的运算符可以在WHERE子句中使用。
= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
例子:
1、搜索emp表中ename为SMITH的记录:SMITH用单引号引起来,表示是字符串,字符串要区分大小写。
SELECT * FROM emp WHERE ename='SMITH';
2、逻辑运算:and,or,not
SELECT * FROM emp WHERE val > 2000 and value < 3000;
SELECT * FROM emp WHERE val > 2000 or weight < 200;
SELECT * FROM emp WHERE not weight < 200;
3、特殊条件
1)空值判断:IS NULL
SELECT * FROM emp WHERE comm IS NULL;
2)BETWEEN AND(在...之间的值)
SELECT *FROM emp WHERE val BETWEEN 1000 AND 3000;
3)IN:查询emp表中的val列等于5000,3000,1000的记录
SELECT * FROM emp WHERE val IN (5000, 3000, 1000);
4)LIKE模糊查询
SELECT * FROM emp WHERE ename LIKE 'M%';
查询 emp 表中 ename 列中有 M 的值,M 为要查询内容中的模糊信息。
- % 表示多个字值,_ 下划线表示一个字符;
- M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
- %M% : 表示查询包含M的所有内容。
- %M_ : 表示查询以M在倒数第二位的所有内容。
- 不带比较运算符的 WHERE 子句:
WHERE子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当0时转化为 false,当其他值是转化为true。例如:
SELECT studentNO FROM student WHERE 0
则会返回一个空集,因为每一行记录WHERE都返回false。
SELECT studentNO FROM student WHERE 1
或者
SELECT studentNO FROM student WHERE 'abc'
都将返回student表所有studentNO列的行记录。因为每一行记录WHERE都返回true。