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

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语句、表的操作以及索引的...

    nisi脚本配置jdk tomcat mysql redis

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

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

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

    软件精品荟萃存档 - 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 ...

    ubuntu命令技巧

    - **激活网卡的Wake-on-LAN**:`ethtool -s eth0 wol g`。 - **查看CPU信息**:`lscpu`。 - **显示当前硬件信息**:`dmidecode`。 - **获取CPU序列号或者主板序列号**:`dmidecode -t system`。 - **显示当前内存...

    ubuntu skills

    - **激活网卡的 Wake-on-LAN**:使用 `ethtool -s eth0 wol g` 开启网卡的远程唤醒功能。 - **查看 CPU 信息**:执行 `cat /proc/cpuinfo` 查看 CPU 的详细信息。 - **显示当前硬件信息**:使用 `dmidecode` 显示...

Global site tag (gtag.js) - Google Analytics