MariaDB学习记录

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MariaDB的学习.note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeiti, "Microsoft YaHei", "WenQuanYi Micro Hei", SimSun, Song, ...

MariaDB的学习

.note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeiti, "Microsoft YaHei", "WenQuanYi Micro Hei", SimSun, Song, sans-serif }

MariaDB的学习

关于MariaDB的历史,不再概述


下面是mariadb的官网:https://mariadb.com/

同样的,MariaDB一样有连接java的jar包:https://downloads.mariadb.com/Connectors/java/connector-java-2.2.1/ 选.jar结尾但名称最短那个 mariadb-java-client-2.2.1.jar

而这篇文章,讲解为什么MariaDB将取代

java连接MariaDB的设置 http://blog.csdn.net/wwwdc1012/article/details/52749188

好的,我们开始MariaDB的学习:

1.MariaDB介绍

数据库应用程序 与 主应用程序 分开存在, 并存储数据集合. 每个数据库都使用一个或多个API来创建, 访问, 管理, 搜索复制其包含的数据.
数据库还是用非关系数据源, 例如对象或文件. 然而, 数据库证明是大数据集的最佳选择, 这将遭受缓慢的检索和与其他数据源的写入.
关系数据库管理系统(RDBMS)将数据存储在各种表中. 这些表之间的关系使用主键和外键建立.

刚看了下webgl,threejs群里发的QQ腾讯在南极开设了什么黑科技实验室啊?

RDBMS提供以下功能:

  • 它们使您能够使用表, 列和索引来实现数据源.
  • 它们确保多个表行间引用的完整性.
  • 它们自动更新索引.
  • 他们解释SQL查询和操作从表操作或源数据.SQL 是用于访问和处理数据库的标准的计算机语言。SQL学习:http://www.w3school.com.cn/sql/index.asp

RDBMS(关系型数据库管理系统)术语
在我们开始讨论MariaDB之前, 让我们来看一下与数据库相关的一些术语.

  • Database - 数据库是由保存相关数据的表组成的数据源.
  • Table - 表, 这意味着电子表格, 是包含数据的矩阵.
  • Column - 表示数据元素的是保存一种类型的数据的结构; 例如, 送货日期.
  • Row - 是对相关数据进行分组的结构;例如, 用于客户的数据. 它也被称为元组, 条目或记录.
  • Redundancy - 此术语指的是存储数据两次, 以加速系统.(中文意思:冗余)
  • Primary Key - 这指的是唯一的标识值. 此值不能在表中出现两次, 并且只有一个行与其关联.
  • Foreign Key - 外键用作两个表之间的链接.(Foreign:有外国外籍的意思)
  • Compound Key - 复合键, 或混合键, 是指多个列的关键.
  • Index - 索引实际上与书的索引意思相同.
  • Referential Integrity - 此术语指确保所有外键值指向现有行.

关系型数据库讲解可以看http://www.icourse163.org/
搜索数据库系统,查看哈工大讲解的数据库系统(上,中,下)

同时,该课程在线上考试后如果成绩合格或优秀,可获取实体证书!(找工作的利器)
还有很多其他课程都发证以及奖学金.


Maria 数据库
MariaDB是由MySQL的原始开发人员创建的MySQL的流行分支. 它源于与Oracle收购Sun&MySQL有关的问题. 它旨在成为MySQL的替代, MariaDB提供与MySQL等相同的功能.
MariaDB的重要特性

  • 所有的MariaDB都在GPL, LGPL或BSD下.
  • MariaDB包括各种存储引擎, 包括高性能存储引擎, 用于与其他 RDBMS 数据源一起工作.
  • MariaDB使用标准和流行的SQL语言.
  • MariaDB在多个操作系统上运行, 并支持各种各样的编程语言.
  • MariaDB提供Galera集群技术.
  • MariaDB还提供了许多在MySQL中不可用的操作和命令, 并消除/取代影响性能的功能.
  • MariaDB同样有jar包驱动与java程序的结合.

MariaDB的下载: https://mariadb.com/downloads/mariadb-tx

2.在windows/Linux上使用MariaDB

我原本打算想找一个MariaDB的网上社区进行快速学习,但不料没有,而且那个MariaDBpub网站首页居然显示拒绝.
后来找到这个,https://www.server110.com/mariadb/ 关于MariaDB的内容不算太多,入门感觉足够了.

其实MariaDB的操作跟MySQL几乎是一样的, 只不过在Linux端可能有些命令不同.
http://blog.csdn.net/cccheer/article/details/56479090 还是这篇文章.
我已经安装好了. 只需要输入xshell命令 :

 mysql -uroot -p  

然后提示你输入数据库的密码,之后就来到了MariaDB的命令行:

 [root@iz2zea0v6yzqrn1lbze76iz ~]# mysql -uroot -p  

 Enter password:  

 Welcome to the MariaDB monitor. Commands end with ; or \g.  

 Your MariaDB connection id is 10  

 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)]> <<以下我们称这个为MariaDB的指令行

虽然说这MariaDB是MySQL作者的分支,而且不属于被收购的项目,但是从上面可以看出有Oracle的字眼,可能是为了尊重原来与MySQL兼容的原因吧.(其中不少代码或者结构上应该跟MySQL相似甚至相同吧).
但毕竟现在MariaDB是单独一个产品了.而且是开源且快速更新迭代的.
在MariaDB的官网上https://mariadb.com/,我们到底部的版权信息: Copyright © 2018 MariaDB. All rights reserved. 而且网站上有说明把MySQL转移到MariaDB的教程,以及各种路演,而且我惊诧地发现在靠近下面的”成功故事专题”中,分别有3个视频,,,让我怀疑MariaDB是不是国人开发的,因为这3个视频分别来自:阿里巴巴,华泰证券,以及腾讯
这里是MariaDB的官方文档及问答:https://mariadb.com/kb/en/ 虽然有中文版,,,但是不敢恭维汉化程度,还是看英文版吧!

  • 在下载完windows版的MariaDB后,随安装的还有工具HeidiSQL.
  • https://www.heidisql.com/help.php#connecting 官方的本地连接远程服务器的教程.ssh
    在这个教程中,介绍了怎样建立一个127.0.0.1的连接,然后介绍了连接远程服务器端数据库的ssh连接.
    因为都是英文,虽然能看懂一大半,但是还是需要整理一下:
    1.[会话管理器界面(以下都是)] 在heidisql界面新建会话,在设置栏目选择网络类型为MySQL(SSH tunnel)//ssh隧道secure shell简称ssh 简介: https://baike.baidu.com/item/ssh
    2.[扳手设置栏目] 下面输入远程服务器数据库的 IP,用户名,密码和端口 下面可以指定哪个数据库信息,可以不指定.注意这里的密码可能要更改! 继续看下面!
    3.[蓝色锁头栏目] 下载putty,这个工具在学习Linux的片段中使用过,它的下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html ,下载好后,将该包解压到指定本地目录,并加入环境变量.然后切到heidisql界面的蓝色锁头选项,把与putty.exe同目录的plink.exe位置填入进去.
    4.[蓝色锁头栏目] 后面的SSH主机+端口号依旧填写远程服务器IP地址,端口号为默认的22.输入远程服务器的账户,密码.及本地端口,其他先不用管.保持默认.
    5.[会话管理器界面] 点击打开,然后会遇到问题说你密码错了不用着急!之前第二步骤中,我们说这里密码可能要改,如何改呢?

 用xshell或者putty连接你的远程服务器.  

 登录到MariaDB指令界面.(参照第2章目刚开始的方法)  

 在MariaDB指令行输入:  

 

 grant all privileges on *.* to 'root'@'你的机器所在的IP' identified by '要更改的密码' with grant option;  

 

 注意这里你的机器所在IP并非127.0.0.1,可以写个java类自己获取当然更简单的可以直接百度:"本机ip",或:http://www.ip138.com/ ,这里的要更改的密码就是上面第2条目中要更改的密码. 当然如果你的用户名不是root也要对应更改.  

 还没结束,输入完这条,再输入flush privileges; 来让命令立即生效.  

 之后再在heidisql界面点击打开看看是不是可以登录了!?  

备用教程博客:http://blog.csdn.net/ly_dengle/article/details/77835882 关于之上问题.


轻松一下,利用 HeidiSQL 界面新建一个数据库.

Alt text
取名叫做hello_mariadb,之后字符集先默认就可以. (我的是utf8-unicode-ci.)
之后在xshell or putty中调用MariaDB指令: (也就是查看远程服务器时候有这个新建立的数据库了呢)

 MariaDB [(none)]> show databases;  

是不是看到光辉时刻了呢?

 +--------------------+  

 | Database |  

 +--------------------+  

 | information_schema |  

 | hello_mariadb << 这就是我们在heidisql.exe建立的数据库!

 | mysql |  

 | performance_schema |  

 | test |  

 +--------------------+  

 5 rows in set (0.00 sec)  

2018年1月7日 00:09:20
今天最后附上linux查看数据库的基础命令及该博客作者的座右铭…
https://www.cnblogs.com/cnteam/p/4091468.html <作者的座右铭in it


3.SQL语句与MariaDB的结合使用实测与练习

因为在界面heidisql中建立数据库和表比较简单,所以我们先略过.
本节主要将使用命令行式的SQL语句.
关于什么是SQL语句,不再深入概述

来到xshell的命令行,调出MariaDB的指令输入状态.
新建一个数据库

CREATE DATABASE mydb1234;  

这时创建成功,返回语句: Query OK, 1 row affected (0.00 sec)
接着我们在 mydb1234 中创建一个表.
首先要先使用这个数据库:

USE mydb1234;  

这时使用了我们刚建立的数据库,并且指令行中的none变为了数据库的名称:

 MariaDB [(none)]> USE mydb1234;  

 Database changed  

 MariaDB [mydb1234]>  

接着我们继续输入创建表的命令:

 MariaDB [mydb1234]> CREATE TABLE Persons //创建一个表示'人'的表.  

 -> ( //左圆括号  

 -> PersonID int, //序号  

 -> Name varchar(255), //姓名  

 -> Gender varchar(255), //性别  

 -> Address varchar(255) //地址 最后一项没有逗号  

 -> ); //右圆括号 分号 ;  

 Query OK, 0 rows affected (0.01 sec)  

有了最后的这个 ; 号我们再按回车就会执行指令.(有的可能不需要加 ; )

  • PersonID 列的数据类型是 int ,包含整数.
  • 其他三项因为要用文字表述, 数据类型都是 varchar ,包含字符, 且这些字段最大长度为 255 个字符.

有了这个 Persons 空表, 我们向其中添加数据.

 MariaDB [mydb1234]> INSERT INTO Persons VALUES

 -> ( // (  

 -> 1, //对应int类型的PersonID  

 -> '赵本山', //对应varchar字符类型的Name

 -> '男', //对应varchar的 性别 Gender  

 -> '凤凰山庄' //对应varchar的 地址  

 -> ); // );  

 Query OK, 1 row affected (0.00 sec)  

之后返回的 Query OK 证明SQL语句执行成功了,但我们还是想看一看数据库表中”赵本山”的样子.

 MariaDB [mydb1234]> SELECT * FROM Persons;  

 +----------+-----------+--------+--------------+

 | PersonID | Name | Gender | Address |  

 +----------+-----------+--------+--------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 |  

 +----------+-----------+--------+--------------+

 1 row in set (0.01 sec)  

上面使用了SELECT * FROM 表名称; 去查询并返回给你看. * 代表着全部的在 Persons表里的数据.
但如果我们只向Name中添加一个数据,其他不添加呢?
同样使用INSERT INTO语句插入,不过我们指定列名称在表名后面:

 MariaDB [mydb1234]> INSERT INTO Persons( Name )VALUES ( '郭冬临' );  

 Query OK, 1 row affected (0.00 sec)  

 

 MariaDB [mydb1234]> SELECT * FROM Persons;  

 +----------+-----------+--------+--------------+

 | PersonID | Name | Gender | Address |  

 +----------+-----------+--------+--------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 |  

 | NULL | 郭冬临 | NULL | NULL |  

 +----------+-----------+--------+--------------+

 2 rows in set (0.00 sec)  

注意:像上面这种其他列的值为NULL时是种很不好的数据结构!
当我们想删除这行不完整的数据时,可以使用DELETE :

 MariaDB [mydb1234]> DELETE FROM Persons WHERE Name='郭冬临';  

 Query OK, 1 row affected (0.00 sec)  

 

 MariaDB [mydb1234]> SELECT * FROM Persons;  

 +----------+-----------+--------+--------------+

 | PersonID | Name | Gender | Address |  

 +----------+-----------+--------+--------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 |  

 +----------+-----------+--------+--------------+

 1 row in set (0.00 sec)  

注意上面如果在DELETE语句使用…..WHERE PersonID=NULL 或者=’NULL’都是删除不了的.

 +----------+-----------+--------+--------------+

 | PersonID | Name | Gender | Address |  

 +----------+-----------+--------+--------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 |  

 | NULL | 郭冬临 | NULL | NULL |  

 +----------+-----------+--------+--------------+

 2 rows in set (0.00 sec)  

 

 MariaDB [mydb1234]> DELETE FROM Persons WHERE PersonID='NULL';  

 Query OK, 0 rows affected, 1 warning (0.00 sec) <-提示警告! 1 warning  

 

 MariaDB [mydb1234]> DELETE FROM Persons WHERE PersonID=NULL; <-同样不可以  

 Query OK, 0 rows affected (0.00 sec) <-没有行受到影响  

 

 MariaDB [mydb1234]> SELECT * FROM Persons;  

 +----------+-----------+--------+--------------+

 | PersonID | Name | Gender | Address |  

 +----------+-----------+--------+--------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 |  

 | NULL | 郭冬临 | NULL | NULL |  

 +----------+-----------+--------+--------------+

 2 rows in set (0.00 sec)  


接下来我们发现这个表只有3个属性,收集的数据特别少,我们想加一列年收入情况:
annual income 是年收入的英文,我们为了精简,使用 YearIncome来作为年收入的列名;
后来我发现,这没有必要啊,因为我们可以直接指定表中列名为中文”年收入(元)“啊!

 MariaDB [mydb1234]> ALTER TABLE Persons ADD `年收入(元)` BIGINT;  

注意上面 `年收入(元)` 两边的反引号.用来转义特殊字符. 可以看这篇博客:https://www.cnblogs.com/lzxianren/p/trick-problem.html
结果:

 MariaDB [mydb1234]> select * from Persons;  

 +----------+-----------+--------+--------------+----------------+

 | PersonID | Name | Gender | Address | 年收入(元) |  

 +----------+-----------+--------+--------------+----------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 | NULL |  

 | NULL | 郭冬临 | NULL | NULL | NULL |  

 +----------+-----------+--------+--------------+----------------+

 2 rows in set (0.00 sec)  

在这里,我们设置的年收入(元)的这一列数据类型是 bigint ,但好像我们应该设置为浮点数.能把小数点后的使用上表示更确切的数字. 关于MariaDB的数据类型可以看这里:http://www.cnblogs.com/ukzq/p/8229156.html

让我们更改 它的数据类型!:

 MariaDB [mydb1234]> ALTER TABLE Persons MODIFY COLUMN `年收入(元)` DECIMAL(99,2);  

 ERROR 1426 (42000): Too big precision 99 specified for '年收入(元)'. Maximum is 65.  

 MariaDB [mydb1234]> ALTER TABLE Persons MODIFY COLUMN `年收入(元)` DECIMAL(65,2);  

 Query OK, 2 rows affected (0.00 sec)  

 Records: 2 Duplicates: 0 Warnings: 0  

