detachedcriteria查询去重_[MySQL基础]一.基本查询

选中指定的数据库

USE myemployees;

基础查询

语法

select 查询列表 from 表名;
  • 查询列表可以是:表中的字段、常量值、表达式、函数
  • 查询结果是一个虚拟的表格

1.1查询表中的单个字段

SELECT last_name FROM employees;

1.2查询表中的多个字段

SELECT last_name,salary,email FROM employees;

1.3查询所有字段

方法1:

SELECT * FROM employees;

方法2:(SQLyog中选中后F12可排出下面效果)

SELECT 
  `first_name`,
  `last_name`,
  `email`,
  `phone_number`,
  `job_id`,
  `salary`,
  `commission_pct`,
  `manager_id`,
  `department_id`,
  `hiredate` 
FROM
  employees ;

1.4 查询常量值

SELECT 100;
SELECT 'john';

1.5查询表达式

 SELECT 100%98;

1.6查询函数

 SELECT VERSION();

2.起别名

好处:便于理解。通过下面两条语句展示。

未取别名时:

 SELECT 100%98;

结果为:

6bf7509ff679df5425b98ab396eb92f4.png

起别名后:

SELECT 100%98 AS 结果;

结果为:

0e5cab9e8e3f09201047183e53ba8a24.png

另一个好处,如果要查询的字段有重名的情况,使用别名可以区分开来。

两种起别名的方法

方法1:使用as

SELECT last_name AS 姓,first_name AS 名 FROM employees;

方法2:使用空格

SELECT last_name 姓,first_name 名 FROM employees;

建议别名加双引号。

SELECT salary AS "out put" FROM employees;

3.去重

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

如果用下面这条语句,则会出现重复值,而我们需要的是非重复值

SELECT department_id FROM employees;

去重查询:

SELECT DISTINCT department_id FROM employees;

4.+号的作用

说明:

案例:查询员工名和姓连接成一个字段,并显示为 姓名

SELECT last_names+first_name AS 姓名 FROM employees;

将报错,这说明在mysql中+号的作用并不是连接字符串。

在mysql中只有一个功能:运算符。

两个操作数都为数值型,则做加法运算

SELECT 100+90; 

如果其中一方为字符型,试图将字符型数值转换成数值型如果转换成功,则继续做加法运算。如果转换失败,则将字符型数值转换成0.

SELECT '123'+90; /*转换成功,结果为213*/
SELECT 'john'+90; /*转换失败,结果为90*/

只要其中一方为null,则结果可定为null.

SELECT NULL+90; /*结果为null*/

上述案例的解答:

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

小测试

1.显示表department的结构,并查询其中的全部数据

DESC departments;
SELECT * FROM departments;

2.显示出表employees中的全部job_id(不能重复)

SELECT DISTINCT job_id FROM employees;

3.显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT

补充知识点:

ifnull(a,b),如果a为null,则返回b。

SELECT
	IFNULL(commission_pct,0) AS 奖金率,commission_pct
FROM 
	employees;

结果:

8d81c641a2eaf1ac91e50b3c3e652ee2.png

题目解答:

SELECT 
  CONCAT(
    `first_name`,
    ',',
    `last_name`,
    ',',
    `job_id`,
    ',',
    IFNULL(`commission_pct`, 0)
  ) AS "OUT_PUT" 
FROM
  employees ;

结果:

ed311cffdb0e7e4ee4507f635825e5eb.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值