MySQL 查询常用操作(1) —— 查询数据 select

MySQL中常用的查询操作,首先是能从表中直接取出数据,接着能对查询结果做一些简单的处理,比如去重等,然后是根据条件查询数据,包括精准查询、模糊查询以及按照数据的某个范围或者指定多个指标进行查询,最后是将查询结果进行排序,主要包括升序和降序以及多个字段的先后排序处理。

第一部分主要介绍select语句——简单处理查询结果。

一、具体方法

查询数据(简单处理查询结果)

select查询的基本语法

select * from 表名;
from          后面写表名,表示数据来自这张表;
select        后面写表中的列名,如果是 * 表示在结果中显示表中所有列;如果要查询多个列,之间使用逗号分隔;
消除重复行     在select后面列前使用 distinct 可以消除重复的行                                   
重命名         在 select 后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中。

注意

1、避免使用 select * 。按照需要进行数据查询,否则会导致查询速度变慢。避免查询多余数据。

2、如果只需要查询出一条数据,使用 limit 1。例如,想要知道是否有男生,只要能查询到一条含有男生的记录就可以。使用Limit 1 可以在找到一条数据后停止搜索,避免多余查询。

问题类型方法
查询所有列所有列*、列名
查询某些列某些列列名
查询结果去重结果去重distinct
将查询后的列重新命名重命名as

二、实例

已知有用户信息表user_profile(device_id 设备ID, gender 性别, age 年龄, university 学校, gpa)

iddevice_idgenderageuniversitygpa
12138male21北京大学3.4
23214male复旦大学4.0
36543female20北京大学3.2
42315female23浙江大学3.6
55432male25山东大学3.8
62131male28北京师范大学3.3
题目1:取出用户信息表中所有的数据

【分类】:取出所有列

【知识点】: *

求解代码
select * 
from user_profile 
结果
device_idgenderageuniversitygpa
2138male21北京大学3.4
3214male复旦大学4.0
6543female20北京大学3.2
2315female23浙江大学3.6
5432male25山东大学3.8
2131male28北京师范大学3.3

题目2:取出用户的设备id、性别、年龄和学校的数据

【分类】:取出某些列

【知识点】:直接写列名

求解代码
select 
    device_id,
    gender,
    age,
    university
from user_profile
结果
device_idgenderageuniversity
2138male21北京大学
3214male复旦大学
6543female20北京大学
2315female23浙江大学
5432male25山东大学
2131male28北京师范大学

题目3:取出学校的去重数据

【分类】:查询结果去重

【知识点】:distinct

求解代码
select
    distinct university 
from user_profile
结果
university
北京大学
复旦大学
浙江大学
山东大学
北京师范大学

题目4:取出用户的设备ID数据,并将列名改为 ‘user_infos_example’

【分类】:重命名

【知识点】:as适用于列名和表的重命名,as也可以省略

求解代码
select 
    device_id as user_info_example
from user_profile
结果
user_infos_example
2138
3214
6543
2315
5432
2131

创建 user_profile 表的代码

-- ----------------------------
-- Table structure for user_profile
-- ----------------------------
DROP TABLE IF EXISTS `user_profile`;
CREATE TABLE `user_profile`  (
  `id` int(11) NOT NULL,
  `device_id` int(11) NOT NULL,
  `gender` varchar(14) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `age` int(11) NULL DEFAULT NULL,
  `university` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `gpa` float NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user_profile
-- ----------------------------
INSERT INTO `user_profile` VALUES (1, 2138, 'male', 21, '北京大学', 3.4);
INSERT INTO `user_profile` VALUES (2, 3214, 'male', NULL, '复旦大学', 4);
INSERT INTO `user_profile` VALUES (3, 6543, 'female', 20, '北京大学', 3.2);
INSERT INTO `user_profile` VALUES (4, 2315, 'female', 23, '浙江大学', 3.6);
INSERT INTO `user_profile` VALUES (5, 5432, 'male', 25, '山东大学', 3.8);
INSERT INTO `user_profile` VALUES (6, 2131, 'male', 28, '北京师范大学', 3.3);

SET FOREIGN_KEY_CHECKS = 1;
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值