Mysql入门技能树-查询进阶
查询进阶
别名
关于别名,以下说法中正确的是:
1.查询集(表或子查询)可以指定别名
2.查询集的列可以指定别名
3.别名只能用合法的变量名,即字母开头,只由英文数字、字母和下划线组成
4.可以用双引号或反引号将别名包围起来
答案是1,2,4
1.给表指定别名u1
select * from dwd_recomend_result u1
给子查询指定别名u1
select * from (select username from dwd_recomend_result) u1
2.给查询集的列指定别名u1
select username u1 from dwd_recomend_result
3.别名也可以是中文(所以题目中第3个说法是错的)
select username 用户名 from dwd_recomend_result
4.可以用双引号或反引号将别名包围起来
select username "用户名" from dwd_recomend_result
select username `用户名` from dwd_recomend_result
CASE
Goods 表结构如下
create table goods(
id int primary key auto_increment,
category_id int,
category varchar(64),
name varchar(256),
price decimal(12, 4),
stock int,
upper_time timestamp
)
Joe 想要做一个报表,只需要显示商品名和价格分级,其中不足10元的是 cheap, 超过1000的是expensive,其它的是 normal,这个查询应该怎么写?
答案是:B
CASE WHEN [Boolean_expression] THEN [result1]…ELSE [default] END
判断Boolean_expression表达式,如果满足,返回then后边的结果
Distinct
Joe 想统计 goods 表中的商品有多少种不同的价格,他应该如何写这条查询?
答案是:A
A正确,返回数据表中不重复的的数据个数,不统计值为null的字段
B统计的是商品价格不为null的条数
C语法错误
D是对商品价格不为null的条数值去重,跟B效果一样,本来count(price)后就一条记录
延伸知识点:
Between
Joe 要查询 goods 表中价格在 1000 到 2000 之间(包含1000和2000)的数据,以下查询中错误的是:
答案是:D
A正确,考察between的用法,between是包括左边界值和右边界值的;
B正确,考察and的用法,前后条件都满足;
C正确,考察not的用法,对后面条件进行取反;
D错误,mysql在没有group by指定分组时默认是以整个表为一组,如果单独使用having子句的话,就相当于对这一组的数据去进行筛选,所以得到的结果就是符合要求的,但是千万不要这样写,不符合语法规范,而且可读性很差的
(来自SSS4362的详细解答)
相关文章
- Error connecting to database [Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)]
- 【Mysql 学习】mysqld_safe:MySQL服务器启动脚本
- 【MySQL】常见的mysql 进程state
- 【MySQL】Can't get stat of './mysql/slow_log.CSV' (Errcode: 2)
- Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
- MYSQL查询上级和下级
- MYSQL错误解决:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- 数据库的硬迁移和mysql 5.5.38源码安装
- MySQL内核月报 2014.08-MySQL· 捉虫动态·Count(Distinct) ERROR
- MySQL · 答疑解惑 · 备库Seconds_Behind_Master计算
- Qt清空表数据并重置自增列(sqlite+mysql)
- [转]2006 MySQL server has gone away错误,最大值溢出解决办法 mysql max_allowed_packet 查询和修改
- 我的ef连接mysql之旅
- MySQL 聚簇索引和非聚簇索引 & mysql 索引为啥用b 树
- mysql中utf8和utf8mb4区别
- MySQL Study之--Mysql无法启动“mysql.host”
- python web py入门(11)- 双重查询访问MYSQL数据库出错
- 数据库MySQL基础入门之MySQL隐式转换
- mysql 查看 脏页_MySQL:刷脏页
- MySQL数据库基准压力测试工具之MySQLSlap使用实例
- Mysql入门技能树-连接查询
- 【MySQL】mysql查询语句大总结_Unit04
- MySQL基础篇 | 简单的查询、条件查询、排序查询
- 【高可用MySQL解决方案】centos7配置mysql主从复制
- 【MySql】MySQL索引15连问(相信大家看完肯定会有帮助)
- MySQL 配置, 避坑 sqlyog连接mysql错误码2058
- MySQL备份与恢复