Ruby的sqlite3基操

这篇博客详细介绍了如何使用SQLite进行数据库的基本操作,包括创建数据库、定义表结构、插入数据、查询数据、更新数据以及删除数据。此外,还展示了如何进行模糊搜索、限制返回结果数量、排序数据、分组数据以及使用HAVING子句进行筛选。对于数据库管理和开发人员来说,是一份实用的操作手册。
摘要由CSDN通过智能技术生成

基本操作说明

#导入sqlite3
require "sqlite3"
#创建数据库demo.db,如果没有这个数据库会自动创建
db = SQLite3::Database.new "demo.db"
#添加表
sql = "create table students (
	id integer primary key autoincrement not null,
	name varchar(50),
	age integer,
	address varchar(50)
)"
db.execute(sql)

#添加数据
sql = "insert into students (name,age,address)
		values('张三'22'印度'),
			('李四'22'阿拉伯'),
			('王五'22'波兰'),
			('赵六'22'阿根廷'),
			('卓七'22'非洲'),
			('黑八'22'法国'),
			('白九'22'俄罗斯'),
			('十全'22'日本')
db.execute(sql)

#查询数据
sql = "select * from students"
#或者
sql = "select name,age,address from students"

#添加数据
sql = "insert into students values('大哥大',66,'巴西')"
#或者
sql = "insert into students (name,age,address) values ('大哥大',66,'巴西')"

#修改数据
sql = "update students set name = '普京',age = 49,address ='俄罗斯' where id = 7"

#删除数据
sql = "delete from students where id = 3"
#删除表内所有数据,变空表一张没有数据
sql = "delete from students"

查询有多少张表

select name from sqlite_master where type = "table";

条件:and,or,like,limit,offset,order by ,gourp by,having

#(and)查询id等于3和地址等于巴西的数据

select * from students where id = 3 and address = '巴西';

#(or)查询id等于5或者地址等于巴西的数据

select * from students where id = 3 or  = 5;

#(like_)下滑线表示一个字符,使用在具体知道长度的模糊搜索

select * from students where name like ‘张_’;

#(like %)百分号表示一个或者多个字符,在你不知道长度的情况下,比如手机号码就知道“136%”或者“136后面
#跟着8个下滑线”因为你知道手机号码的长度是11个.

select* from students where address like '俄%';

#(limit)获取数据的前3条

select * from students limit 3;

#(offset)跳过获取到的数据的前4条从第5条开始获取,获取3条

select * from students limit 3 offset 4;

#(order by )搜索所有根据地址的升序来排列(默认升序asc,降序desc),字母(a-z)

select * from students order by address;

#(order by)搜索所有字段 先根据名字来排序,后面的都是补充条件(名字一样的情况下进行后续条件的筛选)

select * from students order by name,age,address;

#(group by) 是为了在搜索语句中对相同数据进行分组
#比方:名字都叫“张三”,但是工资不一样就可以进行分组
#select name,salary from table group by salart ord by desc;
#查询名字和工资,按照工资分组,按照降序排序

select * from students group by name;

(having)搜索所有字段,分组查询,显示分组中名字出现次数小于2次的(having是group by的进一步条件筛选)

select * from students group by name having count(name) < 2;

(Distinct)查询字段为name(字段名字如果一样就显示一次),重复就显示一次的作用

select  distinct name from students;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值