Day02 MySQL图形化界面使用、基本查询与条件查询

1.图形化界面客户端的使用

在这里插入图片描述

2.DQL语言的学习

DQL(Data Query Language):数据查询语言

① 基本查询

语法:
select + 查询列表 + from + 表名;
类似于: System.out.println(打印的东西);
特点:
1、查询列表可以是: 表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格(不是真实存在的)

#进阶1: 基础查询
/*
语法:
select + 查询列表 + from + 表名;

类似于: System.out.println(打印的东西);

特点:
1、查询列表可以是: 表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格(不是真实存在的)
*/

USE `myemployees`;

#1.查询表中的单个字段
SELECT last_name FROM employees;

#2.查询表中的多个字段
SELECT last_name,email,hiredate FROM employees;

#3.查询表中的所有字段
	#方式一:
	SELECT 
	  `employee_id`,
	  `first_name`,
	  `last_name`,
	  `email`,
	  `phone_number`,
	  `job_id`,
	  `salary`,
	  `commission_pct`,
	  `manager_id`,
	  `department_id`,
	  `hiredate` 
	FROM
	  `employees` ;
	 
	 #方式二:
	 SELECT * FROM `employees` ;
 
 #4.查询常量值
 SELECT 100;
 SELECT 'john';
 
#5.查询表达式
 SELECT 100*98;
 
#6.查询函数
 SELECT VERSION();
 
#7.为字段起别名
 /*
 AS起别名的好处:
	①便于理解,提高辨识度
	②如果要查询的字段有重名的情况,使用别名可以区分
 */
   #方式一: 使用AS
 SELECT 100%98 AS 结果;
 SELECT last_name AS,first_name ASFROM employees;
   #方拾二: 使用空格
 SELECT last_name 姓,first_name 名 FROM employees;
      #案例: 查询salary,显示结果为 output
      SELECT salary "out put" FROM employees;
 
#8.去重---DISTINCT
   #案例: 查询员工表中涉及到的所有的部门编号
   SELECT DISTINCT`department_id` FROM `employees`;
 
#9.+号的作用
 /*
 
java中+号的作用:
   ①运算符,两个操作数都为数值型
   ②连接符,只要有一个操作数为字符串
   
mysql中+号作用:
   仅仅只有一个功能: 运算符
   
select 100+90; 两个操作数都为数值型,则做加法运算
select "123"+90; 只要有其中一方为字符型,试图将字符型数组转换成数值型
				     如果转换成功,则做加法运算
select "john"+90;		     如果转换失败,则将字符型数值转换成0
select null+90;		  	     如果其中一方为null,则结果肯定为null		     
 
 
 */
#拼接函数: concat();
#案例: 查询员工名和姓连接成一个字段,并显示为 姓名
    SELECT CONCAT(last_name,first_name)AS 姓名 FROM `employees`;
    
#10.IFNULL()函数
#参数1为要判断的字段内容。参数2为如果为NULL,则转换为XXX。
 SELECT IFNULL(`commission_pct`,0) FROM `employees`

② 条件查询

#进阶2: 条件查询
/*

语法:
	select 
		查询列表 
	from 
		表名
	where(过滤)
		筛选条件;
分类:
	一、按条件表达式筛选
		条件运算符: > < = !=(<>) >= <=
	二、按逻辑表达式筛选
		作用: 连接条件表达式
		
		逻辑运算符:
			&& || !
			and or not
			
	&& 和 and : 两个条件都为true,结果为true,否则为false
	|| 和 or: 两个条件有一个为true,结果为true,否则为false	
	! 和 not: 如果连接条件本身为false,结果为true,反之为false
		
	三、模糊查询
		like
		between and
		in
		is null 和 is not null
		
*/

#一、按条件表达式筛选
	#案例1: 查询员工工资大于12000的员工信息
	SELECT * FROM `employees` WHERE salary>12000;
	#案例2: 查询部门编号不等于90号的员工名和部门编号
	SELECT first_name,`department_id` FROM `employees` WHERE `department_id` != 90;

#二、按逻辑表达式筛选
	#案例1: 查询工资在10000到20000之间的员工名、工资以及奖金
	SELECT `first_name`,`salary`,`commission_pct` FROM `employees` WHERE `salary`>=10000 && `salary`<=20000;
	#案例2: 查询部门编号不是在90到110之间的,或者工资高于15000的员工信息
	SELECT * FROM `employees` WHERE !(`department_id`>=90 && `department_id`<=110 ) || `salary`>15000;

#三、模糊查询
/*
like
	特点:①一般和通配符搭配使用
			通配符:
			% 任意多个字符,包含0个字符
			_ 任意单个字符
between and
in
is null

*/
	#1.like
		#案例1: 查询员工名包含字符a的员工信息
		SELECT * FROM `employees` WHERE `first_name` LIKE "%a%";
		#案例2: 查询员工名中第三个字符为e,第五个字符为a的员工名和工资
		SELECT `first_name`,`salary` FROM `employees` WHERE `first_name` LIKE "__e_a%"
		#案例3: 查询员工姓中第二个字符为下划线的员工姓
		SELECT `last_name` FROM `employees` WHERE `last_name` LIKE '_\_%';
	#2.bewteen and
		/*
		①使用between and可以提高语句的简洁度
		②包含临界值
		③两个临界值不可颠倒顺序
		
		*/
			#案例1: 查询员工编号在100到120之间的员工信息
			SELECT * FROM `employees` WHERE `employee_id` BETWEEN 100 AND 120;
	#3.in
		/*
		含义: 判断某字段的值是否属于in列表中的某一项
		特点:
			①使用in提供语句简洁度
			②in列表的值类型必须统一或兼容
			③
		*/
			#案例1: 查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工姓和工种编号
			SELECT `last_name`,`job_id` FROM `employees` WHERE `job_id`IN('AD_PRES','AD_VP','IT_PROG');
	#4.is null 和 is not null
		/*
		=或<>不能用于判断null值
		is null 或 is not null 可以判断null值
		*/
			#案例1: 查询没有奖金的员工名和奖金率
			SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct`IS NULL;
			#案例2: 查询有奖金的员工名和奖金率
			SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct`IS NOT NULL;

	#安全等于: <=>
		#案例1: 查询没有奖金的员工名和奖金率
		SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct`<=> NULL;
		#案例2: 查询工资为12000的员工名和工资
		SELECT `last_name`,`salary` FROM `employees` WHERE `salary`<=> 12000;

	#is null PK <=>
		/*
		is null: 仅仅可以判断null值,可读性高(推荐使用)
		<=>: 既可以判断null值,又可以判断普通数值,可读性较低
		*/



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值