關於mysql常識和基本語法概述

約束是一種限制,它通過對錶行列的的數據做出限制,來確保表數據的唯一性,完整性。


常見約束類型:

關於mysql常識和基本語法概述

  1. 當一個字段為非空約束時,該字段要麼有值,有麼添加默認值。

  2. 主鍵約束要求主鍵列數據唯一,並且不允許為空,主鍵能夠唯一的標識表中的一條記錄,主鍵分為單字段主鍵和多字段聯合主鍵,一張表中只能存在一個主鍵。

  3. 唯一約束要求該列唯一,允許為空,唯一約束可以確保一列或者幾列不出現重複值

  4. 默認約束則是為列添加默認值

  5. 外鍵用來在兩個表之間連接,它可以是一列或者多列,一張表可以有多個外鍵。一個表的外鍵可以是空值,若不為空則每一個外鍵值必須對應另一張表中主鍵的值。保持數據的完整性,唯一性

基本語法介紹:

插入數據:

1.插入一條數據:

INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );

2.插入多條數據

INSERT INTO table_name (field1, field2,...fieldN) VALUES (valueA1,valueA2,...valueAN),(valueB1,valueB2,...valueBN),(valueC1,valueC2,...valueCN)......;

3.將查詢結果插入表中

關於mysql常識和基本語法概述

注意:如果插入的數據類型是字符型,必須使用單引號或者雙引號括起來 如 'value1' 如果列名省略不寫的話,則值順序和建表順序一致,且各列數據都不能省,包括自增主鍵。當值類型省略不寫的時候,表結構發生改變,值順序也該改變。如果只為指定列插入數據,則其他列應該有默認值,否則會報錯。當然,如過該列設置可以為空的話,那該列未被插入數據時默認就是null。

數據的更新:

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]

注意:如果更新語句不跟條件while則默認修改整張表,一般是不可取的。

數據的刪除:

DELETE FROM table_name [WHERE Clause]

注意:不跟while條件默認刪除整張表,實際開發中一般不存在絕對的刪除,一般都是加一列,功能設置為是否顯示該行數據而已。

truncate table table_name 這條語句的功能也是刪除整張表,但速率快於delete,因為它是刪除當前表而後創建新的表,del是刪除該表的記錄。

數據的查詢:

1.語法結構:

SELECT column_name,column_name

FROM table_name

[WHERE Clause]

[LIMIT N][ OFFSET M]

2.實現分頁效果如下:

select * from _table limit (page_number-1)*lines_perpage, lines_perpage

select * from _table limit lines_perpage offset (page_number-1)*lines_perpage

page_number為當前頁數,lines_perpage為一頁顯示多少行。

3.消除查詢結果的重複值使用修飾符 distinct 如:

關於mysql常識和基本語法概述

4.查詢空值記錄:

關於mysql常識和基本語法概述

5.查詢結果的分組:

SELECT column_name, function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;

關於mysql常識和基本語法概述

關於mysql常識和基本語法概述

使用having過濾分組:

關於mysql常識和基本語法概述

6.對查詢結果進行排序:

SELECT field1, field2,...fieldN table_name1, table_name2...

ORDER BY field1, [field2...] [ASC [DESC]]

關於mysql常識和基本語法概述

關於對同一張表的複製:

create table reader_bak as select * from reader


分享到:


相關文章: