JavaRush /Java Blog /Random-TW /我們分析資料庫和 SQL 語言。(第 2 部分)-“Java 專案從頭到尾”
Roman Beekeeper
等級 35

我們分析資料庫和 SQL 語言。(第 2 部分)-“Java 專案從頭到尾”

在 Random-TW 群組發布
有關建立 Java 專案的系列文章中的一篇文章(其他資料的連結位於最後)。其目標是分析關鍵技術,結果是編寫一個電報機器人。 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 1 部分祝親愛的讀者身體健康。今天我們會說一點,寫更多,因為我們的手比我們的眼睛記得更好。您可能想知道:為什麼我們要使用 MySQL?例如,有相同的 PostgreSQL 和其他解決方案。這裡一切都很簡單。首先,它是免費的。其次,它有一個方便的UI介面(我們將在單獨的文章中討論)。第三,她對我來說很熟悉並且令人愉快。除了以上這些之外,MySQL也很常見。

檢查作業

上次我給了一個任務——在我的機器上安裝MySQL並登入它。透過控制台或其他方式。一切都完成了嗎?「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 2 部分那些做到這一點的人幹得好!無論您在 JavaRush 中的層級為何,重要的是能夠根據手冊安裝和配置工作所需的工具。我向你保證,這樣的人會有很多。那些嘗試過但沒有成功的人也不害怕。這種情況並不總是第一次發生:有時您需要休息一下,然後以新的力量再次嘗試。誰自己安裝了 MySQL - 在註釋中寫上“+”,這樣我就知道有人在這樣做。我自己也會這樣做。由於我不再擁有 Windows 筆記型電腦,因此我將在 MacBook 上展示它。我認為安裝過程不會有太大不同。如果您想使用英文手冊自行安裝,請點擊此處

在 MacOS 上安裝 MySQL

首先,進入以下鏈接,選擇作業系統,可以是Windows、Ubuntu或MacOS,如下圖所示:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 3 部分下載並啟動。然而,一切並沒有立即對我有利。事實證明,蘋果不允許安裝最新版本:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 4 部分當然,你可以停用它,但 MacBook 正在工作,我不會亂搞它的設定。因此,透過反覆試驗,我找到了一個可以安裝的版本——這就是5.7.21。若要尋找其他版本,請前往「存檔」標籤並選擇所需的版本:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 5 部分接下來,執行下載的檔案。點擊下一步,下一步,下一步,但最後要小心!將有一個使用者名稱和密碼用於登入資料庫。對我來說,它看起來像這樣:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 6 部分這裡表示將有一個名為root和密碼Vac/zto=.24q的用戶。這樣就完成安裝了。

登入MySQL命令列

要登入,您需要確保MySQL伺服器已開啟。為此,請轉到“系統偏好設定”,在那裡找到 MySQL 圖示:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 7 部分我們進入它並看到必須先打開伺服器。為此,只需單擊“啟動 MySQL 伺服器”即可。是的,您也可以選取該框,以便每次電腦啟動時伺服器都會在背景啟動。「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 8 部分需要注意的是,我將在終端中以$符號開始所有請求,以明確說明。接下來,您需要透過命令列直接連接MySQL伺服器。為此,請打開終端並寫入: $ mysql 並且有兩個選項:
  1. 如果回應是「ERROR 1045 (28000): Access returned for user 'roman_beskrovnyi'@'localhost' (using passwd: NO)」,那麼這表示伺服器已安裝並正在呼叫。您只需傳遞正確的命令即可到它。
  2. 如果答案是command not find: mysql,沒關係 - 只是沒有到伺服器的連結。為此,您需要使用 mysql 變數建立別名,因此我們編寫以下行:

    $別名mysql=/usr/local/mysql/bin/mysql

    這僅對該終端會話有幫助。但我們不再需要了——我們絕對不會一直透過終端機工作。

  3. MySQL沒有安裝,不要欺騙你的電腦。
接下來,我們使用安裝期間提供的名稱和密碼並寫入: $ mysql --user=root -p「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 9 部分這裡我們寫入密碼,我們會很高興以這種形式:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 10 部分最後一行表示我們已登入 MySQL終端伺服器。但這個root密碼原來是一次性密碼,需要改成另一個密碼。當然,出於安全原因。如果我們不更改此設定並嘗試在伺服器上建立新資料庫,我們將收到以下回應:ERROR 1820 (HY000):在執行此語句之前,您必須使用 ALTER USER 語句重設密碼「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 11 部分可以說,他們是被迫的。好吧,對我們來說很難嗎?讓我們將密碼設定得更簡單(這僅適用於本地工作;對於實際工作,當然密碼必須複雜)。假設root∫,就像使用者名稱一樣。若要變更密碼,您需要輸入以下行: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; 答案是這樣的:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 12 部分為了確保一切正常,讓我們試著使用以下語法建立一個新資料庫: $ CREATE DATABASE test_db; 若要確保伺服器上已建立這樣的資料庫,請撰寫指令: $ SHOW DATABASES; 結果我們得到以下結果:「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 13 部分就這樣了:) 不可能說它既簡單又快速。因此,無論是誰親自做的——都特別尊重。對於那些還沒有安裝過的人,不用擔心,這裡有所有類型安裝的手冊: 那裡對一切的描述都很清楚。唯一的問題是一切都是英文的。現在我們用 SQL 寫第一行。

