1. 程式人生 > >sqlite3學習之insert(新增)&select(查詢)操作

sqlite3學習之insert(新增)&select(查詢)操作

SQLite 的 INSERT INTO 語句用於向資料庫的某個表中新增新的資料行,語法有兩種格式:

#指定列名稱
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);
#不指定列名稱
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

假設我們已經在 testDB.db 中建立了 COMPANY表,如下:

sqlite> CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

完事我們來插入一些記錄:

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );

INSERT INTO COMPANY VALUES (2, 'James', 24, 'Houston', 10000.00 );

我們還可以通過在一個有一組欄位的表上使用 select 語句,填充資料到另一個表中,語法如下:

INSERT INTO first_table_name [(column1, column2, ... columnN)] 
   SELECT column1, column2, ...columnN 
   FROM second_table_name
   [WHERE condition];

SQLite 的 SELECT 語句用於從 SQLite 資料庫表中獲取資料,以結果表的形式返回資料。這些結果表也被稱為結果集,語法格式如下:

#1
SELECT column1, column2, columnN FROM table_name;

#2
SELECT column1, column2, columnN FROM table_name;

接下來我們來使用 SELECT 語句獲取並顯示所有這些記錄,並且設定格式化的輸出:

sqlite>.header on
sqlite>.mode column
sqlite> SELECT * FROM COMPANY;

有時,由於要顯示的列的預設寬度導致 .mode column,這種情況下,輸出被截斷。此時,我們可以使用 .width num, num.... 命令設定顯示列的寬度,如下:

sqlite>.width 10, 20, 10
sqlite>SELECT * FROM COMPANY;

上述程式碼中的 .width 命令設定第一列的寬度為 10,第二列的寬度為 20,第三列的寬度為 10。因此上述 SELECT 語句將得到以下結果:

ID          NAME                  AGE         ADDRESS     SALARY
----------  --------------------  ----------  ----------  ----------
1           Paul                  32          California  20000.0
2           Allen                 25          Texas       15000.0
3           Teddy                 23          Norway      20000.0
4           Mark                  25          Rich-Mond   65000.0
5           David                 27          Texas       85000.0
6           Kim                   22          South-Hall  45000.0
7           James                 24          Houston     10000.0

因為所有的點命令只在 SQLite 提示符中可用,所以當我們進行帶有 SQLite 的程式設計時,我們要使用下面的帶有 sqlite_master 表的 SELECT 語句來列出所有在資料庫中建立的表:

SELECT tbl_name FROM sqlite_master WHERE type = 'table';

假設在 testDB.db 中已經存在唯一的 COMPANY 表,則將產生以下結果:

tbl_name
----------
COMPANY

我們還可以列出關於 COMPANY 表的完整資訊,如下:

SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'COMPANY';

好啦,本次記錄就到這裡了。

如果感覺不錯的話,請多多點贊支援哦。。。