MariaDB使用数据库查询

案例5:使用数据库查询

5.1 问题

本例要求配置MariaDB数据库,完成以下任务:

  1. 禁止空密码root用户访问mariadb数据库
  2. 在系统server0上使用数据库Contacts,通过SQL查询回答下列问题:密码是solicitous的人的名字?有多少人的姓名是Barbara同时居住在 Sunnyvale?

5.2 方案

表记录增删改查:

  1. insert  into  [库名.]表名  values(1,2,3);
  2. delete  from  [库名.]表名  where ...;
  3. update  [库名.]表名  set  字段名=字段值  where ....;
  4. select  字段列表  from  [库名.]表名  where  字段名1=值  and|or  字段名2=;

统计查询结果的数量:

  1. select  count(*)  from  [库名.]表名  where  .. ..;

5.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:清理空密码root用户

1)确认空密码root用户记录

MariaDB服务端默认的mysql库user表保存了用户授权记录。

使用DESC指令查看表结构,以便了解相关字段名:

  1. MariaDB [(none)]> DESC  mysql.user;
  2. +------------------------+-----------------------------------+------+-----+---------+-------+
  3. | Field                  | Type                              | Null | Key | Default | Extra |
  4. +------------------------+-----------------------------------+------+-----+---------+-------+
  5. | Host                   | char(60)                          | NO   | PRI |         |       |
  6. | User                   | char(16)                          | NO   | PRI |         |       |
  7. | Password               | char(41)                          | NO   |     |         |       |

列出user表中的Host、User、Password字段,限定密码为空的root用户:

  1. MariaDB [(none)]> SELECT  Host,User,Password  FROM  mysql.user  WHERE  User='root'  AND  Password='';
  2. +---------------------+------+----------+
  3. | Host                | User | Password |
  4. +---------------------+------+----------+
  5. | server0.example.com | root |          |
  6. | 127.0.0.1           | root |          |
  7. | ::1                 | root |          |
  8. +---------------------+------+----------+
  9. 3 rows in set (0.00 sec)
  10. MariaDB [(none)]>

2)删除空密码root用户记录

使用DELETE指令删除掉需要清除的授权记录:

  1. MariaDB [(none)]> DELETE  FROM  mysql.user  WHERE  User='root'  AND  Password='';
  2. Query OK, 3 rows affected (0.00 sec)

再次查询,确认删除结果:

  1. MariaDB [(none)]> SELECT  Host,User,Password  FROM  mysql.user  WHERE  User='root'  AND  Password='';
  2. Empty set (0.00 sec)

步骤二:按条件查询表记录

1)按单个条件查询

找出密码是solicitous的人的名字?

  1. MariaDB [(none)]> SELECT  name  FROM  Contacts.base  WHERE  Password='solicitous';
  2. +-------+
  3. | name  |
  4. +-------+
  5. | James | 
  6. +-------+
  7. 1 row in set (0.00 sec)

2)按多个条件在关联的两张表中查询

有多少人的姓名是Barbara同时居住在 Sunnyvale?

  1. MariaDB [(none)]> USE  Contacts;
  2. .. ..
  3. Database changed
  4. MariaDB [Contacts]> SELECT  COUNT(*)  FROM  base,location  WHERE  base.name='Barbara'  AND  location.city='Sunnyvale'  AND  base.id=location.id;
  5. +----------+
  6. | COUNT(*) |
  7. +----------+
  8. |        1 |
  9. +----------+
  10. 1 row in set (0.00 sec)

