【收藏】数据库Mysql基础入门--Mysql查询知识点
小职 2021-11-16 来源 :「lnwd___」 阅读 4586 评论 0

摘要:本篇主要是数据库Mysql基础入门--Mysql查询知识点,通过具体的内容展现,希望对大家数据库Mysql的学习有一定的帮助。

本篇主要是数据库Mysql基础入门--Mysql查询知识点,通过具体的内容展现,希望对大家数据库Mysql的学习有一定的帮助。

【收藏】数据库Mysql基础入门--Mysql查询知识点


前言

首先写此内容肯定会有案例的举出,所以就必须要有数据,在这里我就用我自己拥有的数据进行举例,在这里我给出了我使用的数据,需要的话可以自己自行的下载使用(在这里使用的是myemployees.sql)

链接: https://pan.baidu.com/s/1a_wstxPVhxeliZkt6-BTiw

提取码: gaj8


进阶一、基础查询 select

1.查询表中的单个字段

SELECT employee_id FROM employees;


2.查询表中的两个字段

SELECT last_name,employee_id FROM employees;


3.查询表中的多个字段

SELECT 

  `employee_id`,

  `first_name`,

  `last_name`,

  `email`

  FROM

  employees;


4.查询表中的所有字段

SELECT * FROM employees;


5.查询常量值

SELECT 100;


6.查询表达式

SELECT 100*3;


7.查询函数表达式

SELECT VERSION();


8.起别名

SELECT last_name AS 姓 FROM employees;#方式一(用AS)

SELECT last_name 姓 FROM employees;#方式二(用空格)

SELECT last_name "out poot" FROM employees;#特殊的(别名里面有关键字的时候)


起别名的好处: ①便于观看理解 ②如果查询的字段有重名的情况可以使用别名区分开来

9.去重

SELECT DISTINCT department_id FROM employees;


10.+的作用

在JAVA中的作用:

①做运算符,如果两个为数值的话

②做连接符,如果有一个操作数为字符串的话


在MySQL中的作用:

仅仅只做运算符的作用

select 100+20 # 两个都为数值的话则做加法的运算

select ‘100’+20 #如果有一个为字符型,则尝试将字符型转换为整数型,如果转换成功的话

select ‘join’+20 #如果转换失败的话,则将字符型变为0

select null+20 #只要有null,其结果肯定为null


11.拼接(concat())

SELECT CONCAT(`first_name`,':',`last_name`) 姓名 FROM employees;

1

12.ifnull()的使用

SELECT IFNULL(`commission_pct`,0) 结果 , `commission_pct` FROM employees;

1

进阶二、where(条件查询)

相关知识介绍

1.语法

select 

查询列表

from 

表名

where

筛选条件

(执行顺序是先是去找表名,然后再经过筛选条件,再进入到查询列表)


2.分类:

一、按条件表达式筛选

< = >= <= != <>

二、按逻辑表达式筛选

逻辑运算符:用于连接条件表达式的。

&& || !

and or not

&&和and:如果两个为true就为true,反之为false。

||和or:如果有一个为false就为false,反之为true。

!和not:如果为true则结果为false,反之为true。


3.模糊查询

like

between and

in

is null/is not null


一、按条件表达式筛选

##案例一,选取工资大于12000的员工

SELECT * FROM employees WHERE salary>12000;

#案例二,选取部门编号不等于90的部门编号和员工名

SELECT 

CONCAT(`first_name`,':',`last_name`) AS 姓名,`department_id` AS 部门

FROM 

`employees`

WHERE

`department_id`<>60;


二、按逻辑表达式筛选

#案例一、工资在1万-2万之间的员工的员工名,工资以及奖金

SELECT

CONCAT(`first_name`,':',`last_name`) 姓名,

salary AS 工资,

commission_pct 奖金

FROM 

`employees`

WHERE 

salary>10000 AND salary<20000;

#案例二、查询部门编号不在90-110之间,或者工资高于15000的所有的员工的信息

SELECT

*

FROM

employees

WHERE

NOT(`department_id`>=90 AND `department_id`<=110) OR salary > 15000;


三、模糊查询

相关知识

like

特点

①一般和通配符搭配使用

通配符:

%:表示任意多个字符,包含0个字符

_: 表示任意单个字符

between and

in

is null/is not null


1.like

#案例一、查询员工中包含字母b的员工名信息

SELECT

CONCAT(`first_name`,':',`last_name`) AS 姓名

FROM 

employees

WHERE

last_name LIKE '%b%';

#案例二、查询员工中第一个b第三个为i的员工名信息

SELECT

CONCAT(`first_name`,':',`last_name`) AS 姓名

FROM

employees

WHERE

last_name LIKE 'b_i%';

#案例三、查询第三个为_的员工名(特殊的情况,因为_为关键字,所以需要用到转义符(ESCAPE))

SELECT

last_name

FROM

employees

WHERE 

last_name LIKE '_@_%' ESCAPE '@';


2.between and

需要注意的是:

①可以提高语句的简洁度

②包含临界值

③临界值的数值顺序不能调换


#案例一,查询运功编号在90-120之间的所有员工的姓名

SELECT   

`last_name` 姓名,

`employee_id` ID

FROM 

employees

WHERE

`employee_id` BETWEEN 90 AND 120;


3.in

含义:判断某字段的值是否属于in列表中的某一项

特点:

①:提高语句语句的简洁度

②:in列表的值必须一致或者兼容


#案例,查询查询员工的工种编号是IT_PROG、AD_VP、AD_PRES的员工名和工种编号

SELECT

`last_name`,

`job_id`

FROM

`employees`

WHERE

`job_id` IN ('IT_PROT','AD_VP','AD_PRES');


4.is

需要注意的点:

=或<>不能判断null值

is null或is not null可以判断null值


#案例一、查询没有奖金的员工名和奖金率

SELECT

`last_name`,

`commission_pct`

FROM

`employees`

WHERE

`commission_pct` IS NULL;


#案例二、查询有奖金的员工名和奖金率

SELECT

`last_name`,

`commission_pct`

FROM

`employees`

WHERE

`commission_pct` IS NOT NULL;


5.安全等于 <=>

需要注意的点:

is null 仅仅判断null值的,可读性较高,推荐使用

<=> 不仅可以判断null值,还可以判断普通的数值,可读性较低


#案例一、查询没有奖金的员工名和奖金率

SELECT

`last_name`,

`commission_pct`

FROM

`employees`

WHERE

`commission_pct` <=> NULL;

#案例二、查询工资为12000的员工名和工资

SELECT

`last_name`,

`salary`

FROM

`employees`

WHERE

`salary` <=> 12000;


✅  扫码免费获取基础课程·答疑解惑·职业测评

【收藏】数据库Mysql基础入门--Mysql查询知识点

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-IT技术咨询与就业发展一体化服务 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved