SQL语句

Posted craft0625

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句相关的知识,希望对你有一定的参考价值。

SELECT 


SELECT 语句用于从数据库中选取数据。

SELECT columnA_name,columnB_name
FROM table_name;

选取从表中选取列A和列B两列的数据。

SELECT * FROM table_name;

 

选取表的所有数据。

一、DISTINCT关键字过滤重复

SELECT DISTINCT 过滤重复结果。

SELECT DISTINCT column_name,column_name
FROM table_name;

 

不重复选取,加上DISTINCT会将一样的结果过滤掉。

二、WHERE子句

WHERE 子句用于提取那些满足指定标准的记录,它选取的是记录。

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

 

WHERE 子句中的常见的运算符:

运算符描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值

运算符在比较时,如果是数字字段不需要加‘‘,如果是非数字字段需要加‘‘。

根据运算符的分类大致如下:

1.比较运算符

比较运算符包涵:= > < >= ,<=, !=,<> 表示(不等于)

SELECT * FROM emp WHERE  ename =SMITH;
SELECT * FROM emp WHERE  ename!=SMITH;
SELECT * FROM emp WHERE  eage=18;
SELECT * FROM emp WHERE  eage>18;

2.逻辑运算

逻辑运算符包涵:AND(与)  OR(或)  NOT(非)。

SELECT * FROM emp WHERE sal > 2000 AND sal < 3000;
SELECT * FROM emp WHERE sal > 2000 OR ename = SMITH;
SELECT * FROM emp WHERE NOT sal > 2000;
逻辑运算符优先级:()>NOT>AND>OR

3.特殊条件

  • 空值判断: IS NULL
SELECT * FROM emp WHERE comm IS NULL;

 返回空值的列

  • BETWEEN ... AND(返回区间之内的值)
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000;

 返回区间的值,这个值可以为数字,可以为英文字符,也可以为日期。例如:

SELECT * FROM Websites
WHERE name NOT BETWEEN A AND H;
SELECT * FROM access_log
WHERE date BETWEEN 2016-05-10 AND 2016-05-14;

NOT BETWEEN ...AND(返回不在区间之内的值)

  • IN
SELECT * FROM emp WHERE sal IN (5000,3000,1500);

 返回与()的值相等的列,IN可以规定多个值,=规定一个值

  •  模糊查询LIKE
SELECT * FROM emp WHERE ename LIKE M%;

 % 表示多个字值,_ 下划线表示一个字符

 M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。

 %M% : 表示查询包含M的所有内容。

 %M_ : 表示查询以M在倒数第二位的所有内容。

 三、ORDER BY

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

 ASC升序,DESC降序。默认为降序。ASC升序,越来越大。

SELECT column_name,column_name
FROM table_name
ORDER BY columnA_name,columnB_name ASC|DESC;

 

 依次根据列B排序,在列B的基础上再排列A。

 四、TOP关键字, LIMIT, ROWNUM从句

SELECT TOP 子句用于限制要返回的记录的数目。

注释:并非所有的数据库系统都支持 SELECT TOP 子句。

SQL Server / MS Access 语法

SELECT TOP number|percent column_name(s)
FROM table_name;

SQL Server中可以使用百分比显示:浮点型数值+Percent

MySQL 语法

SELECT column_name(s)
FROM table_name
LIMIT number;

Oracle 语法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

 

以上是关于SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

动态SQL基础概念复习(Javaweb作业5)

Mybatis超强大的动态SQL大全

mybatis学习日志二

使用 with as 优化SQL

Mybatis超强大的动态SQL大全