1. 程式人生 > >為想學SQLite或練習SQL語言的朋友搭建簡單的命令列環境------在Windows, Linux, Android(用adb連線安卓手機)上玩轉SQLite資料庫的sqlite3命令列

為想學SQLite或練習SQL語言的朋友搭建簡單的命令列環境------在Windows, Linux, Android(用adb連線安卓手機)上玩轉SQLite資料庫的sqlite3命令列

       有言在先: 如果你是隻想玩玩SQL語句的lazy bone,  請直接看本文最後的"LAST部分"奮鬥

       之所以寫這篇文章, 是因為覺得SQLite實在是太棒了, 想學習資料庫的朋友們, 千萬不要錯過這麼優秀的資料庫。 對於初學者來說, SQLite非常容易上手和入門, 可實踐性強。 那些年, 在學校的時候, 就想學學資料庫, 結果, 在一些磚頭般厚厚的理論書籍面前, 我心事重重生氣, 望而卻步可憐,直到我遇到《SQLite權威指南》這本好書。好吧, 為SQLite以及《SQLite權威指南》打廣告就到此為止了。

       在本文中, 我們來玩玩SQL資料庫的sqlite3命令列, 也為想學SQLite或練習SQL語言的童鞋搭建簡單的命令列環境, 畢竟現在SQLite已經無處不在了, 能看到這篇文章的人, 必定直接或間接使用過SQLite(比如你的手機中就有). 另外, 現在不是招聘找工作的旺季麼, 你筆試面試還考SQL基本語句呢。所以, 如果能搭建個環境, 實踐操作一下, 玩玩SQL語句和命令, 對筆試和麵試也是有好處的。

       關於資料庫SQLite程式設計的簡介和實踐, 我在http://blog.csdn.net/stpeace/article/details/38503843這篇文章中已經進行了詳細的說明。 下面, 我再次給出程式碼:

#include <stdio.h>
#include "sqlite3.h" //api介面
#pragma comment(lib, "sqlite3.lib") //api實現



// 先說明一下: 為了簡便起見, 我沒有考慮異常情況


// 回撥函式
int sql_callBack(void *notused, int argc, char **argv, char **szColName)  
{  
	int i = 0;  
	for (i = 0; i < argc; i++)  	
	{  	
		printf( "%s = %s\n", szColName[i], argv[i]);  	
	}  
	
	return 0;  	
}  

int main()  
{  
	const char *sSQL1 = "create table users(name  PRIMARY KEY, age int, score int);";  
	const char *sSQL2 = "insert into users values('taoge', 26, 100);"; 
	const char *sSQL3 = "insert into users values('cainiao', 5, 1);"; 
	const char *sSQL4 = "select * from users;";  
	
	sqlite3 *pDb = NULL;  
	char *pErrMsg = NULL;  

	sqlite3_open("taoge.db", &pDb); // 開啟資料庫 
	
	sqlite3_exec( pDb, sSQL1, NULL, NULL, &pErrMsg);  // 建立基本資訊格式
	sqlite3_exec( pDb, sSQL2, NULL, NULL, &pErrMsg);  // 增加資訊
	sqlite3_exec( pDb, sSQL3, NULL, NULL, &pErrMsg);  // 增加資訊
	sqlite3_exec( pDb, sSQL4, sql_callBack, 0, &pErrMsg); // 查詢資料庫
	sqlite3_close(pDb); // 關閉資料庫

	return 0;  	
} 
         說明安靜

         1. 上述程式的環境是VC++6.0

         2. 上述程式需要的檔案、庫和整個工程, 我都已經上傳到了自己的csdn部落格資源中, 大家下載後可以直接執行。 其中還包括SQLiteSpy.exe這個優秀的GUI工具以及我們馬上要介紹到的Windows下的命令列工具sqlite3.exe

         3. 如果有疑問, 可以參考之前部落格文章:http://blog.csdn.net/stpeace/article/details/38503843

         執行上面的程式, 我們看到, 當前目錄下生成了taoge.db這個資料庫檔案(本質就是一個檔案), 在那個黑漆漆的控制檯上, 則有如下結果

name = taoge
age = 26
score = 100
name = cainiao
age = 5
score = 1

         對於程式設計師來講, 我們可能和CEO, CFO和UFO不太沾邊,  但肯定熟悉GUI, CLI, API.   我們已經用API生成了一個數據庫檔案, 也用API訪問了它。 當然, 也可以用GUI形式的視覺化工具SQLiteSpy.exe來讀取它, 實際上, 我們已經介紹過了。 本文, 我們關注用CLI的方式來讀取:分別是Window CLI, Linux CLI和Android CLI.

        一. Windows  sqlite3命令列

        其實很簡單, 在網上(比如我的csdn部落格資源中)下載前面說的sqlite3.exe, 然後把他放到和cmd.exe同目錄下。 然後我在桌面建立了一個sql資料夾, 並把生成的taoge.db檔案拷貝到其中, 隨後執行如下操作:


        我們看到了, 果然輸出了資料庫中的東東。

        二.  Linux sqlite3命令列

        實際上, 我裝了linux後, 就自然有sqlite3這個命令列工具了, 可見sqlite3確實很普遍。 大家可以試一下, 如果你的linux上沒有sqlite3這個命令, 那安裝一個也很簡單, 具體方法: 左手谷歌, 右手百度。

        下面是linux上的執行結果:

[[email protected] sql]$ ls
taoge.db
[[email protected] sql]$ sqlite3 taoge.db .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE users(name  PRIMARY KEY, age int, score int);
INSERT INTO "users" VALUES('taoge',26,100);
INSERT INTO "users" VALUES('cainiao',5,1);
COMMIT;
[[email protected] sql]$           我們看到了, 果然輸出了資料庫中的東東。         三. Android手機上的sqlite3命令列          先說明一下, 我買的是小米手機, 我進入手機的shell裡面查了一下, 發現裡面是沒有sqlite3命令這個東東的, 奇怪了, 難道小米把這個命令給裁剪掉了麼? 我看極有可能。 那怎麼安裝呢? 請參考:http://www.cnblogs.com/localhost/archive/2012/04/09/2439558.html,  我就是這麼做的。在此, 感謝作者羨慕。我對原文進行截圖, 並在圖中說明。(有言在先:如果adb連線不了, 請參考我之前介紹的adb連線手機的博文)

       可以用類似的方法吧taoge.db這個檔案推入到/data/data目錄下, 我推進去了。 實際上呢, 進行了上述操作後, 我還執行了reboot操作, 確保推入的庫生效。  然後,等手機開機後, 我又重新連線上adb.(有言在先:如果adb連線不了, 請參考我之前介紹的adb連線手機的博文)

       然後執行如下操作, 結果為:


        我們看到了, 果然輸出了資料庫中的東東。大家在用adb的時候, 在adb的安裝階段, adb連線手機階段, adb推入檔案等各個階段, 肯定會遇到各種各樣的問題, 比如常見的抓狂pc ping不通過手機問題(儘管手機能ping通pc), adb埠衝突問題, adb是否允許連線問題(手機adb埠預設關閉),目錄許可權問題, 檔案許可權問題抓狂。其實只要靜下心想想, 百度一下, 基本都能找到解決的方法。 這些問題, 我在搗騰手機的時候, 都親自遇到過,最後也一個一個解決了。

        好了, 本文中我們介紹了Windows, Linux, Andoid下的sqlite3命令列, 實際上本質是一致的。最簡單肯定是直接用Windows下的命令列, 只需要下載個sqlite3.exe然後放到對應的地方即可, 多方便啊。

        本文為想學SQLite或練習SQL語言的童鞋搭建簡單的命令列環境, 以後多加練習吧。

      LAST部分奮鬥奮鬥奮鬥

        最後, 如果你是lazy bone, 不想玩程式, 只想玩一下SQL, 那也行, 你只需要在網上下載(到處都有, 當然你也可以在我的csdn資源下載)sqlite3.exe, 然後把它放到與cmd.exe同目錄下就可以了, 這樣, 就可以玩SQL了, 如下:


       為了方便lazy bone們複製並輸入, 我直接貼出:

C:\Documents and Settings\Administrator\桌面\sql>
C:\Documents and Settings\Administrator\桌面\sql>
C:\Documents and Settings\Administrator\桌面\sql>
C:\Documents and Settings\Administrator\桌面\sql>sqlite3 YouLazyBone.db
SQLite version 3.8.5 2014-06-04 14:06:34
Enter ".help" for usage hints.
sqlite>
sqlite> create table YouLazyBone(name PRIMARY KEY, age int, score int);
sqlite>
sqlite> insert into YouLazyBone values('taoge', 26, 100);
sqlite>
sqlite> insert into YouLazyBone values('cainiao', 5, 1);
sqlite>
sqlite> select * from YouLazyBone;
taoge|26|100
cainiao|5|1
sqlite> .exit

C:\Documents and Settings\Administrator\桌面\sql>

        值得注意:

1.sqlite3 YouLazyBone.db;中YouLazyBone是資料庫名。 create table YouLazyBone(name PRIMARY KEY, age int, score int);中YouLazyBone是表明。 兩個名字沒有什麼關係, 可以不一致, 你愛怎麼著就怎麼著。

        2. sqlite3 YouLazyBone.db;這句並沒有建立資料庫檔案, 後面要有create table YouLazyBone(name PRIMARY KEY, age int, score int);才可以, 此時, 我們可以看到目錄中有了YouLazyBone.db這個資料庫檔案

        如果連命令都懶得敲入, 那就直接複製如下的東西吧:

sqlite3 my.db
create table test(name PRIMARY KEY, age int, score int);
insert into test values('taoge', 26, 100);
insert into test values('cainiao', 5, 1);
select * from test;
.exit

      結果:


        OK,  本文就先說到這裡了。

       知識在於積累,經驗在於搗騰!

相關推薦

SQLite練習SQL語言朋友搭建簡單命令環境------在Windows, Linux, Android(adb連線手機)SQLite資料庫sqlite3命令

       有言在先: 如果你是隻想玩玩SQL語句的lazy bone,  請直接看本文最後的"LAST部分"        之所以寫這篇文章, 是因為覺得SQLite實在是太棒了, 想學習資料庫的朋友們, 千萬不要錯過這麼優秀的資料庫。 對於初學者來說, SQLite

Unity實現在手機觸屏控制轉向--控制物件飛機

該例項是Unity實現在移動端通過觸控式螢幕幕進行對飛機的移動和轉向,用於學習Touch類的相關知識public class AirControl:MonoBehaviour{ private Transform m_transform; //飛機

如何高效python?這篇文章就是的你寫的

如過你一直想學Python,但是不知道如何入手,那就別猶豫了。這篇文章就是為你寫的。   疑問 隨著資料科學概念的普及,Python這門並不算新的語言火得一塌糊塗。 因為寫了幾篇用Python做資料分析的文章,經常有讀者和學生在留言區問我,想學習Python,該

音樂不難!人工智慧讓音樂更簡單但有可能成為音樂家嗎?

「自動音樂採譜研究」的重要性 相傳莫扎特十四歲時聽到複雜的教堂樂曲,便能默記全曲並寫成樂譜。在這個充滿神祕色彩的故事中,除了隱含人們對音樂「天份」這道門坎的敬畏以外,自動採譜也成為 AI 人工智慧研究者所挑戰的重要夢想。中研院資訊科學研究所的蘇黎,專攻音樂資訊檢索(Music Informa

電腦鍵盤鼠標控制手機平板的應用——DeskDock

文件傳輸工具 電腦鍵盤鼠標控制安卓 deskdock 如果你同時使用多臺電腦,可能早已聽過Synergy、Input Director、無界鼠標等神奇的工具了,它們可以讓你只使用一套鍵鼠即可控制操作多臺不同電腦,讓鼠標自由“穿梭”不同屏幕,非常方便。 不過上述軟件都只能支持Win、Mac、L

手機要恢復刪除過的照片

在現在這個經濟快速發展的時代,我們的手機的功能是越來越繁多了,其中相機是最為主要的也是最多革新的功能,那麽相冊裏的照片也同樣很重要了,出去遊玩,吃個大餐,想拍就拍,有精彩,有感動,有紀念,有回憶的照片數不勝數,但是也有後來感覺不怎麽好的照片刪除掉,但是如果誤刪了某些重要有回憶的照片就難受了。別急,下面我

解決手機鍵盤彈出時會把背景百分比定位的布局壓縮的問題

div 而且 log 案例 問題 class 背景圖 不同 fixed 做移動端頁面時經常遇到以下案例,在有背景的頁面上寫表單,而且底部為了適應不同手機還得運用絕對定位,因為通常是把容器高度設為了100%,這時在安卓手機上彈窗軟鍵盤時就會把背景圖片及其他東西擠壓上去,解決方

手機手機kali系統Nethunter

ron adb kali loader 工具 dde file png con kali Nethunter是一個裝在手機上的kali,集成了kali的工具包,hid,無線攻擊等等。 本文主要敘述如何安裝此系統並正確的配置。不讓你走彎路。 首先我們拒絕傻瓜安裝軟件 kali

電腦/華手機 觀看Coursera視訊無法播放解決方法

針對Coursera上視訊無法播放, 電腦: 配置hosts 52.84.246.72 d3c33hcgiwev3.cloudfront.net 52.84.246.90 d3c33hcgiwev3.cloudfront.net 52.84.246.252 d3c33hcg

一起微軟Power BI系列-使用技巧(3)Power BI手機版安裝與體驗

  Power BI有手機版,目前支援安卓,蘋果和WP,不過沒有WP手機,蘋果在國內還不能用,要FQ和用就不測試了。安卓的我也也是費了九牛二虎之力才把app下載下來,把方法分享給大家。     FQ太麻煩,所以建議大家不要用了。同時我也使用了很多第三方的線上網站下載google商店的app工具,結果

Android adb pullpush 拷貝手機檔案到到電腦,拷貝手機資料庫到電腦,拷貝電腦資料庫到手機上

http://www.cnblogs.com/liqw/p/5138774.html 先說一下adb命令配置,如果遇到adb不是內部或外部命令,也不是可執行的程式或批量檔案。配置下環境變數 1、adb不是內部或外部命令,也不是可執行的程式或批量檔案。 解決辦法:在我

android 圖片剪下在小米手機方形框在華圓形框解決辦法

在android呼叫系統方法對圖片進行裁剪時,華為手機顯示的圖形會變成圓形,將aspectX和aspectY的值改為不是1;1就好了 if (android.os.Build.MODEL.contai

初學者數據分析,這五個Python庫,簡直就是初學者量身定制

方便 代數 應用 最好 編寫 ack mage ipy 後端 如果你已經決定把Python作為你的編程語言,那麽,你腦海中的下一個問題會是:"進行數據分析有哪些Python庫可用?" Numpy 對於科學計算,它是Python創建的所有更高層工具的基礎。以下

如果你是編程零基礎,第一個語言Python?阿裏程序員的建議

atp 網站 關於 容易 14. 包含 翻譯 重要 客戶 完全零基礎的人確實會很迷茫!怎麽說呢?就是給了一個沒錢人平民一個億!但是不能充分的利用這一個億來得到另一個億!就是無從下口的感覺!那麽今天小編就帶給大家幾點意見 ,希望能幫助到零基礎小白們!先說說我的情況。我是沒有任

SQL-給數據庫的小夥伴一小點點基礎

column 顯示數據 lang websites delete 有時 standards 如何使用 .sql SQL 是用於訪問和處理數據庫的標準的計算機語言。如何使用 SQL 訪問和處理數據系統中的數據,這類數據庫包括:MySQL、SQL Server、Access、O

C語言第四天-不,靜不下心來了

純抄練習: 引數值互換 -- ES_C_EXP602 //最常用方法 #include <stdio.h> int main() { int x=3,y=6; int z; z=x; x=y; y=z; printf("x= \n",x); printf("y=

sql語言,sqlite資料庫

資料庫: 資料庫是按照一定規則來管理資料的倉庫. 資料庫用的最多的就是增刪改查 sql 語言 sqlserver mysql oracle sqlite 資料庫 是一個檔案櫃 資料庫裡面儲存資料表 資料表儲存詳細資料 資料表有結構 資料行成為記錄 drop:

程式,但到底該從哪個語言入門?

只是想學程式 vs 想要做出一個__一般來說,想學程式的初學者大致可以分為兩種,第一種是純粹想要學習寫程式,沒有特別目標的,也就是那些會說:「感覺寫程式很好玩,來寫寫看程式好了。」、「程式之後一定很重要,學一下鍛鍊腦袋也不吃虧。」的人。第二種則是有很明確想要實作出的目標,例如:想要寫出一個自己的個人網站、想要

人工智慧將改變世界 AI首選Python語言

  人工智慧將改變世界,想學AI首選Python語言。大家知道:人工智慧改變的不僅是商業運作的方式,還涉及到社會的方方面面。從使用影象識別技術增強公共安全,到藉助自然語言處理提供自動的人性化服務,人工智慧都起到了很大的作用。那麼,人工智慧培訓就業前景如何?   人工智慧發展前景很好,中國正在產業

SQL Server 2008 互動式SQL語言例項練習

資料庫學習初步 一、資料定義 (一)、基本表操作 先建立school資料庫,在school資料庫裡做以下的操作。 1.建立基本表 1)建立學生表Student,由以下屬性組成: 學號SNO