MariaDB使用数据库查询《三》的更多相关文章

  1. python更新数据库脚本三种方法

    最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新. 第一种:使用python的MySQLdb模块利用原生的sql语句进行更新 import MySQ ...

  2. Mariadb/MySQL数据库单表查询基本操作及DML语句

    Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...

  3. 工程师技术(二):postfix基础邮件服务、postfix空客户端邮件服务、搭建mariadb数据库系统、配置一个数据库、使用数据库查询

    一.postfix基础邮件服务 目标: 本例要求在虚拟机server0上配置 postfix 基础服务,具体要求如下: 1> 监听本机的所有接口    2> 将邮件域和邮件服务主机名都改为 ...

  4. ThinkPHP 数据库操作(三) : 查询方法、查询语法、链式操作

    查询方法 条件查询方法 where 方法 可以使用 where 方法进行 AND 条件查询: Db::table('think_user') ->where('name','like','%th ...

  5. 第九十九天上课 PHP TP框架 数据库查询和增加

    在Model文件夹下创建模型,文件命名规则 : 表名Model.class.php <?php namespace Home\Model; use Think\Model; class yong ...

  6. 【转】Delphi多线程学习(9):多线程数据库查询(ADO)

    原文:http://www.cnblogs.com/djcsch2001/articles/2382559.html ADO多线程数据库查询通常会出现3个问题: 1.CoInitialize 没有调用 ...

  7. 教程-Delphi多线程数据库查询(ADO)

    ADO多线程数据库查询通常会出现3个问题: 1.CoInitialize 没有调用(CoInitialize was not called):所以,在使用任何dbGo对象前,必须手 调用CoIniti ...

  8. mongodb基础系列——数据库查询数据返回前台JSP(一)

    经过一段时间停顿,终于提笔来重新整理mongodb基础系列博客了. 同时也很抱歉,由于各种原因,没有及时整理出,今天做了一个demo,来演示,mongodb数据库查询的数据在JSP显示问题. 做了一个 ...

  9. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

随机推荐

  1. 大型Java进阶专题(四) 设计模式之工厂模式

    前言 ​ 今天开始我们专题的第三课了,开始对设计模式进行讲解,本章节介绍:了解设计模式的由来,介绍设计模式能帮我们解决那些问题以及剖析工厂模式的历史由来及应用场景.本章节参考资料书籍<Sprin ...

  2. .net webapi 接收保存图片到服务器,并居中剪裁压缩图片

    原文链接:https:////www.cnblogs.com/Jackyye/p/12510943.html 每天解决一些c#小问题,在写微信小程序,或者一些手机软件接口,我们经常要用到上传图片到服务 ...

  3. net core天马行空系列:移植Feign,结合Polly,实现回退,熔断,重试,超时,做最好用的声明式http服务调用端

    系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 2.net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作 3.net core ...

  4. Google Sign In

    我们平常也经常使用QQ,微信账号,登录其他应用.最近公司让我给网站添加一个谷歌账号登录.我来这里记录一下,莫怪~~~莫怪~~~ 1. 申请一个账号登录ID:  https://developers.g ...

  5. maven如何安装oracle驱动jdbc的jar包

    一.因为oracle驱动的压缩包在maven官网上并没有提供,所以需要自己去手动下载. 二.下载安装步骤如下: (1)第一步:找到你本地的oracle驱动包所在位置: (2)在cmd中打开jar包所在 ...

  6. maven中的pom配置文件一——spring,mybatis,oracle,jstl,json,文件上传

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  7. [C#] 命令总线模式

    1 高内聚.低耦合 虽然已经毕业很多年了,但依然总是能记得,<软件工程>这门课的老师总是强调 "高内聚,低耦合". 这些年,在架构方面的技术发展方向,目标就是不断的拆分 ...

  8. angular vue通过node启动项目局域网内关闭防火墙无法访问的解决办法

    先试 ng serve --host 0.0.0.0 不行再试 ng serve --host 0.0.0.0 --disable-host-check

  9. Python编写“去除字符串中所有空格”

    #利用迭代操作,实现一个trim()函数,去除字符串中所有空格 def trim(str): newstr = '' for ch in str: #遍历每一个字符串 if ch!=' ': news ...

  10. cmdb采集数据的版本

    在局部配置文件中配置MODE=' agent',或者MODE=‘ssh’,或者MODE=‘’saltstack ',  实现只需要修改这个配置,就会使用对应的方案进行采集数据 第一种版本: 启动文件中 ...