运维之数据库查询2(简单入门,从浅入深)通俗易懂

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

   接上面一篇文章,后续。


运维之数据库查询1(简单入门,从浅入深)通俗易懂


使用LIMIT限制查询结果的数量

LIMIT 【位置偏移量】行数

显示表查询结果的前四行。

mysql> SELECT * FROM fruits LIMIT 4;

+------+------+------------+---------+

| f_id | s_id | f_name     | f_price |

+------+------+------------+---------+

| a1   |  101 | apple      |    5.20 |

| b2   |  101 | blackberry |   10.20 |

| c3   |  103 | erry       |    9.20 |

| d4   |  101 | orange     |   11.20 |

+------+------+------------+---------+

4 rows in set (0.00 sec)

在表中,使用LIMIT子句,返回从第五个记录开始的,行数长度为三的记录。

mysql> SELECT * FROM fruits LIMIT 4,3;

+------+------+--------+---------+

| f_id | s_id | f_name | f_price |

+------+------+--------+---------+

| e5   |  101 | melon  |    8.20 |

| f6   |  102 | grape  |    8.50 |

| g7   |  102 | berry  |    7.60 |

+------+------+--------+---------+

3 rows in set (0.00 sec)


使用集合函数查询

函数 作用
AVG() 返回某列的平均值
COUNT()

返回某列的行数

MAX() 返回某列的最大值
SUM() 返回某列值的和


COUNT()函数

查询表中的总的行数

mysql> select count(*)AS f_name from fruits;

+--------+

| f_name |

+--------+

|     10 |

+--------+

1 row in set (0.00 sec)


SUM()函数,求和函数

求和的这列重命名输出

mysql> select SUM(s_id) AS sum_id from fruits;

+--------+

| sum_id |

+--------+

|   1020 |

+--------+

