MySQL数据库的连接与检索数据_第二篇(非常详细)

一、使用Mysql

1. 连接

  • 为了连接到MySQL,需要以下信息:

    • 主机名(计算机名):参数:-h + 主机名(如果连接到本地MySQL服务器,主机名为localhost)。
    • 端口号:(如果使用默认端口3306之外的端口):参数:-P + 端口号。
    • 一个合法的用户名:参数:-u + 用户名。
    • 用户口令(如果需要):参数:-p + 密码 (密码可以换行输入)。
  • 利用 mysql 命令行演示登录指令,如下图:
    在这里插入图片描述

  • 解释:上图第一行,mysql 后从左到右分别是(-h + 主机名),(-P + 端口号),(-u + 用户名),(-p)。若省略(-h + 主机名),则主机名默认为本机localhost,若省略(-P + 端口号),则默认为3306,(-u)和(-p)不能省略。

  • 第二行则是输入密码,也可以直接在第一行的(-p)后输入密码,然后【Enter】键登录。

  • 在连接之后,你就可以访问你的登录名能够访问的任意数据库和表了。

2. 选择数据库

  • 特别注意!!
    • 下面所有的输入语句,都是要以(;)结尾的,不然会报错。
    • SQL语句不区分大小写,因此SELECT与select是相同的。 同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。最佳方式是按照大小写的惯例,且使用时保持一致。
    • 使用空格:在处理SQL语句时,其中所有空格都被忽略。 SQL语句可以在一行上给出,也可以分成许多行。多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。
  • 在你最初连接到MySQL时,没有任何数据库打开供你使用。在你能执行任意数据库操作前,需要选择一个数据库。为此,可使用USE关键字。
  • 例如,为了使用 crashcourse数据库,应该输入以下内容:
  • 输入:USE crashcourse;
  • 输出:Database changed
  • 注意:USE 语句并不返回任何结果。依赖于使用的客户机,显示某种形式的通知。例如,这里显示出的Database changed消息是 mysql命令行实用程序在数据库选择成功后显示的。
  • 记住,必须先使用USE打开数据库,才能读取其中的数据。

3. 了解数据库和表

1. 如果你不知道可以使用的数据库名时怎么办?可用MySQL的SHOW命令来显示这些信息(MySQL从内部表中提取这些信息)。 请看下面的例子:

  • 输入:SHOW DATABASES;

  • 输出如下:
    在这里插入图片描述

  • 分析:SHOW DATABASES;指令,返回可用数据库的一个列表。 包含在这个列表中的可能是MySQL内部使用的数据库(如例子中的mysql和information_schema)。当然,你自己的数据库列表可能看上去与这里的不一样。

2. 为了获得一个数据库内的表的列表 ,如下所示:

  • 输入:SHOW TABLES;
  • 输出如下:
    在这里插入图片描述
  • 分析:SHOW TABLES; 返回当前选择的数据库内可用表的列表。

3. 为了获得一个数据库内的表的列表 ,如下所示:

  • 输入:SHOW TABLES;
  • 输出如下:
    在这里插入图片描述
  • 分析:SHOW TABLES; 返回当前选择的数据库内可用表的列表。

4. SHOW指令也可以用来显示表列,如下所示:

  • 输入:SHOW COLUMNS FROM customers;
  • 输出如下:
    在这里插入图片描述
  • 分析:SHOW COLUMNS 要求给出一个表名(这个例子中的 FROM customers),它对表中的每个字段都返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_id的auto_increment)。
  • 补充: DESCRIBE语句;MySQL支持用DESCRIBE 作为SHOW COLUMNS FROM的一种快捷方式。 换句话说,DESCRIBE customers; 是SHOW COLUMNS FROM customers; 的一种快捷方式。
  • 输入:DESCRIBE customers;
  • 输出如下:
    在这里插入图片描述
    • 可以发现,结果是和 SHOW COLUMNS FROM customers; 语句的结果是一样的。

5. 其他的SHOW 语句

  • mysql 所支持的其他SHOW语句还有:
    • SHOW STATUS;用于显示广泛的服务器状态信息。
    • SHOW CREATE DATABASE和SHOW CREATE TABLE 分别用来显示创建特定数据库或表的MySQL语句。
    • SHOW GRANTS;用来显示授予用户(所有用户或特定用户)的安全权限。
    • SHOW ERRORS和SHOW WARNINGS;用来显示服务器错误或警告消息。
  • 有兴趣的朋友可以自己去尝试一下吧,这里就不再赘述了。

二、检索数据

  • 本章将介绍如何使用SELECT语句从表中检索一个或多个数据列。
  • SQL语句是由简单的英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。最经常使用的SQL语句就是SELECT语句了。它的用途是从一个或多个表中检索信息。
  • 为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。

1. 检索单个列

  • 我们将从简单的SQL SELECT语句开始介绍,此语句如下所示:
  • 输入:SELECT prod_name FROM products;
  • 输出如下:
    在这里插入图片描述
  • 分析:上述语句利用SELECT语句从products表中检索一个名为prod_name的列。所需的列名在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。
  • 未排序数据: 如果读者自己试验这个查询,可能会发现显示输出的数据顺序与这里的不同。出现这种情况很正常。如果没有明确排序查询结果(下一章介绍),则返回的数据的顺序没有特殊意义。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。

2. 检索多个列

  • 要想从一个表中检索多个列,使用相同的SELECT语句。唯一的不同是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。
  • 下面的SELECT语句从products表中选择3列:
  • 输入:SELECT prod_id,prod_name,prod_price FROM products;
  • 输出如下:
    在这里插入图片描述
  • 分析:与前一个例子一样,这条语句使用SELECT语句从表products 中选择数据。在这个例子中,指定了3个列名,列名之间用逗号分隔。

3. 检索所有列

  • 除了指定所需的列外(如上所述,一个或多个列),SELECT语句还可以检索所有的列而不必逐个列出它们。这可以通过在实际列名的位置使用星号(*)通配符来达到,如下所示:
  • 输入:SELECT * FROM products;
  • 输出如下:
    在这里插入图片描述
  • 分析:如果给定一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的顺序。但有时候并不是这样的,表的模式的变化(如添加或删除列)可能会导致顺序的变化。
  • 检索未知列: 使用通配符(*)有一个大优点。由于不明确指定列(因为星号检索每个列),所以能检索出名字未知的列。

4. 检索不同的行

  • 正如所见,SELECT返回所有匹配的行。但是,如果你不想要每个值重复出现,怎么办?例如,假如你想得出products表中产品的所有供应商ID:
  • 输入:SELECT vend_id From products;
  • 输出如下:
    在这里插入图片描述
  • SELECT语句返回14行(即使表中只有4个供应商),因为products表中有14个产品。那么,如何检索出有不同且唯一值的列表呢?
  • 解决办法是使用DISTINCT关键字,顾名思义,此关键字指示MySQL只返回不同的值。 如下:
  • 输入:SELECT DISTINCT vend_id FROM products;
  • 输出如下:
    在这里插入图片描述
  • 分析:SELECT DISTINCT vend_id 告诉MySQL只返回不同(唯一)的vend_id行,因此只返回4行。如果使用 DISTINCT关键字,它必须直接放在所有列名的前面。
  • 注意!不能部分使用DISTINCT: DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被检索出来。

5. 限制结果

  • SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了只返回第一行或前几行,可使用LIMIT子句。下面举一个例子:
  • 输入:SELECT prod_name FROM products LIMIT 5;
  • 输出如下:
    在这里插入图片描述
  • 分析:此语句使用SELECT语句检索单个列。LIMIT 5 指示MySQL返回的行数不多于5行。
  • LIMIT 也可以指定显示行数的范围 ,如下:
  • 输入:SELECT prod_name FROM products LIMIT 5,5;
  • 输出如下:
    在这里插入图片描述
  • 分析:LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。
  • 所以,带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。带两个值的LIMIT可以指定从行号为第一个值的位置开始。
  • 注意: 检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行。
  • 另外,MySQL 5版本后支持LIMIT的另一种替代语法。LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。

