当前位置: 首页 > article >正文

MySQL学习之表查询操作

MySQL学习之表查询操作

准备数据

创建数据表和导入数据

CREATE TABLE user (
  id INT COMMENT '编号',
  name VARCHAR (10) COMMENT '姓名',
  gender CHAR(1) COMMENT '性别',
  age TINYINT UNSIGNED COMMENT '年龄',
  phone VARCHAR(11) COMMENT '手机号',
  idcard CHAR(18) COMMENT '身份证号',
  address VARCHAR (50) COMMENT '地址',
  brithday DATE COMMENT '生日'
  ) COMMENT '用户表';
  
  
  -----
  INSERT INTO user
VALUES
  (1, '张三', '男', '18', '18186325565', '312321212315464242', '北京', '2000-01-01'),
  (2, '雷军', '男', '54', '18136325565', '312321212315464242', '武汉', '1980-01-01'),
  (3, '卢伟冰', '男', '45', '18136332565', '312321212315464242', '北京', '1990-01-01'),
  (4, '马化腾', '男', '50', '18136332562', '312321212315464242', '深圳', '1974-01-01'),
  (5, '张学友', '男', '60', '18136332565', '312321212315464242', '香港', '1955-01-01'),
  (6, '郭富城', '男', '65', '18136332564', '312321212315464242', '香港', '1968-01-01'),
  (7, '周润发', '男', '66', '18136332567', '312321212315464242', '香港', '1957-01-01'),
  (8, '李健', '男', '45', '18136332566', '312321212315464242', '哈尔冰', '1963-01-01'),
  (9, '余华', '男', '65', '18136332568', '312321212315464242', '杭州', '1969-01-01'),
  (10, '马尔克斯', '男', '85', '18136332165', '312321212315464242', '马来西亚', '1885-01-01'),
  (11, '迟子建', '女', '60', '18136332265', '312321212315464242', '哈尔冰', '1974-01-01'),
  (12, '莫言', '男', '65', '18136332365', '312321212315464242', '高密', '1964-01-01'),
  (13, '毛姆', '男', '85', '18136332465', '312321212315464242', '伦敦', '1884-01-01'),
  (14, '刘强东', '男', '50', '18136338565', '312321212315464242', '宿迁', '1976-01-01'),
  (15, '高圆圆', '女', '18', '18136334665', '312321212315464242', '北京', '1991-01-01'),
  (16, '刘亦菲', '女', '18', '18136333565', '312321212315464242', '上海', '1996-01-01'),
  (17, '许三多', '男', '18', '18136330565', '312321212315464242', '上榕树', '1992-01-01');

基础查询

不带任何条件的情况

语法

SELECT 字段1, 字段2, 字段3 ... FROM 表名;  //查询要展示的字段
SELECT * FROM 表名; //查询全部字段
mysql> select id,name from user;
+------+----------+
| id   | name     |
+------+----------+
|    1 | 张三     |
|    2 | 雷军     |
|    3 | 卢伟冰   |
|    4 | 马化腾   |
|    5 | 张学友   |
|    6 | 郭富城   |
|    7 | 周润发   |
|    8 | 李健     |
|    9 | 余华     |
|   10 | 马尔克斯 |
|   11 | 迟子建   |
|   12 | 莫言     |
|   13 | 毛姆     |
|   14 | 刘强东   |
|   15 | 高圆圆   |
|   16 | 刘亦菲   |
|   17 | 许三多   |
+------+----------+
17 rows in set (0.00 sec)

设置别名

mysql> select id as '编号',name as '名字' from user;
+------+----------+
| 编号 | 名字     |
+------+----------+
|    1 | 张三     |
|    2 | 雷军     |
|    3 | 卢伟冰   |
|    4 | 马化腾   |
|    5 | 张学友   |
|    6 | 郭富城   |
|    7 | 周润发   |
|    8 | 李健     |
|    9 | 余华     |
|   10 | 马尔克斯 |
|   11 | 迟子建   |
|   12 | 莫言     |
|   13 | 毛姆     |
|   14 | 刘强东   |
|   15 | 高圆圆   |
|   16 | 刘亦菲   |
|   17 | 许三多   |
+------+----------+
17 rows in set (0.00 sec)

去重

