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