数据库资料表的操作
首先初始化一个数据库:
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 #统计身份为老师的记录有多少
上一篇: 数据库表内容的操作
下一篇: 2021-05-24