矩陣快速冪(模板)
import time
import sqlite3
db_path = r’C:\Users\86131\Desktop\ndhd_cw_001.db’
conn = sqlite3.connect(db_path)
c = conn.cursor()
‘’’
運算子:
等於: =
不等於: <> (某些版本sql中,寫為: != )
大於: >
小於: <
大於大於: >=
小於等於: <=
在某個範圍內: between
搜尋某種模式: like
‘’’
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 inner join sql_notebook00
‘’’
JOIN: 如果表中有至少一個匹配,則返回行
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行
‘’’
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 表名稱(
欄位01 資料型別,
欄位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 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)