SQL笔记 -- 基本查询语句

本文详细介绍了SQL的基本查询语句,包括SELECT语句的结构、列别名的使用、去除重复行、条件查询、排序以及分页功能。通过实例演示了如何在实际操作中应用这些概念。
摘要由CSDN通过智能技术生成

SQL基本查询语句

1. SELECT … FROM

-- 语法格式:
 SELECT 列名
 FROM 表名

举例:

-- 查询emp表中的所有字段
-- 通配符 * 可以表示表中所有的字段(列)
SELECT * 
FROM emp;

-- 查询emp表中的emp_name,salary
SELECT emp_name,salary 
FROM emp;

2. 列的别名

有些场景需要对列重命名,方便后续操作,这时就需要对列起一个别名。

-- 语法格式:
 SELECT 列名 AS 别名
 FROM 表名
 
 说明:AS可以省略,当别名中包含空格或特殊的字符时要用双引号""把别名包起来,其他时候可包可不包。

举例:

-- 查询emp表中的emp_name,salary,并将emp_name改名为name
SELECT emp_name AS name,salary 
FROM emp;

-- 查询emp表中的emp_name,salary,并将emp_name改名为name
SELECT emp_name name,salary 
FROM emp;

-- 查询emp表中的emp_name,salary,并将emp_name改名为name
SELECT emp_name "name",salary 
FROM emp;

3. 去除重复行

默认情况下,查询会返回全部行,包括重复行。当我们需要查看不同的数据时,就需要在查询时将重复行去除。

-- 语法格式:
 SELECT DISTINCT 列名
 FROM 表名

举例:

-- 查询emp表中有哪些不同的salary
SELECT DISTINCT salary 
FROM emp;

/*查询emp表中的不同的emp_name,salary
注意:当同时查询多个列时,所有列的值都相同的行才可以被去除
如(张三,1000)与(张三,5000)是不属于重复行的
*/
SELECT DISTINCT emp_name,salary 
FROM emp;

4. 条件查询

-- 语法格式:
SELECT 字段1,字段2
FROM 表名
WHERE 查询条件

注意:WHERE子句要写在FROM子句之后,且要紧挨FROM子句。

举例:

-- 查询emp表中薪水大于3000的员工姓名
SELECT emp_name
FROM emp
WHERE salary > 3000;

5. 排序

在进行结果展示时,对某一列数据排序后数据会更加直观。

-- 语法格式:
SELECT 字段1,字段2
FROM 表名
WHERE 查询条件
ORDEY BY 字段1,字段2

注意:
a.ORDEY BY子句后面可以指定排序的顺序,ASC(ascend): 升序、DESC(descend):降序,ASC可以省略。
b.ORDER BY子句写在SELECT语句结尾。
c.ORDER BY子句可以进行多列排序。在对多列进行排序的时候,只有第一列数据相同时,才会对第二列进行排序。如果第一列数据中所有值都不相同,将不再对第二列进行排序。

举例:

-- 单列排序
SELECT emp_name,salary
FROM emp
WHERE salary > 3000;
ORDER BY salary DESC;

--多列排序
SELECT emp_name, salary, birthday
FROM emp
WHERE salary > 3000
ORDER BY salary DESC, birthday ASC;

6. 分页

-- 语法格式:
LIMIT [位置偏移量,] 行数

注意:
LIMIT 子句必须写在SELECT语句的最后。如果同时使用ORDEY BY 和 LIMIT, 那就先写ORDER BY, LIMIT 写在最后。

举例:

-- 前10条记录:
SELECT * FROM 表名 LIMIT 0,10;
--或者
SELECT * FROM 表名 LIMIT 10;

-- 第11至20条记录:
SELECT * FROM 表名 LIMIT 10,10;

-- 第21至30条记录:
SELECT * FROM 表名 LIMIT 20,10;

-- 分页显式公式:(当前页数-1)*每页条数,每页条数
SELECT * FROM 表名
LIMIT(PageNo - 1)*PageSize,PageSize;

-- 查询emp表中薪酬大于3000的员工,并将结果按照升序排序,展示第11至20条员工信息。
SELECT emp_name, salary, birthday
FROM emp
WHERE salary > 3000
ORDER BY salary ASC, birthday ASC
LIMIT 10,10;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值