千家信息网

表记录增删改查

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,案例1:INSERT插入表记录案例2:UPDATE和DELETE案例3:SELECT查询表记录案例4:WHERE简单匹配案例5:WHERE高级匹配案例6:整理查询结果案例7:备份数据库资料案例8:恢复
千家信息网最后更新 2024年11月21日表记录增删改查
案例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: 0MariaDB [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: 0MariaDB [studb]>

2)将 姓名='洪七公' 的人的姓名修改为 '洪七'

MariaDB [studb]> UPDATE  stuinfo  SET  姓名='洪七'  WHERE  姓名='洪七公';Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0MariaDB [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@123Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 31Server version: 5.5.56-MariaDB MariaDB ServerCopyright (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)]> quitBye[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@123Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 33Server version: 5.5.56-MariaDB MariaDB ServerCopyright (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 selectedMariaDB [(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)]> quitBye[root@svr7 ~]# 
步骤 数据 姓名 桃花 桃花岛 东海 地址 性别 通信地址 通信 电话 联系电话 联系 全真 学号 案例 总部 昆嵛 昆嵛山 备份 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术结课报告单 崇明区市场网络技术价格 数据库信息安全算法简介 移动导航软件开发 镇网络安全培训情况汇报 土地价值核算方法数据库 怎么样做游戏软件开发 杭州智彤网络技术有限公司 数据库管理岗位实习心得 我国的网络安全事故 静安区智能化软件开发好处 浙江瑞禹网络技术有限公司 手机离线数据库更新失败怎么回事 c4d服务器 如何加强设备管理软件开发 安徽恩湃互联网科技有限公司 山西学软件开发哪所学校好 护苗网络安全手抄报 步骤 网络安全教育情景剧本 卫生局网络安全风险评估 软件开发合同支付 湖北常规软件开发计划 用互联网科技助力老兵大陆寻亲 小型数据库搭建 抗战小说软件开发 软件开发对ipv6的支持 普尔网络安全教育 sql数据库一般设计步骤 网络安全法规定国家坚持网络 eclipse和数据库连接不上
0