SQL语法:SELECT / SELECT DISTINCT / WHERE

目录

SELECT 语法:

SELECT DISTINCT 语法:

WHERE 语句:


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 为要查询内容中的模糊信息。

  1.  % 表示多个字值,_ 下划线表示一个字符;
  2.  M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
  3.  %M% : 表示查询包含M的所有内容。
  4.  %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。

猜你喜欢

转载自blog.csdn.net/Doutd_y/article/details/81943385