資料庫基礎和sqlite

2021-09-02 02:40:57 字數 2407 閱讀 9031

structured query language 結構化查詢語言。專門對資料庫進行查詢、增加、修改、刪除、統計的操作語言。

curd 增刪查改 create update retrieve delete。

書寫風格,關鍵字大小寫都行,建議大寫。表名大小寫都行,但是在一些資料庫中不區分大小寫,建議小寫。

查詢

select 欄位1,欄位2,欄位3,… from 表名; python中返回值形如[(1, 502班, 小明, 男), (), ()]。

字段比較多時簡寫為 select * from 表名; 由於資料庫執行時會把*轉換為字段再執行,效能極微小下降。

select * from 表名 where 欄位1 = 過濾值,字典2=過濾值 ; where限定條件查詢。

新增

insert 欄位1,欄位2,… into 表名 values (1, 「小明」, 「男」);

簡寫 insert into 表名 values (1, 「小明」, 「男」);

修改

update 表名 set 欄位1=新值,欄位2=新值 where 欄位1 = 過濾值;

注意沒有where條件限定行的話將會更新整張表。

刪除

delete from 表名; 注意會刪除整張表。

delete from 表名 where 欄位1 = 過濾值; 限定條件刪除某些行。

建立表

create table 表名 ')

# print('學生姓名是{} 性別{} 住址{} **{}'.format(student3['name'], student3[2], ))

cursor.execute("""

update student set name="大紅" where id=3;

""")

connect.commit()

cursor.execute(""" select * from student; """)

print(cursor.fetchall())

cursor.close()

connect.close()「」"

cursor.fetchall() 取回結果集,形如[(1, 『小王』), (2, 『小明』)] 大列表,列表每一項是元組、是一行,元組裡的每一項對應每一列的值。結果空返回。

cursor.fetchone() 取回一條資料,形如 (2, 『小明』) 。結果空返回none型別。如果select符合多條,返回多條結果裡的第一條。

cursor.fetch***() 方法為了節省記憶體和速度採用了生成器結構,只能取一次。

「」"「」"

sql基礎語法補充:

主鍵:一張表一般都有一列主鍵,主鍵primary key一般名叫 id,字段型別一般為自增整數。當insert行內容時,sql語句可以不插入id列,資料庫會幫你自動插入並自增auto increase。

主鍵不能重複。主鍵好處是確保資料一致性、方便查詢。如果一列為主鍵,那麼必然非空not null和唯一unique。

2.如果工作中乙個資料庫連線例項下有多個庫,那麼表名要帶上命名空間,例如main.student。

3.丟棄表 drop。跟delete關鍵字相比更為嚴重,delete刪除某行或清空表內容 表結構還在。而drop是完全刪除丟棄整個表,內容和結構都刪除。 drop table [表名]。

4.欄位被雙引號括住 ,形如select 「id」, 「name」 from student; ,結果一樣。好處是避免資料庫關鍵字導致的錯誤。當資料庫直譯器遇到引號時,會認為引號裡的名字就是使用者自定義的欄位名而不是內建關鍵字。平時省事可以不加引號。

資料庫概念補充:

資料庫的大概原理:資料按樹形結構儲存,查詢資料時只需比對幾次就能查出來。資料量增大時,查詢時間成對數慢速增長。

索引:index,目錄。索引會佔據一定儲存空間,在資料庫中以樹型資料結構儲存,建立的是目錄到硬碟儲存的資料的對映。就好像平時看的書籍。建立主鍵的那一列會自動建立索引。一般在查詢經常比較的字段上建立索引(如id列、phone列)。優點大幅提高select查詢效率。缺點是佔據更多的硬碟空間。

事務:transaction。 當有多句sql語句的時候,例如sql1 插入銀行交易表一行資料金額100元、sql2 修改剛才插入的一行資料的金額為98元,但執行sql1的時候由於使用者擁堵等原因執行失敗,這時再執行sql2必然錯誤或誤修改其它的正常資料。為了避免這種情況,把這兩句sql都放入乙個事務執行,只要乙個事務中任意一條sql執行失敗,那麼其它已執行的sql會回到修改前狀態(回滾rolling),只有當所有sql都執行成功,才會一起commit生效。簡單來說,事務要麼都執行,要麼出錯都不行。優點 保證資料一致性。

「」"

SQLite資料庫基礎

import studentmanager.h import student.h import 4.建立資料庫並引入資料庫的標頭檔案 define ksqlfilename student.sqlite 這個類之乙個單例類,類所建立的物件是唯一的 static studentmanager mana...

資料庫Sqlite和mysql

致謝 資料庫可以分為兩類 關係型資料庫和記憶體資料庫。db engines發布了2017年4月資料庫排名。資料庫排行 sqlite功能簡約,小型化,追求最大磁碟效率 如果只是單機上用的,資料量不是很大,需要方便移植或者需要頻繁讀 寫磁碟檔案的話,就用sqlite比較合適 mysql功能全面,綜合化,...

Sqlite資料庫基礎操作教程

sqlite資料庫基礎操作教程。建立繼承sqliteopenhelper的類 public class mysql extends sqliteopenhelper 建立表方法 override public void oncreate sqlitedatabase db 資料庫更新時呼叫方法 ov...