2023年11月20日 星期一

SQLite 常用語法

SQLite 常用語法

源自於 https://www.runoob.com/sqlite/sqlite-tutorial.html

源自於 http://tw.gitbook.net/sqlite/sqlite_overview.html


資料庫的四大功能

新增Insert、更新Update、刪除Delete、查詢SELECT

SQL

結構化查詢語言,結構化簡單的意思就是要整理過的資料,儲存的資料比較嚴謹,

例如固定的欄位、固定的格式、固定的順序、固定的大小。

常見的 : MS SQL 、MySQL 、Oracle等等。

SQL.png

特性

1. 關聯式資料庫,兩個以上的資料表可以產生關聯性。

2. 建立的資料表,欄位就不能變動。

3. 可以複雜的查詢。

4. 儲存重要資料,例如交易資料。 

5. 擴充能力弱、成本高。




SQLite CREATE TABLE 建立表

SQLite 的CREATE TABLE語句用於在任何給定的資料庫建立一個新表。建立基本表,涉及命名表、定義列及每一列的資料類型。

文法

CREATE TABLE 語句的基本語法如下:

CREATE TABLE database_name . table_name ( 
   column1 datatype PRIMARY KEY ( one or more columns ), 
   column2 datatype , 
   column3 datatype , ..... 
   columnN datatype , );
   

CREATE TABLE 是告訴資料庫系統建立一個新表的關鍵字。CREATE TABLE 語句後面跟著表格的唯一的名稱或識別。您也可以選擇指定帶有table_namedatabase_name

實例

下面是一個實例,它建立了一個COMPANY 表,ID 作為主鍵,NOT NULL 的約束表示在表中建立記錄時這些欄位不能為NULL:

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

); 


SQLite  DROP TABLE刪除表

SQLite 的DROP TABLE語句用來刪除資料表定義及其所有相關資料、索引、觸發器、約束和該資料表的權限規格。

使用此命令時要特別注意,因為一旦表被刪除,表中所有資訊也將永遠遺失。

文法

DROP TABLE 語句的基本語法如下。您可以選擇指定帶有表名的資料庫名稱,如下所示:

DROP TABLE table_name ;

實例

sqlite > DROP TABLE COMPANY ; 
sqlite >


SQLite INSERT 插入語句

SQLite的INSERT INTO語句用來在資料庫的某個表格中新增新的資料行。

文法

INSERT INTO 語句有四種基本語法,如下所示:

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

,column1,column2,...columnN 是要在這裡插入資料的表中的列的名稱。

如果您要為表中的所有列新增值,您也可以不需要在 SQLite 查詢中指定列名。但要確保值的順序與列在表中的順序一致。SQLite 的 INSERT INTO 語法如下:

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
);

現在,下面的語句將在 COMPANY 表中建立六個記錄:

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

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'David', 27, 'Texas', 85000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 );

您也可以使用第二個語法在 COMPANY 表中建立一個記錄,如下所示:

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


SQLite Select 語句

SQLite 的SELECT語句用於從SQLite 資料庫表中取得數據,以結果表的形式傳回資料。這些結果表也被稱為結果集。

語法

SQLite 的SELECT 語句的基本語法如下:

SELECT column1, column2, columnN FROM table_name;

在這裡,column1, column2...是表的字段,他們的值即是您要獲取的。如果您想取得所有可用的字段,那麼可以使用下面的語法:

SELECT * FROM table_name;

實例

假設COMPANY 表有以下記錄:

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

下面是一個實例,使用SELECT 語句取得並顯示所有這些記錄。在這裡,前兩個命令被用來設定正確格式化的輸出。

sqlite> SELECT * FROM COMPANY;

最後,將得到以下的結果:

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 Update 語句

SQLite 的UPDATE查詢用於修改表格中已有的記錄。可以使用帶有WHERE 子句的UPDATE 查詢來更新選定行,否則所有的行都會被更新。

法語

帶有WHERE 子句的UPDATE 查詢的基本語法如下:

UPDATE table_name
SET column1 = value1 , column2 = value2 ...., columnN = valueN
WHERE [ condition ];

您可以使用AND 或OR 運算子來結合N 個數量的條件。

實例

假設COMPANY 表有以下記錄:

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

下面是一個實例,它會更新ID 為6 的客戶位址:

sqlite> UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;

現在,COMPANY 表有以下記錄:

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          Texas       45000.0
7           James       24          Houston     10000.0

SQLite Delete 語句

SQLite 的DELETE查詢用於刪除表格中已有的記錄。可以使用帶有WHERE 子句的DELETE 查詢來刪除選定行,否則所有的記錄都會被刪除。

文法

帶有WHERE 子句的DELETE 查詢的基本語法如下:

DELETE FROM table_name
WHERE [ condition ];

您可以使用AND 或OR 運算子來結合N 個數量的條件。

實例

假設COMPANY 表有以下記錄:

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


下面是一個實例,它會刪除ID 為7 的客戶:

sqlite > DELETE FROM COMPANY WHERE ID = 7 ; 

現在,COMPANY 表有以下記錄:

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

如果您想要從COMPANY 表中刪除所有記錄,則不需要使用WHERE 子句,DELETE 查詢如下:

sqlite> DELETE FROM COMPANY;

現在,COMPANY 表中沒有任何的記錄,因為所有的記錄已經透過DELETE 語句刪除。


沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...