第二阶段第二章——数据库SQL

news2024/11/26 11:35:03

到这里就是属于原有的知识的扩充了。、

发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯发疯

舒服了

1.MySQL的安装


2.了解SQL语言

语法特征 

(1)DDL

1.库管理

2.表管理

(2)DML

 1.INSERT

2.DELETE

3.UPDATE

(3)DQL

1.查询语句

2.过滤(条件过滤)

 

3. 分组聚合(GROUP BY)

SQL中的ORDER BY语句用于将查询结果按照指定的列进行排序。它可以按照升序或降序排列结果集。

具体语法如下:

```
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... [ASC|DESC];
```

其中,`column1`, `column2`等表示要排序的列,可以同时按多列排序。`ASC`表示升序排列(默认),`DESC`表示降序排列。

例如,如果要按照某个列的值进行升序排序,可以使用以下语句:

```
SELECT *
FROM table_name
ORDER BY column1 ASC;
```

如果要按照多个列的值进行排序,可以使用以下语句:

```
SELECT *
FROM table_name
ORDER BY column1 ASC, column2 DESC;
```

此语句将首先按照`column1`的升序排列结果集,如果`column1`的值相同,则按照`column2`的降序排列结果集。

ORDER BY语句可以与聚合函数一起使用,例如:

```
SELECT COUNT(*) AS count
FROM table_name
GROUP BY column1
ORDER BY count DESC;
```

此语句将按照某个列的分组结果进行聚合,并将聚合结果按照计数值的降序排列。

4.结果排序(ORDER BY)

5.结果分页(LIMIT)

在SQL中,LIMIT语句用于限制查询结果集的数量。它可以让你只查询出指定范围内的数据。具体语法如下:

```
SELECT column1, column2, ...
FROM table_name
LIMIT offset, count;
```

其中,`offset`指定查询结果集的偏移量(即从第几行开始查询),`count`指定查询结果集的数量(即查询多少行数据)。 

例如,如果要查询表中前10条数据,可以使用以下语句:

```
SELECT *
FROM table_name
LIMIT 0, 10;
```

此语句将从第1行开始查询(偏移量为0),查询10行数据。 

如果要查询表中的第11~20条数据,可以使用以下语句:

```
SELECT *
FROM table_name
LIMIT 10, 10;
```

此语句将从第11行开始查询,查询10行数据。


3.Python和MySQL的交集

(1)pymysql

(2)连接示例代码

代码示例:

"""
    演示python pymysql库的操作
"""
from pymysql import Connection

# 构建连接
conn = Connection(
    host="localhost",
    port=3306,
    user="root",
    password="2004"
)
# print(conn.get_server_info())
# 执行非查询性质的sql
cursor = conn.cursor()
# 选择数据库
conn.select_db("db1")
# 执行sql
# cursor.execute("create table test_pymysql(id int);")
# 执行查询性质的sql
cursor.execute("select * from tb_brand")

res = cursor.fetchall()
print(type(res))
print(res)
# 关闭连接
conn.close()

(3)数据插入

需要提交,也这就是事物

手动提交事物

"""
    演示python pymysql库的操作
"""
from pymysql import Connection

# 构建连接
conn = Connection(
    host="localhost",
    port=3306,
    user="root",
    password="2004"
)
# print(conn.get_server_info())
# 执行非查询性质的sql
cursor = conn.cursor()
# 选择数据库
conn.select_db("db1")
# 执行sql
cursor.execute("insert into tb_brand values(49,'迈首科技', '迈首集团', 313, '迈出第一步', 1)")
# 手动提交事物
conn.commit()
# 关闭连接
conn.close()

自动提交事物

autocommit = True

"""
    演示python pymysql库的操作
"""
from pymysql import Connection

# 构建连接
conn = Connection(
    host="localhost",
    port=3306,
    user="root",
    password="2004",
    autocommit=True
)
# print(conn.get_server_info())
# 执行非查询性质的sql
cursor = conn.cursor()
# 选择数据库
conn.select_db("db1")
# 执行sql
cursor.execute("insert into tb_brand values(50,'迈首科技技术有限公司', '迈首集团', 313, '迈出一大步', 1)")
# 手动提交事物
# conn.commit()
# 关闭连接
conn.close()

4.综合案例

将删一篇文章的数据存入通过py写入数据库中

"""
    将面向对象章节最后案例的数据写入数据库
"""
from pymysql import Connection
from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record

text_file_reader = TextFileReader("D:\\IOText\\DataDoing\\2011年1月销售数据.txt")
json_file_reader = JsonFileReader("D:\\IOText\\DataDoing\\2011年2月销售数据JSON.txt")

month_1_data: list[Record] = text_file_reader.read_data()
month_2_data: list[Record] = json_file_reader.read_data()

# 将两个月份的数据合并
all_data: list[Record] = month_1_data + month_2_data
# print(all_data)

# 构建连接对象
conn = Connection(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="2004",
    autocommit=True
)
# 获取游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db("py_sql")
# 组织sql语句
for record in all_data:
    sql = (f"insert into orders(order_date, order_id, money, province) "
           f"values('{record.date}', '{record.order_id}', {record.money}, '{record.province}')")
    # 执行sql语句
    cursor.execute(sql)

    # print(sql)

conn.close()

另外的两个代码文件在我的另一篇文章第二阶段第一章——面向对象-CSDN博客的最后可以找到,测试数据的文件也有。

拜拜

ヾ( ̄▽ ̄)Bye~Bye~再也不见

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

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

相关文章

CentOS 7 安装 JDK11(注意版本号要与自己的版本一致)

查看是否有自带的 JDK java -versionrpm -qa | grep jdk卸载自带 JDK rpm -e --nodeps [name] # 如 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64查看自带 JDK 是否卸载干净 java -versionrpm -qa | grep jdk在 oracle 官网下载自己所需 JDK 版本&#x…

JavaEE平台技术——MyBatis

JavaEE平台技术——MyBatis 1. 对象关系映射框架——Hibernate、MyBatis2. 对象关系模型映射3. MyBatis的实现机制4. MyBatis的XML定义5. Spring事务 在观看这个之前,大家请查阅前序内容。 😀JavaEE的渊源 😀😀JavaEE平台技术——…

Mythical Beings里的DAO治理指南——Mythical DAO使用方法浅析

DAO(Decentralized Autonomous Organization)去中心化自治组织,正在成为Web3世界的重要组织和治理形式。通过区块链和加密通证等技术实现transparent、inclusive的社区自治。Mythical Beings游戏也推出了Mythical DAO,帮助玩家社区自治。本文主要介绍当前热门的DAO治理工具,以及…

行政处罚有哪些?

一、行政处罚的定义 行政处罚,是指行政机关依法对违反行政管理秩序的公民、法人或者其他组织,以减损权益或者增加义务的方式予以惩戒的行为。这是首次以立法的形式明确“行政处罚”的定义。 二、行政处罚与行政处分的区别 行政处分是指国家行政机关对其…

分布式系统之BASE理论

BASE理论是对分布式系统设计和处理的一种理论指导,相对于ACID(原子性、一致性、隔离性和持久性)这一强一致性模型,BASE更强调在分布式系统中牺牲强一致性以获得可用性和性能的平衡。 BASE理论的核心概念包括: Basica…

用了这款工具,让我效率提升了80%

目录 一、写在前面 二、优势 三、主要功能点 四、低代码归根结底差不多 五、小结 一、写在前面 低代码开发平台,一个号称能在几分钟的时间里开发出一套公司内部都可使用的应用系统开发工具。很多人或许都隐隐听说过低代码,因为低代码不仅远名国外&#x…

FastGPT | 3分钟构建属于自己的AI智能助手

这是一篇使用指南!!! FastGPT是什么? FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景&…

DASCTF X CBCTF 2023|无畏者先行

前言 笔者没有参加此次比赛,由于团队后面会复现此次比赛,所以笔者在此进行复现记录。 EASYBOX 考点:命令执行? 栈溢出 附件给了 docker 环境,可以直接在本地复现,但是 docker 我不会调试,幸…

视频号提取视频工具,使用教程合集

第一步: 点击关注公众号下方菜单,视频下载-【视频号提取视频工具】,长按识别二维码,添加视频下载小助手为好友。 没有关注的可以,点击下载关注一下 第二步: 选择你要下载的视频,找到转发图标…

AD教程 (八)器件的复制和对齐

AD教程 (八)器件的复制和对齐 设置原理图工作区域 设置Sheet Size,将A4改为A3,增大原理图区域 按照原理图布局大致排布元件 框选需要复制的元件,按住Shift即可复制元件并拖动到合适的位置。如果元件需要对齐&#xf…

JUC-3-并发锁

一 JAVA 多线程锁介绍 1 悲观锁 定义:悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改(很悲观),所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处…

seata事务回滚引起的skywalking数据库存储空间剧增的问题排查

基本信息 产品名称:ATS3.0 问题分类:编码问题 环境类型:环境无关 问题现象 11月1日上午华润DBA收到数据库磁盘空间告警,检查后发现skywalking连接的mysql数据库占用空间从之前一直是比较稳定的,但是10月31日…

ElasticSearch与Lucene是什么关系?Lucene又是什么?

一. ElasticSearch 与 Lucene 的关系 Elasticsearch(ES)和Apache Lucene之间有密切的关系,可以总结如下: Elasticsearch构建于Lucene之上:Elasticsearch实际上是一个分布式的、实时的搜索和分析引擎,它构建…

二维码智慧门牌管理系统全新升级:个性化配置,智能管理,让你的社区更安全!

文章目录 前言一、个性化配置功能的升级二、智能化管理和便捷性 前言 随着科技的飞速发展,智能化管理已经成为各个领域的标配。在社区管理方面,智能化的优势在便捷性、高效性和安全性方面得到了广泛认可。最近,二维码智慧门牌管理系统经过全…

【文献分享】NASA JPL团队CoSTAR一大力作:直接激光雷达里程计:利用密集点云快速定位

论文题目:Direct LiDAR Odometry: Fast Localization With Dense Point Clouds 中文题目:直接激光雷达里程计:利用密集点云快速定位 作者:Kenny Chen, Brett T.Lopez, Ali-akbar Agha-mohammadi 论文链接:https://arxiv.org/pd…

如何使用Plex在Windows系统上搭建一个全能私人媒体影音站点

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特别是各…

WebSocket Day03 : SpringMVC整合WebSocket

前言 在现代Web应用程序中,实时性和即时通信变得越来越重要。传统的HTTP请求-响应模式无法满足实时数据传输和双向通信的需求。随着技术的发展,WebSocket成为了一种强大而灵活的解决方案。 WebSocket是HTML5提供的一种新的通信协议,它通过一…

基于蛇优化算法的无人机航迹规划-附代码

基于蛇优化算法的无人机航迹规划 文章目录 基于蛇优化算法的无人机航迹规划1.蛇优化搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用蛇优化算法来优化无人机航迹规划。 1.蛇优化…

在jupyter中使用R

如果想在Jupyter Notebook中使用R语言,以下几个步骤操作可行: 1、启动Anaconda Prompt 2、进入R的安装位置,切换到R的安装位置:D:\Program Files\R\R-3.4.3\bin,启动R,具体代码操作步骤如下,在…

noip模拟赛多校第八场 T4 不要翻墙 (矩阵乘法优化DP, 动态DP)

题目描述 简要题意:太长了,就不总结了,自己看吧。 分析 我们首先考虑 m 1 m 1 m1 的情况: T > 0 T > 0 T>0 时,显然我们可以 O ( n ) O(n) O(n) 的维护一个 前缀积 和 前缀积的逆元&#xff0c…