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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

   接上面一篇文章,后续。


运维之数据库查询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


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
|
16天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
16天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
|
29天前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
1月前
|
存储 关系型数据库 MySQL
RDS MySQL 数据库运维简述
从运维的视角,汇总云数据库RDS MySQL使用的避坑指南。文章初版,维护更新,欢迎指点。
761 3
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
62 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
1月前
|
存储 NoSQL Redis
【Redis】利用Redis List实现数据库分页快速查询
【Redis】利用Redis List实现数据库分页快速查询
84 0
|
1月前
|
存储 缓存 NoSQL
利用Redis List实现数据库分页快速查询的有效方法
利用Redis List实现数据库分页快速查询的有效方法
|
12天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
44 0