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做数据迁移 ...
随机推荐
- Objective-C与JavaScript交互的那些事
http://www.cocoachina.com/ios/20160127/15105.html 最近公司的运营瞎搞了个活动,其活动要服务端提供数据支持,web前端在微信公众账号内作为主要的运营阵地 ...
- POJ3907 Build Your Home
嘟嘟嘟 题意:按逆时针或顺时针给出一个多边形,求面积. 解法:直接套用公式:\(S = \frac{1}{2}|\sum _ {i = 1} ^ {n} {v_i \times v_{i + 1}}| ...
- Java集合源码 -- Collection框架概述
1.概述 collection框架是用于处理各种数据结构的,要根据各种数据结构的特点理解它 它能够保存对象,并提供很多的操作去管理对象,当你面临下面的情况时,也许你应该考虑用集合类 1.容器的长度是不 ...
- 【CSS-flex】圣杯布局(Holy Grail Layout)、输入框的布局、悬挂式布局、固定的底栏
1.圣杯布局(Holy Grail Layout) 其指的是一种最常见的网站布局.页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer).其中躯干又水平分成三栏,从左 ...
- Angular动态表单生成(三)
ng-dynamic-forms实践篇(上) 定个小目标 先来定个小目标吧,我们要实现的效果: 动态生成一个表单,里面的字段如下: 字段名称 字段类型 验证 备注 姓名 text 必填,长度小于15 ...
- MongoDB常用指令
db 查看当前操作的数据库 show dbs 显示所有数据库 show collections 显示当前数据库下的所有集合 use database_name 连接到一个名叫[database_nam ...
- iOS中Block循环引用的问题
说到循环引用问题,想必大家都碰到过吧,比如在使用Block的时候,使用__weakSelf来代替self解决等,但是对于这个,还是有不少可以探索的点,下面我就来说下,希望对大家有所帮助. 是否所有的B ...
- 怎么在苹果Mac虚拟机上安装Win7
怎么在苹果Mac虚拟机上安装Win7 使用 Mac 系统的用户,因为一些软件或是应用的原因,可能需要 Windows 系统才能完成.那如果不想在自己的 Mac 电脑上安装双启动系统的话,我们还可以在 ...
- VB
on error resume next: 从该语句开始,遇到错误时程序不会中止,也不会出现错误提示,将继续运行.作用范围直至程序结束或语句所在函数等结束 Public Property :可读也可写 ...
- 【PTA 天梯赛】L3-003 社交集群(并查集)
当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友.一个“社交集群”是指部分兴趣爱好相同的人的集合.你需要找出所有的社交集群. 输入格式: 输入在第一行 ...