轉到===>數據庫基礎操作大全可查看數據庫操作基礎。
歡迎界面
在登錄mysql後,都會彈出一段歡迎和說明
[root@linux ~]# mysql -uroot -ptest.com
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 11
Server version: 8.0.13 Source distribution
Copyright (c) 2000, 2018, 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:[警告]在命令行界面上使用密碼可能是不安全的。
這個是因爲在shell環境中輸入mysql管理員密碼不安全,所以彈出一條提示
第二行段:歡迎使用MySQL監視器。命令以;結尾;或\ g。
這個是命令結束符,以;或\G結尾,如果以\G結尾,是按行輸出,如同以下格式
mysql> show databases\G
*************************** 1. row ***************************
數據1
*************************** 2. row ***************************
...
第三段:客戶端連接ID,記錄了MySQL服務目前爲止的連接次數,每個新連接都會自動加1,我的就是11次連接。
第四段:MySQL服務器版本說明,像我的就是MySQL8.0.13的源代碼版本。
第五段:版權聲明,多達數命令行中都有版權聲明,例如:windows中的DOS。MySQL中說的就是版權所有© 2000, 2018, Oracle和/或其附屬公司。保留所有權利。
第六段:關於所屬公司的說明,甲骨文是甲骨文公司和/或其註冊商標子公司。其他名稱可能是其各自的商標的主人。
第七段:命令幫助,輸入“help;”或“\h”以尋求幫助。鍵入“\c”以清除當前輸入語句。
數據庫命令行
mysql>
這個很熟悉吧,命令行嘛,在其後面輸入SQL語句,然後加上結束符號;或\G,然後回車執行。
語句成功提示
當你輸入完成一條正確的SQL語句後,都會彈出一條執行成功的提示
Query OK, 1 row affected (0.11 sec)
疑問來了,爲什麼創建或刪除時,也會彈出這個查詢OK的字樣,而不是create OK,drop OK。其實這是MySQL的一個特點,所有的DDL和DML(不包括SELECT)操作執行成功後都顯示“Query OK”,這裏理解爲執行成功就可以了。
“1 row affected”:表示操作隻影響了數據庫中的一行記錄。
“(0.11 sec)”:記錄了操作執行的時間
如果語句執行錯誤,則會輸出ERROR字樣,語句不會執行。
讀取表信息提示
不清楚這是什麼?你仔細看看,是不是這個
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
提示讀取庫和表內容,可以使用-A將其關閉,使其更快的啓動。
直接-A就可以了嗎,不不不,你要退出數據庫,在登錄的使用加上此選項。
mysql -u root -ptest.com -A
...
mysql> use test;
Database changed
這樣提示信息就莫得了。
查看錶詳細內容
雖說使用desc可以查看錶結構,但更詳細還得使用show create table 表名啊,不過查看起來不太放便的樣子,我們可以讓其按行的方式顯示。
mysql> show create table staff;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
| staff | CREATE TABLE `staff` (
`id` int(20) DEFAULT NULL,
`name` char(40) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
直接在語句結尾加上\G即可。
mysql> show create table staff\G
*************************** 1. row ***************************
Table: staff
Create Table: CREATE TABLE `staff` (
`id` int(20) DEFAULT NULL,
`name` char(40) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
解讀:
Table:表名
Create Table:創建表名命令
ENGINE:存儲引擎
CHARSET:字符集
報錯提示
平時輸入錯誤幾條語句還是很正常的,這個時候要能知道,到底是哪裏的錯誤。
mysql> ls;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ls' at line 1
錯誤1064(42000):你有一個錯誤的SQL語法;檢查MySQL服務器版本對應的手冊中第1行“ls”附近使用的語法是否正確。
mysql> create database test;
ERROR 1007 (HY000): Can't create database 'test'; database exists
錯誤1007 (HY000):無法創建數據庫“測試”;數據庫存在
mysql> create table staff;
ERROR 1113 (42000): A table must have at least 1 column
錯誤1113(42000):一個表必須至少有一個列
mysql> insert staff (6,六,66);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6,六,66)' at line 1
錯誤1064(42000):你有一個錯誤的SQL語法;檢查手冊對應於你的MySQL服務器版本的語法使用附近的6六,66)在行1
等等,這些都是常見錯誤,你可以看到,這些錯誤都有ERROR字樣,並且後面帶有一串數字,這就是MySQL中錯誤的序號。
爲什麼要數據分類?
1.有效的利用存儲空間,可以根據實際情況使用數據類型,以最少的存儲存放最多的數據。
2.通過數據分類將相同類型聯繫在一起,防止運算時出錯。常見錯誤:字符和數字相加。
3.使數據庫管理系統通過數據類型來操作數據。
詳細說明轉到==>MySQL中的數據類型和字段屬性都是啥啊 (數據類型與屬性說明)
數據類型後面的()是個啥?
對於數值後面的(),在不同的數據類型中,有着不同的意義。起初我以爲只是一個範圍,後來發現,事情不是想象中的那麼簡單。在有些數據類型中,的確是如此,而對於有些數據類型,那就不是這麼回事了。
詳細說明轉到==>MySQL創建表時,數據類型後面的()是個啥?
存儲引擎是什麼玩意?
在數據庫中,存儲引擎是數據庫中的底層套件,在創建表中使用,指定通過何種引擎存儲數據,MySQL數據庫默認使用的存儲引擎爲InnoDB。
不同的存儲引擎有不同的存儲機制,並且支持的功能也不相同。
詳細說明轉到==>MySQL存儲引擎是什麼?有什麼用?
字符集呢?
字符(Character)是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。
計算機要準確的處理各種字符集文字,就需要進行字符編碼,以便計算機能夠識別和存儲各種文字。
詳細說明轉到==>MySQL中的字符集是啥?如何更改?
一句話說明外鍵約束
MySQL的外鍵約束用來在兩個表數據之間建立鏈接,其中一張表的一個字段被另一張表中對應的字段約束,也就是說,設置外鍵約束至少要有兩種表,被約束的表叫做從表(子表),另一張叫做主表(父表),屬於主從關係。
外鍵約束主要作用就是能夠讓表與表之間的數據建立關聯,使數據更加完整,關聯性更強。
詳細說明轉到==>MySQL外鍵約束(FOREIGN KEY)是什麼?
啥是索引
在關係數據庫中,索引是對數據庫表中指定字段的一種存儲結構。索引也是一張表,表中存儲着索引的字段值和該值所在的物理位置。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。
詳細說明轉到==>MySQL索引(INDEX)是什麼?
事務事務
事務(Transaction)一般是指要做的或所做的事情。數據庫事務(Database Transaction)是由SQL語句組成的邏輯處理單元。一個事務是一條SQL語句或一組SQL語句組成的。事務中的SQL語句就是一個整體,事務中語句全部正確,執行事務,若有一條出錯,則事務中的語句全部不執行。
詳細說明轉到==>MySQL事務(TRANSACTION)是什麼?