MySql(6)sql_select

Mysql专栏入口

数据库sql文件链接如下
链接:https://pan.baidu.com/s/1g6GKTZ6GVg04gxs4VzhxJA
提取码:ttst
专栏中有mysql的导入导出,里面有教如何导入

一、别名

AS(alias 别名):

SELECT
	account_id,
	product_cd,
	cust_id
FROM
	account
# 当我们编写这个样的sql时运行后,我们会得到如下图的数据。

在这里插入图片描述
这样的数据没有问题,但并不是所有人都对英文很敏感,那么我们可以使用 as 使得表头更直观。

SELECT
	account_id AS "账户id",
	product_cd AS "产品",
	cust_id AS "顾客id"
FROM
	account 

以上sql结果如下。
在这里插入图片描述

二、去除重复

DISTINCT(去重)
我想查看表account中有哪几种产品

SELECT
	product_cd 
FROM
	account

这个sql语句就有了明显的漏洞,每有一个产品都会展示。这时我们可以使用去重的关键字 DISTINCT
在这里插入图片描述

SELECT DISTINCT
	product_cd 
FROM
	account

这时数据就很直观了,一共有6中都不会重复。
在这里插入图片描述
这个关键字会有一些新手较为容易犯错的地方,如:

SELECT
	cust_id,
	DISTINCT product_cd 
FROM
	account

乍一看好像没毛病,查找顾客和产品并且对产品去重,但是我们一跑,直接报错
在这里插入图片描述
这时为什么呢,首先我们来分析cust_id有29条记录,去重后的product_cd却只有6条,这样的数据如何匹配成表呢?自然就报错了。
那么我们这样写,他会报错么?

SELECT DISTINCT
	product_cd,
	cust_id 
FROM
	account

运行sql之后发现没有报错,为什么呢?原来是DISTINCT对两个字段都进行了去重操作,确保了product_cd和cust_id这两个字段不会同时都相同。
在这里插入图片描述

三、 空值参与运算

SELECT
	monthly_income AS "月工资",
	monthly_income* 12 AS "年工资" 
FROM
	account

执行以上sql,发现年月工资为null的年工资也为null。这就是控制参与运算。我们可以使用IFNULL()来处理空值
在这里插入图片描述

SELECT
	monthly_income AS "月工资",
	IFNULL( monthly_income, 0 )* 12 AS "年工资" 
FROM
	account

执行以上sql,结果如下发现即使月工资为null年工资也可以用0来正常显示,这是因为IFNULL( monthly_income, 0 )他检测到月工资为null后会将null替换成0进行运算。
在这里插入图片描述

四、常数查询

在select…from…中,我们可以统一的给查询出来的数据打上相同的一个标签,如下所示。

SELECT
	'天天搜题',
	account_id,
	product_cd 
FROM
	account

执行上述sql可得下图。
在这里插入图片描述

五、 显示表结构

# 第一种
DESCRIBE account
# 第二种
DESC account

上述两个sql都会产生下图数据。
在这里插入图片描述

六、 过滤数据(where)

需求:我只想查询 product_cd=CHK 的数据

SELECT
	* 
FROM
	account 
WHERE
	product_cd = 'CHK'

执行以上代码可以看到数据中就只有product_cd= CHK的数据了。
在这里插入图片描述

七、like的基础用法

7.1 %

% 包含零个或多个字符的任一字符串

SELECT
	* 
FROM
	account 
WHERE
	product_cd LIKE ("C%")

执行以上sql 将会得到以下结果,获取到了product_cd字段 以C开头的所有记录
在这里插入图片描述

7.2 _

_ 任何单个字符

SELECT
	* 
FROM
	account 
WHERE
	product_cd LIKE ("C_")

查询字段product_cd 所有以C为开头,长度为2的记录,结果如下。
在这里插入图片描述

小练习

1. 更具月工资查计算一年的工资,并重新起名为“年工资”。
2. 对product_cd进行去重。
3. 查询工资大于1200的记录。
4. 查询account_id为7的账户的product_cd和cust_id。
5. 显示表account的表结构,查询表中所有的数据。
6. 显示出 product_cd 字段中以 C 开头的记录
7. 显示出 product_cd 字段中以 K 结尾的记录
8. 显示出 product_cd 字段中有 C 的记录
9. 查询月工资在1000到2000之间的记录
10. 查询open_branch_id大于等于2 并且月收入大于1000的记录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值