本山大叔钱很多我们使用 DECIMAL(99,2) 类型来表示他的年收入,99代表最大位数,而2代表小数点后有几位. 然后弹出 ERROR 1426, 是说我们指定的这个属性的精度99太高啦,并说明了最大的应该是65位.
之后改为65位, OK.
可以改一个属性的类型,那么改这个属性的名称呢?
我们发觉Gender来表示性别不是那么很明确,我们改为Sex好了,通俗易懂:

 MariaDB [mydb1234]> ALTER TABLE Persons CHANGE COLUMN Gender Sex CHAR(5);  

 Query OK, 2 rows affected (0.03 sec)  

 Records: 2 Duplicates: 0 Warnings: 0  

 

 MariaDB [mydb1234]> select * from Persons;  

 +----------+-----------+------+--------------+----------------+

 | PersonID | Name | Sex | Address | 年收入(元) |  

 +----------+-----------+------+--------------+----------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 | NULL |  

 | NULL | 郭冬临 | NULL | NULL | NULL |  

 +----------+-----------+------+--------------+----------------+

 2 rows in set (0.00 sec)  

在上面,我们同时更改了Sex的数据类型变为了 char 并且大小更改为了 5. 因为相对来说, char 是固定长度,处理速度比可变长度的 varchar 要快, 但我们性别这一栏目,就只要设置一个汉字, 所以设置为5, (在普遍的系统下,UTF-8的一个汉字占3个字符,GBK占2个字符),我们设置5为了宽裕一下. 极端主义请设置为3!
接下来我们把现有这个数据表填充起来

 MariaDB [mydb1234]> UPDATE Persons  

 -> SET PersonID=2,Sex='男',Address='四合院'

 -> WHERE Name='郭冬临';  

 Query OK, 1 row affected (0.02 sec)  

 Rows matched: 1 Changed: 1 Warnings: 0  

 

 MariaDB [mydb1234]> SELECT * FROM Persons;  

 +----------+-----------+------+--------------+----------------+

 | PersonID | Name | Sex | Address | 年收入(元) |  

 +----------+-----------+------+--------------+----------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 | NULL |  

 | 2 | 郭冬临 | 男 | 四合院 | NULL |  

 +----------+-----------+------+--------------+----------------+

 2 rows in set (0.00 sec)  

 MariaDB [mydb1234]> UPDATE Persons SET `年收入(元)`=23002300.23 WHERE Name='赵本山';  

 Query OK, 1 row affected (0.01 sec)  

 Rows matched: 1 Changed: 1 Warnings: 0  

 

 MariaDB [mydb1234]> UPDATE Persons SET `年收入(元)`=888000.80 WHERE Name='郭冬临';  

 Query OK, 1 row affected (0.00 sec)  

 Rows matched: 1 Changed: 1 Warnings: 0  

 

 MariaDB [mydb1234]> SELECT * FROM Persons;  

 +----------+-----------+------+--------------+----------------+

 | PersonID | Name | Sex | Address | 年收入(元) |  

 +----------+-----------+------+--------------+----------------+

 | 1 | 赵本山 | 男 | 凤凰山庄 | 23002300.23 |  

 | 2 | 郭冬临 | 男 | 四合院 | 888000.80 |  

 +----------+-----------+------+--------------+----------------+

 2 rows in set (0.00 sec)  

上面暂时没找到同时插入两行中同一属性的方法.


4.

下面我们开始设置主键和主键的自增. 因为我们每次添加新行如果都要输入PersonID去排序太麻烦了,
设置自增可解决这个问题.
https://www.w3cschool.cn/sql/2phntfpq.html <自增
休息好后,开始设置主键的自增. 并开始着手制作动态页面注册登录与数据库连接.
2018年1月7日 20:39:04


5.JDBC连接远程MariaDB数据库

先看一段代码: (文章中关于IP和密码等not real)

//MariaDB连接java的驱动名

 String driver = "org.mariadb.jdbc.Driver";  

//从配置参数中获取数据库URL

 String url = "jdbc:mariadb://60.203.124.227:3306/mydb1234";  

//从配置参数中获取用户名

 String user = "root";  

//从配置参数中获取密码

 String password = "jjiojiowwuu";  

 

//注册驱动

 Class.forName(driver);  

//获取数据库连接

 Connection conn = DriverManager.getConnection(url,user,password);  

//连接如果成功输出

 System.out.println("连接成功.");  

上面的这些在一个新类中,其作用是连接我们的数据库mydb1234,
看起来稍微比heidisql.exe麻烦,但是这是浏览器端连接数据库显示数据库内容的基本的java的思路.

  • String 声明的 driver, url, user, password 都将用于其下册的功能使用.
  • Class.forName(org.mariadb.jdbc.Driver); 是声明注册这个驱动.
  • 利用Connection类和DriverManager获取数据库的连接,括号中是url, 数据库用户名, 密码
  • url是 jdbc:mariadb://IP地址:3306/数据库名

MariaDB一样有连接java的jar包:https://downloads.mariadb.com/Connectors/java/connector-java-2.2.1/ 选.jar结尾但名称最短那个 mariadb-java-client-2.2.1.jar .
用原来的Class.forName(“com.mysql.jdbc.Driver”);其实也是可以的,因为MariaDB大部分兼容MySQL.


花费了9牛2虎之力,可算把java中的select * from tablename; 命令完整返回出数据了.

package 连接远程Linux的MariaDB;  

 

import java.sql.Connection;  

import java.sql.DriverManager;  

import java.sql.PreparedStatement;  

import java.sql.ResultSet;  

import java.sql.ResultSetMetaData;  

import java.sql.SQLException;  

 

/**

 *  

 * 创建时间:2017年12月4日 上午12:37:45  

 * 项目名称:网络编程  

 * @author ukyozq  

 * @version 1.0  

 * @since JDK 9.0  

 *  

 */  

public class MariaDBConnect02

 {  

 

public static void main(String[] args) throws ClassNotFoundException, SQLException

 {  

 Class.forName("org.mariadb.jdbc.Driver");  

 

//测试连接时间

long start = System.currentTimeMillis();  

/*

 * DriverManager 接口是JDBC的管理层,作用于用户和驱动程序之间,  

 * DriverManager 跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接.  

 */  

//建立连接(连接对象内部其实包含了Socket对象,是一个远程的连接,比较耗时!这是Connection对象管理的一个要点!)

 Connection conn = DriverManager.getConnection("jdbc:mariadb://60.203.124.227:3306/mydb1234","root","jjiojiowwuu");  

//测试连接时间

long end = System.currentTimeMillis();  

long useTime = end-start;  

 System.out.println("建立连接,耗时:"+useTime+"毫秒.");  

 System.out.println("------");  

//创建一个会话

 

//使用PreparedStatement (效率更高,预处理机制.防止SQL注入)

 String sql = "SELECT * FROM Persons";  

 PreparedStatement ps = conn.prepareStatement(sql);  

 

//执行 用结果集获取

 ResultSet rs = ps.executeQuery(sql);  

 ResultSetMetaData rsmd = rs.getMetaData() ;  

int columnCount = rsmd.getColumnCount();  

//取得列数(字段数)

 ResultSet rset = ps.executeQuery("select count(*) totalCount from Persons");  

int rowCount = 0;  

if(rset.next())  

 {  

 rowCount = rset.getInt("totalCount");  

 }  

 System.out.println(rsmd.getCatalogName(rowCount)+"数据库中的"

 +rsmd.getTableName(rowCount)+"表,有"

 +rowCount+"行" +columnCount+"列.");  

 System.out.println("------");  

while(rs.next())  

 {  

 

for(int i=1;i<=columnCount;i++)  

 {  

 System.out.print(rsmd.getColumnName(i)+":\t");  

 System.out.println(rs.getObject(i)+"\t");  

 System.out.println("(数据类型:"+rsmd.getColumnTypeName(i)+","+rsmd.getColumnDisplaySize(i)+"字节)");  

 }  

 System.out.println("------");  

 }  

//所有连接在获取后必须关闭. 后开的先关

//关闭顺序:ResultSet-->Statement(PreparedStatement)-->Connection

 

if(rs!=null)  

 {  

 rs.close();  

 }  

if(ps!=null)  

 {  

 ps.close();  

 }  

if(conn!=null)  

 {  

 conn.close();  

 }  

//

 

 }  

 

 }  

/*

 ~~~输出:  

 

 建立连接,耗时:284毫秒.  

 ------  

 mydb1234数据库中的Persons表,有2行5列.  

 ------  

 PersonID: 1  

 (数据类型:INTEGER,11字节)  

 Name: 赵本山  

 (数据类型:VARCHAR,255字节)  

 Sex: 男  

 (数据类型:CHAR,5字节)  

 Address: 凤凰山庄  

 (数据类型:VARCHAR,255字节)  

 年收入(元): 23002300.23  

 (数据类型:DECIMAL,67字节)  

 ------  

 PersonID: 2  

 (数据类型:INTEGER,11字节)  

 Name: 郭冬临  

 (数据类型:VARCHAR,255字节)  

 Sex: 男  

 (数据类型:CHAR,5字节)  

 Address: 四合院  

 (数据类型:VARCHAR,255字节)  

 年收入(元): 888000.80  

 (数据类型:DECIMAL,67字节)  

 ------  

 */  

很明显输出没有很好的排列地像在HeidiSQL或是xshell中那样.
没有关系,我们就做一个Excel表格样式的东西去格式化一下返回的数据.


戒烟期间,精神萎靡,,,今天先做到这里! 2018年1月9日 21:48:21

下面再讲解数据库安全,关于数据库用户名 root ,其实特别不推荐使用…怎样设置得稍微安全一点呢?
第一点 第二点 第三点 ...

将编程看作是一门艺术,而不单单是个技术。 敲打的英文字符是我的黑白琴键, 思维图纸画出的是我编写的五线谱。 当美妙的华章响起,现实通往二进制的大门即将被打开。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
关系型数据库 MySQL 数据库
MariaDb数据库管理系统学习(一)安装过程图解
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
820 0
|
SQL 关系型数据库 数据库
MariaDb数据库管理系统学习(二)使用HeidiSQL数据库图形化界面管理工具
HeidiSQL 是一款用于简单化的 MySQL 服务器和数据库管理的图形化界面。该软件允许你浏览你的数据库,管理表,浏览和编辑记录,管理用户权限等等。此外,你可以从文本文件导入数据,运行 SQL查询,在两个数据库之间同步表以及导出选择的表到其它数据库或者 SQL 脚本当中。
1992 0
|
6月前
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
291 8
|
6月前
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
717 0
|
6月前
|
SQL Ubuntu 关系型数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
102 0
|
6月前
|
关系型数据库 MySQL 数据库连接
FreeSWITCH通过mod_mariadb原生连接MySQL
FreeSWITCH通过mod_mariadb原生连接MySQL
432 0
|
7月前
|
缓存 关系型数据库 MySQL
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
429 19
|
NoSQL 关系型数据库 MySQL
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等
阿里云关系型数据库详细介绍MySQL/MariaDB/SQL Server/PolarDB/PostgreSQL等,阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
248 0
|
NoSQL Cloud Native 关系型数据库
阿里云RDS数据库_MySQL_SQL Server_MariaDB_PolarDB_PostgreSQL
阿里云RDS关系型数据库大全:MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
144 0
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
354 0

推荐镜像

更多