1 row in set (0.00 sec


AVG()函数平均值

在表内查询s_id 101的平均值

mysql> select AVG(f_price) AS avg__price from fruits where s_id=101;

+------------+

| avg__price |

+------------+

|   8.080000 |

+------------+

1 row in set (0.00 sec)


MAX()函数 返回指定最大值

查找价格最高的

mysql> select MAX(f_price) AS max_price from fruits;

+-----------+

| max_price |

+-----------+

|     11.60 |

+-----------+

1 row in set (0.00 sec)


有最大就有最小 MIN()函数 返回最小值

mysql> select MIN(f_price) AS max_price from fruits;

+-----------+

| max_price |

+-----------+

|      3.60 |

+-----------+

1 row in set (0.00 sec)


子查询

带ANY SOME关键字的子查询 首先创建2个表

返回tb12表的所有num列 然后将tb11中的num1的值与之进行比较,只要大于num的任何一个值,即为符合查询条件的结果

mysql> create table tb11( num1 INT NOT NULL );

Query OK, 0 rows affected (0.07 sec)


mysql> create table tb12( num INT NOT NULL );

Query OK, 0 rows affected (0.02 sec)


mysql> insert into tb11 values(1),(5),(13),(27);

Query OK, 4 rows affected (0.00 sec)

Records: 4  Duplicates: 0  Warnings: 0


mysql> insert into tb12 values(6),(14),(11),(20);

Query OK, 4 rows affected (0.00 sec)

Records: 4  Duplicates: 0  Warnings: 0


mysql> select num1 from tb11 where num1 > ANY (select num from tb12);

+------+

| num1 |

+------+

|   13 |

|   27 |

+------+

2 rows in set (0.02 sec)


带ALL关键字的子查询

返回tb11表中比tb12表num 列所有值都大的值

mysql> select num1 from tb11 where num1 > ALL (select num from tb12);

+------+

| num1 |

+------+

|   27 |

+------+

1 row in set (0.00 sec)


带EXISTS关键字的子查询

查询表中是否存在s_id=103 ,如果存在则查询

mysql> select * from fruits where exists (select f_name from fruits where s_id=103);

+------+------+------------+---------+

| f_id | s_id | f_name     | f_price |

+------+------+------------+---------+

| a1   |  101 | apple      |    5.20 |

| b2   |  101 | blackberry |   10.20 |

| c3   |  103 | erry       |    9.20 |

| d4   |  101 | orange     |   11.20 |

| e5   |  101 | melon      |    8.20 |

| f6   |  102 | grape      |    8.50 |

| g7   |  102 | berry      |    7.60 |

| h8   |  101 | coconut    |    5.60 |

| j9   |  103 | xxtt       |   11.60 |

| y10  |  105 | xxxx       |    3.60 |

+------+------+------------+---------+

10 rows in set (0.00 sec)


最后介绍个 工具使用

PowerDesigner

我们现在的需求是:希望当接到一个新的工程项目时,程序员只需要根据项目需求,设计出数据库的结构(表,表的字段,表间关系),之后只要按 一个按键,就能立刻得到基于该数据库的所有 分层架构代码文件.也就是说, 我们希望能在不敲一行代码的情况下获取所有我们想要的代码!而这就是这2个软件能做到的事情,也是我们安装它们的目的.

好了,角色已经介绍完了,接着看看它们是如何演绎这场精彩的演出的吧:

首先我们需要创建一个测试数据库,为了简单,我们在这个数据库中只创建一个Student和一个Major.其表结构和关系如下所示.



看看怎样用PowerDesigner快速的创建出这个数据库吧.

1.现在开始使用PowerDesigner创建数据库,首先运行程序,进入主界面:


2.File—New Model—Physical Data Model—Physical Diagram—Model name设置为test,DBMS属性设置为Microsoft SQL Server 2005


3.首先用表格工具创建一个表格模板



4.双击表格模板,设置属性,我们首先设置Major



5.设置好表名,点击Columns标签,设置字段属性,设置如图所示:



6.因为MajorID字段我们要设置为自动增长,所以要设置它的高级属性,选择MajorID字段,点击属性按钮,在General面板中勾选上Identity复选框:



7.确定后我们再创建一个Student表,字段设置如图所示:



8.接着是为Student创建一个MajorID外键,使用PowerDesigner可以很轻松的完成这个工作,选择关系设置工具,在Student表上按住左键不放,拖拽至Major表,便可为Student表添加一个MajorID的外键:



9.哈哈,现在测试表已经设置好了,接着设置一下我们要生成的数据库吧,这些表都将被创建到该数据库中,我们在设计面板空白处右键—Properties,在弹出的属性设置对话框



10好了,在此我们对新数据库的设置已经完成,但是在SQL中还是空空如也啊,我们要怎么把这边设计好的结构移植到SQLServer 2005中呢?执行操作:Database—Generate Database,设置好存储过程导出目录和文件名,点击确定即可



11.到你的导出目录,就可以看见导出的数据库创建存储过程了,打开SQL,执行一下,你就会看到数据库被神奇的创建好了



12.好了,数据库的准备工作做好了,下一篇我们就将使用该数据库结合CodeSmith自动批量生成代码啦~


这个工具 百度上有步骤我就没自己动手了,直接复制转载过来了!


PowerDesigner使用教程|使用方法


本文转自 cs312779641 51CTO博客,原文链接:http://blog.51cto.com/chenhao6/1293543


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
177 3
SpringBoot入门 - 添加内存数据库H2
|
1天前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
7天前
|
数据库
|
25天前
|
存储 人工智能 监控
时序数据库 TDengine 化工新签约:存储降本一半,查询提速十倍
化工行业在数字化转型过程中面临数据接入复杂、实时性要求高、系统集成难度大等诸多挑战。福州力川数码科技有限公司科技依托深厚的行业积累,精准聚焦行业痛点,并携手 TDengine 提供高效解决方案。
41 0
|
2月前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
181 6
|
3月前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
80 1
|
2月前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
548 0
|
3月前
|
存储 缓存 网络协议
数据库执行查询请求的过程?
客户端发起TCP连接请求,服务端通过连接器验证主机信息、用户名及密码,验证通过后创建专用进程处理交互。服务端进程缓存以减少创建和销毁线程的开销。后续步骤包括缓存查询(8.0版后移除)、语法解析、查询优化及存储引擎调用,最终返回查询结果。
58 6
|
3月前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
96 0
|
4月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
88 13