日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sqlite3命令大全

發(fā)布時(shí)間:2024/9/27 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlite3命令大全 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.??????查看sqllite的版本信息:


2 創(chuàng)建數(shù)據(jù)庫


3 退出sqlite命令行的方式:

sqlite>.quit? 或?? sqlite>.exit命令


4 列出當(dāng)前顯示格式的配置


5 顯示數(shù)據(jù)庫表結(jié)構(gòu)


6 向表中插入數(shù)據(jù)


7 設(shè)置導(dǎo)出目標(biāo)

?

12 設(shè)置顯示模式:? .mode??模式

有好幾種顯示模式,默認(rèn)的是?list?顯示模式,一般我們使用?column?顯示模式,還有其他幾種顯示模式可以?.help?看?mode?相關(guān)內(nèi)容。看看下面的圖,和上面是不是顯示的不一樣了?


13 設(shè)置?NULL?值顯示成什么樣子:?.nullvalue?????你想要的NULL值格式

默認(rèn)情況下NULL值什么也不顯示,你可以設(shè)置成你自己想要的樣子


14 配置文件 .sqliterc

如果我們每次進(jìn)入命令行都要重新設(shè)置顯示格式,很麻煩,其實(shí)?.show?命令列出的所有設(shè)置項(xiàng)都可以保存到一個(gè)?.sqliterc?文件中,這樣每次進(jìn)入命令行就自動(dòng)設(shè)置好了。.sqlterc?文件在?Linux?下保存在用戶的?Home?目錄下,在?Windows?下可以保存到任何目錄下,但是需要設(shè)置環(huán)境變量讓數(shù)據(jù)庫引擎能找到它,感興趣的可以看看幫助。?

?

15 自定義分隔符

?

16 顯示標(biāo)題欄 .header on


不顯示標(biāo)題欄:.header off


三.數(shù)據(jù)庫和表的相關(guān)命令

1、創(chuàng)建一個(gè)新的數(shù)據(jù)庫:sqlite3 文件名

創(chuàng)建一個(gè)test.db數(shù)據(jù)庫文件,打開控制臺窗口,命令如下:

2、打開一個(gè)已經(jīng)存在的數(shù)據(jù)庫:sqlite3已經(jīng)存在的文件名

創(chuàng)建一個(gè)數(shù)據(jù)庫和打開一個(gè)已經(jīng)存在的數(shù)據(jù)庫命令是一模一樣的,如果存在,則打開。

3 建立數(shù)據(jù)表

create table table_name(field type1,fieldtype1,….);

table_name是要?jiǎng)?chuàng)建數(shù)據(jù)表的名稱,field x上是數(shù)據(jù)庫表內(nèi)字段名字,typex則是字段類型。

如:該語句創(chuàng)建一個(gè)記錄學(xué)生信息的數(shù)據(jù)表


sql的指令格式:所有sql指令都是以分號(;)結(jié)尾,兩個(gè)減號(--)則表示注釋

4 添加數(shù)據(jù)記錄

insert into table_name(列 field1,field2,….)values(值val1,val2,….);

val x為需要存入字段的值。

例如,往老師信息表添加數(shù)據(jù):


很簡單,創(chuàng)建了一個(gè)Teachers表并向添加了四條數(shù)據(jù),設(shè)定了一些約束,其中有自動(dòng)增加的主鍵、默認(rèn)值等等。

5、修改數(shù)據(jù)

UPDATE 表 SET 列 = ‘新值’ 【W(wǎng)HERE 條件語句】

UPDATE語句用來更新表中的某個(gè)列,如果不設(shè)定條件,則所有記錄的這一列都被更新;如果設(shè)定了條件,則符合條件的這一列被更新,WHERE子句被用來設(shè)定條件,如下例:


6 刪除數(shù)據(jù) DELETE? FROM 表 【W(wǎng)HERE條件語句】

如果設(shè)定WHERE條件子句,則刪除符合條件的數(shù)據(jù)記錄;如果沒有設(shè)定條件語句,則刪除所有記錄。


7 導(dǎo)入數(shù)據(jù):? .read 數(shù)據(jù)文件

打開記事本,并將下列SQL語句復(fù)制到記事本中,保存為test.sql,在命令行環(huán)境中輸入

.read test.sql

BEGIN TRANSACTION;

CREATE TABLE Cars(Id integer PRIMARY KEY, Name text, Cost integer);

INSERT INTO Cars VALUES(1,'Audi',52642);

INSERT INTO Cars VALUES(2,'Mercedes',57127);

INSERT INTO Cars VALUES(3,'Skoda',9000);

INSERT INTO Cars VALUES(4,'Volvo',29000);

INSERT INTO Cars VALUES(5,'Bentley',350000);

INSERT INTO Cars VALUES(6,'Citroen',21000);

INSERT INTO Cars VALUES(7,'Hummer',41400);

INSERT INTO Cars VALUES(8,'Volkswagen',21600);

COMMIT;

?

BEGIN TRANSACTION;

CREATE TABLE Orders(Id integer PRIMARY KEY,

??? ????????OrderPrice integer CHECK(OrderPrice>0),Customer text);

INSERT INTO Orders(OrderPrice, Customer) VALUES(1200, "Williamson");

INSERT INTO Orders(OrderPrice, Customer) VALUES(200, "Robertson");

INSERT INTO Orders(OrderPrice, Customer) VALUES(40, "Robertson");

INSERT INTO Orders(OrderPrice, Customer) VALUES(1640, "Smith");

INSERT INTO Orders(OrderPrice, Customer) VALUES(100, "Robertson");

INSERT INTO Orders(OrderPrice, Customer) VALUES(50, "Williamson");

INSERT INTO Orders(OrderPrice, Customer) VALUES(150, "Smith");

INSERT INTO Orders(OrderPrice, Customer) VALUES(250, "Smith");

INSERT INTO Orders(OrderPrice, Customer) VALUES(840, "Brown");

INSERT INTO Orders(OrderPrice, Customer) VALUES(440, "Black");

INSERT INTO Orders(OrderPrice, Customer) VALUES(20, "Brown");

COMMIT;


8、查詢數(shù)據(jù)記錄

A查詢輸出列出數(shù)據(jù)記錄

select * from table_name;

b 限制輸出數(shù)據(jù)記錄數(shù)量

若數(shù)據(jù)庫中的數(shù)據(jù)太多,全部返回可不行,可以限制返回的數(shù)量,還可以設(shè)定返回的起始位置

select?*?from?table_name?limit?val;


C 升序輸出數(shù)據(jù)記錄

select * from table_name order by fieldasc;


D 降序輸出數(shù)據(jù)記錄

select * from table order by field desc;


E 條件查詢

select?*?from?table_name?where?expression;

IN(集合)

select * from table_name where field in(‘val1’,’val2’,’val3’);


BETWEEN值1 AND值2

select * from table_name where fieldbetween val1 and val2;

?

select * from Cars where cost between 41400and 350000;


F、查詢記錄數(shù)目

select count(*) from table_name;

?

G、區(qū)分列數(shù)據(jù)

select distinct field from table_name;

有一些字段的值可能會重復(fù)出現(xiàn),distinct去掉重復(fù)項(xiàng),將列中各字段值單個(gè)列出。

?

h 別名SELECT 列AS別名,列AS別名FROM

可以返回?cái)?shù)據(jù)集中的某些列起一個(gè)比較直觀的名字,比如把Const改為”Price Of Car”


l、條件查詢SELECT列FROM表? 【W(wǎng)HERE條件語句】

一般的條件語句都Shiite大于、小于、等于之類的,這里有幾個(gè)特別的條件語句

LIKE

-------------------------------

LIKE?????用通配符匹配字符串

下劃線_?? 匹配一個(gè)字符串

百分號%?? 匹配多個(gè)字符串

LIKE匹配字符串時(shí)不區(qū)分大小寫

?

GLOB

J?區(qū)分?DISTINCT?列

有一些字段的值可能會出現(xiàn)重復(fù),比如訂單表中,一個(gè)客戶可能會有好幾份訂單,因此客戶的名字會重復(fù)出現(xiàn)。

到底有哪些客戶下了訂單呢?下面的語句將客戶名字區(qū)分出來。

?

K 分組GROUP BY列

分組和前面的區(qū)分有一點(diǎn)類似。區(qū)分僅僅是為了去掉重復(fù)項(xiàng),而分組是為了對各類不同項(xiàng)進(jìn)行統(tǒng)計(jì)計(jì)算。

比如上面的例子,我們區(qū)分出5個(gè)客戶,這5個(gè)客戶一共11個(gè)訂單,說明很多客戶都下了不止一個(gè)訂單。

下面的語句的統(tǒng)計(jì)每個(gè)客戶在訂單上總共花費(fèi)了多少錢。

?

9 建立索引

當(dāng)說數(shù)據(jù)表存在大量記錄,索引有助于加快查找數(shù)據(jù)表速度。
create?index?index_name?on?table_name(field);
例,針對學(xué)生表stu_no字段,建立一個(gè)索引:
create?index?student_index?on?student_table(stu_no);


建立完成后,sqlite3在對該字段查詢時(shí),會自動(dòng)使用該索引。

?

10 刪除數(shù)據(jù)表或索引

drop table table_name;

drop index index_name;

?

11 ?sqlite3存儲數(shù)據(jù)的類型

NULL:標(biāo)識一個(gè)NULL值

INTEGER:整數(shù)類型

REAL:浮點(diǎn)數(shù)

TEXT:字符串

BLOB:二進(jìn)制數(shù)

?

12 sqlite3存儲數(shù)據(jù)的約束條件

Sqlite常用約束條件如下:

PRIMARY KEY?-主鍵

1)? 主鍵的值必須唯一,用于標(biāo)識每一條記錄,如學(xué)生的學(xué)號

2)? 主鍵同時(shí)也是一個(gè)索引,通過主鍵查找記錄速度較快

3)? 主鍵如果是整數(shù)類型,該列的值可以自動(dòng)增長

NOT NULL – 非空

約束列記錄不能為空,否則報(bào)錯(cuò)

UNIQUE – 唯一:

除主鍵外,約束其它列的數(shù)據(jù)的值唯一

CHECK – 條件檢查:

約束該列的值必須符合條件才可存入

DEFAULT – 默認(rèn)值:

列數(shù)據(jù)中的值基本都是一樣的,這樣的字段列可設(shè)為默認(rèn)值

CREATE TABLE Orders(Id integer PRIMARY KEY,

??????????????????? OrderPrice integer CHECK(OrderPrice>0),

??????????????????? Customer text);

?

CREATE TABLE Friends(Id integer PRIMARY KEY, Name text UNIQUE NOT NULL,

????????????????? ???Sex text CHECK(Sex IN ('M', 'F')));

?

?

?

CREATE TABLE IF NOT EXISTS Reservations(Id integer PRIMARY KEY,

???????????????????? CustomerId integer, Day text);

INSERT INTO Reservations(CustomerId, Day) VALUES(1, '2009-22-11');

?

CREATE TABLE Books(Id integer PRIMARY KEY, Title text, Author text,

????????????????? ???Isbn text default 'not available');

?

13 怎么在已經(jīng)創(chuàng)建的表中插入一列

ALTER TABLE table-name

ADD COLUMN column-name column-type;

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的sqlite3命令大全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。