连接

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';")

最新文章

  1. provider 设计模式
  2. Xamarin.Android中使用ResideMenu实现侧滑菜单
  3. dede使用方法---用js让当前导航高亮显示
  4. Linux 利器- Python 脚本编程入门(一)
  5. IE的条件注释
  6. Orchard扩展 自定义后台管理导航菜单 Admin Menu
  7. How Tomcat Works(八)
  8. 一步步搭建自己的轻量级MVCphp框架-(四)一个国产轻量级框架Amysql源码分析(3) 总进程对象
  9. ASP.NET 不同页面之间传值
  10. localhost简介、localhost与 127.0.0.1 及 本机IP 的区别
  11. pig询问top k,每个返回hour和ad_network_id最大的两个记录(SUBSTRING,order,COUNT_STAR,limit)
  12. 淘淘商城_day02_课堂笔记
  13. 超声波 HC-SR04
  14. 设计模式——策略模式(C++实现)
  15. 如何在MongoDB设计存储你的数据(JSON化)?
  16. 128bit 整数运算的实现
  17. java8 Stream sorted()的一次调用链记录
  18. Mybatis 传递多个参数
  19. java:矩阵面积
  20. Vue系列之 => 结合ajax完成列表增删查

热门文章

  1. Maven编译Java程序配置
  2. 让IE6、7、8兼容@media属性
  3. Redis命令、数据结构场景、配置文件总结
  4. 【金融123】CNY和CNH的差异和关联
  5. 聚类之高斯混合模型(Gaussian Mixture Model)【转】
  6. Reading SketchVisor Robust Network Measurement for Sofeware Packet Processing
  7. 将Spring容器跟随系统启动并获取容器对象
  8. Oracle 日志挖掘(LogMiner)使用
  9. 通过代码退出IOS程序
  10. Spring boot 零配置开发微服务