Mysql必知必會學習筆記(一)

    今天開始學習mysql,有一位老師推薦一本經典的入門書籍《MySQL必知必會》,讓我把這本書通讀幾遍,就能對數據庫有個很好的入門了。網上有文字版,感興趣的小夥伴能夠找來閱讀。python

書封面長這樣:mysql

 

數據庫概念的簡要介紹sql

數據庫(database)保存有組織的數據的容器(一般是一個文件或一組文件)數據庫

容易混淆的地方數據庫軟件與數據庫:編程

數據庫軟件應稱爲DBMS(數據庫管理系統)。數據庫是經過DBMS建立和操縱的容器。數據庫能夠是保存在硬設備上的文件,但也能夠不是。安全

     咱們常常經過各類數據庫鏈接工具好比Navicat for mysql(這個好評普遍)、mysql workbench(這個是官方提供的,用不習慣)等,在編程語言裏,好比python(我只會這一門),能夠安裝pymysql模塊,調用相關方法來訪問數據庫。也能夠經過交互界面來訪問好比下面這樣:scrapy

不過排版就不怎麼友好了,之前在一個項目上,客戶爲了保證生產環境數據安全,不讓安裝鏈接工具,咱們操做數據庫只能經過交互界面,頭都大了。數據庫設計

PS C:\Users\Administrator> mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| learn_scrapy        |
| love_learning       |
| mysql               |
| mysql_bi_zhi_bi_hui |
| performance_schema  |
| sakila              |
| sys                 |
| world               |
| zabbix              |
+---------------------+
10 rows in set (0.00 sec)

mysql>

 

表(table) 某種特定類型數據的結構化清單。
存儲在表中的數據是一種類型的數據或一個清單。決不該該將顧客的清單與訂單的清單存儲在同一個數據庫表中。這樣作將使之後的檢索和訪問很困難。應該建立兩個表,每一個清單一個表。

 

數據庫中的每一個表都有一個名字,用來標識本身。此名字是惟一的,這表示數據庫中沒有其餘表具備相同的名字。編程語言

模式(schema) 關於數據庫和表的佈局及特性的信息。
描述表的這組信息就是所謂的模式,模式能夠用來描述數據庫中特定的表以及整個數據庫(和其中表的關係)
列(column) 表中的一個字段。全部表都是由一個或多個列組成的。
理解列的最好辦法是將數據庫表想象爲一個網格。網格中每一列存儲着一條特定的信息。例如,在顧客表中,一個列存儲着顧客編號,另外一個列存儲着顧客名,而地址、城市、州以及郵政編碼全都存儲在各自的列中。
數據類型(datatype) 所允許的數據的類型。每一個表列都有相應的數據類型,它限制(或允許)該列中存儲的數據。數據類型限制可存儲在列中的數據種類(例如,防止在數值字段中錄入字符值)。數據類型還幫助正確地排序數據,並在優化磁盤使用方面起重要的做用。
行(row) 表中的一個記錄。主鍵(primary key)一一列(或一組列),其值可以惟一區分表中每一個行。

惟一標識表中每行的這個列(或這組列)稱爲主鍵。主鍵用來表示一個特定的行。沒有主鍵,更新或刪除表中特定行很困難,由於沒有安全的方法保證只涉及相關的行。
表中的任何列均可以做爲主鍵,只要它知足如下條件:
 任意兩行都不具備相同的主鍵值;
 每一個行都必須具備一個主鍵值(主鍵列不容許NULL值)。

應該老是定義主鍵 雖然並不老是都須要主鍵,但大多數數據庫設計人員都應保證他們建立的每一個表具備一個主鍵,以便於之後的數據操縱和管理。

主鍵一般定義在表的一列上,但這並非必需的,也能夠一塊兒使用多個列做爲主鍵。在使用多列做爲主鍵時,上述條件必須應用到構成主鍵的全部列,全部列值的組合必須是惟一的(但單個列的值能夠不惟一)。

主鍵的最好習慣 除MySQL強制實施的規則外,應該堅持的幾個廣泛承認的最好習慣爲:
 不更新主鍵列中的值;
 不重用主鍵列的值;
 不在主鍵列中使用可能會更改的值。(例如,若是使用一個名字做爲主鍵以標識某個供應商,當該供應商合併和更改其名字時,必須更改這個主鍵。)

SQL(發音爲字母S-Q-L或sequel)是結構化查詢語言(Structured QueryLanguage)的縮寫。SQL是一種專門用來與數據庫通訊的語言
SQL有以下的優勢。
 SQL不是某個特定數據庫供應商專有的語言。幾乎全部重要的DBMS都支持SQL,因此,學習此語言使你幾乎能與全部數據庫打交道。
 SQL簡單易學。它的語句全都是由描述性很強的英語單詞組成,並且這些單詞的數目很少。
 SQL儘管看上去很簡單,但它其實是一種強有力的語言,靈活使用其語言元素,能夠進行很是複雜和高級的數據庫操做。
相關文章
相關標籤/搜索