ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL——基础查询与条件查询

2021-11-11 17:32:31  阅读:153  来源: 互联网

标签:last name employees MySQL 查询 条件 WHERE SELECT


基础查询

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

USE myemployees;

(1)查询表中的单个字段

SELECT last_name FROM employees;

(2)查询表中的多个字段

SELECT last_name,salary,email FROM employees;

(3)查询表中的所有字段

SELECT * FROM employees;

(4)查询常量值

SELECT 100;
SELECT `john`;

(5)查询表达式

SELECT 100%98;

(6)查询函数

SELECT VERSION();   #查看mysql版本

(7)起别名

    1)便于理解
    2)如果要查询的字段有重名,使用别名可以区分开

#方式一(AS):
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#方式二(直接起):
SELECT last_name 姓,first_name 名 FROM employees;
#方式三(特殊):
SELECT salary AS "OUT put" FROM employees;

(8)去重

    使用DISTINCT关键字。

#案例:查询员工表中涉及到的所有部门编号
SELECT DISTINCT department_id FROM employees;

(9)+ 号的作用

    java中的加号:①运算符 ②拼接符(拼接字符串)
    mysql中的加号:仅仅作为运算符(若运算一方为字符型,则mysql试图将其转为数值型,转换成功则运算;不成功则将字符型数值转为0。若其中一方为null,则结果一定为null)

#案例:查询员工名和姓链接成一个字段,并显示为 姓名
#字符串拼接使用CONCAT()函数
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

条件查询

/*
	语法:
        select
            查询列表
        from
            表名
        where
            筛选条件;
	特点:
		1、按条件表达式筛选
			条件运算符:<  >  =  !=  <>  >=  <=
		2、按逻辑表达式筛选(用于连接条件表达式)
			逻辑运算符:&&  ||  !  (and  or  not)
		3、模糊查询
			like
			between and
			in
			is null
*/

(1)按条件表达式筛选

#案例1:查询员工工资大于12000的信息
SELECT
	*
FROM
	employees
WHERE
	salary>12000;
#案例2:查询部门编号不等于90号的员工名和部门编号
SELECT
	last_name,
	department_id
FROM
	employees
WHERE
	department_id<>90;

(2)按逻辑表达式筛选

#案例1:查询工资在10000到20000之间的员工名、工资以及奖金
SELECT 
	last_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)
OR
	salary>15000;

(3)模糊查询

/*
	like(特点:一般和通配符搭配使用【%任意多个字符;_任意单个字符;】)
	between and
	in
	is null
	is not null
*/

    1)like的使用
      特点:一般和通配符搭配使用【%任意多个字符;_任意单个字符】

#案例1:查询员工中包含字符a的员工信息
SELECT 
	*
FROM 
	employees
WHERE
	last_name LIKE '%a%';
#案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资
SELECT
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__n_l%';
#案例3:查询员工名中第二个字符为_的员工名
SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_\_%';

​    2)between and的使用
      特点:①提高语句简洁度 ②包含临界值 ③两个临界值有序

#案例:查询员工编号在100到120之间的员工信息
SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;

    3)in的使用
      含义:判断某字段的值是否属于in列表中的某一项
      特点:①使用in提高了语句简洁度 ②in列表的值类型必须一致 ③不支持通配符

#案例:查询员工的工种编号是 IT_PROT、AD_VP、AD_PRES的一个员工名和工种编号
SELECT 
	last_name,
	job_id
FROM 
	employees
WHERE
	job_id IN ('IT_PROT','AD_VP','AD_PRES');

    4)is 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;

    5)安全等于<=>

#案例1:查询没有奖金的员工名和奖金率
SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct <=> NULL;

    对比is null与<=>is null:仅仅可以判断NULL值,可读性较高,建议使用;<=>:既可以判断NULL值,又可以判断普通数值,可读性较低。

标签:last,name,employees,MySQL,查询,条件,WHERE,SELECT
来源: https://www.cnblogs.com/pengpi/p/15540819.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有