`
moneyinto
  • 浏览: 32460 次
  • 性别: Icon_minigender_1
  • 来自: 东台
社区版块
存档分类
最新评论

数据库资料表的操作

阅读更多

首先初始化一个数据库:

 

rake db:create;rake db:migrate

   

接着生成一个数据库和资料表:

 

rails g model user name:string  password_digest:string token:string 
rake db:migrate

 

资料表有name和password_digest两个属性(password_digest是ruby的加密和判定方法,可以把它看成password和password_confirmation两个属性)

 

 

资料表的新增

 

ActiveRecord提供了四种API,分别是save,save!,create,create!

下面就save和create比较说明一下,

在资料表中添加一条记录:

save方法:

a = User.new( :name => "moenyinto",:password =>"1",:password_confirmation => "1")
a.save

 

create方法:

User.create( :name => "moenyinto",:password =>"1",:password_confirmation => "1")

 

create的方法相当于new个新的记录并save保存

 

 

 

资料表的查询

 

有这样一张表User:

 

id name identity
1

money

teacher
2 into doctor
3 moneyinto teacher

 

find方法: 

User.find(2)     #找到id为2的那条记录

 

也可以用find_by_id,效果一样。

 

我们还可以用find_by_name,比如:

User.find_by_name("moneyinto")     #找到资料表中name属性值为moneyinto的记录

 

select方法:

我们有时不需要资料表中的所有数据,比如我们只需要姓名(name)

我们可以使用select

User.select("name")      #这样就选出了所有的姓名组成了一个新的数组

 

where方法:

我们根据条件筛选需要的记录,一般用where,

比如我们找到身份为老师的所有记录,可以这样写

User.where(:identity => 'teacher')

 

where使用很灵活,可以自己去深入研究一下。

 

order排序方法:

根据姓名进行排序可以这样写

User.order("name")       #这样输出的就是根据姓名排序好的表

 

查询的限定条件(limit,offset,first,last,all)

limit:限定取出的记录数

offset:可以忽略前几个记录不取出

first:取出第一条记录

last:取出最后一条记录

all:取出所有记录

User.limit(2)      #取出前两条记录
User.offset(1)     #从第二条记录开始取出所有的
User.first      
User.last
User.all

 

 

根据上面的可以串联着搭配写,比如写一个:

User.where(:identity => "teacher").offset(1)   #身份为老师的除了第一条的其他所有记录

 

 

 

资料表记录删除

User.delete(2)      #删除id为2的记录
User.find_by_name("moneyinto").delete      #删除姓名为moneyinto的记录

 

 

 

资料表记录统计

User.count      #统计数据表有多少条记录
User.where(:identity => "teacher").count    #统计身份为老师的记录有多少

 

 

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics