slqite3练习
连接
import sqlite3
con = sqlite3.connect(":memory:")
c = con.cursor()
# Create table
c.execute('''CREATE TABLE COMPANY
            (ID integer, NAME text, AGE integer, ADDRESS text, SALARY real)''')
# Larger example that inserts many records at a time
purchases = [(1,'Paul',32,'California',20000.0),
             (2,'Allen',25,'Texas',15000.0),
             (3,'Teddy',23,'Norway',20000.0),
             (4,'Mark',25,'Rich-Mond',65000.0),
             (5,'David',27,'Texas',85000.0),
             (6,'Kim',22,'South-Hall',45000.0),
             (7,'James',24,'Houston',10000.0)]
c.executemany('INSERT INTO COMPANY VALUES (?,?,?,?,?)', purchases)
# Create table
c.execute('''CREATE TABLE DEPARTMENT(
               ID INT PRIMARY KEY      NOT NULL,
               DEPT           CHAR(50) NOT NULL,
               EMP_ID         INT      NOT NULL
            );''')
# Larger example that inserts many records at a time
purchases = [(1, 'IT Billing', 1 ),
             (2, 'Engineering', 2 ),
             (3, 'Finance', 7 )]
c.executemany('INSERT INTO DEPARTMENT VALUES (?,?,?)', purchases)
# Save (commit) the changes
con.commit()
# 显示所有记录
c.execute("SELECT * FROM COMPANY;")
for row in c:
    print(row)
print()
# 显示所有记录
c.execute("SELECT * FROM DEPARTMENT;")
for row in c:
    print(row)
print("\n连接(JOIN)")
c.execute("SELECT * FROM COMPANY,DEPARTMENT;")
for row in c:
    print(row)    
print("\n交叉连接(CROSS JOIN)")
#c.execute("SELECT EMP_ID, NAME, DEPT FROM COMPANY CROSS JOIN DEPARTMENT;")
c.execute("SELECT * FROM COMPANY CROSS JOIN DEPARTMENT;")
for row in c:
    print(row)
print("\n内连接(INNER JOIN)")
c.execute("SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID;")
for row in c:
    print(row)
print("\n左外连接(LEFT OUTER JOIN)")
c.execute("SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID;")
for row in c:
    print(row)
子查询
import sqlite3
'''子查询'''
con = sqlite3.connect(":memory:")
c = con.cursor()
# Create table
c.execute('''CREATE TABLE COMPANY
            (ID integer, NAME text, AGE integer, ADDRESS text, SALARY real)''')
# Larger example that inserts many records at a time
purchases = [(1,'Paul',32,'California',20000.0),
             (2,'Allen',25,'Texas',15000.0),
             (3,'Teddy',23,'Norway',20000.0),
             (4,'Mark',25,'Rich-Mond',65000.0),
             (5,'David',27,'Texas',85000.0),
             (6,'Kim',22,'South-Hall',45000.0),
             (7,'James',24,'Houston',10000.0)]
c.executemany('INSERT INTO COMPANY VALUES (?,?,?,?,?)', purchases)
# Save (commit) the changes
con.commit()
# ====================================================================================
# SELECT 语句中的子查询使用
# ====================================================================================
print('='*30)
print('SELECT 语句中的子查询使用')
print('='*30)
c.execute("SELECT * "
         "FROM COMPANY "
         "WHERE ID IN (SELECT ID "
                      "FROM COMPANY "
                      "WHERE SALARY > 45000);")
for row in c:
    print(row)
# ====================================================================================
# INSERT 语句中的子查询使用
# ====================================================================================
print('='*30)
print('INSERT 语句中的子查询使用')
print('='*30)
# Create table
c.execute('''CREATE TABLE COMPANY_BKP
            (ID integer, NAME text, AGE integer, ADDRESS text, SALARY real)''')
c.execute("INSERT INTO COMPANY_BKP "
         "SELECT * FROM COMPANY "
         "WHERE ID IN (SELECT ID "
                      "FROM COMPANY);")
c.execute("SELECT * FROM COMPANY_BKP")
for row in c:
    print(row)
# ====================================================================================
# UPDATE 语句中的子查询使用
# ====================================================================================
print('='*30)
print('UPDATE 语句中的子查询使用')
print('='*30)
# 子查询
c.execute("UPDATE COMPANY_BKP "
         "SET SALARY = SALARY * 0.50 "
         "WHERE AGE IN (SELECT AGE FROM COMPANY_BKP "
                       "WHERE AGE >= 27 );")
c.execute("SELECT * FROM COMPANY_BKP")
for row in c:
    print(row)
# ====================================================================================
# DELETE 语句中的子查询使用
# ====================================================================================
print('='*30)
print('DELETE 语句中的子查询使用')
print('='*30)
# 子查询
c.execute("DELETE FROM COMPANY_BKP "
         "WHERE AGE IN (SELECT AGE FROM COMPANY_BKP "
                       "WHERE AGE > 27 );")
c.execute("SELECT * FROM COMPANY_BKP")
for row in c:
    print(row)
c.execute("SELECT tbl_name FROM :memory: WHERE type = 'table';")
slqite3练习的更多相关文章
- Python框架 Flask 项目实战教程
		本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ... 
- python flask实现小项目方法
		本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走. 下载源码,运行 pip install -r requirements.txt 建立环境 python ... 
- swift3.0:CoreData的使用
		一.介绍 CoreData不像slqite3那样编写代码繁琐,同时避免了使用了SQL语句的麻烦,也可以回避使用C语言的语法,降低了iOS开发的技术门槛. CoreData可降低开发成本,提高代码质量. ... 
- Python Flask高级编程之从0到1开发《鱼书》精品项目 ☝☝☝
		Python Flask高级编程之从0到1开发<鱼书>精品项目 ☝☝☝ 一 .安装环境我们使用 flask web框架,并用 sqlalchemy来做数据库映射,并使用 migrate做数 ... 
- Python Flask高级编程之从0到1开发《鱼书》精品项目 ✍✍✍
		Python Flask高级编程之从0到1开发<鱼书>精品项目 一 .安装环境我们使用 flask web框架,并用 sqlalchemy来做数据库映射,并使用 migrate做数据迁移 ... 
随机推荐
- iOS开发中的Markdown渲染
			iOS开发中的Markdown渲染 BearyChat的消息是全面支持Markdown语法的,所以在开发BearyChat的iOS客户端的时候需要处理Markdown的渲染. 主要是两套实现方案: 直 ... 
- LeetCode: Word Ladder II [127]
			[题目] Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) ... 
- Yii2.0    发送邮件时中文附件乱码的问题
			yii自带的邮件类使用的是MIME 协议,发送附件时用的是MIME 协议的 Content-disposition扩展,用扩展下载中文名称的附件时有时会正常,有时会乱码. 只需找到如下文件 的如下方法 ... 
- Hadoop学习之路(二十八)MapReduce的API使用(五)
			求所有两两用户之间的共同好友 数据格式 A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,C,D,E,O,M G:A,C,D, ... 
- 30、springboot与检索(2)
			项目中进行整合: 1.整合 新建项目加入依赖(NoSql) springboot默认使用SpringDate ElasticSearch模块进行操作 查看自动配置类: SpringBoot默认支持 ... 
- Kali-linux使用社会工程学工具包(SET)
			社会工程学工具包(SET)是一个开源的.Python驱动的社会工程学渗透测试工具.这套工具包由David Kenned设计,而且已经成为业界部署实施社会工程学攻击的标准.SET利用人们的好奇心.信任. ... 
- 6.7 块管理器BlockManager
			/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ... 
- jQuery .attr()和.removeAttr()方法操作元素属性示例
			今天主要和大家一起分享一下如何使用jQuery的.attr()和.removeAttr()方法读取,添加,修改,删除元素的属性.大家在平时的Web页面制作中都有碰到如何动态的获取元素的属性和属性值,或 ... 
- UVALive - 6837  Kruskal+一点性质(暴力枚举)
			ICPC (Isles of Coral Park City) consist of several beautiful islands. The citizens requested constru ... 
- 指纹协查统计sql
			select dic.name, NVL(zc.zc_djzs,0),NVL(zc.zc_shzs,0),NVL(zc.zc_bzzs,0), NVL(zt.zt_djzs,0),NVL(zt.zt ... 
