SQL笔记 -- 基本查询语句

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;

你可能感兴趣的:(SQL,sql,数据库)