【MySQL學習】MySQL拾零

來源:互聯網
上載者:User

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

僅僅是看一些書是零零散散記下的,給自己備忘而已。建議去看專業網站的筆記。

1.主鍵的值必須是唯一的,並且不可為空,這可以提高MySQL從多個表中取得資料或者取得指定索引值對應的行的速度。MySQL通過一個特殊的稱為Index索引的資料結構做到這一點,Index是找到一條記錄的捷徑,就像圖書館的卡片目錄。

2.查看錶的列定義使用describe命令.

3.整數列大小預設是11.

4.Insert時引號的使用:數字數值、函數和NULL不要用,字串數值、時間、日期則要用引號括起來。

5.使用alter修改表定義時,即使沒有改變列的資料類型,列的定義仍然必不可少。

6.在使用select語句時,你應該養成TABLE.COLUMN方式來引用列,這樣可以避免混淆。

7.結果排序用select XX from YY order by zz;

8.使用自然串連natural join可以避免輸入很長的命令:MySQL可以把兩個表中的同名域串連起來。可以使用左串連方式將表串連起來。

9.join on也是串連,但是需要指定要進行串連的列。SELECT * FROM books JOIN authors ON (books.title_id = authors.title_id);

10.使用別名可以將長的表名換成較短的,還可以讓你在同一個查詢中兩次引用同一個表而區分你究竟是引用的第一個還是第二個。

SELECT * FROM books AS b,authors AS a WHERE b.title_id = a.title_id;

11.SQL語句特點:做什麼+ 大概從哪+具體從哪,例如select from * where title_id=1;

12.尋找:SELECT * FROM authors WHERE author LIKE "%b%"; 百分比符號是萬用字元,表示一個或多個。而底線_則表示一個字元。

12.通過包含另外一張表的主鍵而形成的表之間的串連被稱為外鍵關係。

13.資料庫的關係有三種:一對一、一對多、多對多。以一個線上書店為例,使用者和其郵寄地址(假設只能設定一個地址)時一對一的關係,而圖書的類型與具體書籍則是一對多的關係,使用者對書則是多對多的關係。多對多的關係被轉換為兩個一對多關聯性的變換表才能在資料庫中體現出來。

14.正常化:

理清資料之間的關係並找出組織資料的最有效方式的過程被稱作正常化。要正常化一個資料庫,需要從最基礎的規則開始,分為三個階段——第一範式、第二範式、第三範式,後者必須在前者完成的基礎上才可得以進行。

第一範式:解決資料在同一行內的冗餘,要求所有的表不能重複的包含同樣的資料列,所有的列中只能包含一個值,必須存在一個主鍵可以唯一指定一行資料,主鍵可以是一列或者多列,這取決於需要多少列才能唯一指定一行資料。

第二範式:解決資料在列中的冗餘,要求不包含重複數值的列,這樣的列要在其單獨的表中,使用原有表中的主鍵來引用。

第三範式:滿足前兩個範式後第三範式是可選滿足的條件,要求你找出表中不完全依賴於主鍵而依賴於其它域的資料,將這些資訊單獨放在一個表中。但這樣的結果會產生太多的表,所以正常化也是需要把握度。

15.備份資料庫:mysqldump -u root -p store > my_backup_of_store.sql

備份其中一個表:mysqldump -u root -p store authors > authors.sql

完全備份一個資料庫:mysqldump -u root -p --all-databases > my_backup.sql

建立一個空的副本:mysqldump -u root -p --no-data store > structure.sql

只備份資料庫資料而不備份資料庫結構:mysqldump -u root -p --no-create-info store > data.sql

註:定期備份是best practise

16.恢複:

mysql -u root -p < my_backup.sql

要是有選擇性的備份,則需要使用-D,mysql -u root -p -D store < my_backup.sql

17.匯入:

mysqlimport -u root -p --fields-terminated-by=',' store books.txt

18.索引:

Index的資料是經過排序的,資料群組織方式對查詢進行了最佳化。我們要決定對哪些資料域進行索引,每個索引在儲存上都是一個單獨的資料檔案。索引必須先定義後使用。使用索引的好處總結起來兩點:匹配索引列的查詢可以非常快,檢查索引值的唯一性非常快,壞處在於對被索引的表的插入和刪除操作會比較慢,而且需要額外的儲存空間。

建立索引:CREATE UNIQUE INDEX authind ON authors (author) ;可以為多個列建立索引。適合用來索引的列是那些有可能被用在where子句中的列,特別是如果你知道某些特定列的組合會被用到時,就可以為這些列建立一個多列索引。

19.group by指定使用哪一列或者哪幾列進行分組。

20.concat可以將多個域串連起來在結果中表示。SELECT CONCAT(title,' has ',pages,' pages.') FROM books;

+----------------------------------------+
| concat(title,' has ',pages,' pages.')  |
+----------------------------------------+
| Linux in a Nutshell has 476 pages.     |
| Classic Shell Scripting has 256 pages. |
+----------------------------------------+

21.使用預定義分隔字元串連:SELECT CONCAT_WS(',',author_id,title_id,author) FROM authors;

+------------------------------------------+
| CONCAT_WS(',',author_id,title_id,author) |
+------------------------------------------+
| 1,1,Ellen Siever                         |
| 2,1,Aaron Weber                          |
| 3,2,Arnold Robbins                       |
| 4,2,Nelson Beebe                         |
+------------------------------------------+

22.字串長度:

SELECT CONCAT(title,' has ',LENGTH(title), ' characters.') FROM books;

+-----------------------------------------------------+
| CONCAT(title,' has ',LENGTH(title), ' characters.') |
+-----------------------------------------------------+
| Linux in a Nutshell has 19 characters.              |
| Classic Shell Scripting has 23 characters.          |
+-----------------------------------------------------+

23.字串填充

SELECT LPAD(title,30,'.') FROM books;

+--------------------------------+
| LPAD(title,30,'.')             |
+--------------------------------+
| ...........Linux in a Nutshell |
| .......Classic Shell Scripting |
+--------------------------------+

24.事務

強制資料庫把幾個更改操作看做一個工作單元,要麼全部成功,要麼全部失敗。若使用儲存引擎支援事務,比如InnoDB或者BDB,可以使用“start transaction”命令開始一個事務,事物結束時通過commit提交更改或rollback取消更改來完成。

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.