Rails默认使用sqlite3做为数据库,虽然很多人更喜欢mysql。但如果是学习用,sqlite3够了,因为它轻量,不需要安装。

首先对sqlite3做个简短的介绍:
1、sqlite3不需要配置,不需要安装,也不需要管理员。最牛的是它没有服务器,仅是一个exe或dll
2、数据库以文件形式保存在磁盘上,可以自由COPY使用
3、因为sqlite3没有服务器监听端口,所以不能像mysql一样通过ip和端口远程连接数据库。如果想远程访问数据库,只能通过数据库文件共享方式

1、安装gem

gem install sqlite3

2、安装sqlite3

windows下安装方法:
下载 http://dl.dbank.com/c0cmb3fd78

解压安装包后把3个文件(包括sqlite3.exe,sqlite3.dll,sqlite3.def)全部放到/Ruby/bin目录下即可。
linux下安装方法:

sudo apt-get install sqlite3

如果apt-get 安装 sqlite3后gem安装仍失败请参考http://rubyer.me/blog/738 来编译安装sqlite3
OK,现在可以创建项目并使用SQLite3了

3、基本命令

使用rails new myproject创建工程后,在myproject/config目录下有database.yml,其默认使用的是sqlite3.

如下:

development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000 

打开终端进入到myproject根目录,编辑development.sqlite3数据库

#进入db文件夹下面的数据库development.sqlite3
sqlite3 db/development.sqlite3 #查看该数据库的表格
.table #创建表格
create table users(id integer primay key, username text); #插入数据
insert into users(username) values('god'); #查看表格中的数据
select * from users;
#查看表的结构:
select * from sqlite_master where type="table"; #默认情况下,不会出现红框中的表头,需要之前设置,命令为:
.header on

#如果只想查看具体一张表的表结构,比如查看emperors表,命令为:
select * from sqlite_master where type="table" and name="emperors"; #另外,也可以这样:
sqlite> .schema emperors
CREATE TABLE emperors( id integer primary key autoincrement, name text,dynasty text,start_year text);

Rails:Rails使用sqlite3数据库 及数据操作基本命令的更多相关文章

  1. [Sqlite]-->Java采用jdbc联系Sqlite各种特定的工艺数据库的数据操作

    引:     1, Sqlite在Windows.Linux 和 Mac OS X 上的安装过程     2.嵌入式数据库的安装.建库.建表.更新表结构以及数据导入导出等等具体过程记录     3,嵌 ...

  2. Python数据库之数据操作

    一 介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的 ...

  3. 数据库-mysql数据操作

    一:mysql 数据的插入 语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: INSERT INTO table_name ( field1, field2,...f ...

  4. 例子 使用sqlite3 数据库建立数据方式

    #!/usr/bin/env python#coding:utf-8import sqlite3#建立一个数据库cx = sqlite3.connect("E:/test.db") ...

  5. notepad++ 文本替换功能,解决excel批量修改数据库的数据操作

    ^ \(' 开始\t ',' 制表符$ '\) 行末 复制出来之后,使用文本替换功能,转换为SQL,添加到临时表中.然后多表关联修改. SELECT COUNT(*) FROM orderno; # ...

  6. SQL不同服务器数据库之间的数据操作整理(完整版)

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  7. SQLServer服务器数据库之间的数据操作(完整版)

    分类: 数据库开发技术 ---------------------------------------------------------------------------------- -- Au ...

  8. 转载-SQL不同服务器数据库之间的数据操作整理(完整版) .

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  9. python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)

    今天在尝试用下面的python代码对MySQL进行数据的插入.更新和删除时, 突然发现代码执行成功, 通过代码查询也显示数据已经插入或更新, 但是当我在MySQL客户端通过SQL语句查询时, 数据库中 ...

随机推荐

  1. python基础语法学习常见小问题

    说明:我是最近觉得python在完成很多工作中方便使用而且功能强大,想突击学习一下.用的是廖雪峰老师的教程,学习python3.X.这里是廖雪峰老师的网站链接: http://www.liaoxuef ...

  2. 格点多边形面积公式(Pick定理)的一个形象解释(转)

    Pick定理:如果一个简单多边形(以下称为“多边形”)的每个顶点都是直角坐标平面上的格点,则称该多边形为格点多边形.若一个面积为S的格点多边形,其边界上有a个格点,内部有b个格点,则S=a/2+b-1 ...

  3. HTTP Status 500:报错Unsupported major.minor version 51.0(unable to load class XXX)

    这个是jdk版本和JRE不匹配导致的. 报错信息: 问题详解:(待填) 处理: 1.检查jdk和jre版本是否匹配 ——打开命令行界面(cmd),分别输入java -version 和javac -v ...

  4. python 2 到 3 的新手坑

    print 和 input print 我们在课程最开始的时候就讲过 print,在版本2的使用方法是: print 'this is version 2' 也可以是 print('this is v ...

  5. Python staticmethod

    1 @staticmethod 静态方法 when this method is called, we don't pass an instance of the class to it (as we ...

  6. 在Silverlight中使用SESSION

    首先Session是运行在服务器上的,而Silverlight运行在客户端.因此在Silverlight中使用SESSION的说法并不准确, 只因大家经常这样搜索才起这个名字.   首先Session ...

  7. WPF利用通过父控件属性来获得绑定数据源RelativeSource

    WPF利用通过父控件属性来获得绑定数据源RelativeSource   有时候我们不确定作为数据源的对象叫什么名字,但知道作为绑定源与UI布局有相对的关系,如下是一段XAML代码,说明多层布局控件中 ...

  8. 《Advanced Bash-scripting Guide》学习(十四):HERE Document和cat <<EOF

    本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 #here document cat <<EOF \z EOF ca ...

  9. Get UTI (uniform type identifier) and ContentType

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  10. android问题 This version of android studio is incompatible with the gradle version used.

    http://blog.csdn.net/sinat_15417921/article/details/51907728 问题背景 因为项目app分包需要,将工程的graddle版本升至了2.2.0 ...