約束是一種限制,它通過對錶行列的的數據做出限制,來確保表數據的唯一性,完整性。
常見約束類型:
當一個字段為非空約束時,該字段要麼有值,有麼添加默認值。
主鍵約束要求主鍵列數據唯一,並且不允許為空,主鍵能夠唯一的標識表中的一條記錄,主鍵分為單字段主鍵和多字段聯合主鍵,一張表中只能存在一個主鍵。
唯一約束要求該列唯一,允許為空,唯一約束可以確保一列或者幾列不出現重複值
默認約束則是為列添加默認值
外鍵用來在兩個表之間連接,它可以是一列或者多列,一張表可以有多個外鍵。一個表的外鍵可以是空值,若不為空則每一個外鍵值必須對應另一張表中主鍵的值。保持數據的完整性,唯一性
基本語法介紹:
插入數據:
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.將查詢結果插入表中
注意:如果插入的數據類型是字符型,必須使用單引號或者雙引號括起來 如 '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 如:
4.查詢空值記錄:
5.查詢結果的分組:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
:
使用having過濾分組:
6.對查詢結果進行排序:
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
關於對同一張表的複製:
create table reader_bak as select * from reader
閱讀更多 十二說IT 的文章