mysql> select distinct address from user;
+----------+
| address  |
+----------+
| 成都     |
| 武汉     |
| 北京     |
| 深圳     |
| 香港     |
| 哈尔冰   |
| 杭州     |
| 马来西亚 |
| 高密     |
| 伦敦     |
| 宿迁     |
| 上海     |
| 上榕树   |
+----------+
13 rows in set (0.00 sec)

条件查询

条件分为两种:一种是比较运算符,一种是逻辑运算符

语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;

查询id 大于10的数据

mysql> select * from user where id > 10;
+------+--------+--------+------+-------------+--------------------+---------+------------+
| id   | name   | gender | age  | phone       | idcard             | address | brithday   |
+------+--------+--------+------+-------------+--------------------+---------+------------+
|   11 | 迟子建 ||   60 | 18136332265 | 312321212315464242 | 哈尔冰  | 1974-01-01 |
|   12 | 莫言   ||   65 | 18136332365 | 312321212315464242 | 高密    | 1964-01-01 |
|   13 | 毛姆   ||   85 | 18136332465 | 312321212315464242 | 伦敦    | 1884-01-01 |
|   14 | 刘强东 ||   50 | 18136338565 | 312321212315464242 | 宿迁    | 1976-01-01 |
|   15 | 高圆圆 ||   18 | 18136334665 | 312321212315464242 | 北京    | 1991-01-01 |
|   16 | 刘亦菲 ||   18 | 18136333565 | 312321212315464242 | 上海    | 1996-01-01 |
|   17 | 许三多 ||   18 | 18136330565 | 312321212315464242 | 上榕树  | 1992-01-01 |
+------+--------+--------+------+-------------+--------------------+---------+------------+

查询年龄等于18岁或者年龄为65或者年龄大于80岁的数据

mysql> select * from user where age = 18 or age = 65 or age > 80;
+------+----------+--------+------+-------------+--------------------+----------+------------+
| id   | name     | gender | age  | phone       | idcard             | address  | brithday   |
+------+----------+--------+------+-------------+--------------------+----------+------------+
|    1 | 张三     ||   18 | 18136332565 | 312321212315464242 | 成都     | 2000-01-01 |
|    6 | 郭富城   ||   65 | 18136332564 | 312321212315464242 | 香港     | 1968-01-01 |
|    9 | 余华     ||   65 | 18136332568 | 312321212315464242 | 杭州     | 1969-01-01 |
|   10 | 马尔克斯 ||   85 | 18136332165 | 312321212315464242 | 马来西亚 | 1885-01-01 |
|   12 | 莫言     ||   65 | 18136332365 | 312321212315464242 | 高密     | 1964-01-01 |
|   13 | 毛姆     ||   85 | 18136332465 | 312321212315464242 | 伦敦     | 1884-01-01 |
|   15 | 高圆圆   ||   18 | 18136334665 | 312321212315464242 | 北京     | 1991-01-01 |
|   16 | 刘亦菲   ||   18 | 18136333565 | 312321212315464242 | 上海     | 1996-01-01 |
|   17 | 许三多   ||   18 | 18136330565 | 312321212315464242 | 上榕树   | 1992-01-01 |
+------+----------+--------+------+-------------+--------------------+----------+------------+

模糊查询,查询名称为3个字的数据

mysql> select * from user where name like '___';
+------+--------+--------+------+-------------+--------------------+---------+------------+
| id   | name   | gender | age  | phone       | idcard             | address | brithday   |
+------+--------+--------+------+-------------+--------------------+---------+------------+
|    3 | 卢伟冰 ||   45 | 18136332565 | 312321212315464242 | 北京    | 1990-01-01 |
|    4 | 马化腾 ||   50 | 18136332562 | 312321212315464242 | 深圳    | 1974-01-01 |
|    5 | 张学友 ||   60 | 18136332565 | 312321212315464242 | 香港    | 1955-01-01 |
|    6 | 郭富城 ||   65 | 18136332564 | 312321212315464242 | 香港    | 1968-01-01 |
|    7 | 周润发 ||   66 | 18136332567 | 312321212315464242 | 香港    | 1957-01-01 |
|   11 | 迟子建 ||   60 | 18136332265 | 312321212315464242 | 哈尔冰  | 1974-01-01 |
|   14 | 刘强东 ||   50 | 18136338565 | 312321212315464242 | 宿迁    | 1976-01-01 |
|   15 | 高圆圆 ||   18 | 18136334665 | 312321212315464242 | 北京    | 1991-01-01 |
|   16 | 刘亦菲 ||   18 | 18136333565 | 312321212315464242 | 上海    | 1996-01-01 |
|   17 | 许三多 ||   18 | 18136330565 | 312321212315464242 | 上榕树  | 1992-01-01 |
+------+--------+--------+------+-------------+--------------------+---------+------------+
10 rows in set (0.00 sec)

