数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(三),单表查询

news2024/11/28 6:27:41

前言

        Navicat Premium 17 数据表需要经常清缓存,不然之前的自增的数据可能会一直存在,所以把之前的表删除重新创建是对练习数据库最简单的办法。新建数据库的命令如下:

/* 创建有 自增主键的属性id,非空的属性name,唯一的属性tel,代表性别的属性sex,代表年龄的属性age,代表职位的默认为“学生”的属性position */
CREATE TABLE student(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
tel INT(11) UNIQUE,
sex char(1),
age int(4),
position VARCHAR(4) DEFAULT('学生'));


/*添加数据,因为id是自增的position是默认的所以不需要填写*/
INSERT INTO student
(name,tel,sex,age)
VALUES
('张三','1516666777','男',18),
('张四','1516666778','男',19),
('李三','1516666779','女',20),
('李五','1516666780','男',22),
('张三','1516666788','男',17),
('赵武','1516666789','女',23),
('不思量','1516666795','女',22),
('自难忘','1516666796','男',21),
('李明','1516666678','男',20),
('小明','1516666679','男',22),
('萧炎','1516666567','男',23),
('孙武','1516666122','男',18),
('李华','1516666123','女',19),
('孙武','1516666124','男',19);
 

创建数据表结果如下:

 一. 查询一列数据或几列数据

1.1 查询一列数据

SELECT `name` FROM student;

在数据表 student 中查询 ‘name’ 属性

命令原型:SELECT 属性名 FROM 表名;

反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号,一般不影响正常使用。

1.2 查询多列数据

SELECT tel,sex FROM student;

在数据表 student 中查询 tel,sex 属性

命令原型:SELECT 属性名,属性名···  FROM 表名;

1.3 查看全部列数据

SELECT * FROM 表名;

查看表中所有的数据

1.4 查询经过计算的值

SELECT age+10 FROM student;

查询结果是 年龄+10,是一个表达式

命令原型:SELECT 表达式1,表达式2 FROM 表名;

普通的表达式可以理解为 属性乘1

二. 查询某一列重复数据

2.1 单属性数据去重

SELECT DISTINCT `name` FROM student;

对数据表 student 的 name 属性进行去重

命令原型:SELECT DISTINCT 属性名 FROM 表名;

2.2  多属性数据去重

INSERT INTO student (name,tel,sex,age) VALUES ('李华','1516676777','男',19);

/* 插入一条数据,与第十三条数据性别不同,电话号码也不同,电话号码是禁止重复*/

SELECT DISTINCT `name`,sex FROM student;

对数据表 student 的 name 属性进行去重,当两条数据都重复的时候才会去重

命令原型:SELECT DISTINCT 属性名1,属性名2,属性名3... FROM 表名;

应用在多个字段时,只有当多个字段重复才会去重

 2.3 去重保留全部数据

SELECT DISTINCT * FROM student;

对 student 数据表的 全部属性进行去重,这种情况必须要全部的数据相同才能去重

SELECT DISTINCT * FROM 数据表;

这个 * 代表全部的属性

三. 查询满足条件的元组

3.1 查询条件表格

查询条件关键词
比较=,>,<,>=,<=,!=,<>,!>,!<; NOT+上述比较运算符
范围BETWEEN AND,NOT BETWEEN AND
集合IN,NOT IN
字符匹配(相当于等号)LIKE,NOT LIKE
空值IS NULL,IS NOT NULL
多重条件(逻辑运算)AND,OR,NOT

        查询满足指定条件的元组可以通过WHERE子句实现。

3.2 等于查询

SELECT `name` FROM student WHERE `name`='张三'

查询数据表 student 中 name 属性等于张三的数据,并且展示他们的 name 属性

命令原型:SELECT 属性名 FROM 表名 WHERE 等于条件;

3.3 小于查询

SELECT name,age FROM student WHERE age<=20;

查询年龄小于等于20岁的人,并且展示name和age属性

命令原型:SELECT 属性名 FROM 表名 WHERE 小于条件;

3.4 NOT查询

SELECT DISTINCT `name`,age FROM student WHERE NOT age<20;

查询年龄不小于20岁的人,并且展示name和age属性

命令原型:SELECT 属性名 FROM 表名 WHERE NOT 判断条件;

3.5 范围查询

SELECT * FROM student WHERE age BETWEEN 19 AND 22;

查询年龄在19到22岁之间的人,包括19岁和22岁,并且展示全部的属性

命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 BETWEEN  包含AND的范围区间;

下图的只有一条语句的时候没有分号系统也会默认结束,但是不建议大家这样写,养成好习惯很重要

* 代表的是全部的属性

3.6 范围之外查询

SELECT * FROM student WHERE age BETWEEN NOT 19 AND 22;

查询年龄在19到22岁之外的人,不包括19岁和22岁,并且展示全部的属性

命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 BETWEEN  NOT 包含AND的范围区间;

3.7 集合查询

SELECT * FROM `student` WHERE name IN ('张三','李华','小明');

查询name 属性 中有张三,李华,小明的数据,并且展示全部的属性

命令原型:SELECT 属性名 FROM 表名 WHERE IN 数据集合;

3.8 集合之外查询

SELECT * FROM `student` WHERE name NOT IN ('张三','李华','小明');

查询name 属性中不包含张三,李华,小明任何一个的数据,并且展示全部的属性

命令原型:SELECT 属性名 FROM 表名 WHERE NOT IN 数据集合;

3.9 字符匹配

SELECT * FROM student WHERE name LIKE '张三';

查询数据表 student 中 name 属性等于张三的数据,并且展示他们的 name 属性

字符匹配的命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 LIKE 数据;

禁止字符匹配的命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 NOT LIKE 数据;

SELECT * FROM student WHERE name LIKE '张三';

/* 两者是等价关系 */

SELECT `name` FROM student WHERE `name`='张三'

3.10 空值查询

/* 插入含有空值的数据 */
INSERT INTO student (name,tel,sex) VALUES ('张三','1516456777','男');
INSERT INTO student (name,tel,age) VALUES ('空值','1516123777',18);

插入两条含有空值的数据之后现在有十七条数据(当时电脑可能卡了,所以顺序有些错误,其他无碍)

SELECT id,sex,name FROM student WHERE sex IS NULL;

查询数据表 student 中 sex 属性中为空的数据,并且展示他们的 name 属性

命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 IS NULL;

注意:查询的表格中属性的顺序由查询命令中属性的顺序决定的,如下图所示

3.11 数据非空查询

SELECT id,sex,name FROM student WHERE sex IS NOT NULL;

查询数据表 student 中 sex 属性中为非空的数据,并且展示他们的 id,sex,name 属性

命令原型:SELECT 属性名 FROM 表名 WHERE  属性名 IS NOT NULL;

3.12 AND查询

SELECT name,age,sex FROM student WHERE age<=20 AND sex='男';

查询数据表 student 中 年龄小于20且性别为男 的数据,并且展示他们的 name,age,sex三个属性

命令原型:SELECT 属性名 FROM 表名 WHERE 判断条件1 AND 判断条件2;

3.13 OR查询

SELECT name,age,sex FROM student WHERE age<=20 OR sex='男';

查询数据表 student 中 年龄小于20 或者 性别为男 的数据,并且展示他们的 name,age,sex三个属性

命令原型:SELECT 属性名 FROM 表名 WHERE 判断条件1 OR 判断条件2;

四. 基于LIKE的模糊查询

基于LIKE的模糊查询一般伴随着两个符号:

        百分号(%):代表任意长度的字符,长度可以为0,也可以是长度为字符串上限的长度。例如:张%,表示查询姓张的字符串;张%三,表示查询张某三的字符串,张一三,张一二三等。

        下划线(_):代表任意单个字符。例如:张_三表示以张开头,以三结尾的长度为3的任意字符串。张一三、张二三等。

4.1 百分号查询

SELECT * FROM `student` WHERE name LIKE '张%';

查询数据表 student 中 姓张的数据,并且展示他们的 全部属性

命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 LIKE 含有百分号的条件;

注意:这个时候不能用等于查询

 4.2 下划线查询

/* 插入一条数据,作为 下划线查询 的对比 */
INSERT INTO student (name,tel,sex) VALUES ('李明明','1526456777','女');

插入一条含有空值的数据之后现在有十八条数据

SELECT * FROM `student` WHERE name LIKE '李_';

查询数据表 student 中 姓李且名字只有两个字 的数据,并且展示他们的 全部属性

命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 LIKE 含有下划线条件;

注意:这个时候不能用等于查询

 4.3 混合查询

SELECT * FROM `student` WHERE name LIKE '_明%';

查询数据表 student 中 名字第二个字是明 的数据,并且展示他们的 全部属性

命令原型:SELECT 属性名 FROM 表名 WHERE 属性名 LIKE 含有百分号和下划线的条件;

注意:这个时候不能用等于查询

 

五.  升序降序排序

        用户可以用ORDER BY子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认值为升序。

5.1 降序排序

SELECT * FROM student ORDER BY age DESC;

将数据表按照年龄的降序进行排序

命令原型:SELECT 属性名 FROM 数据表 ORDER BY 属性名 DESC;

5.2 升序排序

SELECT * FROM student ORDER BY `name` ASC;

将数据表按照姓名的升序进行排序

命令原型:SELECT 属性名 FROM 数据表 ORDER BY 属性名 ASC;

首字母大写的顺序排序

5.3 条件排序

