`
penergy
  • 浏览: 39812 次
社区版块
存档分类
最新评论

R语言:MySQL, RMySQL on Mac

阅读更多

一些关于mysql在terminal上的指令:
1 .
/mysql -u root -p //进入mysql 数据库

2.
//修改root密码
$ mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("NEWPASSWORD") where User='root';
mysql> flush privileges;
mysql> quit


3. 在MySQL中建库建表


~ mysql -uroot -p
mysql> create database rmysql;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on rmysql.* to rmysql@'%' identified by 'rmysql';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on rmysql.* to rmysql@localhost identified by 'rmysql';
Query OK, 0 rows affected (0.00 sec)

mysql> use rmysql
Database changed

mysql> CREATE TABLE t_user(
    -> id INT PRIMARY KEY AUTO_INCREMENT,
    -> user varchar(12) NOT NULL UNIQUE
    -> )ENGINE=INNODB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.07 sec)

mysql> INSERT INTO t_user(user) values('A1'),('AB'),('fens.me');
Query OK, 3 rows affected (0.04 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM t_user;



4. 通过R程序,读MySQL数据库数据

//Database Operation
library(RMySQL)
// 建立本地连接
conn <- dbConnect(MySQL(), dbname = "rmysql", username="rmysql", password="rmysql")
// 建立远程连接
conn <- dbConnect(MySQL(), dbname = "rmysql", username="rmysql", password="rmysql",host="192.168.1.201",port=3306)
// 查看数据库的表
dbListTables(conn)
// 查看表的字段
dbListFields(conn, "t_user")
// 查询MySQL信息
summary(MySQL(), verbose = TRUE)
// MySQL连接实例信息
summary(conn, verbose = TRUE)
// MySQL连接信息
dbListConnections(MySQL())

//##########################################
//           RMySQL数据库操作                                           #
//##########################################
// 数据框
t_demo <- dataFrame
// 覆盖原表数据
dbWriteTable(conn, "test", t_demo, overwrite=TRUE)
// 建立新表格
dbWriteTable(conn, "test", t_demo)
// 插入新数据
dbWriteTable(conn, "world_box_office", t_demo, append=TRUE)
# 查看表格
dbReadTable(conn,"test")
// 覆盖原表数据
> dbWriteTable(conn, "t_demo", t_demo, overwrite=TRUE)
// 数据库询问
d0 = dbGetQuery(conn, "SELECT * FROM test")
//执行SQL脚本查询,并分页
rs <- dbSendQuery(conn, "SELECT * FROM test")
d1 <- fetch(rs)
rs <- dbSendQuery(conn, "SELECT * FROM test where Domestic>500")
d1 <- fetch(rs)
rs <- dbSendQuery(conn, "SELECT * FROM test ORDER BY World DESC")
d1 <- fetch(rs)
qu <- dbSendQuery(conn, "show tables")
d2 <- fetch(qu)
// 删除表
if(dbExistsTable(conn,'world_box_office')){
  dbRemoveTable(conn, "world_box_office")
}
// 不插入row.names字段
dbWriteTable(conn, "test", d1,row.names=FALSE,overwrite=TRUE)
// 取消连接,结束数据库
dbDisconnect(conn)


5. RMySQL案例实践
系统需求描述:Linux MySQL,Win7的R环境,远程连接

1. 通过SQL新建表t_blog,主键索引,唯一键索引
2. 用RMySQL插入数据,包括中文字段
3. 再用RMySQL取出数据
1). 通过SQL新建表t_blog,主键索引,唯一键索引
建表语句


CREATE TABLE t_blog(
id INT PRIMARY KEY AUTO_INCREMENT,
title varchar(12) NOT NULL UNIQUE,
author varchar(12) NOT NULL,
length int NOT NULL,
create_date timestamp NOT NULL DEFAULT now()
)ENGINE=INNODB DEFAULT CHARSET=UTF8;

mysql> desc t_blog;
+-------------+-------------+------+-----+-------------------+----------------+
| Field       | Type        | Null | Key | Default           | Extra          |
+-------------+-------------+------+-----+-------------------+----------------+
| id          | int(11)     | NO   | PRI | NULL              | auto_increment |
| title       | varchar(12) | NO   | UNI | NULL              |                |
| author      | varchar(12) | NO   |     | NULL              |                |
| length      | int(11)     | NO   |     | NULL              |                |
| create_date | timestamp   | NO   |     | CURRENT_TIMESTAMP |                |
+-------------+-------------+------+-----+-------------------+----------------+
5 rows in set (0.00 sec)

mysql> show indexes from t_blog;
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table  | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| t_blog |          0 | PRIMARY  |            1 | id          | A         |           3 |     NULL | NULL   |      | BTREE      |         |               |
| t_blog |          0 | title    |            1 | title       | A         |           3 |     NULL | NULL   |      | BTREE      |         |               |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec)


INSERT INTO t_blog(title,author,length) values('你好,第一篇','Conan',20),('RMySQL数据库编程','Conan',99),('R的极客理想系列文章','Conan',15);

mysql> select * from t_blog;
+----+------------------------------+--------+--------+---------------------+
| id | title                        | author | length | create_date         |
+----+------------------------------+--------+--------+---------------------+
|  1 | 你好,第一篇                 | Conan  |     20 | 2013-08-15 00:13:13 |
|  2 | RMySQL数据库编程             | Conan  |     99 | 2013-08-15 00:13:13 |
|  3 | R的极客理想系列文章          | Conan  |     15 | 2013-08-15 00:13:13 |
+----+------------------------------+--------+--------+---------------------+
3 rows in set (0.00 sec)
2). 用RMySQL插入数据,包括中文字段,再取出数据


> library(RMySQL)
> conn <- dbConnect(MySQL(), dbname = "rmysql", username="rmysql", password="rmysql",host="192.168.1.201",port=3306)
>
> dbSendQuery(conn,'SET NAMES gbk')

> dbSendQuery(conn,"INSERT INTO t_blog(title,author,length) values('R插入的新文章','Conan',50)");

>
> query<-dbSendQuery(conn, "SELECT * FROM t_blog")
Warning message:
In mysqlExecStatement(conn, statement, ...) :
  RS-DBI driver warning: (unrecognized MySQL field type 7 in column 4 imported as character)
> data <- fetch(query, n = -1)
> mysqlCloseResult(query)
[1] TRUE
> print(data)
  id               title author length         create_date
1  1        你好,第一篇  Conan     20 2013-08-15 00:13:13
2  2    RMySQL数据库编程  Conan     99 2013-08-15 00:13:13
3  3 R的极客理想系列文章  Conan     15 2013-08-15 00:13:13
4  4       R插入的新文章  Conan     50 2013-08-15 00:29:45
>
> dbDisconnect(conn)
[1] TRUE
特别提示,不能用dbWriteTable函数!!

我们已经完成,掌握了RMySQL的各种使用技巧,希望大家理解原理后,能少犯错误,提高工作效率!

参考: R语言如何连接MySQL的攻略,摘录自粉丝日志
http://blog.fens.me/r-mysql-rmysql/
分享到:
评论

相关推荐

    mysql-8.0.20-macos10.15-x86_64.tar.gz

    Mac OS X 10.15 下源码安装 mysql-8.0.20-macos10.15-x86_64 https://my.oschina.net/kinglyphp/blog/4281112 博客地址 下载mysql-8.0.20-macos10.15-x86_64.tar.gz 可以从mysql官网下载,如果比较慢, 从...

    关于mysql数据库的简单题目

    MySQL数据库是一种广泛使用的开源关系型数据库管理系统,它以其高效、可靠和易于管理的特点在Web开发领域占据了重要地位。本文将深入探讨MySQL的基础知识,包括安装与配置、数据类型、SQL语句、表的操作以及索引的...

    MySQL数据库应用从入门到精通 第2版

    书中将详细介绍Windows、Linux和Mac OS上的安装步骤,并指导如何配置MySQL服务,包括设置root用户的密码、修改配置文件等。 三、MySQL数据库管理 1. 创建数据库:使用`CREATE DATABASE`语句创建新的数据库,如`...

    nisi脚本配置jdk tomcat mysql redis

    SetOverwrite on functionend ;注册服务 Function "installService" detailprint "------------------------------------install tomcat Service..." Sleep 2000 SetOutPath "$INSTDIR\tomcat\bin" nsExec::...

    软件精品荟萃存档 - CD5-计算机语言.rar

    10. **R语言**:R是统计分析和数据可视化的专用语言,对于数据科学家来说非常重要。 每个编程语言都有其独特的应用场景和优势,理解并掌握这些语言可以帮助开发者拓宽技能范围,提升解决问题的能力。在《软件精品...

    个人陈述_文华1

    在项目开发中,首先根据E-R图和转换图设计了基本表,然后选择了MySQL 8.0.20 for Win64 on x86_64作为数据库平台。使用SQL语句创建数据库和数据表,并手动填充模拟数据。接着,使用Java编程语言在IDEA开发环境中编写...

    MySQL开启慢查询日志功能的方法

    MySQL慢查询日志是一项非常重要的性能监控工具,它能够记录下执行时间超过指定阈值的SQL查询语句,帮助开发者快速定位和优化数据库中的性能瓶颈。在本篇文章中,将会详细介绍如何开启MySQL的慢查询日志功能,并且...

    Cacti Linux How To

    在安装程序的“Software Selection”步骤中,应选择包含 Web 服务器(如 Apache)、数据库(如 MySQL)、脚本语言支持(如 PHP)以及开发工具的组。 2. **Applications** - 在安装过程中,选择“Desktop ...

    matlab转换java代码-utl_passing_sas_macro_variables_to_R_and_retrieving_macr

    matlab转换java代码utl_passing_sas_macro_variables_to_R_and_retrieving_macro_variables_from_R 将宏变量传递给R并从R中检索宏变量。关键字:sas sql连接合并大数据分析宏oracle teradata mysql sas社区...

    很全的黑客常用DOS命令

    - **shutdown /r /t0**:立即重启计算机。 - **shutdown /s /t10**:十秒后关闭计算机。 - **taskkill /PID**:终止指定进程ID`PID`的进程。 - **tasklist**:显示当前正在运行的所有进程的列表。 - **telnet IP**:...

    十个节省时间的MySQL命令小结

    为了简化这一过程,可以在用户主目录(在Windows上是MySQL安装目录)下创建一个配置文件(在Linux/Mac上是`.my.cnf`,在Windows上是`my.ini`),并在其中添加登录信息。这样,每次启动MySQL客户端时,系统会自动读取...

    linux基本培训指南

    - 设置服务在启动时自动启动:`chkconfig mysqld on` - 设置服务在启动时不自动启动:`chkconfig mysqld off` - **列出系统所有的服务启动情况**:`chkconfig --list` - **启动、关闭、重启 MySQL 服务** - ...

    Dash for Mac 2.0.2 文档查看神器 破解版

    Dash 是Mac下非常方便的文档查看器,一体化集成了许多常用的文档,但是不内购它的完整版就要在搜索完后等待8秒钟,非常影响开发效率。这个分享是Dash的破解,可以自行在App Store下载最新版本的Dash,然后将Dash.app...

    hydra 7.2 win32

    Mobile systems based on Linux or Mac OS/X (e.g. Android, iPhone, Zaurus, iPaq) HOW TO USE ---------- Type "./configure", followed by "make" to compile hydra and then "./hydra -h" to see the command...

    cmd操作命令和linux命令大全收集

    arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息 start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 mem 查看cpu...

    drupal 6.12

    chmod a-r CHANGELOG.txt Note that the example only affects CHANGELOG.txt. To completely hide all documentation files from public view, repeat this command for each of the Drupal documentation ...

    Kindle Computer Science other.rar

    iOS_Mac\OReilly Mac OS X for Unix Geeks Leopard 4th.mobi iOS_Mac\Pragmatic iOS Recipes.mobi iOS_Mac\Pragmatic Mac Kung Fu.mobi iOS_Mac\Wrox Beginning iOS Game Development.mobi iOS_Mac\Wrox Building ...

Global site tag (gtag.js) - Google Analytics