初識SQLITE3資料庫,初識sqlite3

來源:互聯網
上載者:User

初識SQLITE3資料庫,初識sqlite3

資料庫DataBase,我們都沒有接觸過資料庫,那麼資料庫是什嗎?

   它是一個有結構的、整合的、可共用的統一管理的資料集合!

所謂有結構的,指的是資料是按一定的模型組織起來的。

   簡單的說,拿個箱子,用隔板把它隔開,如此箱子被分為許多格子,因而我們像填坑一樣把資料放進去!OK,那麼就把資料群組裝起來,有人說不如用結構體?但是不要忘了,箱子還可以分類、儲存。這是結構體不能做到的!

所謂整合的,是指資料庫中集中存放著企業各種各樣的資料。

    就如上面我所講的一樣,箱子把零散的資料集結在一起一樣!

    而且你可以在這個箱子裡面把你多餘的東西全部清理掉,對吧?

如此集中存放的好處顯而易見:

  (1)一個資料只需一個備份,重複儲存少,即消除了資料的冗餘。

  (2)沒有資料冗餘,也就能保證資料的一致。

所謂共用,指的是資料庫中的資料可以被不同的使用者使用。也就是說,每一個使用者可以按自己的要求訪問相同的資料庫。

所謂統一管理的,指的是資料庫由DBMS統一管理,任何資料訪問都是通過DBMS來完成的。

共用和統一管理我就不說了,一個箱子當然是可以給其他人用啦,只要你不上鎖!

剛才大家又見到了一個新的單詞:DBMS

這是個什麼東西呢?

其實他的全名為DataBase Management System資料庫管理系統

是用來管理資料庫的一種商品化軟體。
所有訪問資料庫的請求都由DBMS來完成的。
DBMS提供了操作資料庫的許多命令(語言),即SQL語言。
官方的解釋非常複雜,什麼應用程式層,語言翻譯處理、資料存取層等等!好吧,我非常討厭這樣子,於是就有我來給大家縮減地來講解!

通過上面的圖大家有看清是咋麼回事嗎?多麼直白!但有人要問了,咋麼管理呢?那就是我們的SQL語句了!當然在linux下絕對不會使用大型資料庫,因而我們只要掌握一些基本語句就可以了!

SQL語句我將在後面的部落格進行相應的歸納!

剛才是說到資料庫管理了吧?但是我們還要知道資料庫有哪些對不對?

Oracle 不用我多說,大家基本都聽過這個資料庫!特點是:支援多語言,極好的平行處理能力,多用於金融,保險等行業
SQL Server 微軟產品,很好的資料庫管理系統,最好的應該是現在微軟推廣雲端服務,不瞞大家,我在azure上搭建過伺服器,用的就是它!整合化極好,雖然我不是很會使用它!
DB2,這個也是我很少接觸過的資料庫!僅僅知道它的移植性非常好!
ACCESS 不多說了,office就有,圖形化介面就是操作很簡單
Sqlite3 極小的資料庫,等下將是我的主角!
好了,這5個資料庫類型已經給大家介紹了!

那麼資料庫還有一個非常重要的概念:資料模型

其實它就是一個組合:

(1) 資料結構 //類型 數值等

(2) 資料操作 //遍曆 刪除等

(3) 資料的完整性條件約束 //一定的關係串連

主要有4大類

層次資料模型
網狀資料模型
關係資料模型
物件導向資料庫模型
我就講關係資料,因為這個才是重點,至於其他,你想瞭解可以百度,物件導向的模型貌似最近才剛剛火起,用的不是很多!

總所周知,進入學校,學校會按什麼給你定義呢?學號!對,因而學號和你的名字,成績及其他各類資訊存在了關係,找到學號就是找到了你的所有資訊,這就是關聯式模式!

那麼它如何保證資料的獨立性的呢?那就要看資料庫他是如何構造的!

資料庫系統的三級模式結構是指資料庫系統是由外模式、模式和內模式三級組成。但是我並不打算說這個,因為本人也對這個抽象的東西感到一些恐懼,其實在做開發過程中,我們壓根就不用去瞭解他,就算我去面試,如果考官問我,我也會直接告訴他,我不知道,尼瑪,我又不是來製造資料庫的人!大家不用去糾結於它,我提它就是說知道就行!

還有就是資料庫中還存在的候選索引鍵,主鍵什麼,不要去管它了,這個等到我們在用sql server的時候再用吧!只要記住一點:學號就是你的主鍵!唯一識別碼!

而我為什麼又要選擇用sqlite3來作為嵌入式使用的資料庫呢?

因為它小!體積適合!嵌入式的東西空間是有限的,用它來做資料正好!
可移植性高 ,嵌入式 我不多說,必須要有移植性!
編程介面簡單,簡單的編程我就可以用它了!不用它用什嗎?
代碼開源,節約成本那是必須的!否則做什麼嵌入式啊!
 
具體優勢有哪些呢? 百度一下!

SQLite的優勢
記憶體佔用量小
事務操作是原子,一致,孤立,並且持久的(ACID),即使在系統崩潰和電源故障之後。
ACID相容(原子性,一致性,獨立性,可持久性),支援視圖,子查詢,觸發器
單個庫檔案中包含資料庫引擎與介面,且其運行不依賴其它庫
可以將資料放進單個檔案
為C/C++, PHP等應用提供了介面
免費
允許為SQL命令集動態添加自訂函數(簡單函數及聚集合函式),而無需重編SQLite庫
改進的B-樹。對於表採用B+樹,大大提高查詢效率。
好了,今天我寫到這了,好餓,我要去吃飯了!回頭我來寫sqlite3的安裝與sql文法!


sqlite3 怎選中要操作的資料庫?

sqlite3隻能操作資料庫檔案。它沒有像mysql那樣的資料庫的概念,它一個檔案就是一個資料庫,一個資料庫就是一個檔案
所以你開啟資料庫檔案之後,接下去就是操作“表”了,沒有“資料庫”了
 
Sqlite3 資料庫時間比較

這是我自己實驗的,可以隨機將記錄時間加上12或12小時以上,你試試看行不行。
DECLARE @time DATETIME,@rand INT
SET @rand=RAND()*20
SELECT @rand
--SET @rand=RAND()*20

IF @rand<12SET @rand=12
--DROP TABLE a
--CREATE TABLE a
--(
--f_id INT IDENTITY(1,1),
--f_time datetime
--)
--INSERT INTO a(f_time ) VALUES (' 2012-09-24 13:35:40 ')

UPDATE a SET f_time = DATEADD(HOUR,@rand,f_time) WHERE f_id=1
SELECT * FROM a
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.