mysql crashcourse notes
說起來有些慚愧,其實一年前就在做的事情——不過當時用的是mariadb,其實內容都是差不多的——到現在也還這樣……1
開始和一些準備
這次使用docker了,所以可以先參看docker一個mysql。
教材附有兩個sql文件,create.sql和polulate.sql,下載後可以docker cp 考入容器內。
然後docker exec一個bash,進入mysql後source 執行文件。
使用docker確實簡化很多環境設置各種。
然後就可以進入了。
還是簡要再寫一點點?
說,我們的docker的數據庫名字叫mysql-test。
然後就是
sudo docker start mysql-test
sudo docker exec -it mysql-test bash
正常應該就進入到docker內部的shell下了,然後就可以mysql -u root -p
下面就假設已經進入到了mysql咯。大概就是這個樣子:
mysql> \h
對應附錄裏面,有樣例表的SQL腳本。
大概就是先創建一個數據庫:create database crashcourse
然後切換到數據庫use crashcourse
對應的然後考入SQL腳本2。
然後執行腳本,創建出樣例的表並填入數據。source create.sql,以及source populate.sql。然後算是準備完成。
瞭解sql
數據庫(database)保存有組織的數據的容器。
表(table)某種特定類型數據的結構化清單。
模式(schema)關於數據庫和表的佈局及特性的信息(有時候schema用作數據庫同義詞)
列(column)表中的一個字段,所有表都是由一個或多個列組成的。
數據類型(datatype)所容許的數據的類型。
行(row)表中的一個記錄。
主鍵(primary key)一列或者一組列,能夠唯一區分表中每個行。(雖然並不是總是都需要主鍵,但大多數數據庫設計人員都應該保證他們創建的每個表具有一個主鍵,以便於以後的數據操作和管理)
- 主鍵的條件:任意兩行都不具有相同的主鍵值(唯一性)
- 每個行都必須有一個主鍵值(主鍵值不允許NULL值)
SQL
MySQL簡介
客戶端-服務器軟件
幾個實用程序:
- mysql命令行程序
- MySQL Administrator(圖形化工具)
- MySQL Query Browser
使用MySQL
show databases;
show tables;
show columns from customers;3
mysql支持describe作爲show clolumns from的一種快捷方式,describe customers和show columns from customers相同。
show的語句還有:
- show status,顯示廣泛的服務器狀態信息
- show grants,顯示用戶權限
- show create database和show create table,顯示創建特定數據庫或表的MySQL語句
- show errors和show warnings,顯示錯誤或警告
檢索數據
select語句
select prod_name from products;