6. 使用完全限定的表名

  • 迄今为止使用的SQL例子只通过列名引用列,我们也可以使用完全限定的名字来引用列(同时使用表名和列字) ,在以后有一些情形需要完全限定名。现在需要注意这个语法,以便在遇到时知道它的作用。请看以下例子:
  • 输入:SELECT products.prod_name FROM products;
  • 这条语句等同于 SELECT prod_name FROM products;这里使用了完全限定的列名。
  • 表名也可以是完全限定的,如下所示:
  • 输入:SELECT products.prod_name FROM crashcourse.products;
  • 这条语句在功能上也等同于上面那条语句(当然,假定products表确实位于crashcourse数据库中。

三、总结

  • 好啦,朋友们,以上就是MySQL数据库第二篇博客的全部内容了,本篇学习了如何在MySQL命令行连接数据库和使用SQL的SELECT语句来检索单个表列、多个表列以及所有表列。下一篇将分享如何排序和过滤检索出来的数据的知识啦。
  • 最后,如果本文有不足之处,欢迎各位大佬批评指正。若本文对您有帮助的话,就给小白博主点个赞吧!欢迎在评论区一起交流学习哦!我们下次再见!!
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1 前言 1 2 连接 MYSQL 1 2.1 命令行 1 2.2 Navicate 2 2.3 例 1:连接到本机上的 MYSQL 2 2.4 例 2:连接到远程主机上的 MYSQL 3 2.5 退出 MYSQL 命令: exit (回车) 4 3 修改密码 4 3.1 例 1:给 root 加个密码 ab12 。 4 3.2 例 2:再将 root 的密码改为 djg345 。 4 4 增加新用户 4 4.1 例 1、增加一个用户 test1 密码为 abc 4 4.2 例 2、增加一个用户 test2 密码为 abc 4 5 MySQL常用命令 5 5.1 启动 MySQL 服务器 5 5.2 进入 mysql 交互操作界面 5 5.3 退出 MySQL 操作界面 5 5.4 第一条命令 6 5.5 多行语句 6 5.6 一行多命令 7 5.7 显示当前存在的数据库 7 5.8 选择数据库并显示当前选择的数据库 8 5.9 显示当前数据库中存在的表 8 5.10 显示表 (db) 的内容 8 5.11 命令的取消 8 6 创建数据库数据表 9 6.1 使用 SHOW 语句找出在服务器上当前存在什么数据库 9 6.2 创建一个数据库 abccs 9 6.3 选择你所创建的数据库 9 6.4 创建一个数据库表 9 6.5 显示表的结构 10 6.6 往表中加入记录 11 6.7 用文本方式将数据装入一个数据库表 11 7 检索数据 12 7.1 从数据库表中检索信息 12 7.2 查询所有数据 12 7.3 修正错误记录 12 7.4 选择特定行 13 7.5 选择特定列 13 7.6 对行进行排序 14 7.7 行计数 15 8 多表操作 15 8.1 查看第一个表 mytable 的内容 16 8.2 创建第二个表 title (包括作者、文章标题、发表日期) 16 8.3 多表查询 17 9 数据库表和数据库的修改和删除 18 9.1 增加一列 18 9.2 修改记录 18 9.3 增加记录 18 9.4 删除记录 19 9.5 删除表 19 9.6 数据库的删除 19 9.7 数据库的备份 20 9.8 用批处理方式使用 MySQL: 20
要从MySQL数据库检索数据并将其显示在Android应用程序中,您需要使用以下步骤: 1. 创建一个PHP文件来连接MySQL数据库并执行查询操作。 2. 在Android应用程序中使用Volley库进行HTTP请求并获取PHP文件返回的JSON数据。 3. 解析JSON数据并将其显示在TextView中。 以下是示例代码: 1. 创建PHP文件: ``` <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database_name"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Execute query and get results $sql = "SELECT * FROM table_name"; $result = $conn->query($sql); // Convert results to JSON format $rows = array(); while($r = mysqli_fetch_assoc($result)) { $rows[] = $r; } echo json_encode($rows); // Close connection $conn->close(); ?> ``` 2. 在Android应用程序中使用Volley库进行HTTP请求并获取PHP文件返回的JSON数据: ``` // Instantiate the RequestQueue. RequestQueue queue = Volley.newRequestQueue(this); String url = "http://example.com/get_data.php"; // Request a string response from the provided URL. JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { // Parse JSON data and display in TextView try { JSONObject jsonObject = response.getJSONObject(0); String data = jsonObject.getString("column_name"); textView.setText(data); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // Handle error } }); // Add the request to the RequestQueue. queue.add(jsonArrayRequest); ``` 3. 解析JSON数据并将其显示在TextView中: 在上面的代码示例中,我们仅获取了JSON数组的第一个元素并从中获取了特定列的值。您可以根据需要解析JSON数据并将其显示在TextView中。 希望这可以帮助您开始从MySQL数据库检索数据并将其显示在Android应用程序中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林二月er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值