import time
import sqlite3
db_path = r’C:\Users\86131\Desktop\ndhd_cw_001.db’
conn = sqlite3.connect(db_path)
c = conn.cursor()
c.execute(‘select 字段 from 表’)
c.execute(‘select * from 表’)
c.execute(‘select distinct 字段 form 表’)
c.execute(‘select dintinct 字段01 字段02 … from 表’)
c.execute(‘select distinct * from 表 ‘)
‘’’
运算符:
等于: =
不等于: <> (某些版本sql中,写为: != )
大于: >
小于: <
大于大于: >=
小于等于: <=
在某个范围内: between
搜索某种模式: like
‘’’
c.execute(‘select 字段 from 表 where (条件01 AND 条件02) OR 条件03’)
c.execute(‘select 字段01, 字段02, 字段03 from 表 order by 字段01, 字段02 asc, 字段03 desc’)
c.execute(‘insert into 表 values (值01, 值02,)’)
c.execute(‘insert into 表 (列01, 列02, 列03) values (值01, 值02, 值03)’)
c.execute(‘update 表 set 字段 = 值 where 条件’)
c.execute(‘delete from 表’)
c.execute(‘delete from 表 where 条件’)
c.execute(‘select 字段 from 表 limit 数字’)
c.execute(‘select * from 表 where 字段 like 通配符公式’)
‘’’
通配符
替代一个或多个字符: %
替代一个字符: -
列表(不加逗号)里的任一字符: [charlist]
非列表(不加逗号)里的任一字符: [^charlist] 或 [!charlist]
‘’’
c.execute(‘select * from 表 where 字段 between 值01 and 值02 ‘)
c.execute(‘select * from 表 where 字段 in (值01, 值02, 值03, …)’)
c.execute(‘select a.id,a.name,b.money from sql_notebook as a,sql_notebook001 as b where a.id = b.id’)
c.execute(‘SELECT LastName AS Family, FirstName AS Name FROM Persons’)
c.execute(‘select a.id,a.name,b.money from sql_notebook as a,sql_notebook001 as b from a inner join b on a.id = b.id’)
c.execute(‘select a.id,a.name,b.money from sql_notebook as a inner join sql_notebook00
‘’’
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
‘’’
c.execute(‘select a.id from sql_notebook as a UNION select b.id from sql_notebook001 as b ‘)
c.execute(‘SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P’)
c.execute(‘CREATE TABLE newtable AS SELECT * FROM oldtable’)
c.execute(‘craeat database db_name’)
c.execute(‘CREATE TABLE 表名称(
字段01 数据类型,
字段02 数据类型,
字段03 数据类型,
…
)’)
‘’’
sqlite:
1. NULL,值是NULL
2. INTEGER,值是有符号整形,根据值的大小以1,2,3,4,6或8字节存放
3. REAL,值是浮点型值,以8字节IEEE浮点数存放
4. TEXT,值是文本字符串,使用数据库编码(UTF-8,UTF-16BE或者UTF-16LE)存放
5. BLOB,只是一个数据块,完全按照输入存放(即没有准换)
大多数的数据库引擎(到现在据我们所知的除了sqlite的每个sql数据库引擎)都使用静态的、刚性的类型,使用静态类型,数据的类型就由它的容器决定,这个容器是这个指被存放的特定列。
Sqlite使用一个更一般的动态类型系统,sqlite中,值的数据类型跟值本身相关,而不是与它的容器相关。
Sqlite的动态类型系统和其他数据库的更为一般的静态类型系统相兼容,但同时,sqlite中的动态类型允许它能做到一些传统刚性类型数据库所不可能做到的事。
‘’’
c.execute(’’‘CREATE TABLE Kzz
(Code TEXT NOT NULL,
Total_Investment_Amounts REAL NOT NULL);’’’)
c.execute(’’‘CREATE TABLE Persons(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)’’’)
c.execute(‘ALTER TABLE 表 ADD UNIQUE (字段)’
c.execute(’’‘ALTER TABLE 表
ADD CONSTRAINT 约束名 UNIQUE (字段01,字段02)’’’)
c.execute(’’‘ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID’’’)
c.execute(’’‘CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
‘’’)
c.execute(’’‘CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)
‘’’)
c.execute(’’‘ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)’’’)
c.execute(’’‘ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID’’’)
c.execute(’’‘CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)’’’)
c.execute(’’‘CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES’’’)
c.execute(’’‘ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)’’’)
c.execute(’’‘ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders’’’)
‘’’
SQL Check
SQL Default
SQL Create Index
SQL Drop
SQL Alter
SQL Increment
SQL View
SQL Date
SQL Nulls
SQL isnull()
SQL 函数
SQL functions
SQL avg()
SQL count()
SQL first()
SQL last()
SQL max()
SQL min()
SQL sum()
SQL Group By
SQL Having
SQL ucase()
SQL lcase()
SQL mid()
SQL len()
SQL round()
SQL now()
SQL format()
‘’’
start_time = time.time()
look = c.execute(sql)
end_time = time.time()
continuous_time = end_time - start_time
print(‘运行该sql语句的时间为{}’.format(str(continuous_time)) + ‘s’)
for i in look:
print(i)
原文:https://www.cnblogs.com/phyger/p/14035184.html