SQL基础入门-条件查询语句

news2024/11/15 19:39:43

前言

在这里插入图片描述

可以关注我的云原生社区:云原生社区
也可以关注我的英语社区:从零开始学英语

一. 创建数据库并写入数据

1.1 创建数据库

MySQL [school]> create database game;
Query OK, 1 row affected (0.01 sec)

MySQL [school]> use game
Database changed
MySQL [game]> 

1.2 创建一个名字为game_characters的表

包含以下字段:

  • "id"字段:用于唯一标识每条记录的ID,采用INT数据类型,并使用PRIMARY KEY约束和AUTO_INCREMENT属性。
  • "name"字段:用于存储游戏人物的姓名,采用VARCHAR(50)数据类型,并设置为NOT NULL。
  • "level"字段:用于存储游戏人物的等级,采用INT数据类型。
  • "class"字段:用于存储游戏人物所属的职业,采用VARCHAR(50)数据类型。
  • "health"字段:用于存储游戏人物的生命值,采用INT数据类型。
  • "mana"字段:用于存储游戏人物的魔法值,采用INT数据类型。
  • "description"字段:用于存储游戏人物的描述信息,采用TEXT数据类型。
MySQL [game]> CREATE TABLE game_characters (
    ->   id INT PRIMARY KEY AUTO_INCREMENT,
    ->   name VARCHAR(50) NOT NULL,
    ->   level INT,
    ->   class VARCHAR(50),
    ->   health INT,
    ->   mana INT,
    ->   description TEXT
    -> );
Query OK, 0 rows affected (0.01 sec)

1.3 插入数据

MySQL [game]> INSERT INTO game_characters (name, level, class, health, mana, description)
    -> VALUES
    ->   ('大乔', 50, '法师', 1000, 800, '大乔是一位强大的法术攻击型角色。'),
    ->   ('小乔', 45, '刺客', 800, 500, '小乔是一位敏捷且擅长暗杀的角色。'),
    ->   ('曹操', 55, '战士', 1200, 200, '曹操是一位勇猛的近战战士。'),
    ->   ('刘备', 50, '勇士', 1100, 300, '刘备是一位正直而有领导力的角色。'),
    ->   ('孙权', 48, '射手', 900, 600, '孙权是一位精通远程射击的角色。');
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

MySQL [game]> select * from game_characters;
+----+--------+-------+--------+--------+------+--------------------------------------------------+
| id | name   | level | class  | health | mana | description                                      |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
|  1 | 大乔   |    50 | 法师   |   1000 |  800 | 大乔是一位强大的法术攻击型角色。                 |
|  2 | 小乔   |    45 | 刺客   |    800 |  500 | 小乔是一位敏捷且擅长暗杀的角色。                 |
|  3 | 曹操   |    55 | 战士   |   1200 |  200 | 曹操是一位勇猛的近战战士。                       |
|  4 | 刘备   |    50 | 勇士   |   1100 |  300 | 刘备是一位正直而有领导力的角色。                 |
|  5 | 孙权   |    48 | 射手   |    900 |  600 | 孙权是一位精通远程射击的角色。                   |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
5 rows in set (0.00 sec)

二. SQL语句的查询

SQL语句的基础条件查询语句:语法:select 字段名1,字段名2 from 表名 [where 条件];

2.1 查询game_characters的name和level字段


