MySQL数据库学习2

3 篇文章 0 订阅
3 篇文章 0 订阅

MySQL数据库学习2(SQLyog)

转载文章请注明出处

本节所需要的文件:
链接:https://pan.baidu.com/s/18ZmrHK8nzvG39y7rLz7d0w
提取码:2lxu
文件均出自B站尚硅谷相关学习视频,本节文件通过小海豚打开

一、DQL语言的学习(二)

学习内容:

其他知识点
(1)查询已知表的结构,使用关键字desc
举例:

  DESC employees;

运行结果:
在这里插入图片描述
基础查询(补上一节知识点)
#拼接函数concat(后期学习函数,也会讲到)
(1)和c++语言类似,拼接均使用关键字concat
举例:

SELECT CONCAT ('a','b','c') AS 结果;
SELECT CONCAT (last_name,first_name) AS 姓名 FROM employees;

运行结果:
在这里插入图片描述
在这里插入图片描述
条件查询
语法:

select

          查询列表

from

         表名

where

         筛选条件

分类:
一、按条件表达式筛选

条件表达式运算符:
< 、>、 =、 !=(不等于)<>(MySQL中的不等于)、 >=、 <=

#案例一
查询工资大于12000 的所有员工信息

SELECT 
  * 
FROM
  employees 
WHERE salary > 12000 ;

运行结果:
在这里插入图片描述#案例二
查询部门编号不等于90的员工的名和部门编号

SELECT 
  last_name,
  department_id 
FROM
  employees 
WHERE department_id <> 90 ;

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

二、按照逻辑表达式筛选

逻辑运算符:
&&、 ||、 !(同样适用)
and 、or 、not(是MySQL中的标准格式)

#案例一
查询工资在10000到20000之间的员工名、工资以及奖金

SELECT 
  last_name,
  salary,
  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、between and 、in 、is null 、is not null
#1.like
特点:
(1)可以和通配符一起使用
% 任意多个字符
_ 任意单个字符
#案例一
查询员工名中包含字符a的员工信息

SELECT 
  * 
FROM
  employees 
WHERE last_name LIKE '%a%' ;

注意:字符一定要用单引号,并且含有a说明前后都可能有字符,所以前后都要有%
运行结果:
在这里插入图片描述
#案例二
查询员工名中的第三个字符为e,第五个字符为a的员工名和工资

SELECT 
  last_name,
  salary 
FROM
  employees 
WHERE '__e_a%' ;

#案例三
查询员工名中的第二个字符为_的员工名

SELECT 
  last_name 
FROM
  employees 
WHERE last_name LIKE '_\_%' ;

注意:_作为通配符,可以使用\进行转译
运行结果:
在这里插入图片描述
#2.between and
特点:
(1)包含临界值
(2)and两端的值不能调换
#案例一
查询员工编号在100到120之间的员工信息

SELECT 
  * 
FROM
  employees 
WHERE employee_id BETWEEN 100 
  AND 120 ;

运行结果:
在这里插入图片描述
#3.in
#案例一
查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号

SELECT 
  last_name,
  job_id 
FROM
  employees 
WHERE job_id IN ('IT_PROG', 'AD_VP', 'AD_PRES') ;

运行结果:
在这里插入图片描述
#4.is null
#案例一
查询没有奖金的员工名和奖金率

SELECT 
  last_name,
  commission_pct 
FROM
  employees 
WHERE commission_pct IS NULL ;

运行结果:
在这里插入图片描述
注意:Tip:<=>为安全等于符号,既可以判断null值又可以判断普通值,相当于等于号但是可读性较差。

#测试题
#1.查询没有奖金,且工资小于18000的工资和员工名

SELECT 
  salary,
  last_name 
FROM
  employees 
WHERE commission_pct IS NULL 
  AND salary < 18000 ;

#2.查询employees表中,工种编号不为’IT’或者工资为12000的员工信息

SELECT 
  * 
FROM
  employees 
WHERE job_id <> 'IT' 
  OR salary = 12000 ;

#3.查看部门departments表的结构

DESC departments;

#4.查询部门departments表中涉及到了哪些位置编号

SELECT DISTINCT 
  location_id 
FROM
  departments ;
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值