SELECT * FROM student WHERE `name`='张三' ORDER BY `name` ASC;

将数据表中名字为张三的按照年龄的升序进行排序

命令原型:SELECT 属性名 FROM 数据表 WHERE 条件 ORDER BY 属性名 ASC;

 

六. 统计查询

6.1 统计有多少行

SELECT COUNT(*) FROM student;

查询有多少行

命令原型:SELECT COUNT(*) FROM 表名;;

6.2 统计属性值的种类

SELECT COUNT(DISTINCT age) FROM student;

查询年龄有几种

命令原型:SELECT COUNT(DISTINCT  属性名) FROM 表名;

PS:空值不计数

6.3 计算一列数据的和

SELECT SUM(age) FROM student;

计算所有age岁数的和

命令原型:SELECT SUM(属性名) FROM 表名;

PS:空值不能加入,并且必须是数值型

6.4 计算平均值

SELECT AVG(age) FROM student;

计算所有age岁数的平均

命令原型:SELECT AVG(属性名) FROM 表名;

PS:空值不能加入,并且必须是数值型

6.5 最大值

SELECT MAX(age) FROM student;

计算所有age岁数的最大值

命令原型:SELECT MAX(属性名) FROM 表名;

 

6.6 最小值

SELECT MIN(age) FROM student;

计算所有age岁数的最小值

命令原型:SELECT MIN(属性名) FROM 表名;

6.7 分组查询

        分组查询将查询结果按某一列或多列的值分组,值相等的为一组。

SELECT name,COUNT(id) FROM student GROUP BY `name`;

查询 name 属性种类的个数,以及对应 id 的个数

命令原型:SELECT 属性名1,COUNT(属性名2) FROM 表名 GROUP BY 属性名1;

PS:空值不能计入


好好吃饭

好好睡觉

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

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

相关文章

如何使用ssm实现基于BS的超市商品管理系统的设计与实现+vue

TOC ssm787基于BS的超市商品管理系统的设计与实现vue 研究背景与现状 时代的进步使人们的生活实现了部分自动化&#xff0c;由最初的全手动办公已转向手动自动相结合的方式。比如各种办公系统、智能电子电器的出现&#xff0c;都为人们生活的享受提供帮助。采用新型的自动化…

TypeScript面向对象 02

抽象类 以abstract开头的类是抽象类。抽象类和其他类区别不大&#xff0c;只是不能用来创建对象。抽象类就是专门用来被继承的类。 抽象类中可以添加抽象方法。定义一个抽象方法使用abstract&#xff0c;没有方法体。抽象方法只能定义在抽象类中&#xff0c;子类必须对抽象方…

一些硬件知识(二十七)

单片机一般使用NOR FLASH &#xff0c;这是因为NOR FLASH支持字节级的随机读取&#xff0c;可以直接运行存贮其中的程序&#xff0c;NOR FLASH支持读取和执行存储其中的指令&#xff0c;而无需将程序拷贝到RAM中才可执行。NAND FLASH适用于大容量的数据存储&#xff0c;他的读写…

【Canvas与标志】灰座橙底红芯辐射标志

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>灰座橙底红芯辐射标志</title><style type"text/css&q…

msvcp140.dll丢失的解决方法,详细解读6种解决方法

在使用电脑时&#xff0c;我们可能会遇到提示缺少msvcp140.dll的错误信息。这个提示意味着我们的电脑中缺少MSVCP140.dll这个文件&#xff0c;它是某些程序运行所必需的。如果我们遇到这个问题&#xff0c;应该如何解决呢&#xff1f;本文将详细解析如何解决msvcp140.dll丢失的…

qemu模拟arm64环境-构建6.1内核以及debian12

一、背景 手头没有合适的arm64开发板&#xff0c;但是需要arm的环境&#xff0c;于是想到qemu模拟一个。除了硬件交互以外&#xff0c;软件层面的开发还是都可以实现的。 虚拟机还能自定义内存大小和镜像大小&#xff0c;非常适合上板前的验证&#xff0c;合适的话再买也不迟。…

深度学习:5种经典神经网络模型介绍

目录 1. LeNet&#xff1a;CNN的鼻祖 2. AlexNet&#xff1a;深度学习的开山之作 3. VGGNet&#xff1a;深度与简洁的结合 4. GoogLeNet&#xff1a;Inception模块的创新 5. ResNet&#xff1a;残差学习的革命 卷积神经网络&#xff08;CNN&#xff09;已经发展为图像识别…

张雪峰谈人工智能技术应用专业的就业前景!

一、张雪峰谈人工智能技术应用专业 在教育咨询领域&#xff0c;张雪峰老师以其深入浅出的讲解和前瞻性的视角&#xff0c;为广大学子提供了宝贵的专业选择建议。对于人工智能技术应用专业&#xff0c;张雪峰老师通常给予高度评价&#xff0c;认为这是一个充满无限可能且就业前…

DELL SC compellent存储的四种访问方式

DELL SC存储&#xff08;国内翻译为 康贝存储&#xff0c;英文是compellent&#xff09;, compellent存储是dell在大概10多年前收购的一家存储&#xff0c;原来这个公司就叫做compellent。 本文的阅读对象是第一次接触SC存储的技术朋友们&#xff0c;如何访问和管理SC存储。总…

陀螺仪LSM6DSV16X与AI集成(13)----中断获取SFLP四元数

陀螺仪LSM6DSV16X与AI集成.13--中断获取SFLP四元数 概述视频教学样品申请源码下载硬件准备SFLP开启INT中断中断读取传感器数据主程序演示 概述 本文将介绍如何通过中断机制获取 LSM6DSV16X 传感器的 SFLP&#xff08;Sensor Fusion Low Power&#xff09;四元数数据。LSM6DSV1…

深入剖析 Golang 的错误处理机制:让你的代码更加健壮与优雅

在 Go 语言中&#xff0c;错误处理是程序健壮性的重要组成部分。不同于许多其他编程语言使用的 try-catch 异常处理机制&#xff0c;Go 采用了一种更加简洁的方式&#xff0c;通过函数返回值处理错误。这种设计使得错误处理逻辑更加显式&#xff0c;代码也更容易理解和维护。 文…

Python 工具库每日推荐 【markdown2】

文章目录 引言Python文本处理库的重要性今日推荐:markdown2工具库主要功能:使用场景:安装与配置快速上手示例代码转换为HTML代码解释实际应用案例案例:博客文章处理案例分析高级特性自定义扩展安全模式命令行使用性能优化技巧扩展阅读与资源优缺点分析优点:缺点:总结【 已…

Byzantine setting 拜占庭环境

优秀教程 拜占庭将军问题(The Byzantine Generals Problem): 拜占庭将军问题(The Byzantine Generals Problem) Byzantine setting 在联邦学习和分布式计算中&#xff0c;“Byzantine setting”&#xff08;拜占庭环境&#xff09;是指一个分布式系统中的部分参与者可能表现出…

SE-Net模型实现猴痘病识别

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色…

国庆出行怎么能少了这款美食

&#x1f388;国庆出游&#xff0c;怎能少了白吉饼&#xff01;&#x1f389;宝子们&#xff0c;国庆假期大家都在哪里玩耍呀&#xff1f;今天我必须给大家强烈安利国庆旅游必带美食 ——食家巷白吉饼。&#x1f60b;白吉饼看似普通&#xff0c;却有着独特的魅力。它的外表金黄…

pip install dlib 失败报错的解决方案

pip install dlib 失败报错&#xff1a; 解决方案&#xff1a; 我是按照下面三条指令按照就能解决问题 pip install cmake -i https://pypi.tuna.tsinghua.edu.cn/simple pip install boost -i https://pypi.tuna.tsinghua.edu.cn/simple pip install dlib -i https://p…

Stm32新建工程

库函数的开发方式。能够了解底层逻辑。 HAL库的开方式。快速上手&#xff0c;理解浅。 库函数的文件目录 Libraries里面就是库函数的文件 project官方实例的工程和模板&#xff0c;可以参考库函数 Utilities&#xff0c;官方在用电路测评STM32时使用的程序。 蓝色为库函数的发…

机器学习课程学习周报十五

机器学习课程学习周报十五 文章目录 机器学习课程学习周报十五摘要Abstract一、机器学习部分1. 统计推断与贝叶斯推断2. GMM和EM算法补充3. 马尔可夫链蒙特卡罗法3.1 蒙特卡罗法3.2 马尔可夫链3.3 Diffusion模型中的马尔可夫链 总结 摘要 本周的学习涵盖了统计推断和贝叶斯推断…

布匹瑕疵检测数据集 4类 2800张 布料缺陷 带标注 voc yolo

布匹瑕疵检测数据集 4类 2800张 布料缺陷 带标注 voc yolo 对应标注&#xff0c;格式VOC (XML)&#xff0c;选配Y0L0(TXT) label| pic_ num| box_ _num hole: (425&#xff0c; 481) suspension_ wire: (1739&#xff0c; 1782) topbasi: (46&#xff0c; 46) dirty: (613&…

近期最佳港片,探讨家庭与希望,结尾让人心碎

在当下的电影环境中&#xff0c;香港电影正在经历一场颇具深意的转变&#xff0c;逐渐将目光投向普通人的生活。这种变化在《但愿人长久》中体现得淋漓尽致&#xff0c;影片通过一个家庭的悲欢离合&#xff0c;让人深刻感受到人性的复杂。吴慷仁在片中扮演的角色&#xff0c;无…