学习准备:
departments的字段有:
employess的字段有:
jobs的字段有:
locations的字段有:
stuinfo的字段有:
注:每次进行操作时,需要先进入其数据库中:
USE 库名;
USE world
注:当有些字段名字为关键字时,我们可以用 ``来标记字段名(是键盘数字1对应的字符)
如:
SELECT
`first_name`
FROM
employees;
一、语法:
select 查询列表
from 表名;
二、特点:
1、查询列表可以是字段、常量、表达式、函数,也可以是多个
2、查询结果是一个虚拟表(我们关闭了这个窗口,这个表就没有了)
三、示例:
1、查询单个字段
select 字段名 from 表名;
SELECT
first_name
FROM
employees;
2、查询多个字段
select 字段名,字段名 from 表名;
SELECT
first_name,
last_name,
email
FROM
employees;
3、查询所有字段
select * from 表名
SELECT
*
FROM
departments;
4、查询常量
SELECT 常量;-----------这个常量可以是数值,也可以是字符串(用单引号括起)
SELECT
100;
SELECT
'whs'
5、查询函数
select 函数名(实参列表);-----------其值为函数的返回值
SELECT
version();
6、查询表达式
select 100/1234;
SELECT
100 / 1234;
7、起别名
as:-------------------select 100/1234 as whs
空格:----------------select 100/1234 whs
好处:便于理解,如果查询的字段有重名情况,便于区别。
SELECT
100 / 1234 AS whs
SELECT
100 / 1234 whs
案例:查询 salary 显示结果为 out put(注意out put 中间有空格)
USE myemployees;
SELECT
salary AS "out put"
FROM
employees;
8、去重
select distinct 字段名 from 表名;
案例:查询员工表中涉及到的所有的部门编号。
没有加 distinct
SELECT
department_id
FROM
employees;
加了 distinct
SELECT DISTINCT
department_id
FROM
employees;
9、+号的作用
作用:做加法运算
select 数值+数值;----- 直接运算
select 字符+数值; -----先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
select null+值;-----------结果都为null
案例:查询员工名和姓并连接为一个字段,并显示为 姓名。
由于 + 运算符没有这个功能,所以我们将借助
concat函数
功能:拼接字符
select concat(字符1,字符2,字符3,…);
SELECT
concat(last_name, first_name) AS 姓名
FROM
employees;
补充:
一:
ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
select ifnull(commission_pct,0) from employees;
由于与null拼接的字段,结果还是null,ifnull 通常用于解决这个问题
SELECT
IFNULL(commission_pct,'零') AS 奖金率, #如果为null 返回 零,否则返回原本的值
commission_pct
FROM
employees;
案例:irst_name ------- last_name--------job_id----------commission_pct四个字段拼接起来,列头显示成OUT_PUT,各个列之间用逗号连接。
如果直接连接:
SELECT
concat( first_name, ',', last_name, ',', job_id, ',', commission_pct ) AS OUT_PUT
FROM
employees;
正确解:
SELECT
concat( first_name, ',', last_name, ',', job_id, ',', ifnull( commission_pct, 0 ) ) AS OUT_PUT
FROM
employees;
SELECT
isnull( commission_pct ) AS whs
FROM
employees;