今天为大家带来的是一些干货,LINUX下数据库 表记录增删改查 、 WHERE条件应用 、 数据备份与恢复
首先登录数据库
查一下有什么库
MariaDB [(none)]> SHOW DATABASES;
创建库
MariaDB [(mysql)]> CREATE DATABASE xiangyashan;
检查一下是否创建成功
MariaDB [(mysql)]> SHOW DATABASES;
建表格
MariaDB [mysql]> USE xiangyashan;
CREATE TABLE base(编号 char(13), 姓名 varchar(20), 性别 char(1), 手机号 char(13), 通信地址 varchar(48));
查询建完的表格
DESC base;
批量添加表信息,注意后面分号,逗号的区分,最后结尾的时候是分号,每一条信息之间的恶消息是用逗号进行间隔。
MariaDB [xiangyashan]> INSERT INTO base VALUES
-> ('MY2020110001', '宇智波赵四', '男', '13145201314', '木叶村'),
-> ('MY2020110002', '旋涡刘能', '男', '131111111111', '木叶村'),
-> ('RX3030120001', '日向大拿', '男', '13122222222', '日向一族'),
-> ('RX3030120002', '日向小蒙', '女', '13333333333', '日向一族'),
-> ('MY2020110001', '春野大脚', '女', '15666666666', '木叶村'),
-> ('FG2020110001', '赤砂长贵', '男', '17777777777', '风之国'),
-> ('HG2020110001', '齐木老七', '男', '13141111314', '火之国');
确认表格 base 的数据内容
MariaDB [xiangyashan]> SELECT * FROM base;
修改数据表中的信息
姓名='宇智波赵四' 的人的联系电话修改为 '13566778899'
MariaDB [xiangyashan]> UPDATE base SET 手机号='13566778899' WHERE 姓名='宇智波赵四';
删除base表中 姓名='旋涡刘能' 的数据记录
DELETE FROM stuinfo WHERE 姓名='旋涡刘能';
检查修改后的表格内容:
MariaDB [xiangyashan]> SELECT * FROM base;
再为表格添加几条记录(单条添加)
INSERT INTO base VALUES('SG2020110001', '竹取永强', '男', '13145212345', '水之国');
INSERT INTO base VALUES('RX2020110003', '日向大拿', '男', '12345678998', '日向一族');
INSERT INTO base VALUES('SG2020110001', '干柿长山', '男', '15556661314', '水之国');
INSERT INTO base VALUES('YR2020110001', '托斯天来', '男', '12501201314', '音忍村');
检查是否添加成功
MariaDB [xiangyashan]> SELECT * FROM base;
SELECT查询表记录
列出表中每一条记录的 姓名、手机号
MariaDB [xiangyashan]> SELECT 姓名,手机号 FROM base;
列出表中 性别='女' 的详细数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 性别='女';。
列出表中 性别='女' 的记录的 姓名、手机号
MariaDB [xiangyashan]> SELECT 姓名,手机号 FROM base WHERE 性别='女';
列出base表中 通信地址='木叶村' 的详细数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 通信地址='木叶村';
WHERE简单匹配
列出表中 通信地址!='火之国' 的数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 通信地址!='火之国';
注意区分是不属于火之国的人员
列出表中 通信地址='日向一族' 而且 性别='女' 的数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 通信地址='日向一族' AND 性别='女';
列出表中 通信地址='木叶村' 或者 性别='男' 的数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 通信地址='木叶村' OR 性别='男';
WHERE高级匹配
列出表中 姓名 为 宇智波赵四、春野大脚、干柿长山、竹取永强 的数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 姓名 IN ('宇智波赵四', '春野大脚', '干柿长山', '竹取永强');
列出表中 通信地址 包括 '国' 字串的数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 通信地址 LIKE '%国%';
列出表中 姓名 只有 五个字 的数据记录
MariaDB [xiangyashan]> SELECT * FROM base WHERE 姓名 LIKE '_____';
注意;LIKE 后面的下划线五个,因为要求是选的名字有五个字的
整理查询结果
查询表中 性别='男' 的人数
MariaDB [xiangyashan]> SELECT count(*) FROM base WHERE 性别='男';
列出表中 通信地址='木叶村' 的数据记录,按编号降序排列
MariaDB [xiangyashan]> SELECT * FROM base WHERE 通信地址='日向一族' ORDER BY 编号 DESC;
列出表中 性别='男' 的第4~5条记录(LIMIT 3,2)
MariaDB [xiangyashan]> SELECT * FROM base WHERE 性别='男' LIMIT 3,2;
列出表中前3条数据记录
MariaDB [xiangyashan]> SELECT * FROM base LIMIT 3;
备份数据库资料
备份studb库,保存为/root/studb.sql文件
[root@svr7 ~]# mysqldump -uroot -pmima 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 -pmima --all-databases > /root/alldb.sql
恢复数据库
确保已经为 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 的库,检查结果
MariaDB [(none)]> DROP DATABASE studb;
Query OK, 9 rows affected (0.00 sec)
登入数据库服务器
[root@svr7 ~]# mysql -uroot -pmima
删除studb库
MariaDB [(none)]> DROP DATABASE studb;
重建名为 studb 的空库
MariaDB [(none)]> CREATE DATABASE studb;
MariaDB [(none)]> quit
若目标库studb已丢失,则必须提前建好空库
[root@svr7 ~]# mysql -uroot -ppwd@123 studb < /root/studb.sql
检查 studb 库中的表格数据
[root@svr7 ~]# mysql -uroot -pmima
MariaDB [(none)]> SELECT * FROM stuinfo;
MariaDB [(none)]> quit
Bye
[root@svr7 ~]#
相关知识拓展:
导入资料文件 xiangyashan.sql 的数据到 xiangyashan 库
1)确保数据中已存在名为xiangyashan的库
2)导入预先提供的数据库资料 xiangyashan.sql (软件素材目录下找)
[root@svr7 ~]# mysql -uroot -pmima xiangyashan < /root/xiangyashan.sql
这条命令的意思是
先登录数据库然后 将/root/xiangyashan.sql下的文件xiangyashan.sq导入数据库xiangyashan
文件需要自己进行上传,上传到相应的位置,
MariaDB [(none)]> SELECT FROM xiangyashan.stuinfo;检查导入结果