LIKE 关键字用于在 WHERE 子句中搜索列中的指定模式。LIKE 子句可以与通配符一起使用来搜索一个范围的值。其中两个常用的通配符是:

  • %:表示任意数量的字符(包括零个字符)。
  • _:表示单个字符。

当你使用 LIKE '___' 作为一个查询条件时,这里的三个下划线(_)各自代表一个字符。因此,LIKE '___' 用于匹配那些正好包含三个字符的字符串。

聚合函数

官网聚合函数的使用文档地址如下:

https://dev.mysql.com/doc/refman/8.4/en/aggregate-functions.html

以下是mysql中的所有聚合函数方法

NameDescription
AVG()Return the average value of the argument
BIT_AND()Return bitwise AND
BIT_OR()Return bitwise OR
BIT_XOR()Return bitwise XOR
COUNT()Return a count of the number of rows returned
COUNT(DISTINCT)Return the count of a number of different values
GROUP_CONCAT()Return a concatenated string
JSON_ARRAYAGG()Return result set as a single JSON array
JSON_OBJECTAGG()Return result set as a single JSON object
MAX()Return the maximum value
MIN()Return the minimum value
STD()Return the population standard deviation
STDDEV()Return the population standard deviation
STDDEV_POP()Return the population standard deviation
STDDEV_SAMP()Return the sample standard deviation
SUM()Return the sum
VAR_POP()Return the population standard variance
VAR_SAMP()Return the sample variance
VARIANCE()Return the population standard variance

语法如下:

SELECT 聚合函数(字段列表) FROM 表名 ;

null值不参与聚合函数的运算

一些简单示例如下:

#统计香港地区的员工年龄平均值
SELECT AVG(age) as '平均年龄' FROM `user` WHERE address = '香港';
#统计一共有哪几个岁数
select COUNT(DISTINCT age) FROM `user`;

http://www.kler.cn/a/456297.html

相关文章:

  • Python的简单爬虫框架
  • Excel 面试 01 “Highlight in red the 10 lowest orders”
  • 基于神经网络的车牌识别算法matlab仿真 人工智能方法 车牌识别
  • 【Unity3D】ECS入门学习(十二)IJob、IJobFor、IJobParallelFor
  • 仓颉编程笔记1:变量函数定义,常用关键字,实际编写示例
  • 如何在 Ubuntu 22.04 上使用 systemctl 管理 systemd 服务教程
  • Express.js 有哪些常用的中间件?
  • 【Flutter_Web】Flutter编译Web第三篇(网络请求篇):dio如何改造方法,变成web之后数据如何处理
  • 【Java】线程相关面试题 (基础)
  • 工业安全监测审计系统(源码+文档+部署+讲解)
  • 【我的 PWN 学习手札】IO_FILE 之 stdout任意地址读
  • 普通的树形数据primevue的treetable组件的treetable[ ]
  • android系统查找应用包名以及主activity:
  • WPF 绘制过顶点的圆滑曲线(样条,贝塞尔)
  • 创建用于预测序列的人工智能模型,用Keras Tuner探索模型的超参数。
  • PDF书籍《手写调用链监控APM系统-Java版》第8章 插件与链路的结合:Gson插件实现
  • Arcgis中python工具箱制造要点及统计要素图层字段信息工具分享
  • 【每日学点鸿蒙知识】组件封装通用方法、callback和await性能对比、Web组件下拉刷新、hsp包报错、WebView圆角
  • 使用 Three.js 创建一个 3D 人形机器人仿真系统
  • 基于MATLAB的冰箱水果保鲜识别系统
  • RustDesk内置ID服务器,Key教程
  • 洛谷 P2422:良好的感觉 ← 单调队列+前缀和
  • 【PPTist】表格功能
  • PyTorch框架——基于深度学习LYT-Net神经网络AI低光图像增强系统源码
  • 2.5.3 文件使用、共享、保护、安全与可靠性
  • 瑞芯微全新芯片平台RK3506优势详解,高集成低功耗,为工业而生 触觉智能测评