這是個啥啊(初學MySQL時一些疑問解答,不斷更新....)

轉到===>數據庫基礎操作大全可查看數據庫操作基礎。

歡迎界面

在登錄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)是什麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章