用 SQL 寫我們的第一行

正如您在上面可能已經注意到的,我們知道兩個命令:
  1. CREATE DATABASE - 在伺服器上建立資料庫;
  2. 顯示資料庫- 顯示伺服器上所有已建立和可用的資料庫。
我注意到 SQL 並不關心我們如何編寫它們的命令 - 是否全部大寫字母。然而,用大寫字母書寫命令被認為是良好的禮貌。接下來,要刪除資料庫,您需要編寫命令DROP DATABASE database_name ; 其中database_name是我們要刪除的資料庫的名稱。我們已經建立了一個名為test_db的測試資料庫,所以讓我們刪除它。為此,我們寫: $ DROP DATABASE test; 值得注意的是,Query OK, 0 rows受影響(0.02秒)回應非常重要,因為它確認請求成功。此外,它還告訴您此查詢更改了表中的行數以及更改的時間。「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 15 部分一般來說,“DROP”一詞負責刪除某些內容。在這種情況下,我們刪除了資料庫。但這也可以用於其他目的(例如,刪除表)。現在,相信我,檢查結果,讓我們看看還剩下多少個資料庫: $ SHOW DATABASES; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 16 部分我們可以看到,沒有名為 test_db 的資料庫。冠心病:D

建立自己的資料庫和表

建立城市資料庫:$ CREATE DATABASE城市; 要使用特定資料庫,您需要登入該資料庫。為此,請使用USE database_name命令,之後所有用於處理表的命令都會在此資料庫中執行。$使用城市; 從回應中可以看出 -資料庫已更改,到此資料庫的轉換成功。「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 17 部分下一步是建立表。哪個?首先,讓我們建立一個包含國家/地區的表格。這是為什麼?因為城市需要其國家的外鍵。而這些國家一般開始入庫後即可取得(以下簡稱資料庫)。正如我們在上一篇文章中所記得的,在描述國家/地區的表中,我們有兩個欄位 - ID 和名稱,其中 ID 是唯一標識符,名稱是國家/地區的名稱。因此,創建這樣一個資料庫就像剝梨子一樣容易。我們寫:$ CREATE TABLE Country(id INT, name VARCHAR(30)); 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 18 部分正如你所看到的,一切都很順利。類比SHOW DATABASES,我們可以查看表格清單: $ SHOW TABLES; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 19 部分這是我們的桌子。現在讓我們來學習如何刪除表。為此,我們編寫: $ DROP TABLE Country; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 20 部分要注意的是,表或資料庫一旦刪除,就無法恢復!

使用表格

讓我們恢復我們創建的表。為此,您只需重複已經做過的事情。要查看表格結構,需要使用以下命令 - DESC table_name : $ DESC Country; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 21 部分可以看到,這裡記錄了該表的所有資訊。若要新增內容,您需要使用INSERT INTO table_name VALUES()命令。讓我們為三個國家/地區添加三個記錄: $ INSERT INTO Country VALUES (1, '烏克蘭'); $ INSERT INTO 國家/地區值(2,「俄羅斯」); $ INSERT INTO Country VALUES (3, '白俄羅斯'); 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 22 部分為了查看資料庫中儲存的內容,我們將使用一個簡單的請求來獲取資料。為此,我們要取得國家/地區表中所有欄位的資料。仔細記住前面這句話,因為sql查詢會是這樣的: $ SELECT * FROM Country; 其中 * 表示您需要取得所有欄位。「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 23 部分這就是我們的美麗。如果我們只想取得特定字段,那不是問題:我們不寫星號,而是寫應該用逗號分隔的字段名稱。自己嘗試一下;)我們已經創建了一個表,但不知何故我們沒有足夠的資訊。人口規模肯定不會有什麼壞處,對吧?以及如何做呢?
  1. 在表架構中新增一個欄位 - 人口。
  2. 更新現有條目。
首先,我們將使用ALTER TABLE table_name ADD COLUMN指令。總的來說,ALTER TABLE 是一組用於 DDL 操作的命令(還記得這是什麼嗎?在上一篇文章中)。順便說一句,SELECT 指的是 DML 操作。讓我們來寫以下內容: $ ALTER TABLE Country ADD COLUMN Population INT; $ DESC 國家;「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 24 部分從圖中可以看出,我們已成功在表中新增了一個新字段,並使用第二個命令檢查該字段是否在架構中。第二步是更新表中的條目並指派值。讓我們從維基百科中取得這個數字。並不是說我信任他們,但儘管如此,這是最快、最簡單的方法。為此,請使用另一個 DML 命令。但首先,讓我們先說一下我們想要做什麼:我們想要更新國家/地區表,使 id = 1 的記錄中的 Population 欄位等於 41806221。這個構造如下:UPDATE table_name SET table_row1 = value WHERE table_row2 = 值2 ; 在此基礎上,我們寫: $ UPDATE Country SET Population = 41806221 WHERE id = 1; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 25 部分這裡我們第一次使用了WHERE關鍵字。需要添加值進行過濾。例如這次我們說只需要對id等於1的欄位(fields)進行更新(直到我們告訴sql這是主鍵-可能有好幾個)。我們也可以指定一個條件,例如 WHERE id > 2。如果我們根本沒有指定過濾,則該值將寫入所有表記錄。對於俄羅斯、白俄羅斯等國家,請自行更新;)現在讓我們嘗試從表中獲取名稱和人口字段的數據,前提是 id 大於 1。 $ SELECT name,population FROM Country WHERE id >1; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 26 部分因此,我們只收到了我們自己想要的那些欄位。使用 INSERT INTO 我們可以指定要新增哪些欄位以及要保留哪些欄位為空。為此,我們編寫: $ INSERT INTO Country (name, Population) VALUES('Georgia', 1234566); 要檢查發生了什麼,讓我們查看所有欄位的清單: $ SELECT * FROM Country; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 27 部分沒有id,條目是壞的,人口當然是從頭部取出的,所以你需要刪除它。使用DELETE FROM table_name指令: $ DELETE FROM Country WHERE name = 'Georgia'; 「Java 專案從頭到尾」:我們分析資料庫和 SQL 語言。 第 2 - 28 部分這樣我們就學會如何從表中刪除欄位。

家庭作業

家庭作業如下:
  1. 您需要將 ID 欄位中的主鍵(PRIMARY KEY)新增至國家/地區表架構中。
  2. 將另一個國家/地區添加到國家/地區表中 - 摩爾多瓦。
  3. 依照上篇文章的方案,建立一個表格city,其中將包含所有描述的欄位。欄位名稱如下:id、name、country_id、population。
  4. 在城市表中新增主鍵。
  5. 在城市表中添加外鍵。
這項任務很有趣,對於那些了解情況的人來說,它會很快且不複雜。對於那些還沒有這樣做的人,它將作為本文材料的絕佳強化。

讓我們總結一下

我們在這篇文章中做了很多事情。首先,我們安裝並啟動MySQL資料庫伺服器。其次,我們學習了關鍵字和查詢的完整列表,借助它們我們現在可以建立/刪除資料庫和表格。我們學習如何在表格中新增資料、更新和刪除資料。以下是我們使用的所有命令及其描述:
  • 建立資料庫資料庫名稱;- 建立一個新資料庫
  • 顯示資料庫;— 查看資料庫列表
  • 刪除資料庫資料庫名稱;- 刪除資料庫
  • 使用資料庫名稱;- 在資料庫中工作
  • CREATE TABLE 表名(id INT, ....); - 建立一個表
  • 顯示表格;— 查看表格
  • DESC TABLE 表名;— 參閱表格
  • 刪除表表名;- 刪除表
  • INSERT INTO 表名 VALUES (); - 在表格中新增一個字段
  • SELECT * FROM 表名 WHERE 表行 = 值;— WHERE後的條件下取得表格中的字段
  • SELECT * FROM 表名;- 取得表格中的所有字段
  • ALTER TABLE 表名 新增列 列名 COLUMN_TYPE;— 將新欄位新增至表格模式中
  • UPDATE talbe_name SET talbe_row1 = value1 WHERE table_row2 = value2; — 更新表中的記錄:根據另一個欄位的條件設定一個欄位的值
  • DELETE FROM table_name WHERE table_row1 = value1; — 在特定條件下從表格中刪除一個或多個欄位。
我認為我們和你一起做得很好。我邀請所有喜歡我的工作的人訂閱我的GitHub 帳戶,我在其中發布我職業生涯中發生的有趣專案和進度。我邀請所有對開源有興趣的人參與我的專案(儲存庫)。感謝大家的關注。請繼續關注即將發布的下一篇有關資料庫的文章。

此系列所有資料的清單位於本文開頭。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION