02. SELECT的基本使用
一、基础的SELECT语句
- 最基本的SELECT语句:
- SELECT 字段1,字段2,... FROM 表名;
- *:表中的所有的字段(或列)
- DUAL:表示伪表
- 列的别名:
- SELECT 字段名 [as] "别名" from 表名;
- 列的别名,尽量使用双引号(""),而且不建议省略as
- 去除重复行:DISTINCT
- SELECT DISTINCT 字段名 FROM 表名;
- DISTINCT只能放在需要查询的字段前
- 空值参与运算:结果一定为null
- 空值:null,不等同于0,'','null'
- 如何用0来代替null:SELECT IFNULL(字段名,0) FROM 表名;
- 着重号:`
- SELECT
字段名
FROM表名
; - 如果自定义的字段名、表名与关键字、保留字、数据库系统或常用方法冲突,请在SQL语句中使用`(着重号)引起来
- SELECT
- 查询常数
- SELECT 常数,字段名 FROM 表名;
- 显示表的结构:DESCRIBE或DESC
- DESCRIBE 表名;
- DESC 表名;
- 显示表中字段的详细信息
- 过滤数据:WHERE
- SELECT 字段名 FROM 表名 WHERE 过滤条件;
- WHERE子句声明在FROM的后面
example
-- 基础的SELECT的使用
SELECT * FROM employees;
SELECT employee_id,last_name,salary FROM employees;
-- 列的别名
SELECT employee_id emp_id,last_name AS lname,department_id "dept_id" FROM employees;
-- 去除重复行
SELECT DISTINCT department_id FROM employees;
-- 空值参与运算:结果为null
SELECT employee_id,salary AS "月工资",salary*(1+commission_pct)*12 AS "年工资",commission_pct FROM employees;
SELECT employee_id,salary AS "月工资",salary*(1+IFNULL(commission_pct,0))*12 AS "年工资",commission_pct FROM employees;
-- 着重号
SELECT * FROM `order`;
-- 查询常熟
SELECT 'Statice' AS "company",employee_id,last_name FROM employees;
-- 显示表的结构:显示表中字段的详细信息
DESCRIBE employees;
DESC departments;
-- 过滤数据:where
-- 查询90号部门的员工信息
SELECT * FROM employees WHERE department_id = 90;
练习题
-- 1.查询员工12个月的工资总和,并起别名为ANNUAL SALARY
SELECT employee_id,last_name,salary*12*(1+IFNULL(commission_pct,0)) AS "ANNUAL SALARY" FROM employees;
-- 2.查询employees表中去除重复的job_id以后的数据
SELECT DISTINCT job_id FROM employees;
-- 3.查询工资大于12000的员工姓名和工资
SELECT last_name,salary FROM employees WHERE salary>12000;
-- 4.查询员工号为176的员工的姓名和部门号
SELECT last_name,department_id FROM employees WHERE employee_id=176;
-- 5.显示表 departments 的结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments;