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;

 

转载于:https://www.cnblogs.com/craft0625/p/8033863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值