MySQL [game]> select name,level from game_characters;
+--------+-------+
| name   | level |
+--------+-------+
| 大乔   |    50 |
| 小乔   |    45 |
| 曹操   |    55 |
| 刘备   |    50 |
| 孙权   |    48 |
+--------+-------+
5 rows in set (0.00 sec

2.2 去重复查询distinct [dɪˈstɪŋkt]

- 在表中再次插入一个level=50的人物

MySQL [game]> INSERT INTO game_characters (name, level, class, health, mana, description) VALUES ('嫦娥', 50, '法师', 800, 1200, '嫦娥是一位神秘的法术师。');;
Query OK, 1 row affected (0.01 sec)

MySQL [game]> select name,level from game_characters;
+--------+-------+
| name   | level |
+--------+-------+
| 大乔   |    50 |
| 小乔   |    45 |
| 曹操   |    55 |
| 刘备   |    50 |
| 孙权   |    48 |
| 嫦娥   |    50 |
+--------+-------+
6 rows in set (0.00 sec)

- 对level进行去重

MySQL [game]> select distinct level from game_characters;
+-------+
| level |
+-------+
|    50 |
|    45 |
|    55 |
|    48 |
+-------+
4 rows in set (0.00 sec)

MySQL [game]> 

distinct 对多个字段没有去重功能,只能对一个字段,如果要对多个字段去重,指的是对多个字段的组合体去重。 也就是 查看两个字段,两个字段都要重复的才会去掉,看两个字段,但只重复一个的不会去重

2.3 使用and和or进行多条件查询

MySQL [game]> select * from game_characters;
+----+--------+-------+--------+--------+------+--------------------------------------------------+
| id | name   | level | class  | health | mana | description                                      |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
|  1 | 大乔   |    50 | 法师   |   1000 |  800 | 大乔是一位强大的法术攻击型角色。                 |
|  2 | 小乔   |    45 | 刺客   |    800 |  500 | 小乔是一位敏捷且擅长暗杀的角色。                 |
|  3 | 曹操   |    55 | 战士   |   1200 |  200 | 曹操是一位勇猛的近战战士。                       |
|  4 | 刘备   |    50 | 勇士   |   1100 |  300 | 刘备是一位正直而有领导力的角色。                 |
|  5 | 孙权   |    48 | 射手   |    900 |  600 | 孙权是一位精通远程射击的角色。                   |
|  6 | 嫦娥   |    50 | 法师   |    800 | 1200 | 嫦娥是一位神秘的法术师。                         |
+----+--------+-------+--------+--------+------+--------------------------------------------------+

  • 查询等级大于等于50且职业为法师的人物:
MySQL [game]> select * from game_characters where level >= 50 and class ='法师';
+----+--------+-------+--------+--------+------+--------------------------------------------------+
| id | name   | level | class  | health | mana | description                                      |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
|  1 | 大乔   |    50 | 法师   |   1000 |  800 | 大乔是一位强大的法术攻击型角色。                 |
|  6 | 嫦娥   |    50 | 法师   |    800 | 1200 | 嫦娥是一位神秘的法术师。                         |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
2 rows in set (0.00 sec)

MySQL [game]> 

  1. 查询生命值小于500或者法力值大于1000的人物:
MySQL [game]> select * from game_characters where health < 500 or mana >1000 ;
+----+--------+-------+--------+--------+------+--------------------------------------+
| id | name   | level | class  | health | mana | description                          |
+----+--------+-------+--------+--------+------+--------------------------------------+
|  6 | 嫦娥   |    50 | 法师   |    800 | 1200 | 嫦娥是一位神秘的法术师。             |
+----+--------+-------+--------+--------+------+--------------------------------------+
1 row in set (0.00 sec)


  1. 查询等级介于40到60之间,并且职业为战士或法师的人物:
MySQL [game]> select * from game_characters where (level >= 40 and level <= 60) and (class='战士' or class='法师');
+----+--------+-------+--------+--------+------+--------------------------------------------------+
| id | name   | level | class  | health | mana | description                                      |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
|  1 | 大乔   |    50 | 法师   |   1000 |  800 | 大乔是一位强大的法术攻击型角色。                 |
|  3 | 曹操   |    55 | 战士   |   1200 |  200 | 曹操是一位勇猛的近战战士。                       |
|  6 | 嫦娥   |    50 | 法师   |    800 | 1200 | 嫦娥是一位神秘的法术师。                         |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
3 rows in set (0.00 sec)

MySQL [game]> 

2.4 mysql查询排序

语法:select distinct 字段1,字段2 from 表名order by 字段名;
默认为升序 asc ,可以省略不写

当您需要对查询结果进行排序时,可以使用ORDER BY子句来指定排序的字段和排序方式(升序或降序)。

1. 按照等级降序排列人物:

MySQL [game]> select * from game_characters order by level desc;
+----+--------+-------+--------+--------+------+--------------------------------------------------+
| id | name   | level | class  | health | mana | description                                      |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
|  3 | 曹操   |    55 | 战士   |   1200 |  200 | 曹操是一位勇猛的近战战士。                       |
|  1 | 大乔   |    50 | 法师   |   1000 |  800 | 大乔是一位强大的法术攻击型角色。                 |
|  4 | 刘备   |    50 | 勇士   |   1100 |  300 | 刘备是一位正直而有领导力的角色。                 |
|  6 | 嫦娥   |    50 | 法师   |    800 | 1200 | 嫦娥是一位神秘的法术师。                         |
|  5 | 孙权   |    48 | 射手   |    900 |  600 | 孙权是一位精通远程射击的角色。                   |
|  2 | 小乔   |    45 | 刺客   |    800 |  500 | 小乔是一位敏捷且擅长暗杀的角色。                 |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
6 rows in set (0.00 sec)

  1. 按照生命值升序排列人物:
MySQL [game]> select * from game_characters order by health asc;
+----+--------+-------+--------+--------+------+--------------------------------------------------+
| id | name   | level | class  | health | mana | description                                      |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
|  2 | 小乔   |    45 | 刺客   |    800 |  500 | 小乔是一位敏捷且擅长暗杀的角色。                 |
|  6 | 嫦娥   |    50 | 法师   |    800 | 1200 | 嫦娥是一位神秘的法术师。                         |
|  5 | 孙权   |    48 | 射手   |    900 |  600 | 孙权是一位精通远程射击的角色。                   |
|  1 | 大乔   |    50 | 法师   |   1000 |  800 | 大乔是一位强大的法术攻击型角色。                 |
|  4 | 刘备   |    50 | 勇士   |   1100 |  300 | 刘备是一位正直而有领导力的角色。                 |
|  3 | 曹操   |    55 | 战士   |   1200 |  200 | 曹操是一位勇猛的近战战士。                       |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
6 rows in set (0.01 sec)
  1. 先按照health升序排序,再按照level降序排序人物:

这里指的是按照第一个字段health升序,当遇到相同的health值的时候,这个值按照level的降序进行排列。

MySQL [game]> select * from game_characters order by health asc,level desc;
+----+--------+-------+--------+--------+------+--------------------------------------------------+
| id | name   | level | class  | health | mana | description                                      |
+----+--------+-------+--------+--------+------+--------------------------------------------------+
|  6 | 嫦娥   |    50 | 法师   |    800 | 1200 | 嫦娥是一位神秘的法术师。                         |
|  2 | 小乔   |    45 | 刺客   |    800 |  500 | 小乔是一位敏捷且擅长暗杀的角色。                 |
|  5 | 孙权   |    48 | 射手   |    900 |  600 | 孙权是一位精通远程射击的角色。                   |
|  1 | 大乔   |    50 | 法师   |   1000 |  800 | 大乔是一位强大的法术攻击型角色。                 |
|  4 | 刘备   |    50 | 勇士   |   1100 |  300 | 刘备是一位正直而有领导力的角色。                 |
|  3 | 曹操   |    55 | 战士   |   1200 |  200 | 曹操是一位勇猛的近战战士。                       |
+----+--------+-------+--------+--------+------+------------------------------------

总结

关于sql语句的查询基本上就这么多,后面我们还会介绍更为复杂的sql语句。 你学会了吗。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[PyTorch][chapter 40][CIFAR-10 数据集]

前言&#xff1a; CIFAR-10和CIFAR-100是8000万个微小图像数据集的标记子集。它们由Alex Krizhevsky、Vinod Nair和Geoffrey Hinto收集 目录&#xff1a; CIFAR-10数据集简介 在线下载方式 离线下载方式 一 CIFAR-10数据集简介 CIFAR-10数据集由10个类别的60000张32x32…

碳中和城市建筑能源系统(3):负荷篇(龙惟定)2022

碳中和城市建筑能源系统(3):负荷篇 摘要 本文是碳中和城市建筑能源系统系列文章的第三篇。碳中和城市能源系统要实现“两个替代”&#xff0c;即能源生产的可再生能源替代和能源消费的电力替代。因此有&#xff12;个关键点对负荷分析提出了要求&#xff1a;一是建筑电气化&a…

网络安全运维-数字取证篇

Volatility使用 使用工具&#xff1a;Autopsy、Volatility、Wireshark 这部分可分为数据分析与取证、内存取证两块内容 一、数据分析与取证 1、wirwshark图形化 wireshark基本操作 过滤器使用 ip.src x.x.x.x 选择源ip为x.x.x.x的数据包 tcp.port xx 选择源或目标端口…

WPF开发txt阅读器13:绑定快捷键实现翻页

文章目录 绑定快捷键翻页功能跳转到首尾章节跳转 txt阅读器系列&#xff1a; 需求分析和文件读写目录提取类&#x1f48e;列表控件与目录字体控件绑定&#x1f48e;前景/背景颜色书籍管理系统&#x1f48e;用树形图管理书籍语音播放&#x1f48e;播放进度显示&#x1f48e;快进…

python数据可视化玩转Matplotlib直方图、箱型图、密度图、正态分布、偏度和峰度

目录 1. 直方图、箱线图和密度图 1.1 直方图 1.2 箱线图 1.3 密度图 2. 正态分布 3. 偏度和峰度 结论 1. 直方图、箱线图和密度图 直方图、箱线图和密度图是数据分析中十分常用的图形。它们可以帮助我们更好地理解数据的分布情况&#xff0c;从而更好地进行数据分析和处…

M1和M2的剪刀差是什么意思?

Scissors difference between M1 and M2. 在市场上流通的货币的数量&#xff0c;用金融术语来讲叫货币供应量。 因为市场上的货币流动性各不相同&#xff0c;长期存款的流动性不如短期存款的强&#xff0c;短期存款的流动性不如现金的强。 所以在统计货币量的时候&#xff0c;标…

Linux优化命令之free命令

free 这里写目录标题 一、free命令描述&#xff1a;1.free命令的语法&#xff1a;2.free命令的选项&#xff1a;3.free命令的输出格式&#xff1a; 二、压力测试工具stress&#xff1a;1.工具简介&#xff1a;2.参数详解&#xff1a;3.下载压力测试工具&#xff1a; 三、模拟实…

osg环境搭建与使用

目录 环境安装 案例一&#xff1a; 案例二&#xff1a; 案例三&#xff1a; 案例四&#xff1a; 我的vs2022,window11 环境安装 看这个文章即可,博客很详细&#xff0c;按照这个没问题的 (5条消息) 【OSG】OSG环境部署 OSG3.6.5vs2017win10_x64&#xff08;超详细&…

STM32F407的介绍

文章目录 芯片STM32F407资源F407总线架构STM32F407系统框图STM32F407地址分配 芯片 STM32F407资源 内核 32位 高性能ARM Cortex-M4处理器时钟&#xff1a; 高达168MHz&#xff0c;实际还可以超频一点点 stm32f407的主频通过PLL倍频后能够达到168MHz&#xff0c;而且芯片内置一…

使用大白菜PE给苹果电脑安装win7ghost

如何安装大白菜苹果电脑&#xff1f;ghost (苹果电脑能用大白菜安装系统吗) 喜欢用苹果Mac电脑&#xff0c;开始后发现不习惯苹果的操作系统&#xff0c;还是习惯用Windows我们可以给苹果系统Mac电脑上安装Windows系统&#xff0c;享受苹果的外观&#xff0c;操作windows系统…

【Java】Java核心要点总结 66

文章目录 1. 成员变量 和 局部变量 的区别2 . 静态方法 和 实例方法 区别3. 基本数据类型 和 包装类 的区别4. 局部变量一定存储在栈中吗&#xff1f;5. 包装类型的缓存机制 1. 成员变量 和 局部变量 的区别 ● 语法形式 &#xff1a;从语法形式上看&#xff0c;成员变量是属于…

基于opencv与mediapipe的民族舞舞蹈动作识别

需要项目的请关注、私信 基于opencv与mediapipe的民族舞舞蹈动作识别 1、原理介绍1.1 Opencv1.2 Mediapipe 2、实验步骤2.1 导入工具包2.2 中文输入2.4 建立姿态位置信息库2.5 位置信息获取2.6 姿态识别 3 实验结果与评价 1、原理介绍 1.1 Opencv Opencv&#xff08;Open So…

Android Studio实现知乎日报App

项目目录 一、项目概述二、开发环境三、运行演示 一、项目概述 本系统基于 MVP RxJava Retrofit进行设计和开发&#xff0c;通过 Retrofit 实现了无网缓存&#xff0c;基于 MVP 模式对 Activity 和 Fragment 封装了两个基类&#xff0c;同样适用于非 MVP 的实现。运用 Recyc…

termux中apache+php的安装

如果 ssl.so.3 not found 需要 apk update 更新一下 然后&#xff0c;pkg install php 完成php 8.2安装 使用命令开启 存储 权限 termux-setup-storage apt install phpmyadmin apt install php-apache apache2 配置文件位于 cd $PREFIX/etc/apache2/ cd /data/data/com.te…

【干货】Android系统定制基础篇:第四部分-Android二次构建

背景 有时我们需要使用同一套Android源码编译生成各种差异化产品固件&#xff0c;比如&#xff1a;A产品、B产品、C产品&#xff0c;各产品之间大部分功能是相同的&#xff0c;仅个别功能定义上有差别。 方法一 Android默认的做法是在源码 device 目录下增加A、B、C产品&…

三个领域的微调模型;Meta推出新的生成式AI模型Voicebox

&#x1f989; AI新闻 &#x1f680; Meta推出新的生成式AI模型Voicebox&#xff0c;可执行音频编辑、采样、风格化等语音生成任务 摘要&#xff1a;Meta继推出ImageBind之后&#xff0c;于今天再次推出了全新的生成式AI模型Voicebox。该模型帮助创作者执行音频编辑、采样和风…

2023年6月最新|大屏可视化配置

大屏可视化配置 运行环境&#xff1a;VScode 一、可视化适配 大屏下显示一般都是16:9尺寸 1920*1080 &#xff0c;做适配也就是在这个比例的基础上进行的 方案一&#xff1a;打开VSCode终端&#xff0c;下载flexible 1、选中要运行的文件&#xff0c;右键–>【在集成终…

使用Apache ShardingSphere简答实现水平分表

1 简介 Apache ShardingSphere 是一款分布式的数据库生态系统&#xff0c; 可以将任意数据库转换为分布式数据库&#xff0c;并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 官方网站 https://shardingsphere.apache.org/document/current/cn/overview/2 创建…

【算法题刷题笔记】华为OD机试 - 农场施肥

样例一&#xff1a; 5 7 5 7 9 15 10>> 9样例二&#xff1a; 3 1 2 3 4>> -1解题思路 题目大概意思&#xff1a; 给你N个数&#xff0c; 还有一个数M&#xff0c; 让你求K&#xff0c; 进行M次减K操作&#xff0c; 令这N个数都小于等于0。 思路&#xff1a; 利用…

frp配置多端口内网穿透?frp多端口怎么配置?

FRP内网穿透应用场景&#xff1a;本地Web服务外网访问、本地开发微信、本地联调支付宝\微信支付、TCP/UDP端口转发 在本机开发好的网站想让客户测试不在需要上传到服务器上面&#xff0c;使用FRP内外网穿透轻松解决&#xff1b;微信开发也不需要在上传到服务器&#xff0c;使用…