进阶一:基础查询
/*
语法:
select 查询列表
from 表名;
特点:
1.查询列表可以是:表中的字段,常量值,表达式,函数
2.查询结果是一个虚拟的表格
*/
myemployees表::对其进行一系列的基础查询
USE myemployees;
#表示当前操作表
#1.查询单个字段
SELECT last_name FROM employees;
#2.查询多个字段
SELECT last_name, salary, email FROM employees;
#3.查询表中所有字段:*表示所有的字段都选择,就是整个表
SELECT * FROM employees;
#4.查询常量值:这个和表没有关系
SELECT 100;
SELECT 'john';
#5.查询表达式
SELECT 100%98;
SELECT 100+150;
#6.查询函数:查询当前版本
SELECT VERSION();
#7.起别名
/*
1.便于理解
2.如果查询的字段有重名的情况,使用别名可以区分开来
*/
#方式一
SELECT 100%98 AS 结果;
SELECT last_name AS '姓',first_name "名" FROM employees;
#方式二:省略as
#案例:查询salary别名显示为 out put
SELECT salary AS 'Out Put' FROM employees;
#8.去重:DISTINCT
#案例:查询表中涉及到的所有部门编号:重复的只会查询到一个:自动做了去重
SELECT DISTINCT department_id FROM employees;
#9.加号的作用
/*
java中+:两个都是数值型,则为运算符
只要有一个字符串,连接符
sql中+:两个操作数都为数值型,加法运算
其中一个是字符型,试图将字符转换为数值,转换成功数值运算,转换失败,则将字符型转换为0,再做加法运算
其中一方为null,结果为null
*/
#案例员工名和姓连接在一起
SELECT last_name + first_name AS 姓名 FROM employees;# 加号结果有一个是字符串结果就是0,所以都是0
SELECT CONCAT(last_name, ' ', first_name) AS 姓名 FROM employees;# 正确方法使用函数
练习:
#1.下面的语句是否可以执行成功 √
SELECT last_name , job_id , salary AS sal
FROM employees;
#2.下面的语句是否可以执行成功 √
SELECT * FROM employees;
#3.找出下面语句中的错误 : AS 后面加引号才行
SELECT employee_id , last_name,
salary * 12 AS ANNUAL SALARY
FROM employees;
#4.显示表departments的结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments;
#5.显示出表employees中的全部job_id(不能重复)
SELECT DISTINCT job_id FROM employees;
# 显示每个人的奖金数:使用ifnull,如果是null的话设置为0
SELECT
IFNULL(commission_pct,0) AS 奖金率,
commission_pct
FROM
employees;
#6.显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
SELECT
CONCAT(`first_name`,',',`last_name`,',',`job_id`,',',IFNULL(commission_pct,0)) AS out_put
FROM
employees;