MySQL——基础查询

学习准备:

  • 1:学习资料来自于尚硅谷的MySQL 基础+高级篇- 数据库链接: link.
  • 2:利用可视化工具------Navicat-------来更加方便的操作数据库。
  • 3:本次学习笔记所操作的数据库有4个表

MySQL——基础查询_第1张图片
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;

结果:MySQL——基础查询_第2张图片

2、查询多个字段
select 字段名,字段名 from 表名;

SELECT
	first_name,
	last_name,
	email 
FROM
	employees;

结果:
MySQL——基础查询_第3张图片

3、查询所有字段
select * from 表名

SELECT
	* 
FROM
	departments;

结果MySQL——基础查询_第4张图片

4、查询常量
SELECT 常量;-----------这个常量可以是数值,也可以是字符串(用单引号括起)

SELECT
	100;

结果:MySQL——基础查询_第5张图片

SELECT
	'whs'

结果:在这里插入图片描述

5、查询函数
select 函数名(实参列表);-----------其值为函数的返回值

SELECT
	version();

结果:在这里插入图片描述

6、查询表达式
select 100/1234;

SELECT
	100 / 1234;

结果:
MySQL——基础查询_第6张图片

7、起别名
as:-------------------select 100/1234 as whs
空格:----------------select 100/1234 whs
好处:便于理解,如果查询的字段有重名情况,便于区别。

SELECT
	100 / 1234 AS whs

结果:
MySQL——基础查询_第7张图片

SELECT
	100 / 1234 whs

结果:
MySQL——基础查询_第8张图片

案例:查询 salary 显示结果为 out put(注意out put 中间有空格)

USE myemployees;
SELECT
salary AS "out put" 
FROM
	employees;

结果:
MySQL——基础查询_第9张图片
如果别名有特殊符号,例如上面的空格,我们就需要用双引号或单引号将其括起来

8、去重
select distinct 字段名 from 表名;

案例:查询员工表中涉及到的所有的部门编号。
没有加 distinct

SELECT 
	department_id 
FROM
	employees;

结果:
MySQL——基础查询_第10张图片

加了 distinct

SELECT DISTINCT
	department_id 
FROM
	employees;

结果:
MySQL——基础查询_第11张图片没有显示重复的 id 编码

9、+号的作用
作用:做加法运算
select 数值+数值;----- 直接运算
select 字符+数值; -----先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
select null+值;-----------结果都为null

案例:查询员工名和姓并连接为一个字段,并显示为 姓名。
由于 + 运算符没有这个功能,所以我们将借助

concat函数
功能:拼接字符
select concat(字符1,字符2,字符3,…);

SELECT
	concat(last_name, first_name) AS 姓名 
FROM
	employees;

结果:
MySQL——基础查询_第12张图片

补充:
一:

ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
select ifnull(commission_pct,0) from employees;
由于与null拼接的字段,结果还是null,ifnull 通常用于解决这个问题

SELECT 
	IFNULL(commission_pct,'零') AS 奖金率, #如果为null 返回 零,否则返回原本的值
	commission_pct
FROM 
	employees;

结果:
MySQL——基础查询_第13张图片

案例: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;

结果:
MySQL——基础查询_第14张图片
这是因为,commission_pct中有的字段值为null,与之连接就都变为null

MySQL——基础查询_第15张图片
commission_pct的数据如上所示
解决方法利用 ifnull函数

正确解:

SELECT
	concat( first_name, ',', last_name, ',', job_id, ',', ifnull( commission_pct, 0 ) ) AS OUT_PUT 
FROM
	employees;

结果:
MySQL——基础查询_第16张图片
二:
isnull函数
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0

SELECT
	isnull( commission_pct ) AS whs 
FROM
	employees;

结果
MySQL——基础查询_第17张图片

你可能感兴趣的:(MySQL)