您好,登錄后才能下訂單哦!
案例1:INSERT插入表記錄
案例2:UPDATE和DELETE
案例3:SELECT查詢表記錄
案例4:WHERE簡單匹配
案例5:WHERE高級匹配
案例6:整理查詢結果
案例7:備份數據庫資料
案例8:恢復數據庫
1 案例1:INSERT插入表記錄
1.1 問題
本例要求以前一章的studb庫stuinfo表為基礎,學會表格記錄的多種不同插入方法,完成下列任務:
1)進入studb庫,向 stuinfo表批量插入如圖-1所示數據
2)確認表格stuinfo的數據內容
1.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:進入studb庫,向stuinfo表批量插入以下數據
記錄內容如下:
NTD2020110007 周伯通 男 17012341234 昆崳山全真教總部
NTD2020110008 王重陽 男 17012340001 昆崳山全真教總部
NTD2020110009 段王爺 男 17566666666 云南大理桃源山
INSERT插入記錄操作:
MariaDB [studb]> INSERT INTO stuinfo VALUES
-> ('NTD2020110007', '周伯通', '男', '17012341234', '昆崳山全真教總部'),
-> ('NTD2020110008', '王重陽', '男', '17012340001', '昆崳山全真教總部'),
-> ('NTD2020110009', '段王爺', '男', '17566666666', '云南大理桃源山');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
MariaDB [studb]>
步驟二:確認表格 stuinfo 的數據內容
查看表格內容,確認新增加的3條記錄。
MariaDB [studb]> SELECT * FROM stuinfo;
+---------------+-----------+--------+--------------+--------------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+--------------------------+
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
| NTD2020110004 | 洪七公 | 男 | 13888888888 | 太湖北丐幫總舵 |
| NTD2020110005 | 歐陽鋒 | 男 | 18777777777 | 西域白駝山莊 |
| NTD2020110006 | 黃藥師 | 男 | 18999999999 | 東海桃花島 |
| NTD2020110007 | 周伯通 | 男 | 17012341234 | 昆崳山全真教總部 |
| NTD2020110008 | 王重陽 | 男 | 17012340001 | 昆崳山全真教總部 |
| NTD2020110009 | 段王爺 | 男 | 17566666666 | 云南大理桃源山 |
+---------------+-----------+--------+--------------+--------------------------+
9 rows in set (0.00 sec)
MariaDB [studb]>
2 案例2:UPDATE和DELETE
2.1 問題
本例要求學會UPDATE和DELETE的語句的操作方法,完成下列任務:
1)更新 stuinfo 表中的數據記錄
將 姓名='黃藥師' 的人的聯系電話修改為 '13566778899'
將 姓名='洪七公' 的人的姓名修改為 '洪七'
2)刪除 stuinfo 表中 姓名='洪七公' 的數據記錄
3)確認表格 stuinfo 的數據內容
2.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:更新stuinfo表中的數據記錄
1)將 姓名='黃藥師' 的人的聯系電話修改為 '13566778899'
MariaDB [studb]> UPDATE stuinfo SET 聯系電話='13566778899' WHERE 姓名='黃藥師';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [studb]>
2)將 姓名='洪七公' 的人的姓名修改為 '洪七'
MariaDB [studb]> UPDATE stuinfo SET 姓名='洪七' WHERE 姓名='洪七公';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [studb]>
步驟二:刪除stuinfo表中 姓名='洪七公' 的數據記錄
此時表格中已經沒有姓名為“洪七公”的記錄(只有“洪七”),所有不會有記錄被刪除。
MariaDB [studb]> DELETE FROM stuinfo WHERE 姓名='洪七公';
Query OK, 0 rows affected (0.00 sec)
MariaDB [studb]>
步驟三:確認表格stuinfo的數據內容
檢查修改后的表格內容:
MariaDB [studb]> SELECT * FROM stuinfo;
+---------------+-----------+--------+--------------+--------------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+--------------------------+
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
| NTD2020110004 | 洪七 | 男 | 13888888888 | 太湖北丐幫總舵 |
| NTD2020110005 | 歐陽鋒 | 男 | 18777777777 | 西域白駝山莊 |
| NTD2020110006 | 黃藥師 | 男 | 13566778899 | 東海桃花島 |
| NTD2020110007 | 周伯通 | 男 | 17012341234 | 昆崳山全真教總部 |
| NTD2020110008 | 王重陽 | 男 | 17012340001 | 昆崳山全真教總部 |
| NTD2020110009 | 段王爺 | 男 | 17566666666 | 云南大理桃源山 |
+---------------+-----------+--------+--------------+--------------------------+
9 rows in set (0.00 sec)
MariaDB [studb]>
3 案例3:SELECT查詢表記錄
3.1 問題
本例要求學會SELECT語句的操作方法,查詢stuinfo表,完成下列任務:
1)列出表中每一條記錄的 姓名、聯系電話
2)列出表中 性別='女' 的詳細數據記錄
3)列出表中 性別='女' 的記錄的 姓名、聯系電話
4)列出stuinfo表中 通信地址='東海桃花島' 的詳細數據記錄
3.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:列出表中每一條記錄的 姓名、聯系電話
MariaDB [studb]> SELECT 姓名,聯系電話 FROM stuinfo;
+-----------+--------------+
| 姓名 | 聯系電話 |
+-----------+--------------+
| 郭靖 | 13145201314 |
| 黃蓉 | 13145201413 |
| 華箏 | 13705666777 |
| 洪七 | 13888888888 |
| 歐陽鋒 | 18777777777 |
| 黃藥師 | 13566778899 |
| 周伯通 | 17012341234 |
| 王重陽 | 17012340001 |
| 段王爺 | 17566666666 |
+-----------+--------------+
9 rows in set (0.00 sec)
MariaDB [studb]>
步驟二:列出表中 性別='女' 的詳細數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 性別='女';
+---------------+--------+--------+--------------+-----------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+--------+--------+--------------+-----------------+
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
+---------------+--------+--------+--------------+-----------------+
2 rows in set (0.00 sec)
MariaDB [studb]>
步驟三:列出表中 性別='女' 的記錄的 姓名、聯系電話
MariaDB [studb]> SELECT 姓名,聯系電話 FROM stuinfo WHERE 性別='女';
+--------+--------------+
| 姓名 | 聯系電話 |
+--------+--------------+
| 黃蓉 | 13145201413 |
| 華箏 | 13705666777 |
+--------+--------------+
2 rows in set (0.00 sec)
MariaDB [studb]>
步驟四:列出stuinfo表中 通信地址='東海桃花島' 的詳細數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 通信地址='東海桃花島';
+---------------+-----------+--------+--------------+-----------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+-----------------+
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110006 | 黃藥師 | 男 | 13566778899 | 東海桃花島 |
+---------------+-----------+--------+--------------+-----------------+
3 rows in set (0.01 sec)
MariaDB [studb]>
4 案例4:WHERE簡單匹配
4.1 問題
本例要求學會WHERE條件匹配的簡單應用,針對stuinfo表中的數據執行查詢,完成下列任務:
1)列出表中 通信地址!='東海桃花島' 的數據記錄
2)列出表中 通信地址='東海桃花島' 而且 性別='女' 的數據記錄
3)列出表中 通信地址='蒙古大營' 或者 性別='女' 的數據記錄
4.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:列出表中 通信地址!='東海桃花島' 的數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 通信地址!='東海桃花島';
+---------------+-----------+--------+--------------+--------------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+--------------------------+
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
| NTD2020110004 | 洪七 | 男 | 13888888888 | 太湖北丐幫總舵 |
| NTD2020110005 | 歐陽鋒 | 男 | 18777777777 | 西域白駝山莊 |
| NTD2020110007 | 周伯通 | 男 | 17012341234 | 昆崳山全真教總部 |
| NTD2020110008 | 王重陽 | 男 | 17012340001 | 昆崳山全真教總部 |
| NTD2020110009 | 段王爺 | 男 | 17566666666 | 云南大理桃源山 |
+---------------+-----------+--------+--------------+--------------------------+
6 rows in set (0.00 sec)
MariaDB [studb]>
步驟二:列出表中 通信地址='東海桃花島' 而且 性別='女' 的數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 通信地址='東海桃花島' AND 性別='女';
+---------------+--------+--------+--------------+-----------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+--------+--------+--------------+-----------------+
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
+---------------+--------+--------+--------------+-----------------+
1 row in set (0.00 sec)
MariaDB [studb]>
步驟三:列出表中 通信地址='蒙古大營' 或者 性別='女' 的數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 通信地址='蒙古大營' OR 性別='女';
+---------------+--------+--------+--------------+-----------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+--------+--------+--------------+-----------------+
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
+---------------+--------+--------+--------------+-----------------+
2 rows in set (0.00 sec)
MariaDB [studb]>
注意:WHERE條件子句適用于SELECT、UPDATE、DELETE操作
5 案例5:WHERE高級匹配
5.1 問題
本例要求學會WHERE條件匹配的高級應用,針對stuinfo表中的數據執行查詢,完成下列任務:
1)列出表中 姓名 為 郭靖、黃蓉、歐陽鋒、黃藥師 的數據記錄
2)列出表中 通信地址 包括 '全真教' 字串的數據記錄
3)列出表中 姓名 只有 兩個字 的數據記錄
5.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:列出表中 姓名 為 郭靖、黃蓉、歐陽鋒、黃藥師 的數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 姓名 IN ('郭靖', '黃蓉', '歐陽鋒', '黃藥師');
+---------------+-----------+--------+--------------+--------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+--------------------+
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110005 | 歐陽鋒 | 男 | 18777777777 | 西域白駝山莊 |
| NTD2020110006 | 黃藥師 | 男 | 13566778899 | 東海桃花島 |
+---------------+-----------+--------+--------------+--------------------+
4 rows in set (0.00 sec)
MariaDB [studb]>
步驟二:列出表中 通信地址 包括 '全真教' 字串的數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 通信地址 LIKE '%全真教%';
+---------------+-----------+--------+--------------+--------------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+--------------------------+
| NTD2020110007 | 周伯通 | 男 | 17012341234 | 昆崳山全真教總部 |
| NTD2020110008 | 王重陽 | 男 | 17012340001 | 昆崳山全真教總部 |
+---------------+-----------+--------+--------------+--------------------------+
2 rows in set (0.00 sec)
MariaDB [studb]>
步驟三:列出表中 姓名 只有 兩個字 的數據記錄
MariaDB [studb]> SELECT * FROM stuinfo WHERE 姓名 LIKE '__';
+---------------+--------+--------+--------------+-----------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+--------+--------+--------------+-----------------------+
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
| NTD2020110004 | 洪七 | 男 | 13888888888 | 太湖北丐幫總舵 |
+---------------+--------+--------+--------------+-----------------------+
4 rows in set (0.00 sec)
MariaDB [studb]>
6 案例6:整理查詢結果
6.1 問題
本例要求學會查詢結果的排序和數量限制,針對stuinfo表中的數據執行查詢,完成下列任務:
1)查詢表中 性別='男' 的俠客人數
2)列出表中 通信地址='東海桃花島' 的數據記錄,按學號降序排列
3)列出表中 性別='男' 的第4~5條記錄(LIMIT 3,2)
4)列出表中前3條數據記錄
6.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:查詢表中 性別='男' 的俠客人數
MariaDB [studb]> SELECT count(*) FROM stuinfo WHERE 性別='男';
+----------+
| count(*) |
+----------+
| 7 |
+----------+
1 row in set (0.00 sec)
MariaDB [studb]>
步驟二:列出表中 通信地址='東海桃花島' 的數據記錄,按學號降序排列
MariaDB [studb]> SELECT * FROM stuinfo WHERE 通信地址='東海桃花島' ORDER BY 學號 DESC;
+---------------+-----------+--------+--------------+-----------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+-----------------+
| NTD2020110006 | 黃藥師 | 男 | 13566778899 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
+---------------+-----------+--------+--------------+-----------------+
3 rows in set (0.00 sec)
MariaDB [studb]>
步驟三:列出表中 性別='男' 的第4~5條記錄(LIMIT 3,2)
MariaDB [studb]> SELECT * FROM stuinfo WHERE 性別='男' LIMIT 3,2;
+---------------+-----------+--------+--------------+--------------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+--------------------------+
| NTD2020110006 | 黃藥師 | 男 | 13566778899 | 東海桃花島 |
| NTD2020110007 | 周伯通 | 男 | 17012341234 | 昆崳山全真教總部 |
+---------------+-----------+--------+--------------+--------------------------+
2 rows in set (0.00 sec)
MariaDB [studb]>
步驟四:列出表中前3條數據記錄
MariaDB [studb]> SELECT * FROM stuinfo LIMIT 3;
+---------------+--------+--------+--------------+-----------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+--------+--------+--------------+-----------------+
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
+---------------+--------+--------+--------------+-----------------+
3 rows in set (0.00 sec)
MariaDB [studb]>
7 案例7:備份數據庫資料
7.1 問題
本例要求使用mysqldump工具對數據庫進行備份,熟悉單庫、多庫的不同備份用法,完成下列任務:
1)備份studb庫,保存為/root/studb.sql文件
2)備份studb庫和mysql庫,保存為/root/studb.sql文件
3)備份所有庫,保存為/root/alldb.sql文件
7.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:備份studb庫,保存為/root/studb.sql文件
[root@svr7 ~]# mysqldump -uroot -ppwd@123 studb > /root/studb.sql
步驟二:備份studb庫和mysql庫,保存為/root/studb.sql文件
[root@svr7 ~]# mysqldump -uroot -ppwd@123 --databases studb mysql > /root/studb+mysql.sql
步驟三:備份所有庫,保存為/root/alldb.sql文件
[root@svr7 ~]# mysqldump -uroot -ppwd@123 --all-databases > /root/alldb.sql
8 案例8:恢復數據庫
8.1 問題
本例要求使用mysql工具恢復數據庫資料,熟悉恢復單庫、多庫的不同方法,完成下列任務:
1)確保已經為 studb 庫做好備份文件 /root/studb.sql
2)刪除名為 studb 的庫,檢查結果
3)重建名為 studb 的空庫
4)將備份文件 /root/studb.sql 導入名為 studb 的庫
5)檢查 studb 庫中的表格數據
8.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:確保已經為 studb 庫做好備份文件 /root/studb.sql
[root@svr7 ~]# ls -lh /root/studb.sql
-rw-r--r--. 1 root root 11K 10月 24 20:20 /root/studb.sql
步驟二:刪除名為 studb 的庫,檢查結果
1)登入數據庫服務器
[root@svr7 ~]# mysql -uroot -ppwd@123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
2)刪除studb庫
MariaDB [(none)]> DROP DATABASE studb;
Query OK, 9 rows affected (0.00 sec)
MariaDB [(none)]>
步驟三:重建名為 studb 的空庫
MariaDB [(none)]> CREATE DATABASE studb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>
MariaDB [(none)]> quit
Bye
[root@svr7 ~]#
步驟四:將備份文件 /root/studb.sql 導入名為 studb 的庫
若目標庫studb已丟失,則必須提前建好空庫
[root@svr7 ~]# mysql -uroot -ppwd@123 studb < /root/studb.sql
[root@svr7 ~]#
步驟五:檢查 studb 庫中的表格數據
[root@svr7 ~]# mysql -uroot -ppwd@123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 33
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SELECT * FROM stuinfo;
ERROR 1046 (3D000): No database selected
MariaDB [(none)]> SELECT * FROM studb.stuinfo;
+---------------+-----------+--------+--------------+--------------------------+
| 學號 | 姓名 | 性別 | 聯系電話 | 通信地址 |
+---------------+-----------+--------+--------------+--------------------------+
| NTD2020110001 | 郭靖 | 男 | 13145201314 | 東海桃花島 |
| NTD2020110002 | 黃蓉 | 女 | 13145201413 | 東海桃花島 |
| NTD2020110003 | 華箏 | 女 | 13705666777 | 蒙古大營 |
| NTD2020110004 | 洪七 | 男 | 13888888888 | 太湖北丐幫總舵 |
| NTD2020110005 | 歐陽鋒 | 男 | 18777777777 | 西域白駝山莊 |
| NTD2020110006 | 黃藥師 | 男 | 13566778899 | 東海桃花島 |
| NTD2020110007 | 周伯通 | 男 | 17012341234 | 昆崳山全真教總部 |
| NTD2020110008 | 王重陽 | 男 | 17012340001 | 昆崳山全真教總部 |
| NTD2020110009 | 段王爺 | 男 | 17566666666 | 云南大理桃源山 |
+---------------+-----------+--------+--------------+--------------------------+
9 rows in set (0.00 sec)
MariaDB [(none)]> quit
Bye
[root@svr7 ~]#
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。