| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> MySQL数据库之数据查询 -> 正文阅读 |
|
[游戏开发]MySQL数据库之数据查询 |
1.集函数查询1.1 集合在数学的概念中,指定的某些对象的全体称为一个集合。在MySQL中的集合是指查询结果中的全体记录。 1.2 函数计算机中的函数是实现固定运算功能的一个程序段或子程序。计算机中函数调用格式:函数名(参数1,参数2,……) 1.3 集合函数查询集合函数查询是指对查询的结果记录集针对某个或某几个列利用某个函数实施相应的运算,并输出运算结果,一般用于对某个或某几个列的值进行统计计算操作。 1.4 MySQL常用的集函数及功能已知数据表department (department_id, department_name, department_dean,teacher_num, class_num, school_id)的信息如下:
1.5 COUNT ()函数使用说明
1.6 举例1.6.1 举例1问题 利用department现有信息统计有多少个系。 查询指令
查询结果 以下是SELECT COUNT(*)AS 教师人数 FROM department的执行结果集
1.6.2 举例2问题 在department中查找教师人数最多是多少。 查询指令
查询结果 以下是
1.6.3 举例3问题 在数据表class(class_id, class_name, student_num, monitor, major,department_id)中统计全体学生人数。 查询指令
查询结果 以下是
2.简单查询所有列查询是指查询结果返回数据源的所有字段,而指定列查询是指只返回数据源查询的部分字段 2.1 所有列查询
2.1.1 语句格式
2.1.2 功能返回<table_name>表的所有记录的所有列。 2.1.3 举例1已知数据表student,使用如下SQL查询语句可以返回student表的所有列。 查询指令
查询结果 在GaussDB(for MySQL)管理控制平台执行上述SQL查询命令,结果如下图所示。 2.2 指定列查询2.2.1 语句格式
2.2.2 功能返回< table _name >表所有记录的< column1 >,< column2 >.……列。 2.2.3 举例2问题 根据数据表student,查看全体学生学号、姓名、籍贯等信息。 查询指令
结果
2.3 指定行查询2.3.1 定义指在查询命令中添加了查询条件设置,查询时,只有数据集中满足条件的记录才会出现在查询结果集中,返回的记录将包含所有列。 2.3.2 语句格式
2.3.3 说明1.WHERE:查询条件的引导关键字,查询条件必须以WHERE开头。 2.3.4 举例3问题 在数据表class(class_id,class_name, student_num, monitor, major, department_id)查看A101系各班级的信息。
查询指令
查询结果
2.4 指定行和列查询2.4.1 定义指在查询命令中添加了查询条件设置,查询时,只有数据集中满足条件的记录才会出现在查询结果集中,返回的记录只包含指定的列。 2.4.2 语句格式
2.4.3 说明1.DISTINCT:重复记录只保留一条,可选项。 2.4.4 举例4问题 在数据表class(Class_id, Class_name, Student_num, Monitor,Major,Department_id)查看A101系各班级的部分信息(班级名称,班级人数,系编号)。
查询指令
查询结果
3.多表查询
3.1 两表查询3.1.1 定义指查询的数据源(记录源)不只一个数据表,而是两个数据表,查询结果集中的列也分别是来自这两个表的列或新增的计算列。 3.1.2 语句格式
3.1.3 说明
3.1.4 举例1问题 根据数据表student和class的信息,查看各班级的学生部分信息,并返回“班级名称”,“学号”,“姓名”,“性别”和“出生年月”。 student表
class表
查询指令
查询结果
3.2 多表列查询3.2.2 定义指查询的数据源(记录源)是多个数据表,查询结果集中的列也分别是来自这些表的列或新增的计算列。 3.2.3 语句格式
3.2.4 说明
3.2.5 举例2问题 根据数据库表student、表course和表score的信息,查看部分学生成绩(学号,姓名,课程名称和成绩)。 其中各数据表的字段(列)分布如下 student表
class表
score表
查询指令
查询结果
4.多表嵌套查询
4.1 两表嵌套查询4.1.1 定义两表嵌套查询是指一个表的查询(子查询)结果作为数据源或查询条件应用到另一个查询(主查询)中。 4.1.2 语句格式
4.1.3 说明
4.1.4 举例1问题 根据数据表class和表student的信息,查看部分班级学生部分信息(班级名称,学号,姓名,性别、出生年月)。 department表
class表
查询指令
查询结果
4.2 多表嵌套查询4.2.1 定义指在“两表嵌套查询”的基础上增加更多的数据源,其他要求与“两表嵌套查询”相似。 4.2.2 语句格式
4.2.3 说明
4.2.4 举例2问题 根据数据库表teacher、表assignment和表course的信息,查看部分教师讲授的课程信息(教师姓名,课程名称,学分)。 查询指令
查询结果
5. 子查询能够引导子查询的关键字有很多,我们主要学习 5.1 带
|
课程编号 | 课程名称 | 学时 | 学分 | 学期 |
---|---|---|---|---|
01-01 | 数据结构 | 54 | 2 | 2 |
01-02 | 软件工程 | 72 | 3 | 4 |
01-03 | 数据库原理 | 72 | 3 | 3 |
01-04 | 程序设计 | 54 | 2 | 1 |
02-01 | 离散数学 | 54 | 2 | 2 |
02-02 | 概率统计 | 54 | 2 | 1 |
02-03 | 高等数学 | 72 | 3 | 1 |
查询指令
SELECT *FROM course WHERE term IN ('1';4')
等价于
SELECT * FROM course WHERE term='1' or term='4’
查询结果
ourse_id | course_name | Period | redit | rerm | |
---|---|---|---|---|---|
1 | 01-02 | 软件工程 | 72 | 3 | 4 |
2 | 01-04 | 程序设计 | 54 | 2 | 1 |
3 | 02-02 | 概率统计 | 54 | 2 | 1 |
4 | 02-03 | 高等数学 | 72 | 3 | 1 |
将主查询的某个值与子查询返回的一组值进行比较,根据比较结果决定条件是否满足。必须所有比较满足才算满足。例如:x >ALL(…)
SELECT {[AlI] ][DISTINCT] |<column1>,<column2>......., column n> }FROM<table_name 1>,......<table_name n>
[WHERE ALL <expression>
[HAVING <expression> [f<operator> <expression>}.... ..]][ORDER BY <order by definition>]
ALL:比较运算包括=、<>、>=、<、<=等等。
问题
根据数据表score的信息,查看所有高于“01-03"课程最低分的课程成绩信息。
其中score的字段和数据分布score ( student_ id, course_id, score )
学号 | 课程编号 | 成绩 |
---|---|---|
190115 | 01-01 | 97 |
190115 | 01-02 | 89 |
190115 | 01-03 | 90 |
190115 | 01-04 | 91 |
190132 | 01-01 | 70 |
190132 | 01-02 | 66 |
190132 | 01-03 | 56 |
190132 | 01-04 | 60 |
190101 | 01-01 | 9o |
190101 | 01-02 | 76 |
190101 | 01-03 | 87 |
190101 | 01-04 | 94 |
查询指令
SELECT*FROM score
WHERE score > ALL
(SELECT MIN(score) FROM scoreWHERE course_id='01-03')
查询结果
将主查询的某个值与子查询返回的一组值进行比较,根据比较结果决定条件是否满足,只要比较的任何一个满足就算满足。例如:x>ANY(…)
SELECT {[AlI] ][DISTINCT] |<column1>,<column2>,.......<column n>}FROM <table_name 1>,...... <table_name n>
[WHERE ANY <expression>
[HAVING<expression> [{f<operator> <expression>}......]][ORDER BY <order by definition>]
ANY:比较运算包括=、<>、>=、<、<=等等。
问题
根据数据表student的信息,查询比任意女同学年龄大的男同学信息。.
其中student的字段和数据分布如下
student ( student_id, student_name, gender, birth, birthplace,class_id )
学号 | 姓名 | 性别 | 出生年月 | 籍贯 | 班级编号 |
---|---|---|---|---|---|
190101 | 江珊珊 | 女 | 2000-01-09 | 内蒙古 | A1011901 |
190102 | 刘东鹏 | 男 | 2001-03-08 | 北京 | A1011901 |
190115 | 崔月月 | 女 | 2001-03-17 | 黑龙江 | A1011901 |
190116 | 白洪涛 | 男 | 2002-11-24 | 上海 | A1011901 |
190117 | 邓中萍 | 女 | 2001-04-09 | 辽宁 | A1011901 |
190118 | 周康乐 | 男 | 2001-10-11 | 上海 | A1011901 |
190121 | 张宏德 | 男 | 2001-05-21 | 辽宁 | A1011901 |
190132 | 赵迪娟 | 女 | 2001-02-04 | 北京 | A1011901 |
200413 | 杨水涛 | 男 | 2002-01-03 | 河北 | A1022004 |
200417 | 李晓薇 | 女 | 2002-04-10 | 上海 | A1022004 |
200401 | 罗笑旭 | 男 | 2002-12-23 | 四川 | A1022004 |
200407 | 张思奇 | 女 | 2002-09-19 | 吉林 | A1022004 |
200431 | 韩璐惠 | 女 | 2001-06-16 | 河南 | A1022004 |
查询指令
SELECT*
FROM student
WHERE gender='男'AND birth < ANY(SELECT MIN(birth)FROM studentWHERE gender='女');
结果
打开华为云数据库控制台(https://console.huaweicloud.com/rds)
首先在左上角选择自己需要购买的资源的所在区域,我这里以上海二
为例
点击右上角购买数据库实例
可以根据自己的需要选择包年包月或者按需计费
不同的数据库引擎价格和功能也不一样,可以根据需要选取,我选择的为mysql
- 云数据库 RDS for MySQL
MySQL是目前最受欢迎的开源数据库之一,其性能卓越,搭配LAMP(Linux + Apache + MySQL + Perl/PHP/Python),成为WEB开发的高效解决方案。 云数据库 RDS for MySQL拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点。
1、架构成熟稳定,支持流行应用程序,适用于多领域多行业;支持各种WEB应用,成本低,中小企业首选。
2、管理控制台提供全面的监控信息,简单易用,灵活管理,可视又可控。
3、随时根据业务情况弹性伸缩所需资源,按需开支,量身订做。
- 云数据库 RDS for PostgreSQL
PostgreSQL是一个开源对象关系型数据库管理系统,并侧重于可扩展性和标准的符合性,被业界誉为“最先进的开源数据库”。云数据库 RDS for PostgreSQL面向企业复杂SQL处理的OLTP在线事务处理场景,支持NoSQL数据类型(JSON/XML/hstore),支持GIS地理信息处理,在可靠性、数据完整性方面有良好声誉,适用于互联网网站、位置应用系统、复杂数据对象处理等应用场景。
1、支持postgis插件,空间应用卓越,达到国际标准。降低“O”迁移复杂度100%。
2、适用场景丰富,费用低,随时可以根据业务情况弹性伸缩所需的资源,按需开支,量身订做。
- 云数据库 RDS for SQLServer
Microsoft SQL Server是老牌商用级数据库,成熟的企业级架构,轻松应对各种复杂环境。一站式部署、保障关键运维服务,大量降低人力成本。根据华为国际化安全标准,打造安全稳定的数据库运行环境。被广泛应用于政府、金融、医疗、教育和游戏等领域。云数据库 RDS for SQLServer具有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理和经济实用等特点。
拥有高可用架构、数据安全保障和故障秒级恢复功能,提供了灵活的备份方案。
在性能规格方面,根据实际开发需求选择对应规格
在配置完密码后选立即购买
确认信息后点击提交
新的数据库实例在控制台可以看到,创建大概需要5-10分钟
点击所创建数据库实例名称,进入数据库详情,可查看数据详情。
可以将备份更改为我们需要的时间(默认为7天)
点击右上角登录
输入我们的数据库密码,在测试连接成功后进入服务
点击新建数据库
创建名为maimai
的数据库
可以通过DAS数据库管理平台对数据库进行可视化操作
云主机的VPC和安全组需要与RDS实例保持一致才可以成功访问,由于和公网访问mysql方法大致类似,主要介绍在公网访问mysql
通过公网连接MySQL,还需要提前购买弹性公网IP并绑定数据库
选择和数据库所在区域保持一致,点击购买
配置完参数后点击立即购买
返回控制台可以看到我们购买的弹性公网
回到数据库控制台
在连接管理中选择公网ip绑定
点击确定
此时我们就可在本地访问MySQL数据库
我使用的是sqlyog软件
成功访问
我在本地创建一个名为localcreat的表,然后在DAS进行查看
创建成功
华为云RDS数据库搭建完成
本次内容共创主要讲述了数据库中的SELECT语句、集函数查询、单表查询、多表查询、嵌套查询、子查询、带EXISTS关键字的子查询,并通过案例演示SQL语句的实际应用,可以帮助很好的帮助大家数据库的入门学习。如果大家想进一步了解学习华为云数据库,还可以学习:沙箱实验10分钟快速入门RDS
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/17 1:13:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |