数据库高级操作

数据高级操作

数据的操作无外乎就是对数据的增删改查

增加数据

基本方式:insert into 表名[(字段列表)] values(值列表);

 

主键冲突:在插入数据的时候,主键值已经存在了,但是要求必须使用该主键字段

 

实现目标:如果该主键不存那么就增加记录,如果不存在,就修改部分字段的值

1.      使用主键冲突方式

语法:insert into 表名 values(值列表) on duplicate key update 字段 =

2.      使用替换插入

语法:replace into 表名(字段列表) values(值列表);

Replace其实先删除存在的行,在进行插入。

 

注意:大部分情况下,因为是使用逻辑主键,一般会自增长,所以所以null即可,但是如果是使用业务主键,那么很有可能会存在冲突(replace)

 

蠕虫复制

蠕虫能够一分为2,2分为4,在成倍增长

语法:insert into 表名 (字段列表) select 字段列表 from 表名;

 

蠕虫复制能够快速使用表中的数据量增加,没有办法改变数据

蠕虫复制也可以从其它表中去获取数据。

 

更新数据

基本语法:update 表名 set 字段 = [where 条件]

高级语法:update 表名 set 字段 = [where 条件] [limit]

 

删除数据

基本语法:delete from 表名[where 条件]

高级语法delete from 表名 [where条件][limit]

删除数据并不能修改一张表的索引和自增长.如果想删除表的自增长重新来过

先删除表(drop),在新教表(create)

Mysql提供了简单方式实现两个步骤:truncate

 

查询数据

基础语法:select 字段列表from 表名[where条件]

高级语法:select [select 选项] 字段列表 [from子句][where子句][group by 子句][having 子句][order by 子句][limit 子句]

 

Select选项:在查询得到数据是否需要进行合并,all表示获取所有数据(默认的),distinct

将完全一致的记录进行合并

 

Distinct是针对整个记录进行去重,现在记录没有一天是重复只是某个字段有重复

 

去重

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 操作数据库高级写法一般采用 ORM(Object-Relational Mapping,对象关系映射)框架,这种框架可以将数据库表映射为 Python 对象,从而实现面向对象的数据库操作。常见的 Python ORM 框架有 Django ORM、SQLAlchemy 等。 下面以 SQLAlchemy 为例,介绍 Python 操作数据库高级写法: 首先,我们需要安装 SQLAlchemy 模块,可以使用 pip 命令进行安装: ``` pip install sqlalchemy ``` 接着,我们需要连接数据库并定义数据库表结构。假设我们有一个 users 表,包含 id、username 和 password 三个字段,我们可以使用 SQLAlchemy 定义这个表的映射类: ```python from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.ext.declarative import declarative_base # 创建连接引擎 engine = create_engine('mysql+pymysql://root:password@localhost:3306/test', echo=True) # 创建基类 Base = declarative_base() # 定义映射类 class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True, autoincrement=True) username = Column(String(50), nullable=False) password = Column(String(50), nullable=False) ``` 在上述代码中,我们使用 `create_engine()` 方法创建数据库连接引擎,其中需要指定数据库的连接信息。然后,我们使用 `declarative_base()` 方法创建基类,以便后续定义映射类。最后,我们定义了 `User` 类,它继承自 `Base` 类,表示 users 表的映射类,包含 id、username 和 password 三个属性。 接着,我们可以使用 SQLAlchemy 提供的 API 对数据库进行操作,例如: ```python from sqlalchemy.orm import sessionmaker # 创建会话工厂 Session = sessionmaker(bind=engine) # 创建会话对象 session = Session() # 查询所有用户 users = session.query(User).all() # 输出查询结果 for user in users: print(user.id, user.username, user.password) # 关闭会话 session.close() ``` 在上述代码中,我们首先使用 `sessionmaker()` 方法创建会话工厂,然后使用 `Session()` 方法创建会话对象。接着,我们使用 `session.query()` 方法执行查询操作,并使用 `all()` 方法获取查询结果。最后,我们输出查询结果,并使用 `session.close()` 方法关闭会话。 除了查询操作之外,SQLAlchemy 还提供了一系列的方法,用于执行插入、更新、删除等操作,例如: ```python # 创建新用户 new_user = User(username='admin', password='123456') # 添加到数据库 session.add(new_user) # 提交事务 session.commit() ``` 在上述代码中,我们首先创建了一个新的 `User` 对象,然后使用 `session.add()` 方法将其添加到数据库中,并使用 `session.commit()` 方法提交事务,以保存修改。 综上所述,Python 操作数据库高级写法采用 ORM 框架,可以将数据库表映射为 Python 对象,从而实现面向对象的数据库操作,使得代码更加简洁、优雅、安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值