本章将介绍如何使用SELECT语句从表中检索一个或多个数据列。
/*
<第四章:检索数据>
语法:
SELECT 查询列表 from 表名
特点:
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的记过可以是一个虚拟的表格
*/
USE myemployees;/*使用对应的库*/
#1、检索单个列
SELECT last_name
FROM employees;
#2、检索多个列
SELECT email,phone_number,manager_id
FROM employees;
#3、检索所有列
SELECT *
FROM employees;
#4、查询常量值、表达式以及函数
SELECT 101,'john',100%98,VERSION();
#5、起别名 /*便于理解,如果要查询的字段有重名的情况可以区分开来*/
/*方式一:使用as*/
SELECT 100%98 AS 结果;
SELECT last_name AS 姓氏,first_name AS 名字
FROM employees;
/*方式二:使用空格*/
SELECT last_name 姓氏,first_name 名字
FROM employees;
/*案例:查询salary,显示结果为 out put*/
SELECT salary AS "out put" /*如果别名中含有特殊字符,则可以借用双引号*/
FROM employees;
#6、去重
/*案例:查询员工表中涉及到的所有的部门编号,注意不要出现重复*/
SELECT DISTINCT department_id /*注意DISTINCT关键字的英文意思是:不同的、有区别的*/
FROM employees;
#7、MySQL中“+”号/*仅仅用于运算符*/
/*小试牛刀*/
SELECT 100+90;/*查询190*/
SELECT '10'+90;/*也是查询100,如果一方为字符型,则转换为数值型再做加法运算*/
SELECT 'john'+90;/*转换失败,则字符型数值转换成0*,结果是查询90*/
SELECT NULL+10;/*只要其中一方为null,则结果肯定为null*/
#8、拼接
/*案例:查询员工的名字和姓氏连接成一个字段(注意空格),并显示为“姓名”*/
SELECT CONCAT(last_name,' ',first_name) AS 姓名
FROM employees;
#9、限制结果
/*检索某列的前五行*/
SELECT first_name
FROM employees
LIMIT 5;
/*检索某列第三行开始的四行*/
SELECT first_name
FROM employees
LIMIT 3,4;
/*
课后作业部分
*/
#显示departments的表结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments;
#不重复显示出employee中的全部job_id
SELECT DISTINCT job_id FROM employees;
#显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT
SELECT CONCAT(`first_name`,',',`last_name`,',',`job_id`,',',IFNULL(commission_pct,0)) AS OUT_PUT/*IFNULL()函:当commission_pct为NULL时,最后显示0*/
FROM employees;