软件测试学习——数据库

连接查询

内连接

  • 内连接查询
    • SELECT 列名 FROM 表1 inner join 表2 on 条件
    • inner 可省略
    • 表1表2共有的数据

外连接

左外 左的数据可以全部看到 右边要符合规范

  • SELECT 列名 FROM 表1 left join 表2 on 条件
    • left 左表查询
    • right 右表查询
    • left join 中间省略了outer
  • 根据表1信息显示,显示表1表2共有的数据,和表1独有的数据

事务

BEGIN TRANSACTION  //事务开始
SQL1
SQL2
COMMIT/ROLLBACK   //事务提交或回滚

数据库

DQL:数据查询语言 如 select

1. 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

2 .数据操纵语言DML
数据操纵语言DML主要有三种形式:

  1. 插入:INSERT
  2. 更新:UPDATE
  3. 删除:DELETE

3. 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 视图 索引 同义词 簇

DDL操作是隐性提交的!不能rollback

4. 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

聚合函数

  • count()
  • max()
  • min()
  • sum()
  • avg()

连接查询

  • 内连接 :
    • 表1 [inner] join 表2 on 表1.字段=表2.字段
  • 左表查询
  • 右表查询

ER模型

基本元素:实体、联系和属性

  • E 表示entry ,实体:一个数据对象,描述具有相同特征的事务
  • R表示relationship,联系:表示一个或多个实体之间的关联关系,关系的类型包括一对一、一对多、多对多
  • 属性:实体的某一特性称为属性

事务

当有一条或多条的SQL语句无法执行时,整个事务无法执行

特征(ACID)

  • A:原子性——要么全部执行,要么全部不执行
  • C:一致性——事务的结果保留不变,即事物的运行并不改变数据的一致性
  • I:隔离性——事务中间状态对其他事务是不可见的
  • D:持久性——事务一旦提交成功,对数据库中的数据改变就应该是永久的

Pymysql

  • 安装:pip insrall pymysql
  • 验证:pip show pymysql
  • 操作数据库基本流程
    • 创建:connection
    • 获取:cursor
    • 执行sql
      • 查询操作(select)
      • 非查询(insert/update/delete)
        • 链接内多填写一个参数:autocommit='true’
        • 事物提交(commit())
        • 事物回滚(rollback())
        • 操作【理解】
          • 自动提交(不推荐): autocommit=True
          • 手动提交(推荐):
            • 提交事务: conn.commit()
            • 回滚事务: conn.rollback()
    • 关闭cursor、关闭connection
# 导包
import pymysql

# 创建链接host/port/user/password/database

conn = pymysql.connect(host="db4free.net",
                       port=3306,
                       user="osehun",
                       password="qwertyuiop",
                       database="guohansql")
# 获取游标
cursor = conn.cursor()
# 执行sql
cursor.execute("select version()")
result = cursor.fetchall()
print(result)
# 关闭游标
cursor.close()
# 关闭连接
conn.close()

cursor常用方法

说明:游标是SQL的一种数据访问机制
可以简单看成结果集的“指针”,当使用获取结果第一条后,再执行全部数据(还未重置),就不会再读取第一条结果

  • 获取游标(cursor)

    • XXX.cursor()
  • 关闭游标

    • cursor.close()
  • 执行SQL

    • cursor.execute(SQL语句)
  • 获取数据

    • 获取查询结果第一条
      • cursor.fetchone()
    • 获取查询结果所有数据
      • cursor.fetchall()
    • 返回结果格式:Tuple 元祖类型
  • 查询结果总记录数

    • cursor.rowcount()
  • 查询游标位置

    • cursor.rownumber
  • 重置游标位置

    • cursor.rownumber = 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值